Docs · Exporter
Parity with Autodesk
A faster file is only useful if it says the same thing. BMC’s IFC is checked against Autodesk’s IFC of the same model, exported with the same settings.
What must match
- Elements and their GlobalIds
- Attributes: Name, Tag, ObjectType, PredefinedType and every other plain attribute
- Site, building, storeys and spatial containment
- Type objects and which elements use them
- Property sets and quantity sets, value by value
- Materials, constituent sets and their fractions
- Classifications
- Material colours: surface styles, styled items and colour maps
- Units, placement, georeference and address
- The world-space shape of every product
What may differ
These differences do not change what the file says:
- Geometry encoding. Triangles or polygons, extrusions or face sets, reused or not: only the world-space shape has to match.
- Entity order and numbering in the file.
- Relationship GUIDs. The relationships themselves must match; the GUIDs of the relationship entities are informational.
- Other presentation data: layers, owner history, axis and footprint representations, shape aspects.
- RPC and entourage geometry, such as people and plants.
How it is checked
A dedicated comparator (ifc-compare, written in Rust, with a Python reference implementation) matches products by GlobalId and checks layer by layer:
| Layer | What it checks |
|---|---|
| Presence | Every element is in both files |
| Attributes | Every plain attribute |
| Spatial | Containment in site, building and storeys |
| Types | Type objects and their assignments |
| Properties | Property and quantity sets |
| Materials | Material associations |
| Classifications | Classification references |
| Styles | Material colours |
| Project | Units, placement, georeference, address |
| Geometry | World-space shape, meshed by IfcOpenShell |
| Validation | IFC schema and EXPRESS rules |
The comparator has no exemptions unless a deviation was decided and written down. Rules where Autodesk itself is unstable are strict: an alternative result is accepted only if it equals the one predicted and reported.
Results
| Model | Result |
|---|---|
| RAC sample | Every layer passes |
| DACH sample | Every layer passes |
| 451 MB high-rise | Every layer passes except geometry for 7 of 41,794 products: 6 ramp flights and 1 ceiling, 4–12 mm apart, where curved edges are faceted differently |
Material colours match on 6,732 (RAC), 4,285 (DACH) and 46,554 (high-rise) styled items. With every IFC+SG parameter filled, RAC passes every layer; DACH and the high-rise differ only where two parameters share a name, a deliberate difference.
Known accepted differences
- The 7 high-rise shapes above.
- A few DACH families group their polygons differently. Autodesk’s own exports vary here too, and encoding is informational.
- An unstable plate type Tag on RAC, accepted only if the tag appears among that type’s instances in both files.
- View exports are close but not perfect: plan-cut wall footprint areas and section-box clipping of some elements. A cropped model is not used for model checking.