Industry Foundation Classes
Technical resources for software developers

What is IFC?

IFC, short for "Industry Foundation Classes", or more informally "Information for Construction" describes how to represent buildings and civil infrastructure in a digital format.

IFC is a data model that can describe how a facility is used, what it looks like, how it is constructed, and how it is operated. It is up to users and software providers to decide what they want to share with IFC. IFC can define physical components of buildings, manufactured products, mechanical/electrical systems, structural analysis models, energy analysis models, cost breakdowns, work schedules, and more.

How is IFC used?

IFC is typically used to transfer information from one party to another for a specific business transaction. For example, an owner may send a building model to a contractor to request a bid, or a contractor may provide an owner as-built details describing installed equipment and manufacturer information. IFC data can be transmitted over web services, imported/exported in files, or managed in databases. IFC can be encoded in various formats such as XML, JSON, and STEP (see Formats tab).

Who uses IFC?

Hundreds of software applications can send and receive IFC data (see Applications tab). Since 1997, IFC has been tried and tested through many iterations, gaining worldwide trust as ISO 16739.

How is geometry described?

If visualization is all that's needed, geometry can be defined as meshes of triangles. If a structure needs to be built to specific dimensions as described in construction plans, IFC provides the necessary building blocks, including comprehensive solid modeling definitions adopted from manufacturing software. Geometry can be provided for fabrication machinery using cross sections and sweeps. Geometry can define any arbitrary curved surface, using Non-Uniform Rational B-Spline Surfaces (NURBS), Constructive Solid Modeling (CSG), and a range of parametric definitions for describing construction-specific elements (e.g. walls, slabs, beams, columns, pipes, ducts).

How are relationships described?

IFC doesn't just describe individual components, but how they are connected, how they are embedded, how they intersect other components, how they enclose spaces, and many other details. This connectivity information makes it possible to analyze structural systems, mechanical systems, and transportation systems.

How can data be extended?

To track additional information that's not built-in to IFC, custom attributes can be defined on any object, as well as custom geometry, document attachments, and references to external libraries.

How can data be merged and compared?

IFC can capture complete models, partial models, and differences between models. Designed for merging and revisioning, objects can be referenced between files, and marked for insertion, modification, or deletion.


This tutorial provides an introduction to the IFC schema, and is intended for software developers having an understanding of data models, making use of Unified Modeling Language (UML) diagrams. This introduction is by no means comprehensive, and just touches the surface of what is possible within IFC. Refer to official documentation under the Schemas tab for complete specifications.

The Basics

IFC data forms a hierarchy of object instances, where all identifiable objects derive from the IfcRoot class. Each object has a GlobalID in the form of a 128-bit number (GUID) that never changes throughout it's lifecycle, a Name for human identification or as would be shown on construction plans, a Description for capturing miscellaneous information, and an OwnerHistory that can indicate who, when, and how the object was created and last modified, along with version control attributes indicating lock state and merge state (create, modify, delete, or no change).

Object Relationship Model

IFC can capture object occurrences (e.g. a specific door within a building) using IfcObject subtypes as well as object types (e.g. a model of a door from a manufacturer) using IfcTypeObject subtypes. While IFC information exchanges typically focus on physical details of facilities, non-physical information can also be captured, using sub-types of the following classes:

Objects can particate in various relationships:

Product Data

Physical products as well as spatial volumes of facilities are captured by subtypes of the IfcProduct class. Each IfcProduct instance is described by placement in space (IfcObjectPlacement subtypes) and one or more representations (IfcRepresentation). Depending on the use case, different representations may be captured (as indicated by RepresentationIdentifier), with several standard representations defined that include:

Project Structure

All IFC data starts with a single instance of IfcProject, which defines default units, geometric precision, and organizes all data within.

A project may contain a hierarchy of spatial objects describing the functional organization of facilities, where each object may define its own relative position and boundaries.

Physical Elements

