Industry Foundation Classes (IFC) Reader

Industry Foundation Classes
File Extension IFC, IFCZIP
Supported Versions IFC2 up to 2.3.0.1, IFC4 up to 4.3
Platforms wy ly my ay iy
Tessellation t_green Supported
B-rep c_green Supported
PMI c_grey Partial

The IFC data model provides access to data used in the building and construction industry, and so some of the concepts like Assembly, B-rep and PMI are not exactly the same concepts as they are with our other formats. A file does not need to have a particular extension to be read correctly by HOOPS Exchange; however, the file extensions of IFC files that you can expect to be loaded by HOOPS Exchange are:

  • .IFC
  • .IFCZIP

How to Import From IFC

To load an IFC file, use A3DAsmModelFileLoadFromFile(). The A3DParamsLoadData structure is used to customize the loading behavior:

A3DAsmModelFile* pModelFile = 0;

A3DRWParamsLoadData sReadParam;
A3D_INITIALIZE_DATA(A3DRWParamsLoadData, sReadParam);
sReadParam.m_sGeneral.m_bReadSolids = true;

// ... set other A3DRWParamsLoadData fields as necessary

A3DAsmModelFileLoadFromFile("path/to/file.ifc", &sReadParam, &pModelFile);

See Simple Load and Export for more about loading model files.

Tessellation

This visualization data for this format is generated by the HOOPS Exchange tessellation engine.

B-rep

The B-rep definition within IFC is based upon STEP. HOOPS Exchange supports specific IFC B-rep definitions by creating a tessellated solid.

IFC-Specific B-rep

HOOPS Exchange can create primitives by performing simple geometric operations on 2D entities.

The list of geometric objects available in IFC is:

  • IFCBOOLEANCLIPPINGRESULT
  • IFCEXTRUDEDAREASOLID
  • IFCOPENINGELEMENT
  • IFCSURFACECURVESWEPTAREASOLID
  • IFCSWEPTDISKSOLID

The list of surface types available in IFC is:

  • IFCSURFACEOFLINEAREXTRUSION
  • IFCSURFACEOFREVOLUTION

The list of curve types available in IFC is:

  • IFCBEZIERCURVE
  • IFCBSPLINECURVE
  • IFCCIRCLE
  • IFCCOMPOSITECURVE
  • IFCELLIPSE
  • IFCPOLYLINE

Please note that for performance reasons, the level of detail of the generated tessellation is limited to a low setting.

PMI

IFC has a concept which is close to PMI called Notes and these are supported by HOOPS Exchange. The names of the Notes in IFC are:

  • IFCCANNOTATIONTEXTOCCURENCE
  • IFCTEXTLITERALWITHEXTENT
  • IFCTEXTLITERAL

Assembly

The full assembly tree definition is supported. This includes maintaining any hidden attributes which may be set. Incremental load is not supported by our IFC reader.

Support for IFC 4 Types

By the version 2019, IFC reader supports the following B-Rep and Tessellation types:

  • IFCADVANCEDBREPWITHVOIDS
  • IFCADVANCEDBREP
  • IFCINDEXEDPOLYCURVE (from IFC 4 Addendum 2)
  • IFCPOLYGONALFACE (from IFC 4 Addendum 2)
  • IFCTESSELLATEDFACESET

IFC Relationship

IFC relationship can be read from an input file. Our support of this feature is currently limited to reading the related and relating elements for the following relations:

  • IFCRELADHERESTOELEMENT
  • IFCRELAGGREGATES
  • IFCRELCONNECTSPATHELEMENTS
  • IFCRELCONTAINEDINSPATIALSTRUCTURE
  • IFCRELFILLSELEMENT
  • IFCRELSPACEBOUNDARY
  • IFCRELVOIDSELEMENT
  • IFCRELASSIGNSTOGROUP

See the Building Information Modeling in the programming guide for more information.

IFCXML

BIM Data can be exported to IFCXML using A3DAsmModelFileExportToIfcXMLFile() from the A3DSDKBim.h header.

Views

Views are not a concept supported by IFC.

Limitations

Our IFC reader doesn’t support double precision. However it is still possible to improve it by declaring a “TF_IFC_REPOSITION” environment variable for relocating models near the origin.