Install
$ agentstack add skill-sanpingli-skills-aec-building ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
aec-building SKILL
What this skill does
Generates parametric BREP building geometry through a 5-layer stack:
orchestrator (planner → executor → reporter)
↓ calls
mcp/server (19 粗粒度 MCP tools + JSON-RPC transport)
↓ calls
aec/ (Building + elements + grid + staircase)
↓ calls
core/ (shapes + booleans + references)
↓ exports via
export/ (STEP + IFC)
Architecture invariants
- Reference-driven — all geometry positioned via GridRef/LevelRef, never absolute coordinates
- Coarse-grained tools — one MCP tool call = one complete operation (e.g. "place all columns")
- Compliance = deterministic code — GB 50016 / JGJ/T 67 rules are pure functions, not LLM memory
- Failure = signal — error messages always include actionable suggestions + fix_action
- Building.summary() returns Open > IFC` 可得到可编辑模型
渲染流水线
Building (Appearance) → building_to_colored_glb() → model.glb
↓
viewer_3d.py → Three.js PBR (阴影 + 色调映射 + 顶点色)
Recovery Patterns (路径 A/B 通用)
楼梯空间不足
- 触发:
create_staircase→STAIR_GEOMETRY_INVALID - 修复: 读
suggestions→modify_element扩大核心筒墙 → 重试create_staircase - 联动:
modify_element修改墙端点时,相交墙自动延长(cascaded_updates列表)
疏散楼梯数量不足
- 触发:
check_compliance→§5.5.17violation withfix_action - 修复: 读
fix_action.tool→ 调用create_staircase在建筑另一端
防火间距不足
- 触发:
check_compliance→§6.2.2violation - 修复:
modify_element调整 L 形折角处窗位
参数化联动机制
modify_element 修改墙的 start 或 end 时,会自动查找端点相交的其他墙并同步更新。 返回的 cascaded_updates 列出所有被联动修改的墙及其新坐标。Agent 无需手动逐个修改相交墙。
Tool Call Granularity Rules
批量操作(一次 tool call)
place_columns: 全部柱子一次放完,用 skipx/skipy 排除 (路径 A)place_columns_at: 全部柱子坐标一次传入 (路径 B)create_floors: 多层楼板一次创建auto_place_doors: 全部门一次放完place_beams: 每层所有梁一次放完(逐层调用, 路径 A)place_beams_at: 一类梁一次传入 (路径 B, 如"所有环向梁"一批)place_windows: 同类窗户一次传入
逐个操作
create_staircase: 每部楼梯单独调用(不同位置 + 独立验证)create_curtain_wall: 每个立面单独调用
绝不逐个
- 不要一根柱子一个 tool call
- 不要一面墙一个 tool call(除非类型不同需分批)
Context Management
- 每次 tool call 后只记住:element_id(后续引用)、warnings(可能需处理)、error(需恢复)
- 调用
get_summary获取 <2KB 状态快照 - 每 5-8 步调用一次
visual_check - 用
take_snapshot在关键节点保存状态,出错用rollback回退
Adding new element types
- Add dataclass to
aec/elements.py - Add
*_to_brep()factory inaec/element_factory.py - Add
Building.add_*()method inaec/building.py - Add MCP tool in
mcp/server.py+mcp/transport.pyTOOL_DEFINITIONS + executor method map - Add tests
Adding new compliance rules
- Add check function in
compliance/rules/gb50016.pyorjgj_t67.py - Wire into
check_gb50016()dispatcher with scope key - Every violation should include
fix_actionwith tool + params when an automated fix is possible - Add test in
tests/test_compliance.py
Build & test
pip install -e ".[dev]"
pytest tests/ -v # all tests
pytest tests/ -k "not BREP" # skip CadQuery-dependent tests
python examples/l_office_building.py # 路径 A: 现代办公 MCP workflow
python examples/small_office_with_atrium.py # 路径 A: full workflow with atrium
python examples/yingxian_pagoda.py # 路径 B: 传统建筑 (八角木塔)
python examples/imperial_palace.py # 路径 B: 传统建筑 (宫殿群)
Reference documents
- [PRD & Architecture](docs/PRD_Architecture.md)
- [Agent Harness Case Study (20 tool calls)](docs/AgentHarnessBREPGenerationCase_Study.md)
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: sanpingli
- Source: sanpingli/skills
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.