Understanding IFC Files
Industry Foundation Classes (IFC) are an open, standardized data model for representing information in the Architecture, Engineering, and Construction (AEC) industry. They form the backbone of Building Information Modeling (BIM) interoperability, ensuring that different software tools can exchange project data reliably.
IFC as a Data Schema
The IFC standard is defined by buildingSMART International and described using EXPRESS schema. EXPRESS is a data modeling language that defines entities, attributes, and relationships.
At its core, an IFC file represents:
[ IFC = { Entities, Attributes, Relationships } ]
- Entities (E): Objects like
IfcWall,IfcDoor,IfcBeam, etc. - Attributes (A): Properties such as length, material, location, and orientation.
- Relationships ®: Links that define how entities are connected, e.g.,
IfcRelContainedInSpatialStructure.
IFC File Structure
An IFC file is usually stored as STEP Physical File (SPF) format (.ifc), which is plain text. A simplified structure looks like this:
ISO-10303-21;
HEADER;
FILE_DESCRIPTION(('ViewDefinition [CoordinationView_V2.0]'),'2;1');
FILE_NAME('example.ifc','2025-08-17',('Architect'),'','IFC Engine','','');
FILE_SCHEMA(('IFC4'));
ENDSEC;
DATA;
#10 = IFCPROJECT('2x4Proj',$,'Sample Project',$,$,$,$,(#20),#30);
#20 = IFCGEOMETRICREPRESENTATIONCONTEXT($,'Model',3,1.0E-5,#50,$);
#30 = IFCUNITASSIGNMENT((#40));
ENDSEC;
END-ISO-10303-21;
Key sections:
HEADER: Metadata about the file.
DATA: The actual entities and their references.
Hierarchical Organization
IFC organizes data hierarchically from project-level down to building components.
graph TD
A[IfcProject] --> B[IfcSite]
B --> C[IfcBuilding]
C --> D[IfcBuildingStorey]
D --> E[IfcWall]
D --> F[IfcDoor]
D --> G[IfcWindow]