Physical elements are defined by subtypes of IfcElement, and may be located within any spatial structure object. Several hundred subtypes are defined based on functional classification, such as IfcWall, IfcSlab, IfcBeam, IfcDoor, IfcWindow, IfcColumn, IfcPipeSegment, IfcDuctSegment, etc. In addition to this built-in classification, any object may be further classified by industry source (e.g. OmniClass) or any arbitrary classification scheme using the IfcObjectDefinition.HasAssociations attribute with IfcRelAssociatesClassification. Elements may have types defined for capturing product models that may have multiple instances within the project.

Physical elements may have geometry defined explicitly or parametrically, where such form depends on the particular use. Generally, objects that are to be constructed or custom-fabricated make use of parametric geometry, while objects that are manufactured make use of explicit geometry.

Custom Properties

In addition to what is defined in the IFC schema, extended data may be captured on objects using name-value pairs organized by IfcPropertySet. Property sets may be applicable internationally, regionally, specific to an organization, or specific to a project.

Schema Specifications

Official releases of the IFC specification are listed here. Schema specifications indicate how data is represented within classes and attributes.

Highlighted schemas indicate those that are officially released and actively supported.

ReleaseDateIdentifierDocumentationISO StandardGitHubSummary 4.1-Extension for civil infrastructure with alignment curves and solids. 4.0 Addendum 2 TC1ISO 16739-1:2017Technical Corrigendum to unify general and parametric elements. 4.0 Addendum 2-Addendum for advanced boundary representations. 4.0 Addendum 1-Addendum for optimized polylines and arcs. 4.0ISO 16739:2013Platform improvements with NURBS geometry. 2x3 TC1-Documentation expansion and fixes. 2x3--Extensions for presentation styling. 2x2 Addendum 1-- 2x2--Extensions for mechanical and electrical domains. 2x Addendum 1-- 2xISO/PAS 16739:2005- 2.0-- 1.5.1-- 1.5-- 1.0--

Version Notation

IFC versions are identified using the notation "Major.Minor.Addendum.Corrigendum".

Which version do I use?

The latest version, IFC 4.1 is recommended for all current developments, which is fully backward compatible with IFC 4.0. Core definitions within IFC 4.1 and 4.0 are backward compatible with IFC 2.3.

Exchange Specifications

Official releases of information exchanges are listed here. Exchange specifications indicate what data should be included for particular scenarios. Software applications may support sending or receiving data supporting any combination of exchanges.

Highlighted exchanges indicate those that are officially released and actively supported.

Information ExchangeIdentifierStatusGithubSummary
ReferenceRVOfficialIdentify spatial and physical components of facilities.
Design TransferDTVOfficialDesign and build components of facilities.
Quantity TakeoffQVDraftEstimate and track construction materials and costs.
Energy AnalysisEVDraftEstimate and track energy usage and costs.
Product LibraryLVDraftManufacturer product information and configurations.
Construction OperationsCOBieDraftLifecycle information for maintaining equipment and systems within buildings.
Bridge ConstructionBRieDraftBuild and maintain bridges.

How are exchanges used?

Contracts may reference exchange specifications to require data to be delivered between parties. For example, facility owners may require construction contractors to provide as-built data (via Facilities Management exchange). Exchange specifications may be used to require particular data to be included, but cannot guarantee that data is correct or consistent. Data exported by applications may be validated to conform with an exchange, using free tools and services listed within the Resources tab.


To support interoperability across hundreds of software applications, industry domains, and regions worldwide, IFC is designed to accommodate many different configurations and levels of detail. For example, a wall can be represented as a line (or curve) segment between two points, 3D geometry for visualization, and/or in construction detail (capturing individual studs, pipe fittings, wiring, etc.) along with engineering properties, scheduling and cost information. As different users of building data have different needs, and authors of building data will provide detail in different domains, there's a need to clarify which data is needed for a particular use. Exchanges provide a way to specifically indicate what data is needed.

Model View Definitions

Each exchange specification is also referred to as a "Model View Definition" (MVD). Model View Definitions (MVDs) are encoded in a format called MVDXML, and define allowable values at particular attributes of particular data types. For example, an MVD may require that a wall provide a fire rating, a classification according to OmniClass Table 22, and information required for structural analysis such as elastic modulus of materials. In simple cases, such rules may define a single attribute on a single data type, while more complex cases may consist of graphs of objects and collections.

