ifcos-impl-validation
Installation
SKILL.md
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).