bonsai-syntax-geometry

Enforce correct Bonsai IFC geometry representation syntax and context usage.

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-syntax-geometry-impertio-studio
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: bonsai-syntax-geometry
Source: https://github.com/Impertio-Studio/Blender-Bonsai-ifcOpenshell-Sverchok-Claude-Skill-Package/tree/main/skills/bonsai/syntax/bonsai-syntax-geometry
Command: npx skills add https://github.com/Impertio-Studio/Blender-Bonsai-ifcOpenshell-Sverchok-Claude-Skill-Package --skill bonsai-syntax-geometry-impertio-studio

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

This Skill prevents common, production-breaking IFC geometry mistakes when creating or editing IFC representations in Bonsai, especially cases where geometry appears missing or invalid due to incorrect context, representation assignment, or placement syncing.

Core Features & Use Cases

  • IFC geometry representation syntax for Bonsai workflows, including IfcExtrudedAreaSolid and IfcShapeRepresentation creation patterns.
  • Representation context guardrails to ensure Body/Axis/FootPrint subcontexts are created and used correctly so geometry is discoverable by IFC viewers.
  • Correct assignment and placement syncing guidance, including using geometry.assign_representation and syncing Blender transforms back to IfcLocalPlacement via bpy.ops.bim.edit_object_placement() or the equivalent API call.
  • Boolean and mesh-to-IFC patterns including clipping/boolean operations and correct add_mesh_representation list-of-lists data structures.
  • Opening/feature relationships guidance using feature.add_feature() (Bonsai v0.8+) rather than legacy void APIs.

Quick Start

Create the required Body geometry context, build the geometry representation using the correct Bonsai/IfcOpenShell APIs, then assign it to your target element with geometry.assign_representation while syncing placement with bpy.ops.bim.edit_object_placement() after moving the Blender object.

Frequently Asked Questions about bonsai-syntax-geometry

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

FAQPage Schema
Why is my IFC geometry missing or invalid in Bonsai viewers?

Missing IFC geometry usually means incorrect representation context usage or direct entity manipulation instead of Bonsai API calls. You must create the correct Body subcontext and use geometry.assign_representation to ensure viewers can discover the geometry.

How do I create an IfcExtrudedAreaSolid correctly using IfcOpenShell?

Create an IfcExtrudedAreaSolid by building the profile and extrusion, wrapping it in an IfcShapeRepresentation using the correct Body context, then assigning it with geometry.assign_representation to avoid invalid IFC geometry.

How do I sync Blender object transforms to IFC local placement?

Sync Blender transforms to IFC local placement by calling bpy.ops.bim.edit_object_placement() after moving the object, ensuring the IfcLocalPlacement accurately reflects the Bonsai representation geometry.

What is the correct data structure for Blender mesh to IFC conversion?

Mesh to IFC conversion requires passing a list-of-lists data structure to the add_mesh_representation API, ensuring Bonsai translates Blender mesh geometry into a valid IfcShapeRepresentation correctly.

How do I add boolean clipping and openings to IFC walls in Bonsai v0.8+?

Add boolean clipping and openings in Bonsai v0.8+ using the feature.add_feature() API rather than legacy void APIs, ensuring correct IFC geometry representation and feature relationships for walls.

Can I directly manipulate IfcShapeRepresentation entities in Bonsai?

You should not directly manipulate IfcShapeRepresentation entities in Bonsai. Use IfcOpenShell API calls for representation assignment, context creation, and safe removal order to prevent invalid IFC geometry.