Various validation formats are already commonplace in the software industry for checking data conformance such as XML Schema Definition (XSD), EXPRESS (ISO 10303-11), Schematron, and validation frameworks within programming languages and tools (e.g. NUnit, JUnit). It is not the goal of MVDXML to replace such approaches, but rather automate them such that information requirements can be defined at a higher level, where downstream validation formats can be automatically generated, rather than relying on manual efforts which are error-prone and may become out-of-sync with specifications. However, validation is only one use for MVDXML; the higher-level nature of MVDXML enables many other uses as follows.

Software applications may make use of MVDXML either statically (designed to support a particular model view), or dynamically (designed to support any model view). Examples of dynamic functionality that may be supported include:

Data Serialization Formats

IFC may be encoded in various formats, each having benefits and tradeoffs of software support, scalability, and readability. These formats indicate how data is encoded in electronic form. As building data can be quite large (i.e. Gigabytes), the choice of format may have practical considerations.

Highlighted formats indicate those that are officially released and actively supported.

FormatExtensionMIME TypeISO StandardTextIndexedSizeGithubSummary
.ifcapplication/x-stepISO 10303-21YesNo100%STEP Physical Format (SPF) is the most widely used format for IFC in practice, which is the most compact of the formats listed that can be read as text.
.ifcXMLapplication/xmlISO 10303-28YesNo113%Extensible Markup Language (XML) provides enhanced readability and benefits from a broad range of software tools.
.ifcZIPapplication/zip-NoNo17%IFC data may embedded within a ZIP file. The embedded data may be encoded as either SPF or XML, where the resulting size is typically comparable.
.jsonapplication/json-YesNo148%JSON provides enhanced readability and benefits from a broad range of software tools.
.ttltext/turtle-YesNo1372%TTL may store IFC data for linked data applications.
.hdfapplication/x-hdfISO 10303-26NoYesn/aHDF5 may store IFC data within hierarchical database, which provides high performance access to engineering data.
.sqliteapplication/x-sqlite3-NoYesn/aSQLite may store IFC data within a relational database, which provides indexed access to data within large models and benefits from a broad range of software tools.

Which do I use?

For the widest compatibility and smallest size for file-based import and export, STEP Physical File (SPF) is recommended. For web service communication, any of the above formats may be automatically negotiated by clients and servers.


Samples files are provided in multiple formats herein.

Basic context information
Basic unit declaration
Basic geometric shape
CSG primitive
Extruded solid
Surface model
Brep model
Tessellated item
Advanced geometric shape
Bath CSG Solid
Cube advanced Brep
Basin advanced brep
Basin faceted brep
Basin tessellation
Curve parameters in degrees
Curve parameters in radians
Tessellated shape
Polygonal face tessellation
Beam straight I-shape tessellated
Beam curved I-shape tessellated
Column straight rectangle tessellation
Slab tessellated unique vertices
Tessellated shape with style
Tessellation with individual colors
Tessellation with image texture
Tessellation with blob texture
Tessellation with pixel texture
Mapped geometric shape
Mapped shape without transformation
Mapped shape with transformation
Mapped shape with multiple items
Placements and GIS referencing
Grid placement
Geographic referencing GK
Geographic referencing UTM
Building element standard case
Beam standard case
Element standard case
Beam extruded solid
Beam revolved solid
Column extruded solid
Slab standard case
Wall standard case
Building element elemented case
Wall elemented case
Slab elemented case
Building element configuration
Wall with opening and window
Building service element
Air terminal element
Air terminal library object
Structural analysis model
Structural curve member
Construction scheduling
Construction scheduling task
Additional test cases
Beam varying cardinal points
Beam varying extrusion paths
Beam varying profiles
Reinforcing assembly
Reinforcing stirrup
Slab openings


Software applications are listed below which claim support for IFC.

