IFC Overview

IFC Standard

Industry Foundation Classes (IFC) are the open and neutral data format for openBIM.

IFC Specification Package

The IFC specification is developed and maintained by buildingSMART International as its "Data standard". Since IFC4 it is accepted as ISO 16739 standard. The specification of the IFC standard includes for each major and minor edition:

  • the IFC Specification html documentation (including all definitions, schemas, libraries)
  • the URL for the IFC EXPRESS long form schema
  • the URL for the ifcXML XSD schema

For a comparison between the IFC EXPRESS and XSD publication, see here.

IFC Data File Formats and Icons

IFC data files are exchanged between applications using the following formats and should be indicated by the published icons:

.ifc
IFC data file using the STEP physical file structure according to ISO10303-21. The *.ifc file shall validate according to the IFC-EXPRESS specification. This is the default IFC exchange format.
.ifcXML
IFC data file using the XML document structure. It can be generated directly by the sending application, or from an IFC data file using the conversion following ISO10303-28, the XML representation of EXPRESS schemas and data. Note: an .ifcXML file is normally 300-400% larger then an .ifc file.
.ifcZIP
IFC data file using the PKzip 2.04g compression algorithm (compatible with e.g. Windows compressed folders, winzip, zlib, info-zip, etc.). It requires to have a single .ifc or *.ifcXML data file in the main directory of the zip archive. Note: an .ifcZIP files usually compress an .ifc down by 60-80% and an .ifcXML file by 90-95%.

IFC Specification Technology

Industry Foundation Classes (IFC) are provided as EXPRESS and XSD definitions

The IFC specification is written using the EXPRESS data definition language, defined as ISO10303-11 by the ISO TC184/SC4 committee. It is the same data definition language as used e.g. in STEP or CIS/2. It has the advantage of being compact and well suited to include data validation rules within the data specification. The IFC exchange file structure (the syntax of the IFC data file with suffix ".ifc") is the so called "STEP physical file" format, defined as ISO10303-21 by the same ISO TC184/SC4 committee. It is an ASCII file format used to exchange IFC between different applications.

In addition to the IFC-EXPRESS specification an ifcXML specification is published as well (since the IFC2x release). The ifcXML spec is provided as an XML schema 1.0, as defined by W3C. The ifcXML exchange file structure (the syntax of the IFC data file with suffix ".ifcXML") is the XML document structure. The XML schema is automatically created from the IFC-EXPRESS source using the "XML representation of EXPRESS schemas and data", defined as ISO10303-28 ed. 2. This ensures that both IFC-EXPRESS and ifcXML handle the same data consistently and that the .ifc and .ifcXML data files can be converted bi-directionally.