What is IFC?
Throughout the lifecycle of a plant, information is continuously obtained and exchanged between a variety of people using different technologies. The layers of information can become quite complex, so the only way to create interconnected data that can be interpreted by machines is to use data models as part of the information layer.
Essentially, a data model is a way to structure and bring together data. It creates order and enables complex connections. A data model is not a BIM model in the conventional sense. It therefore does not have to contain geometry. However, we need a standardized data model in order to provide a uniform data language across all areas, otherwise we will quickly run into interoperability problems. Do we already have such a data model? Yes, we do! It's called Industry Foundation Classes, or IFC.
IFC is a standardized data model specification. It is managed by buildingSMART International and is an international standard (ISO 16739). The most widely used version is IFC2x3, with the current version being IFC4. Project stakeholders can exchange data using IFC if their software application supports the import and export of IFC files. The use of IFC has become widespread in both the planning and execution phases of construction projects. It is especially crucial for merging different discipline-specific models into a coordination model and working with reference models in openBIM scenarios.
IFC as an Information Model
IFC, as an information model, defines a schema in EXPRESS Notation to structure both geometric and alphanumeric data. In addition to EXPRESS Notation, the schema is also available as an XML Schema Definition (XSD). The schema includes "blueprints" for various model elements (e.g., levels, rooms, walls, windows, doors, etc.) with alphanumeric properties. The schema also includes relationships between model elements, allowing model elements to be grouped into assemblies or systems (e.g., plumbing systems, HVAC systems, etc.) or to describe topological building structures (e.g., building, floor, room). In addition to the 3D geometric model, the schema enables the exchange of space and facility documentation through IFC. The representation, analysis, and processing can vary depending on the software used.
IFC as a File Format
To be able to transfer the data from a data model, we also need an exchange format. IFC usually uses the text-based STEP file format. A file with the extension *.ifc is an ASCII text file that can be opened and read using a standard text editor. In addition, IFC files in XML standard (*.ifcXML) and zipped IFC files (*.ifcZIP) are also common.
Why do we need IFC?
Every proprietary software application has its own data model that runs in the background. For exchange purposes, this data is usually packaged in custom file formats.
The data models are adapted to the respective customer needs and are often poorly developed. Their sole purpose is to work with the software. Therefore, when we want to exchange data between software packages, we quickly run into interoperability problems because the packages speak different languages.
Components of the IFC data model
Simply put, IFC consists of three parts: Entities, Attributes and Relationships.
The entities are the main classes and behave like nodes in the data model. That is, they are the entities that are connected to each other. Most entities can be considered as objects - not only physical objects such as walls and boilers, but also other objects such as geometry, processes, properties, materials, etc. This results in the ability to perform cost, resource, and construction planning using IFC.
A particularly important entity is IfcBuildingElementProxy, which can be used for objects for which no suitable entity is available. It functions like a template entity, identifying all appropriate attributes and relationships. This also provides the possibility to define the object more precisely.
Attributes are used to define entities more precisely by assigning them basic data such as "name", "description" and "globalID". Attributes also make it possible to create connections to other entities, as they behave like a kind of tag.
Relationships, in turn, connect entities via the attributes just described and are themselves objects in the IFC schema. Relationships are the most important part of the schema and will become even more important in the future as our world becomes more interconnected.