4M FineELEC 4M SA Building Services
4M FineHVAC 4M SA Building Services
4M FineSANI 4M SA Building Services
4M IDEA Architecture 4M SA Architectural
4M STRAD 4M SA Structural
4MCAD PRO 4M SA Architectural
ACTIVe3D Sopra Steria Facility Management
AEC3 BimServices AEC3 Other
AECOsim Building Designer V8i Bentley Systems, Inc. Architectural
AECOsim Building Designer V8i Bentley Systems, Inc. Building Services
AECOsim Building Designer V8i Bentley Systems, Inc. Structural
ARCHLine.XP CadLine Ltd. Architectural
AVEVA Boca Steel AVEVA Group plc Structural
Aconex Acconex Ltd. Data Server
ActiveFacility ActiveFacility Data Server
Adoddle Asite Solutions Ltd. Data Server
Advance Concrete Autodesk, Inc. Structural
Advance Design GRAITEC SA Structural
Advance Steel Autodesk, Inc. Structural
Allplan Architecture Allplan Deutschland GmbH Architectural
Allplan Engineering Allplan Deutschland GmbH Structural
ArcGIS Desktop Esri Geographic Information System
ArchiBIM Analyzer Solideo Systems Co., Ltd Model Viewer
ArchiBIM Server Solideo Systems Co., Ltd Data Server
ArchiBIM Viewer Solideo Systems Co., Ltd Model Viewer
ArchiCAD GRAPHISOFT (Nemetschek) Architectural
ArchiFMS Solideo Systems Co., Ltd Facility Management
ArtrA Amtech Group Ltd Construction Management
Asta Powerproject BIM Elecosoft UK Ltd Construction Management
AutoBid SheetMetal QuickPen Construction Management
AutoCAD Architecture Autodesk, Inc. Architectural
AutoCAD MEP Autodesk, Inc. Building Services
AutoScheme Schematic Ltd Architectural
AutoVue 3D Professional Advanced Oracle Model Viewer
AxisVM InterCAD Kft. Structural
BIM Collaboration Hub Eurostep Group AS Data Server
BIM Track Construction Virtuelle et Technologie BIM One Inc. Data Server
BIM Vision Datacomp Sp. z o.o. Model Viewer
BIMProject evolution AceCad Software Ltd. Construction Management
BIMReview evolution AceCad Software Ltd. Model Viewer
BIMTag Tsinghua University School of Software Other
BIMseek Tsinghua University School of Software Other
BIMserver Data Server
BIMsurfer WebGL viewer Other
BSPro Granlund Development Tools
Benchmark ITI International Training Institute Building Services
Bentley Map V8i Bentley Systems, Inc. Geographic Information System
Bentley Navigator V8i Bentley Systems, Inc. Model Viewer
Bentley Structural Modeler v8i Bentley Systems, Inc. Structural
Bentley speedikon V8i (SELECTseries4) Bentley Systems, Inc. Architectural
BricsCAD Bricsys NV Architectural
Business Collaborator CDE Business Collaborator Ltd. Data Server
CAD/QST TQS Informática Ltda. Structural
CADS Planner Electric Kymdata Oy Building Services
CADduct Autodesk, Inc. Building Services
CADiE Sähäkkä Cad-Quality Oy Building Services
CADmep+ Autodesk, Inc. Building Services
CESABIM Schematic Ltd Data Server
CSiBridge Computers and Structures, Inc. (CSi) Structural
CYPECAD CYPE Ingenieros, S.A. Structural
Causeway BIM Management Causeway Technologies Ltd. Other
Constructivity Model Editor, LLC General Modeling
CostOS BIM Estimating Nomitech Construction Management
CostX Exactal Technologies Pty Ltd Construction Management
Cubicost TAS Glodon Inc. Construction Management
DDS-CAD Architect Data Design System ASA Architectural
DDS-CAD BIM-Enhancer Data Design System ASA Model Viewer
DDS-CAD Construction Data Design System ASA Construction Management
DDS-CAD MEP Data Design System ASA Building Services
DDS-CAD Viewer Data Design System ASA Model Viewer
DProfiler The Beck Group / Beck Technology Construction Management
Dalux BIM Checker Dalux Model Viewer
Dalux Building View Dalux Model Viewer
DaluxFM Dalux Facility Management
Design Master Electrical Design Master Software, Inc. Building Services
Design Master HVAC Design Master Software, Inc. Building Services
Design Master Plumbing Design Master Software, Inc. Building Services
Digital Project Digital Project, Inc. Architectural
DuctDesigner 3D Trimble (Trimble Buildings Division) Building Services
ECCO Toolkit PDTec GmbH Development Tools
EDMserver Jotne EPM Technology AS Data Server
ETABS Computers and Structures, Inc. (CSi) Structural
EcoDomus FM EcoDomus Facility Management
EcoDomus PM EcoDomus Construction Management
Edificius ACCA Software S.p.A. Architectural
EliteCAD AR Roland Messerli AG Informatik Architectural
FEM-Design Structural Design Software in Europe AB / StruSoft Structural
FME Safe Software Inc. Geographic Information System
FZK Viewer Karlsruhe Institute of Technology Model Viewer
FaMe Facilities Management Software GmbH Facility Management
Flow / MassMotion Oasys Ltd. / Arup Group Ltd. Other
FreeCAD *open source General Modeling
GALA Construction Software GALA Construction software Construction Management
GliderBIM Glider Technology Ltd. Data Server
HOOPS Exchange Tech Soft 3D Development Tools
IBM TRIRIGA Facilities Manager IBM Facility Management
IDA ICE Equa Simulation AB Building Performance Energy Analysis and Simulation
IES-VE Integrated Environmental Solutions Ltd. Building Performance Energy Analysis and Simulation
IFC BIM Validation Service Digital Alchemy Other
IFC Engine DLL TNO Development Tools
IFC Engine Viewer TNO Model Viewer
IFC File Analyzer National Institute of Standards and Technology (NIST) Model Viewer
IFC Model Exchange for Microsoft Visio Digital Alchemy Other
IFC Quick Browser GEM Team Solutions GbR Model Viewer
IFC SDK Centre Scientifique et Technique du Batiment (CSTB) Development Tools
IFC Takeoff for Microsoft Excell Digital Alchemy Construction Management
IFC Toolbox Eurostep Group AS Development Tools
IFC-to-RDF Web Service UGent SMARTLAB Architectural
IFC2SKP plugin SECOM CO., LTD. / Secom IS Lab Model Viewer
IFCCompressor Tsinghua University School of Software Other
IFChub IFChub Ltd. Data Server
IFCsvr ActiveX Component SECOM CO., LTD. / Secom IS Lab Development Tools
ISY Calcus Norconsult Informasjonssystemer AS Construction Management
IfcGears Bauhaus Universität Weimar Development Tools
IfcOpenShell Krijnen, Thomas Development Tools
IfcWebServer Ismail, Ali Data Server
InfoCAD InfoGraph GmbH Structural
MORADA SMB AG Facility Management
MagiCAD Progman Oy Building Services
MicroStation PowerDraft V8i Bentley Systems, Inc. Model Viewer
MicroStation V8i Bentley Systems, Inc. Model Viewer
MicroStation View V8i Bentley Systems, Inc. Model Viewer
Modelspace FM Gravicon Oy Facility Management
NTItools Arkitekt (Revit plug-ins) NTI Nestor AS Architectural
NTItools Konstruksjon (Revit plug-ins) NTI Nestor AS Structural
NaviTouch Seokyoung Systems Corp. Model Viewer
Navisworks Autodesk, Inc. Construction Management
Nemetschek IFC Viewer Nemetschek Deutschland GmbH Model Viewer
Onuma System Onuma, Inc. Other
Open IFC Tools Bauhaus Universität Weimar / HOCHTIEF AG Development Tools
OpenStudio NREL / U.S. DOE Building Performance Energy Analysis and Simulation
PipeDesigner 3D Trimble (Trimble Buildings Division) Building Services
Plancal nova Trimble (Trimble Buildings Division) Building Services
PriMus-IFC ACCA Software S.p.A. Construction Management
RFEM Ing.-Software Dlubal GmbH Structural
RIB iTWO RIB Software AG Construction Management
RIUSKA Granlund Building Performance Energy Analysis and Simulation
ROOMEX Granlund Other
RSTAB Ing.-Software Dlubal GmbH Structural
Raumtool 3D SOLAR-COMPUTER GmbH Building Services
Renga Architecture ASCON Architectural
Revit Architecture Autodesk, Inc. Architectural
Revit MEP Autodesk, Inc. Building Services
Revit Structure Autodesk, Inc. Structural
Revu bluebeam Model Viewer
RxView Rasterex Software AS Model Viewer
SAFI 3D SAFI Quality Software Inc. Structural
SAP2000 Computers and Structures, Inc. (CSi) Structural
SDS/2 Design Data Structural
SOFiSTiK Structural Desktop (SSD) SOFiSTiK AG Structural
ST-Developer STEP Tools, Inc. Development Tools
STRAKON DICAD Systeme GmbH Structural
SUperPlan SUper Plan Software Construction Management
ScaleCAD Jidea Ltd. Structural
Scia Engineer Nemetschek Scia Structural
Simergy Lawrence Berkeley National Laboratory (LBNL) Building Performance Energy Analysis and Simulation
SketchUp Trimble (Trimble Buildings Division) General Modeling
SmartKalk Holte Byggsafe AS Construction Management
SmartPlant Interop Publisher Hexagon AB / Intergraph Other
Solibri Model Checker Solibri, Inc. Model Viewer
Solibri Model Optimizer Solibri, Inc. Other
Solibri Model Viewer Solibri, Inc. Model Viewer
Solid Edge Siemens Product Lifecycle Management Software Inc. General Modeling
SolidWorks Premium Dassault Systèmes SolidWorks Corp General Modeling
Space Layout Editor for Microsoft Visio Digital Alchemy Other
SteelVis National Institute of Standards and Technology (NIST) Structural
StruCad AceCad Software Ltd. Structural
StruWalker AceCad Software Ltd. Model Viewer
Synchro Professional Synchro Ltd. Construction Management
Tekla BIMsight Tekla Corporation Construction Management
Tekla Structures Tekla Corporation Structural
Tetra4D Converter Tetra 4D Model Viewer
Tilt-Werks Dayton Superior Structural
Tricalc Arktec, S.A. Structural
Trimble Connect Trimble (Trimble Buildings Division) Data Server
Vectorworks Architect Vectorworks, Inc. Architectural
ViCADo.arc mb AEC Software GmbH Architectural mb AEC Software GmbH Structural
Vico Office Suite Vico Software, Inc. Construction Management
VisualARQ Asuni CAD, S.A. Architectural
Ziggurat Ziggurat Systems Ltd. General Modeling
bimsync Catenda AS Model Viewer
bimsync Catenda AS Data Server
bimsync REST API Catenda AS Development Tools
bimsync Viewer API Catenda AS Development Tools
cBIM Manager Asite Solutions Ltd. Data Server
cadwork wood cadwork Architectural
dRofus Nosyko AS Other
ggRhinoIFC GeometryGym General Modeling
ifc-dotnet Sproat, Ian Development Tools
ifcMiner dataArrows Other
openMAINT Tecnoteca srl Facility Management
performa Asset Management System Quartz SYS Facility Management
performa Codechecker Quartz SYS Other
performa Integrity checker Quartz SYS Other
performa Manager Quartz SYS Model Viewer
performa Urbanscape Quartz SYS Model Viewer
simplebim Datacubist Oy Model Viewer
simplebim.Developer Datacubist Oy Development Tools
xBIM Toolkit xBIMTeam Development Tools

Have an application to add? Visit the BuildingSmart GitHub site and link your application there.

BuildingSmart Resources

Various online resources are available for implementing and extending IFC.

Community ForumAsk questions and find answers within an international community of software developers.
Issue DatabaseReport issues within specifications and discover the history behind changes.
GitHubAccess IFC definitions as source code and compare with previous releases.
Documentation EditorAuthor schemas, exchanges, and data dictionary content.
Data DictionaryDefine extended data requirements and map them to definitions across other domains and regions.
ValidationValidate that IFC data conforms to schema, exchange, and format requirements.
CertificationSubmit software applications for certification that meet validation requirements.