IFC is a data schema, not a byte layout of its own. The schema says which entities exist and what attributes they have; separate standards say how a population of that schema is written to a file. This page sets out the parts of the standard, the computer-readable forms of the schema, the exchange file forms the documentation names, the official versions and their schema identifiers, the model view definitions and the changes that break older files. It follows buildingSMART’s IFC 4.3 documentation, read from its source repository in November 2026. The generic syntax of the clear-text file is ISO 10303-21, covered on the STEP page.
- Parts of the standard and schema forms
- Exchange file forms and the clear-text file
- Versions and schema identifiers and what the header carries
- Model view definitions
- String and time limits
- Compatibility, deletions and deprecations
Parts of the standard
The documentation’s introduction lists four parts:
| Part | What it is |
|---|---|
| Schema | The data schema, published in several computer-readable forms (below) |
| Documentation | The specification text, published in HTML and authored in Markdown |
| Property and quantity set definitions | Standard definitions for the extension mechanism built into the schema, published in XML and in the HTML documentation. Standard property sets are named with the prefix Pset_, quantity sets with Qto_ |
| Exchange mechanisms | The ways data files are serialised (below) |
Names of types, entities, rules and functions start with Ifc followed
by English words in CamelCase, with no underscores; attribute names are CamelCase with
no prefix. The standard is also published by ISO as ISO 16739-1, prepared by ISO/TC 59,
SC 13. The ISO foreword of the 4.3 documentation says this edition cancels and replaces
the 2018 edition and that ISO 16739-1 is the only part of the ISO 16739 series
published. Annex A gives the ISO location of the schema files as
https://standards.iso.org/iso/16739/-1/ed-2/en, that is, edition 2.
The main changes from the 2018 edition, as the foreword lists them: spatial and project structures for infrastructure and civil works; construction elements for infrastructure; revised building constructs; geometric transition curves for alignments; a new placement along alignment curves; new and revised geometric models for sweeping along those curves; removal of constructs deprecated in 2018; and new deprecations. The scope adds that the infrastructure facilities now covered are bridges, roads, railways, waterways and port facilities.
Schema forms
The schema, the property and quantity sets and the usage constraints are authored
as a UML class diagram, kept as an XMI file (schemas/IFC.xml in the
development repository), and published from it in these forms:
| Form | Language | Status in the 4.3 documentation |
|---|---|---|
| EXPRESS long form schema | ISO 10303-11 (the introduction cites the 2004 edition) | Normative, Annex A. The schema file is named after the schema identifier, IFC4X3_ADD2.exp |
| XML Schema (XSD) long form | W3C XML Schema, following ISO 10303-28 | Normative, Annex A; file IFC4X3_ADD2.xsd |
| Property and quantity set definitions | XML files | Published with Annex A as a ZIP of definition files |
| RDF/OWL schema | W3C RDF/OWL | Listed as under development |
| JSON Schema | JavaScript Object Notation Schema | Listed as under development |
| JSON taxonomy | JSON | A structured list of entities, predefined types and properties |
Annex A states that the EXPRESS and XML Schema listings combine all the definitions of clauses 5 to 8 (core, shared element, domain and resource schemas) without comments, and that implementations shall adhere to the schema definition languages. The schemas page lists those schemas and their entities.
Exchange file forms
The scope names these exchange file formats for data that follows the schemas. Alternative formats may be used if they conform to the data schemas.
| Form | Defined by | Notes |
|---|---|---|
| Clear-text encoding of the exchange structure (STEP physical file, SPF) | ISO 10303-21 | The prevalent exchange format for IFC; the introduction cites ISO 10303-21:2002. This is the .ifc file |
| XML | W3C XML Schema, with IFC-specific translations (ISO 10303-28 for the schema mapping) | Documents follow the XSD form of the schema |
| RDF/OWL | W3C and buildingSMART projects | Named in the non-ISO edition only |
| JSON | buildingSMART projects | Named in the non-ISO edition only |
The documentation does not name file extensions other than .ifc, used
for the clear-text examples; see Not confirmed.
The clear-text file
The introduction describes the clear-text file as an encoding of the entity
instances that make up the exchange, in which each instance’s attribute values are
given as an ordered sequence of unnamed values. The documentation numbers each
entity’s stored (direct) attributes in that order: it walks up the supertype chain
and lists the attributes of the topmost supertype first, so every rooted entity
starts with the four attributes of IfcRoot. Inverse attributes, which
describe the relationships pointing at an instance, get no number. Because values
are positional, the introduction notes that
renaming an entity or inserting an attribute at the start of the sequence makes a file
written for an older release nearly impossible to read, while adding an item to an
enumeration is fully backward compatible.
#30=IFCWALL('1kTvXnbbzCWw8lcMd1dR4o',$,'Wall 1',$,$,#31,#40,$,.SOLIDWALL.);
IfcWall in schema order.| Position | Attribute | Declared in | Value above |
|---|---|---|---|
| 1 | GlobalId | IfcRoot | 22-character compressed GUID |
| 2 | OwnerHistory | IfcRoot | Optional, not given |
| 3 | Name | IfcRoot | 'Wall 1' |
| 4 | Description | IfcRoot | Not given |
| 5 | ObjectType | IfcObject | Not given |
| 6 | ObjectPlacement | IfcProduct | Reference to placement #31 |
| 7 | Representation | IfcProduct | Reference to shape #40 |
| 8 | Tag | IfcElement | Not given |
| 9 | PredefinedType | IfcWall | Enumeration value SOLIDWALL of IfcWallTypeEnum |
The chain is IfcRoot → IfcObjectDefinition →
IfcObject → IfcProduct → IfcElement →
IfcBuiltElement → IfcWall; IfcObjectDefinition
and IfcBuiltElement add no stored attributes. The values of
IfcWallTypeEnum are ELEMENTEDWALL, MOVABLE, NOTDEFINED, PARAPET,
PARTITIONING, PLUMBINGWALL, POLYGONAL, RETAININGWALL, SHEAR, SOLIDWALL, STANDARD,
USERDEFINED and WAVEWALL. The kernel page gives the
attributes of the core entities in the same way. How instance names, strings,
enumerations and unset values are spelt is ISO 10303-21 syntax; see the
STEP page.
Versions and schema identifiers
buildingSMART’s validation service lists the active versions, those neither withdrawn nor retired, with the schema identifier each one uses. Its rule IFC101 accepts only these three identifiers.
| Version | Formal name | Schema identifier | Common name |
|---|---|---|---|
| 4.3.2.0 | IFC4.3 ADD2 | IFC4X3_ADD2 | IFC4.3 |
| 4.0.2.1 | IFC4 ADD2 TC1 | IFC4 | IFC4 |
| 2.3.0.1 | IFC2x3 TC1 | IFC2X3 | IFC2x3 |
The IFC 4.3 documentation generator uses IFC4X3_ADD2 as the schema
name for the packaged and ISO builds. Builds made from the development repository
between releases use IFC4X3_DEV followed by an underscore and the short
Git commit hash, so a file carrying such an identifier was written against an
unreleased development state.
What the header carries
The header section of the clear-text file is defined by ISO 10303-21 (see the STEP page). From the IFC side, the sources read establish two uses of it:
- The schema identifier above is the value of
FILE_SCHEMA, as inFILE_SCHEMA(('IFC4X3_ADD2'));. The documentation generator rewrites this value in its example files to the current schema name. - The model view definition a file declares is read by buildingSMART’s validation
rules from the first description string of
FILE_DESCRIPTION: the text between square brackets in that string is taken as the view’s name, for exampleReferenceVieworAlignment-basedView. A file whose first description has no bracketed text declares no view.
Model view definitions
A model view definition (MVD) is a subset of the schema meeting particular data requirements, and may add constraints on how that subset is populated. Software is certified against a view. The official MVD policy for IFC 4.3 has three levels, each adding more advanced features:
| View | Abbreviation | Purpose and scope |
|---|---|---|
| Reference View | RV | Exchanges based on reference models, mainly in one direction; a reference, not a full exchange of design intent. A strict superset of the IFC4 Reference View, usually small in scope and easier to implement |
| Alignment-based View | AbV | Exchanges based on alignment, linear placement relative to it and other civil, infrastructure and geospatial concepts; adds some parametric constructs such as alignment and advanced solid geometry. A strict superset of the IFC 4.3 Reference View |
| Design Transfer View | – | Named as the third level; the documentation read gives no further description |
buildingSMART’s validation rules IFC430 and IFC431 list the entities a file declaring
ReferenceView or Alignment-basedView must not contain.
String and time limits
| Type | Underlying type | Rule |
|---|---|---|
IfcLabel | STRING | Up to 255 characters (mandatory since IFC4); a human-readable name |
IfcIdentifier | STRING | Up to 255 characters; a machine-readable identifier |
IfcText | STRING | No formal limit, but a string in an ISO 10303-21 file must not exceed 32767 octets after encoding and escaping |
IfcGloballyUniqueId | STRING | Fixed 22 characters, the compressed 128-bit GUID; see the kernel page |
IfcTimeStamp | INTEGER | Seconds since 1 January 1970, 00:00:00 UTC |
The documentation notes that the characters allowed in strings are those of ISO 10646, and that their encoding in files is set by ISO 10303-21 and ISO 10303-28, so a 255-character label may take considerably more than 255 octets in a file.
Compatibility, deletions and deprecations
Backward compatibility, a file written for an earlier release being readable by software for a later one, is a hard requirement except in rare cases. Changes to property and quantity sets do not change the structure of the ISO 10303-21 file and are not held to the same standard. Forward compatibility is not explicitly considered. A deprecated construct is marked for deletion in a future major release: readers shall still import it, and writers should export the proposed alternative instead.
Deleted in IFC 4.3
These entities, types and functions of ISO 16739-1:2018 (IFC4) no longer exist:
IfcBeamStandardCase, IfcBuildingElement,
IfcBuildingElementType, IfcColumnStandardCase,
IfcCorrectObjectAssignment, IfcDoorStandardCase,
IfcDoorStyle, IfcDoorStyleConstructionEnum,
IfcDoorStyleOperationEnum, IfcMemberStandardCase,
IfcNullStyle, IfcObjectTypeEnum,
IfcOpeningStandardCase, IfcPlateStandardCase,
IfcPresentationStyleAssignment, IfcPresentationStyleSelect,
IfcProxy, IfcSlabElementedCase,
IfcSlabStandardCase, IfcStyleAssignmentSelect,
IfcWallElementedCase, IfcWindowStandardCase,
IfcWindowStyle, IfcWindowStyleConstructionEnum and
IfcWindowStyleOperationEnum.
Deprecated in IFC 4.3
| Kind | Items |
|---|---|
| Entities | IfcBuildingSystem, IfcCivilElement, IfcCivilElementType, IfcElectricDistributionBoard, IfcElectricDistributionBoardType, IfcFaceBasedSurfaceModel, IfcPostalAddress, IfcRelConnectsPortToElement, IfcRelServicesBuildings, IfcTelecomAddress, IfcTrapeziumProfileDef |
| Attributes | IfcBuilding.BuildingAddress, IfcBuilding.ElevationOfRefHeight, IfcBuilding.ElevationOfTerrain, IfcBuildingStorey.Elevation, IfcOrganization.Addresses, IfcPerson.Addresses, IfcSite.LandTitleNumber, IfcSite.SiteAddress, IfcSurfaceStyleRendering.DiffuseTransmissionColour, IfcSurfaceStyleRendering.ReflectionColour, IfcSurfaceStyleRendering.TransmissionColour, IfcSurfaceTexture.Parameter, IfcTextureCoordinateGenerator.Parameter |
| Enumeration items | IfcCableCarrierFittingTypeEnum.CROSS, .REDUCER and .TEE, IfcFireSuppressionTerminalTypeEnum.SPRINKLERDEFLECTOR, IfcGeographicElementTypeEnum.SOIL_BORING_POINT |
The UML model also flags as deprecated, from earlier releases or the 4.3.2.0
addendum: IfcDoorLiningProperties, IfcDoorPanelProperties,
IfcPermeableCoveringProperties, IfcWindowLiningProperties,
IfcWindowPanelProperties (replaced by property sets such as
Pset_DoorLiningProperties), IfcMaterialClassificationRelationship,
IfcMaterialList (use IfcMaterialConstituentSet),
IfcRelCoversBldgElements, IfcRelCoversSpaces and
IfcWallStandardCase. buildingSMART’s rule IFC102 reports all of these in
4.3 files, and also IfcTextLiteral.
Backward incompatibilities
| Severity | Element | Change |
|---|---|---|
| Major | IfcGridPlacement | The PlacementRelTo attribute moved up to IfcObjectPlacement |
| Minor | IfcCountMeasure | Definition changed from NUMBER to INTEGER |
Not confirmed
- The file extensions
.ifcXMLand.ifcZIP, and how a zipped IFC file is packaged: the documentation read names no extension other than.ifcand does not describe a zipped form. buildingSMART’s validation service says it accepts only non-zipped STEP physical files with the.ifcextension. The buildingSMART technical page on IFC formats, which the scope refers to, could not be read. - Any IFC-specific rules for the other header entities,
FILE_NAMEand the remaining fields ofFILE_DESCRIPTION, and whether a fixed keyword precedes the bracketed view name: none are given in the sources read. - The scope and content of the Design Transfer View.
- The structure of IFC JSON and RDF/OWL files, which the documentation lists as under development.
Sources
- IFC4.3.x-development – buildingSMART’s source repository for the IFC 4.3 documentation, master branch:
content/introduction.md,content/scope.md,content/iso_foreword.md,content/normative_references.md,content/terms_and_definitions.md,code/templates/annex-a.html,code/server.pyandcode/xmi_document.py(schema name and file names),schemas/IFC.xml(the UML model: attributes and deprecation flags), and the type pagesIfcLabel.md,IfcIdentifier.md,IfcText.md,IfcTimeStamp.md,IfcGloballyUniqueId.md,IfcDoorLiningProperties.md,IfcMaterialList.md,IfcPostalAddress.md - Validation Service developer guide – buildingSMART’s table of valid schema versions
- Validation Service user guide – upload rules and the schema version check
- ifc-gherkin-rules – buildingSMART’s validation rules: IFC101, IFC102, IFC430, IFC431 and
features/steps/utils/ifc.py(how the view name is read)