Files
Petru Conduraru 0a8ae14789 fix(ifcdiff): check attributes by default so PredefinedType changes are caught (#8214)
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>
2026-07-12 22:29:31 +10:00
..

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