What problem does it solve?
Prevents orphaned IFC elements and incorrect BIM semantics by guiding deterministic creation and management of objectified IFC relationship entities (containment, aggregation, type assignment, property/material association, and voids) across IFC2X3 vs IFC4 differences.
Core Features & Use Cases
- Spatial containment and references: Assigns elements to a single primary spatial container and supports IFC4+ secondary references for elements spanning multiple storeys.
- Decomposition and nesting: Creates correct whole/part relationships via aggregation and host/component attachment via nesting, avoiding category-mistakes that break downstream BIM tools.
- Type, property, and material linking: Assigns
IfcRelDefinesByType, manages property sets (IfcRelDefinesByProperties), and associates materials (IfcRelAssociatesMaterial) using safe API patterns.
- Voids and fillings: Cuts openings with
IfcRelVoidsElement and fills them with IfcRelFillsElement for consistent window/door workflows.
- Robust guardrails: Enforces API usage patterns (use
ifcopenshell.api.run()), version-safe querying (ifcopenshell.util.element), and relationship cleanup on reassignment/removal.
Quick Start
Use this skill to generate IfcOpenShell code that assigns a wall to the correct storey container, applies a wall type, adds a property set with values, and creates a window opening with a filled window—without leaving the wall orphaned.