bonsai-impl-modeling

Generate Bonsai/IfcOpenShell BIM element code with typed materials and spatial containment.

30|4|Updated Mar 5, 2026
One-click install
npx skills add https://github.com/Impertio-Studio/Blender-Bonsai-ifcOpenshell-Sverchok-Claude-Skill-Package --skill bonsai-impl-modeling-impertio-studio
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: bonsai-impl-modeling
Source: https://github.com/Impertio-Studio/Blender-Bonsai-ifcOpenshell-Sverchok-Claude-Skill-Package/tree/main/skills/bonsai/impl/bonsai-impl-modeling
Command: npx skills add https://github.com/Impertio-Studio/Blender-Bonsai-ifcOpenshell-Sverchok-Claude-Skill-Package --skill bonsai-impl-modeling-impertio-studio

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

Bonsai/IFC modeling often breaks when geometry is created without correct IFC typing, materials, representation context, or spatial containment, resulting in orphaned elements and invalid files.

Core Features & Use Cases

  • End-to-end element creation pipeline: guides selecting or creating IFC element types, mapping the right geometry representation, assigning representations, and placing elements into the spatial hierarchy using the correct Bonsai/IfcOpenShell APIs.
  • Correct material assignment strategy: ensures walls/slabs use IfcMaterialLayerSet, columns/beams use IfcMaterialProfileSet, and doors/windows use IfcMaterialConstituentSet—assigned to the TYPE so occurrences inherit materials properly.
  • Guardrails against common Bonsai/IfcOpenShell failure modes: enforces critical checks like verifying IfcStore.get_file() is not None, ensuring representation contexts exist, using spatial.assign_container for placement, and using feature.add_feature for openings.

Quick Start

Use the bonsai-impl-modeling Skill to generate Bonsai + IfcOpenShell Python code that creates a typed, material-assigned wall with correct Body/MODEL_VIEW representation context and assigns it to a storey without orphaning.

Frequently Asked Questions about bonsai-impl-modeling

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
Why does my IfcOpenShell BIM geometry become orphaned in Bonsai?

Orphaned geometry in Bonsai BIM modeling usually occurs when elements lack correct IFC typing, material assignments, representation context, or spatial containment. You must enforce required type, material, representation, and spatial placement steps to generate valid, non-orphaned elements.

How do I assign materials correctly when creating Bonsai BIM elements?

To assign materials in Bonsai BIM elements, assign them to the TYPE so occurrences inherit them properly. Use IfcMaterialLayerSet for walls and slabs, IfcMaterialProfileSet for columns and beams, and IfcMaterialConstituentSet for doors and windows.

What is the correct way to place BIM elements into a spatial hierarchy using IfcOpenShell?

To place BIM elements into the spatial hierarchy using IfcOpenShell, use the spatial.assign_container API. This ensures elements are correctly contained within the spatial structure, preventing invalid or orphaned geometry in your IFC file.

Should I use blenderbim or bonsai APIs for IfcOpenShell BIM modeling?

For Bonsai BIM modeling, you should use the bonsai.* APIs rather than the older blenderbim.* APIs. Additionally, validate that IfcStore.get_file() is not None and ensure representation contexts exist before assigning geometry.

How do I add openings for doors and windows in IfcOpenShell without breaking the model?

To add openings for doors and windows in IfcOpenShell, use the feature.add_feature API. Avoid known anti-patterns like using void.add_opening or aggregate.assign_object, which can lead to invalid IFC files and orphaned geometry.

What representation context is needed for Bonsai BIM element geometry?

Bonsai BIM element geometry requires a Body/MODEL_VIEW representation context. Ensuring this representation context exists before assigning geometry prevents invalid files and ensures your typed elements, like walls and slabs, synchronize correctly from Blender to IFC.