IFC Core : Standards Overview
IFC (Industry Foundation Classes) is an open, vendor-neutral data model for the built
environment, standardized as ISO 16739-1. This skill establishes what IFC is, what it
is NOT, which version to target, and how the buildingSMART ecosystem is organized. It
is the orientation layer beneath every other IFC skill.
Quick Reference
What IFC is
- IFC is a standardized digital description of the built environment : buildings
AND civil infrastructure (roads, rail, bridges, ports, waterways).
- IFC is an open, international, vendor-neutral data model, published by
buildingSMART International under a Creative Commons license.
- IFC is the primary technical deliverable of buildingSMART International and the
cornerstone of openBIM (interoperable, vendor-neutral building information
modeling).
- IFC is registered with ISO as ISO 16739-1. The current schema (IFC4.3 ADD2) is
ISO 16739-1:2024.
- The IFC4.3 schema carries over 1300 entities and types, roughly 2500 properties,
and over 750 property sets. IFC is intentionally foundational : it is designed to
be extended with domain-specific classes and properties.
What IFC is NOT
- IFC is NOT a single file format. IFC is a data model (an EXPRESS schema). The
.ifc file is one encoding (STEP Physical File); ifcXML and ifcJSON are others.
- IFC is NOT a runtime, application, or behavior model. It stores data; it does
not execute.
- IFC is NOT a geometry kernel. It records geometry definitions; the consuming
software computes, tessellates, and renders them.
- IFC is NOT a library or API. IfcOpenShell, web-ifc, xBIM, and IFC++ are
libraries that read and write IFC; they are not IFC itself.
- IFC is NOT a security or permissions model. It has no access control;
OwnerHistory records authorship, NEVER authorization.
The three data dimensions
IFC codifies three dimensions of built-environment data :
| Dimension |
What it captures |
Examples |
| Identity and semantics |
names, machine-readable identifiers, object types |
GlobalId, object type |
| Characteristics and attributes |
physical and functional properties |
material, color, thermal properties |
| Relationships |
how things relate to each other |
locations, connections, ownership |
These dimensions describe physical objects (columns, slabs), abstract concepts
(performance, costing), processes (installation, operations), and people (owners,
designers, contractors).
Version ledger (compact)
| Version |
ISO publication |
Status |
| IFC2x3 TC1 |
ISO/PAS 16739:2005 |
Official |
| IFC4 |
ISO 16739:2013 |
Retired |
| IFC4 ADD2 TC1 |
ISO 16739-1:2018 |
Official |
| IFC4.1 / IFC4.2 |
none |
Withdrawn |
| IFC4.3 ADD2 |
ISO 16739-1:2024 |
Official (current) |
| IFC5 / IFCx |
none |
IN DEVELOPMENT |
Full release ledger : see references/methods.md.
The three officially-supported versions
ALWAYS target one of the three versions buildingSMART certifies software for :
- IFC2x3 TC1 : the legacy interoperability baseline (ISO/PAS 16739:2005).
- IFC4 ADD2 TC1 : the modern building schema (ISO 16739-1:2018).
- IFC4.3 ADD2 : the current schema, the ONLY version covering infrastructure
(ISO 16739-1:2024).
NEVER target IFC4.1 or IFC4.2 : both are Withdrawn, superseded by IFC4.3.
NEVER target IFC5 or IFCx for production : both are in development and subject to
change without notice.
Decision Trees
Which IFC version to target
Does the project include infrastructure
(roads, rail, bridges, ports, waterways)?
|
+-- YES --> IFC4.3 ADD2 (ISO 16739-1:2024)
| ONLY IFC4.3 models infrastructure.
|
+-- NO (buildings only)
|
+-- New project, modern toolchain?
| --> IFC4 ADD2 TC1, or IFC4.3 ADD2 to future-proof.
|
+-- Must exchange with a tool that only reads IFC2x3?
--> IFC2x3 TC1 (legacy baseline).
NEVER pick IFC4.1 / IFC4.2 (Withdrawn) --> use IFC4.3 instead.
NEVER pick IFC5 / IFCx for production (in development).
Is the task actually about IFC?
What does the task need?
|
+-- Store / exchange built-environment data between tools
| --> IFC is correct.
|
+-- Compute, tessellate, or render geometry
| --> NOT IFC. Use a geometry kernel or a library
| (IfcOpenShell, web-ifc, xBIM).
|
+-- Enforce who may edit what
| --> NOT IFC. IFC has no access control.
|
+-- Run application logic or behavior
--> NOT IFC. IFC is a static data model.
Which ISO designation maps to which IFC version
ISO/PAS 16739:2005 --> IFC2x3 TC1 (Publicly Available Specification)
ISO 16739:2013 --> IFC4 (first full ISO standard)
ISO 16739-1:2018 --> IFC4 ADD2 TC1
ISO 16739-1:2024 --> IFC4.3 ADD2 (current)
Patterns
Pattern : Describe IFC correctly
ALWAYS describe IFC as an open, vendor-neutral data model standardized as
ISO 16739-1, NEVER as a file format and NEVER as software.
ALWAYS distinguish the schema (the abstract model, written once in EXPRESS) from
its encodings (the .ifc STEP file, ifcXML, ifcJSON).
NEVER say "the IFC format" when you mean the .ifc STEP Physical File : that
conflates the model with one of its encodings.
See ifc-core-data-model for the layered schema architecture and ifc-syntax-express
for the EXPRESS language.
Pattern : Cite the standard precisely
ALWAYS cite IFC as ISO 16739-1 with the publication year, because the number alone
is ambiguous across four publications.
ALWAYS state the IFC version AND its addendum or corrigendum : "IFC4" and
"IFC4 ADD2 TC1" are different schemas.
NEVER write "ISO 16739" without the -1 part designation for IFC4 and later : the
-1 suffix was introduced with ISO 16739-1:2018.
The ISO standardization status is itself version-specific : early IFC versions were
NOT ISO standards, IFC2x3 TC1 was a Publicly Available Specification (PAS, not a full
standard), and IFC4 onward are full ISO standards. See references/methods.md.
Pattern : Select the target version deliberately
ALWAYS choose from the three officially-supported versions only.
ALWAYS pick IFC4.3 ADD2 when the scope includes infrastructure : it is the only
version that models roads, rail, bridges, ports, and waterways.
ALWAYS check the receiving party's import capability before choosing : many production
tools certify IFC2x3 and IFC4 but not yet IFC4.3.
NEVER assume a version rename is harmless : IFC4.3 renamed IfcBuildingElement to
IfcBuiltElement and deprecated 24 entities (including IfcBuildingElement,
IfcCivilElement, IfcBridgePart). An IFC4 file is NOT guaranteed valid as IFC4.3.
See ifc-core-version-evolution for the full breaking-change matrix.
Pattern : Use the buildingSMART ecosystem
The IFC ecosystem has four pillars. ALWAYS route to the correct one :
| Need |
Pillar |
Where |
| Confirm a tool reads or writes IFC correctly |
Software Certification |
buildingsmart.org/compliance |
| Confirm a specific file is valid |
Validation Service |
validate.buildingsmart.org |
| Read the authoritative machine-readable schema |
Schema source repos |
github.com/buildingSMART |
| Read the human-readable specification |
Documentation site |
ifc43-docs.standards.buildingsmart.org |
- Software Certification is per-version and split into Import and Export.
Export certification aggregates real-user file uploads into scorecards; Import
certification uses accredited testers following a public checklist. Certification
for IDS and BCF is NOT yet available.
- The Validation Service checks a file against three normative levels. See the
next pattern.
- The authoritative IFC4.3 schema lives in
buildingSMART/IFC4.3.x-development. The
older buildingSMART/IFC umbrella repo was archived on 2024-03-31 and is
read-only : NEVER treat it as the current source.
Pattern : Read a Validation Service result
A file is valid only when it conforms to three normative levels :
- STEP Syntax : the STEP Physical File (ISO 10303-21, Part 21) syntax.
- IFC Schema : the EXPRESS schema, including EXPRESS-encoded propositions and
functions.
- Normative IFC Rules : the remaining normative rules, split into Implementer
Agreements (ratified among software implementers) and Informal Propositions
(not ratified but still mandatory for validity).
The service also runs non-normative checks : Industry Practices (sensible
defaults : these NEVER make a file invalid) and bSDD Compliance.
NEVER assume a file is valid because it opens in a viewer : a viewer is permissive,
the Validation Service is normative. See ifc-core-validation and
ifc-errors-schema-validation.
Reference Links
references/methods.md : full version ledger, ISO standardization matrix,
validation-level taxonomy, certification model, schema repositories, documentation
pipeline.
references/examples.md : worked scenarios : identifying a file's version,
ISO-to-version mapping, version selection, interpreting validation output.
references/anti-patterns.md : the failure modes this skill prevents, each with the
reason it fails.
Official sources
Related skills
ifc-core-data-model : the four-layer schema architecture and the ladder principle.
ifc-core-version-evolution : version-by-version additions and breaking changes.
ifc-core-validation : how IFC validity is defined and checked.
1---2name: ifc-core-standards-overview3description: Use when you need to explain what IFC is, choose which IFC version to target, or understand how the buildingSMART ecosystem (software certification, validation service, schema repositories) fits together before authoring or reading IFC data. Prevents treating IFC as a runtime, a geometry kernel, a library API, or a single file format, and prevents targeting a withdrawn or non-official version. Covers the IFC data-model definition, the ISO 16739-1 standardization history, the three officially-supported versions, the three built-environment data dimensions, and the certification, validation, and schema-repository ecosystem. Keywords: IFC, Industry Foundation Classes, ISO 16739-1, buildingSMART, openBIM, IFC2x3, IFC4, IFC4.3, IFC5, IFCx, IFC version selection, what is IFC, which IFC version should I use, is IFC a file format, IFC standard explained, ISO PAS 16739, validation service, software certification, my IFC file will not validate, which version did this tool export, openBIM cornerstone.4license: MIT5---67# IFC Core : Standards Overview89IFC (Industry Foundation Classes) is an open, vendor-neutral data model for the built10environment, standardized as ISO 16739-1. This skill establishes what IFC is, what it11is NOT, which version to target, and how the buildingSMART ecosystem is organized. It12is the orientation layer beneath every other IFC skill.1314## Quick Reference1516### What IFC is1718- IFC is a **standardized digital description of the built environment** : buildings19 AND civil infrastructure (roads, rail, bridges, ports, waterways).20- IFC is an **open, international, vendor-neutral data model**, published by21 buildingSMART International under a Creative Commons license.22- IFC is the **primary technical deliverable of buildingSMART International** and the23 **cornerstone of openBIM** (interoperable, vendor-neutral building information24 modeling).25- IFC is registered with ISO as **ISO 16739-1**. The current schema (IFC4.3 ADD2) is26 **ISO 16739-1:2024**.27- The IFC4.3 schema carries **over 1300 entities and types, roughly 2500 properties,28 and over 750 property sets**. IFC is intentionally foundational : it is designed to29 be extended with domain-specific classes and properties.3031### What IFC is NOT3233- IFC is **NOT a single file format**. IFC is a *data model* (an EXPRESS schema). The34 `.ifc` file is one *encoding* (STEP Physical File); ifcXML and ifcJSON are others.35- IFC is **NOT a runtime, application, or behavior model**. It stores data; it does36 not execute.37- IFC is **NOT a geometry kernel**. It records geometry *definitions*; the consuming38 software computes, tessellates, and renders them.39- IFC is **NOT a library or API**. IfcOpenShell, web-ifc, xBIM, and IFC++ are40 libraries that read and write IFC; they are not IFC itself.41- IFC is **NOT a security or permissions model**. It has no access control;42 `OwnerHistory` records authorship, NEVER authorization.4344### The three data dimensions4546IFC codifies three dimensions of built-environment data :4748| Dimension | What it captures | Examples |49|-----------|------------------|----------|50| Identity and semantics | names, machine-readable identifiers, object types | GlobalId, object type |51| Characteristics and attributes | physical and functional properties | material, color, thermal properties |52| Relationships | how things relate to each other | locations, connections, ownership |5354These dimensions describe physical objects (columns, slabs), abstract concepts55(performance, costing), processes (installation, operations), and people (owners,56designers, contractors).5758### Version ledger (compact)5960| Version | ISO publication | Status |61|---------|-----------------|--------|62| IFC2x3 TC1 | ISO/PAS 16739:2005 | **Official** |63| IFC4 | ISO 16739:2013 | Retired |64| IFC4 ADD2 TC1 | ISO 16739-1:2018 | **Official** |65| IFC4.1 / IFC4.2 | none | Withdrawn |66| IFC4.3 ADD2 | ISO 16739-1:2024 | **Official (current)** |67| IFC5 / IFCx | none | IN DEVELOPMENT |6869Full release ledger : see `references/methods.md`.7071### The three officially-supported versions7273ALWAYS target one of the **three versions buildingSMART certifies software for** :74751. **IFC2x3 TC1** : the legacy interoperability baseline (ISO/PAS 16739:2005).762. **IFC4 ADD2 TC1** : the modern building schema (ISO 16739-1:2018).773. **IFC4.3 ADD2** : the current schema, the ONLY version covering infrastructure78 (ISO 16739-1:2024).7980NEVER target IFC4.1 or IFC4.2 : both are **Withdrawn**, superseded by IFC4.3.81NEVER target IFC5 or IFCx for production : both are **in development** and subject to82change without notice.8384## Decision Trees8586### Which IFC version to target8788```89Does the project include infrastructure90(roads, rail, bridges, ports, waterways)?91|92+-- YES --> IFC4.3 ADD2 (ISO 16739-1:2024)93| ONLY IFC4.3 models infrastructure.94|95+-- NO (buildings only)96 |97 +-- New project, modern toolchain?98 | --> IFC4 ADD2 TC1, or IFC4.3 ADD2 to future-proof.99 |100 +-- Must exchange with a tool that only reads IFC2x3?101 --> IFC2x3 TC1 (legacy baseline).102103NEVER pick IFC4.1 / IFC4.2 (Withdrawn) --> use IFC4.3 instead.104NEVER pick IFC5 / IFCx for production (in development).105```106107### Is the task actually about IFC?108109```110What does the task need?111|112+-- Store / exchange built-environment data between tools113| --> IFC is correct.114|115+-- Compute, tessellate, or render geometry116| --> NOT IFC. Use a geometry kernel or a library117| (IfcOpenShell, web-ifc, xBIM).118|119+-- Enforce who may edit what120| --> NOT IFC. IFC has no access control.121|122+-- Run application logic or behavior123 --> NOT IFC. IFC is a static data model.124```125126### Which ISO designation maps to which IFC version127128```129ISO/PAS 16739:2005 --> IFC2x3 TC1 (Publicly Available Specification)130ISO 16739:2013 --> IFC4 (first full ISO standard)131ISO 16739-1:2018 --> IFC4 ADD2 TC1132ISO 16739-1:2024 --> IFC4.3 ADD2 (current)133```134135## Patterns136137### Pattern : Describe IFC correctly138139ALWAYS describe IFC as an **open, vendor-neutral data model standardized as140ISO 16739-1**, NEVER as a file format and NEVER as software.141ALWAYS distinguish the **schema** (the abstract model, written once in EXPRESS) from142its **encodings** (the `.ifc` STEP file, ifcXML, ifcJSON).143NEVER say "the IFC format" when you mean the `.ifc` STEP Physical File : that144conflates the model with one of its encodings.145146See `ifc-core-data-model` for the layered schema architecture and `ifc-syntax-express`147for the EXPRESS language.148149### Pattern : Cite the standard precisely150151ALWAYS cite IFC as **ISO 16739-1** with the publication year, because the number alone152is ambiguous across four publications.153ALWAYS state the IFC version AND its addendum or corrigendum : "IFC4" and154"IFC4 ADD2 TC1" are different schemas.155NEVER write "ISO 16739" without the `-1` part designation for IFC4 and later : the156`-1` suffix was introduced with ISO 16739-1:2018.157158The ISO standardization status is itself version-specific : early IFC versions were159NOT ISO standards, IFC2x3 TC1 was a Publicly Available Specification (PAS, not a full160standard), and IFC4 onward are full ISO standards. See `references/methods.md`.161162### Pattern : Select the target version deliberately163164ALWAYS choose from the **three officially-supported versions** only.165ALWAYS pick **IFC4.3 ADD2** when the scope includes infrastructure : it is the only166version that models roads, rail, bridges, ports, and waterways.167ALWAYS check the receiving party's import capability before choosing : many production168tools certify IFC2x3 and IFC4 but not yet IFC4.3.169NEVER assume a version rename is harmless : IFC4.3 **renamed `IfcBuildingElement` to170`IfcBuiltElement`** and deprecated 24 entities (including `IfcBuildingElement`,171`IfcCivilElement`, `IfcBridgePart`). An IFC4 file is NOT guaranteed valid as IFC4.3.172173See `ifc-core-version-evolution` for the full breaking-change matrix.174175### Pattern : Use the buildingSMART ecosystem176177The IFC ecosystem has four pillars. ALWAYS route to the correct one :178179| Need | Pillar | Where |180|------|--------|-------|181| Confirm a tool reads or writes IFC correctly | Software Certification | buildingsmart.org/compliance |182| Confirm a specific file is valid | Validation Service | validate.buildingsmart.org |183| Read the authoritative machine-readable schema | Schema source repos | github.com/buildingSMART |184| Read the human-readable specification | Documentation site | ifc43-docs.standards.buildingsmart.org |185186- **Software Certification** is per-version and split into **Import** and **Export**.187 Export certification aggregates real-user file uploads into scorecards; Import188 certification uses accredited testers following a public checklist. Certification189 for IDS and BCF is NOT yet available.190- The **Validation Service** checks a file against three normative levels. See the191 next pattern.192- The authoritative IFC4.3 schema lives in `buildingSMART/IFC4.3.x-development`. The193 older `buildingSMART/IFC` umbrella repo was **archived on 2024-03-31** and is194 read-only : NEVER treat it as the current source.195196### Pattern : Read a Validation Service result197198A file is **valid** only when it conforms to **three normative levels** :1992001. **STEP Syntax** : the STEP Physical File (ISO 10303-21, Part 21) syntax.2012. **IFC Schema** : the EXPRESS schema, including EXPRESS-encoded propositions and202 functions.2033. **Normative IFC Rules** : the remaining normative rules, split into **Implementer204 Agreements** (ratified among software implementers) and **Informal Propositions**205 (not ratified but still mandatory for validity).206207The service also runs **non-normative** checks : **Industry Practices** (sensible208defaults : these NEVER make a file invalid) and **bSDD Compliance**.209210NEVER assume a file is valid because it opens in a viewer : a viewer is permissive,211the Validation Service is normative. See `ifc-core-validation` and212`ifc-errors-schema-validation`.213214## Reference Links215216- `references/methods.md` : full version ledger, ISO standardization matrix,217 validation-level taxonomy, certification model, schema repositories, documentation218 pipeline.219- `references/examples.md` : worked scenarios : identifying a file's version,220 ISO-to-version mapping, version selection, interpreting validation output.221- `references/anti-patterns.md` : the failure modes this skill prevents, each with the222 reason it fails.223224### Official sources225226- buildingSMART technical hub : https://technical.buildingsmart.org/standards/ifc/227- IFC schema specifications : https://technical.buildingsmart.org/standards/ifc/ifc-schema-specifications/228- IFC release notes : https://technical.buildingsmart.org/standards/ifc/ifc-schema-specifications/ifc-release-notes/229- IFC4.3 documentation : https://ifc43-docs.standards.buildingsmart.org/230- Software certification : https://www.buildingsmart.org/compliance/software-certification/231- Validation service : https://validate.buildingsmart.org/232- Schema source repo : https://github.com/buildingSMART/IFC4.3.x-development233234### Related skills235236- `ifc-core-data-model` : the four-layer schema architecture and the ladder principle.237- `ifc-core-version-evolution` : version-by-version additions and breaking changes.238- `ifc-core-validation` : how IFC validity is defined and checked.