mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-08-09 17:31:45 +00:00
0a8ae14789
IfcDiff defaulted to relationships=["geometry"], so a plain diff only ever compared geometry. Attribute-only edits on an element that kept its GlobalId (a modified or removed PredefinedType, a renamed element, etc.) were silently missed. The CLI made this worse: --relationships did not list "attributes" or "geometry" as valid values, so there was no documented way to enable it. The default is now ["attributes", "geometry"], so a plain `ifcdiff old new` reports attribute changes alongside geometry changes. The CLI help and the IfcDiff docstring now document all valid relationship values. Added a regression test covering a PredefinedType change detected with the default configuration. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
IfcDiff
Compare IFC models for changes to geometry, properties, and structure. Compares the differences between two IFC models, including changes to geometry, properties, relationships, and spatial structure. Outputs differences in JSON format for further processing or reporting.
Features
- Element tracking: Identify added and deleted elements between models
- Relationship comparison: Track changes in multiple relationship types:
- Geometry
- Attributes
- Type assignments
- Properties
- Spatial containers
- Aggregations
- Classifications
- Flexible filtering: Compare only specific element types using IFC selectors
- Configurable depth: Choose between shallow (first difference only) or deep (all differences) comparison
- JSON export: Export comparison results in JSON format for further processing
- Precision control: Configure geometric comparison precision