ifcos-impl-validation

Installation
SKILL.md

IfcOpenShell Validation Workflows

Quick Reference

Critical Warnings

  • ALWAYS run ifcopenshell.validate.validate() with basic mode first (default express_rules=False). NEVER enable EXPRESS WHERE rules on a first pass — they are 10-100x slower on large models.
  • ALWAYS pass a configured logging.Logger instance to validate(). 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. Use LogDetectionHandler or json_logger to detect issues programmatically.
  • ALWAYS use ifctester for IDS (Information Delivery Specification) validation. ifcopenshell.validate checks 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_georeferencing before edit_georeferencing. The IfcMapConversion and IfcProjectedCRS entities MUST exist before editing.
  • NEVER use IfcMapConversionScaled in IFC4 models. The scaled variant is only available in IFC4X3.
  • ALWAYS check model.schema before applying version-specific validation logic. Georeferencing differs between IFC2X3 (property sets) and IFC4+ (dedicated entities).

Decision Tree: Which Validation Approach

What are you validating?
Related skills
Installs
2
GitHub Stars
6
First Seen
Mar 17, 2026