bonsai-syntax-spatial
Installation
SKILL.md
Bonsai Spatial Structure Syntax
Version: Bonsai v0.8.x | Blender 4.2.0+ | Python 3.11 Module path:
bonsai.*— NEVERblenderbim.*Source files:core/spatial.py,tool/spatial.py,bim/module/spatial/
Critical Warnings
- ALWAYS use
bonsai.*imports. NEVER useblenderbim.*— renamed in 2024 (v0.8.0+). - ALWAYS build spatial hierarchy via
IfcRelAggregatesusingifcopenshell.api.run("aggregate.assign_object", ...). NEVER create spatial elements without connecting them to the hierarchy. - ALWAYS use
ifcopenshell.api.run("spatial.assign_container", ...)to place physical elements in spatial containers. NEVER set containment via direct attribute manipulation. - ALWAYS pass
productsas a list (v0.8+ breaking change):products=[wall], NOTproduct=wall. - NEVER delete
IfcProject— it is the root of every IFC model. Bonsai operators enforce this constraint. - ALWAYS set a default container (typically
IfcBuildingStorey) before creating elements. Usebpy.ops.bim.set_default_container(container=storey_id). - NEVER assign an element to multiple containers via
IfcRelContainedInSpatialStructure— an element can only be contained in ONE spatial structure. UseIfcRelReferencedInSpatialStructurefor multi-storey references. - ALWAYS use
ifcopenshell.api.run("root.create_entity", ...)to create spatial elements. NEVER usemodel.create_entity()— it skips GlobalId generation and ownership assignment.
IFC Spatial Hierarchy
Related skills
More from openaec-foundation/blender-bonsai-ifcopenshell-sverchok-claude-skill-package
blender-syntax-materials
>
3blender-core-gpu
>
3blender-agents-code-validator
>
3blender-syntax-panels
>
3blender-errors-data
>
3blender-syntax-data
Covers Blender data management including collections, library overrides, asset system, linked libraries, BlendDataLibraries, data block creation and removal, fake users, and data transfer between files. Activates when managing Blender collections, linking/appending data, working with library overrides, or using the asset system.
3