Geometry Equivalence: How to Match Two BIM Objects When GUIDs Change
Two algorithms for computing geometry signatures from BIM meshes — one fast and exact, one robust to floating-point noise. Achieving 95.7% accuracy on constructed datasets.
The problem: GUIDs change, but geometry doesn't
Every BIM object carries a GUID — a unique identifier that should persist across model versions. In practice, GUIDs are anything but stable. Research shows that on average only 1.3% of GUIDs survive an IFC round-trip exchange [2], and as of 2025 this remains an unsolved interoperability problem [3]. A designer deletes a column and recreates it in place — the column gets a brand-new GUID. To any GUID-based tool, the old column vanished and a completely different one appeared.
In the BIMdiff pipeline, each object's geometry is represented as a mesh — a set of vertices and faces. When GUIDs change, the reconciliation step can't rely on identifiers. It needs to answer a more fundamental question: do these two meshes have the same shape?
Simply comparing vertex arrays doesn't work — BIM exporters reorder vertices and introduce small numerical differences across exports. The same wall can look completely different at the data level. We developed two complementary algorithms [1] to solve this, each optimized for a different part of the pipeline. For the full technical details, see the original paper.
Algorithm 1: Coordinate-sorted signature
Idea: Put all vertices in a consistent order, then create a fingerprint from the result.
BIM exporters can store the same geometry in different vertex orders. The coordinate-sorted signature solves this by sorting vertices into a standard sequence and generating a deterministic fingerprint. If two meshes have the same vertices and faces, they always produce the same fingerprint — regardless of how the exporter ordered them.
It's fast and exact. The trade-off is sensitivity: if an exporter introduces even a tiny numerical difference in a vertex coordinate, the fingerprint changes completely.
Algorithm 2: Geometric feature signature
Idea: Instead of looking at exact vertex data, describe what the object looks like — its proportions, surface area, position, and orientation.
The geometric feature signature extracts high-level shape descriptors from the mesh: How long are the edges? How large are the faces? Where is the object located? How is it oriented? These properties stay stable even when exporters introduce small numerical differences in vertex coordinates.
By comparing these shape descriptors rather than raw vertex data, the algorithm can recognize that two meshes represent the same object — even across different export sessions or IFC schema versions. This is exactly what BIMdiff's reconciliation step needs: when GUIDs have changed, geometry is the only way to re-establish which objects match.
Testing on BIM objects
We built a purpose-designed test dataset with 69 BIM objects across 15 IFC classes — walls, columns, doors, stairs, pipes, ducts, and more [1]. Each object was subjected to realistic modifications: delete-recreate, move 1mm, rotate 1°, extend a wall, flip a column.

Both algorithms achieved identical performance on same-schema exports: 95.7% accuracy with perfect precision. Zero false positives means no incorrect matches — a critical property, because a false positive would silently merge two different objects.
All three errors were false negatives from a single IfcStair assembly. The stair had 11 subcomponents; the algorithms reconciled 8 correctly but missed 3 (2 IfcRailing and 1 IfcStairFlight) due to tessellation differences in complex curved geometry [1].

Where it gets interesting: cross-schema robustness
Same-schema exports are the easy case. The real challenge is when models are exported under different IFC schemas — IFC 4.3, IFC 2x3, IFC 4 — because each schema can produce different tessellation for the same geometry.
This is where the two algorithms diverge:
| Algorithm | IFC 4.3 | IFC 2x3 | IFC 4 |
|---|---|---|---|
| Coordinate-sorted | 95.7% | 63.8% | 52.2% |
| Geometric feature (no threshold) | 95.7% | 69.6% | 63.8% |
| Geometric feature (λ=0.5) | 98.6% | 81.2% | 76.8% |
The coordinate-sorted signature collapses to 52.2% under IFC 4 — barely better than a coin flip. This is expected: different schemas produce different vertex orderings, so the exact fingerprint fails. The geometric feature signature with a relaxed threshold (λ=0.5) maintains 76.8% — a 24.6% advantage [1].
End-to-end: reconciling delete-recreate pairs
As described in our BIMdiff pipeline, the reconciliation step uses geometry equivalence to re-match objects whose GUIDs have changed. We tested this on a school building model (~1,000 m²) with four evolving versions — baseline, add/remove/modify, delete-recreate, and mixed operations [1].

The critical transition is V1→V2, where Revit's delete-recreate behavior produced 34 objects with new GUIDs in each version. Without reconciliation, BIMdiff would report 34 additions and 34 deletions — most of which are phantom changes, not real modifications.
| Versions | Algorithm | Reconciled pairs | Unresolved | Accuracy |
|---|---|---|---|---|
| V1→V2 | Coordinate-sorted | 22 / 34 | 12 added + 12 deleted | 95.2% |
| V1→V2 | Geometric feature (λ=0.5) | 27 / 34 | 7 added + 7 deleted | 97.2% |
The geometric feature signature reconciled 27 out of 34 delete-recreate pairs — 5 more than the coordinate-sorted approach — improving accuracy from 95.2% to 97.2%. The 7 unreconciled objects were all stair assemblies (4 IfcRailing, 3 IfcStair), consistent with the geometry test results [1].
The 27 reconciled pairs spanned six IFC types: 18 IfcMember (stair stringers), 4 IfcStairFlight, 2 IfcSlab (landings), 1 IfcDoor, 1 IfcWall, and 1 IfcWindow. Without this step, a coordination team would have to manually inspect 68 phantom changes. With it, they see 14 — and those 14 are genuinely unresolvable cases, not noise.
Key takeaways
- Two complementary algorithms: a coordinate-sorted signature (fast, exact) and a geometric feature signature (robust to numerical noise and schema differences).
- 95.7% accuracy, 100% precision on same-schema exports. With threshold tuning, the geometric feature signature reaches 98.6% — and outperforms coordinate-sorted by 24.6 percentage points (76.8% vs 52.2%) on cross-schema comparisons.
- Limitation: complex curved geometry — especially stair assemblies — remains challenging due to tessellation differences.
These algorithms are already built into SiloLink — so you can focus on real design changes instead of phantom noise.
References
[1] Z. Wang, C. Du, Q. Liu, and A. Borrmann, "BIMdiff: Object-Level BIM Change Detection with Identifier Reconciliation," Preprint, Technical University of Munich, 2026. DOI: 10.5281/zenodo.19356507
[2] G. Lee, J. Won, S. Ham, and Y. Shin, "Metrics for Quantifying the Similarities and Differences between IFC Files," Journal of Computing in Civil Engineering, vol. 25, no. 2, pp. 172–181, 2011. DOI: 10.1061/(ASCE)CP.1943-5487.0000077
[3] Z. Fang, X. Teng, Z. Shen, D. Yang, and X. Lin, "Standardizing Design-Stage Digital-Twin Assets in a Smart Home for Building Data Management," Buildings, vol. 15, no. 22, 2025. DOI: 10.3390/buildings15224096
This blog post is based on the paper by Wang, Du, Liu, and Borrmann [1]. Full text: doi.org/10.5281/zenodo.19356507