ifcos-impl-validation
IfcOpenShell Validation Workflows
Quick Reference
Critical Warnings
- ALWAYS run
ifcopenshell.validate.validate()with basic mode first (defaultexpress_rules=False). NEVER enable EXPRESS WHERE rules on a first pass — they are 10-100x slower on large models. - ALWAYS pass a configured
logging.Loggerinstance tovalidate(). The function logs results; it does NOT return them. - NEVER assume a model is valid because
validate()completes without raising an exception. Validation issues are logged, not raised. UseLogDetectionHandlerorjson_loggerto detect issues programmatically. - ALWAYS use
ifctesterfor IDS (Information Delivery Specification) validation.ifcopenshell.validatechecks schema compliance only — it does NOT check project-specific requirements. - NEVER confuse schema validation with IDS validation. Schema validation verifies the IFC file structure is correct per EXPRESS schema. IDS validation verifies the IFC data meets project information requirements.
- ALWAYS call
add_georeferencingbeforeedit_georeferencing. The IfcMapConversion and IfcProjectedCRS entities MUST exist before editing. - NEVER use
IfcMapConversionScaledin IFC4 models. The scaled variant is only available in IFC4X3. - ALWAYS check
model.schemabefore applying version-specific validation logic. Georeferencing differs between IFC2X3 (property sets) and IFC4+ (dedicated entities).
Decision Tree: Which Validation Approach
What are you validating?
More from openaec-foundation/computational-design-day-delft-march-2026
blender-core-api
Guides Blender Python API usage including bpy module structure, RNA data access, context system, dependency graph, and operator invocation. Activates when writing bpy scripts, creating Blender addons, or accessing Blender data blocks programmatically.
1blender-syntax-panels
Defines Blender UI panel creation including bpy.types.Panel, draw() method, UILayout API (row/column/box/split), bl_space_type, bl_region_type, bl_category, sub-panels, draw_header, menus, and UIList. Activates when creating custom Blender panels, building addon interfaces, or working with UILayout elements.
1ifcos-syntax-api
Documents the ifcopenshell.api module system with all 30+ API modules, invocation patterns via api.run() and direct module calls, parameter conventions, and module categorization. Activates when creating IFC entities, modifying properties, managing spatial structure, or using any ifcopenshell.api function.
1bonsai-impl-bcf
Guides implementation of BIM Collaboration Format (BCF) workflows in Bonsai including creating BCF topics, adding viewpoints with camera snapshots, managing comments, importing/exporting BCF files (v2.1 and v3.0), and integrating BCF issue tracking with IFC element references. Activates when working with BCF files, BIM issue tracking, clash report management, or collaboration workflows in Bonsai.
1ifcos-impl-mep
Guides MEP (Mechanical, Electrical, Plumbing) modeling in IFC using ifcopenshell.api.system including IfcSystem, IfcDistributionElement, ports, connections, flow segments, fittings, and MEP-specific property sets. Activates when creating HVAC systems, piping networks, electrical circuits, or MEP elements in IFC models.
1ifcos-impl-cost
Guides IFC cost management using ifcopenshell.api.cost including cost schedules, cost items, cost values, cost quantities, and 5D BIM workflows. Activates when implementing cost estimation in IFC models, creating cost schedules, or linking quantities to cost items.
1