The Industry Foundation Classes (IFC) is a CAD data exchange data schema intended for description of architectural, building and construction industry data (ABCII). The IFC file format is based on ISO 10303-21 standard and definitions of ABCII are documented by using underlying EXPRESS. It is a platform-neutral, open data schema specification that is not controlled by a single vendor or group of vendors. It is an object-based data schema with a data model developed by buildingSMART (formerly the International Alliance for Interoperability, IAI) to facilitate interoperability in the architecture, engineering and construction (AEC) industry, and is a commonly used collaboration format in Building information modeling (BIM) based projects. The IFC model specification is open and available. It is registered by ISO and is an official International Standard ISO 16739-1:2024. Because of its focus on interoperability the Danish government in 2010 made the use of IFC format(s) compulsory for publicly aided building projects. In 2017 the Finnish state-owned facility management company Senate Properties started to demand use of IFC compatible software and BIM in all their projects. Also the Norwegian Government, Health and Defense client organisations require use of IFC BIM in all projects as well as many municipalities, private clients, contractors and designers have integrated IFC BIM in their business. The popularity of the IFC data schema in construction has continued to grow, primarily for the purpose of exchanging geometry.
History
The IFC initiative began in 1994, when Autodesk formed an industry consortium to advise the company on the development of a set of C++ classes that could support integrated application development. Twelve US companies joined the consortium. These companies included AT&T, HOK Architects, Honeywell, Carrier, Tishman and Butler Manufacturing. Initially named the Industry Alliance for Interoperability, the Alliance opened membership to all interested parties in September, 1995 and changed its name in 1997 to the International Alliance for Interoperability. The new Alliance was reconstituted as a non-profit industry-led organization, with the goal of publishing the Industry Foundation Class (IFC) as a neutral AEC product model responding to the AEC building lifecycle. A further name change occurred in 2005, and the IFC specification is now developed and maintained by buildingSMART.
IFC specifications The following IFC specification versions are available:
IFC4.3 Add2 (2024) IFC4.2 (2019-04): withdrawn IFC4.1 (2018-86): withdrawn IFC4 Add2 TC1 (2017) IFC4 Add2 (2016) IFC4 Add1 (2015) IFC4 (March 2013) ifcXML2x3 (June 2007) IFC2x3 (February 2006) ifcXML2 for IFC2x2 add1 (RC2) IFC2x2 Addendum 1 (July 2004) ifcXML2 for IFC2x2 (RC1) IFC 2x2 IFC 2x Addendum 1 ifcXML1 for IFC2x and IFC2x Addendum 1 IFC 2x IFC 2.0 (March 1999) IFC 1.5.1 (September 1998) IFC 1.5 (November 1997) IFC 1.0 (June 1996)
File formats
IFC defines multiple file formats that may be used, supporting various encodings of the same underlying data.
IFC-SPF is a text format defined by ISO 10303-21 ("STEP-File"), where each line typically consists of a single object record, and having file extension ".ifc". This is the most widely used IFC format, having the advantage of compact size yet readable text. IFC-XML is an XML format defined by ISO 10303-28 ("STEP-XML"), having file extension ".ifcXML". This format is suitable for interoperability with XML tools and exchanging partial building models. Due to the large size of typical building models, this format is less common in practice. IFC-ZIP is a ZIP compressed format consisting of an embedded IFC-SPF file or IFC-XML file and having file extension ".ifcZIP". IFC-Turtle (Terse RDF Triple Language) is a textual semantic data format that uses RDF and is expressed in the ifcOWL ontology. IFC-RDF is a XML-based semantic data format that uses RDF and is expressed in the ifcOWL ontology. ifcJSON uses JSON, a modern format often used by web applications. ifcHDF uses HDF and is based on the ISO 10303-26 standard for STEP data representation in HDF. IFC-SPF is in ASCII format which, while human-readable, suffers from common ASCII file issues, in that file-sizes are bloated, files must be read sequentially from start to finish, mid-file extraction is not possible, files are slow to parse, and definitions are non-hierarchical. In addition to ifcXML and ifcZIP, modern data formats include RDF/XML or Turtle (using the ifcOWL ontology), ifcJSON (JavaScript Object Notation, broadly available) and ifcHDF5 (Hierarchical Data Format v5, binary). In 2020, buildingSmart had two JSON projects underway: ifcJSON v4 (a direct mapping from EXPRESS-based IFC v4) and ifcJSON v5, plus a research project experimenting with turning IFC into a binary format.
Architecture IFC defines an EXPRESS based entity-relationship model consisting of several hundred entities organized into an object-based inheritance hierarchy. Examples of entities include building elements such as IfcWall, geometry such as IfcExtrudedAreaSolid, and basic constructs such as IfcCartesianPoint. At the most abstract level, IFC divides all entities into rooted and non-rooted entities. Rooted entities derive from IfcRoot and have a concept of identity (having a GUID), along with attributes for name, description, and revision control. Non-rooted entities do not have identity and instances only exist if referenced from a rooted instance directly or indirectly. IfcRoot is subdivided into three abstract concepts: object definitions, relationships, and property sets:
IfcObjectDefinition captures tangible object occurrences and types IfcRelationship captures relationships among objects IfcPropertyDefinition captures dynamically extensible properties about objects.
IfcObjectDefinition IfcObjectDefinition is split into object occurrences and object types. IfcObject captures object occurrences such as a product installation having serial number and physical placement. IfcTypeObject captures type definitions (or templates) such as a product type having a particular model number and common shape. Occurrences and types are further subdivided into six fundamental concepts: actors ("who"), controls ("why"), groups ("what"), products ("where"), processes ("when"), and resources ("how").
… excerpt ends here. Continue reading the full article.
