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:

LayerWhat it checks
PresenceEvery element is in both files
AttributesEvery plain attribute
SpatialContainment in site, building and storeys
TypesType objects and their assignments
PropertiesProperty and quantity sets
MaterialsMaterial associations
ClassificationsClassification references
StylesMaterial colours
ProjectUnits, placement, georeference, address
GeometryWorld-space shape, meshed by IfcOpenShell
ValidationIFC 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

ModelResult
RAC sampleEvery layer passes
DACH sampleEvery layer passes
451 MB high-riseEvery 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.