IFC — Open BIM Standard from buildingSMART for AEC and Infrastructure (ISO 16739)

2026-04-2212 min read
IFCBIMbuildingSMARTISO 16739EXPRESSIfcOpenShellAEC

IFC (Industry Foundation Classes) is the open international standard for exchanging BIM models of buildings and infrastructure, developed by the buildingSMART International consortium and standardized as ISO 16739. It is a structured description of not only geometry (walls, slabs, windows, MEP) but also semantics: element types, materials, classifications, part-whole relationships, schedule and cost parameters. One IFC file opened in Revit, ArchiCAD, Tekla, Allplan or free BlenderBIM should produce the same scene with the same properties — that's the whole reason IFC exists. From version 4.3 (2023, ISO 16739-1:2024) the standard stopped being "buildings only" and now covers roads, bridges, railways, ports, tunnels. On osm2cdr.ru ifc_exporter.py uses IfcOpenShell to convert OSM buildings into IfcBuilding with IfcWall / IfcSlab / IfcRoof, producing a valid LoD1 (block extrusion) or LoD2 (with roof shape) BIM model ready for import into any BIM tool.

Map generation of Ekaterinburg city center

History: STEP 1994 → IFC 1.0 (1997) → IFC4 → IFC4.3 (2023)

IFC's history starts in 1994 when Autodesk initiated an industry consortium called Industry Alliance for Interoperability (IAI). In 1995 twelve companies joined — architectural firms, CAD vendors, construction contractors. In 1997 IAI published version 1.0. Under the hood IFC uses EXPRESS — a data-modeling language from ISO 10303 (STEP, Standard for the Exchange of Product model data), originally invented for mechanical engineering, aerospace, and shipbuilding. So IFC is the AEC-specialized branch of the STEP family.

In 2005 IAI renamed itself buildingSMART International and IFC 2x3 shipped — the version that became the de facto BIM exchange standard for a decade. Most government BIM tenders in the 2010s (UK, Norway, Finland) required IFC 2x3 specifically. In 2013 IFC4 arrived with updated geometry (NURBS, advanced B-rep), parametric logic, extended property sets — and the standard received ISO 16739:2013 status that same year.

ISO 16739-1:2018 (IFC4 ADD2 TC1) came in 2018. Then in 2023 came a qualitative leap: IFC 4.3 ADD2 added separate domains for linear infrastructure — IfcRoad, IfcBridge, IfcRailway, IfcMarineFacility, IfcTunnel. That closed a historic gap: previously to do BIM design of a bridge or road you had to "trick" IFC by modeling infrastructure as a "weird building". In 2024 ISO 16739-1:2024 formally standardized IFC 4.3.

Inside IFC: EXPRESS schema, IfcProject, IfcBuilding, IfcSpatialElement

IFC is an object-oriented data model described in EXPRESS. The canonical serialization is STEP Physical File (SPF, extension .ifc) — a text ASCII format where each object is a numbered line like #42=IFCWALL(...). Alternatives: ifcXML (XML for XSLT pipelines), ifcZIP (.ifc inside a ZIP), ifcJSON (experimental JSON), ifcHDF5 (binary HDF5 for very large models).

Every IFC model starts with an IfcProject root. Inside the project sits a spatial structure hierarchy (IfcSpatialStructureElement): IfcSite → IfcBuilding → IfcBuildingStorey → IfcSpace. Every building element (IfcWall, IfcSlab, IfcColumn, IfcBeam, IfcDoor, IfcWindow, IfcRoof) is attached to this tree via the IfcRelContainedInSpatialStructure relationship.

The IFC4 schema has ~1300 entity types. Only a subset (~50) is actually used in a typical building model. That gives IFC both strength (almost anything in construction can be described) and weakness (a full implementation is intractable; different CADs understand different subsets).

Property Sets are the key feature for semantics. Each IfcWall can carry Pset_WallCommon with IsExternal, LoadBearing, FireRating, ThermalTransmittance. That lets BIM tools recover not only "this is a wall" but also "what kind of wall physically".

Geometry. IFC supports many representations: SweptSolid (extrusion of a profile), Brep (boundary representation for arbitrary bodies), Tessellation (mesh, added in IFC4), CSG (boolean ops), Profiled (parametric profiles). The same element may carry multiple representations — one for viewport, one for analysis, one for drawing output.

MVD (Model View Definition). Because the full schema is huge, buildingSMART defines subsets — MVDs — for specific use cases. Coordination View 2.0 is the baseline for CAD interop. Reference View 1.2 is for IFC4 coordination. Design Transfer View is for transferring design models. An IFC file is always accompanied by the MVD it conforms to, otherwise the recipient might not know which entity types to expect.

Use cases: Revit ↔ ArchiCAD interop, BIM 360, government tenders

Architectural-structural exchange. Architect works in ArchiCAD, structural engineer in Tekla or Revit Structure, MEP engineer in Revit MEP. Through IFC they exchange the model: architect exports Architectural IFC, structural engineer opens in Tekla, adds reinforcement and connections, exports Structural IFC back. Without IFC every CAD pair would need a proprietary plugin, of which there are dozens.

Common Data Environment (CDE). Platforms like Autodesk BIM 360, Trimble Connect, BIMcollab, BIMserver store IFC models in the cloud with versioning, model checking, issue tracking. IFC here is the neutral lingua franca: participants work in different tools but submit a single consolidated IFC into the CDE.

Government BIM mandates. UK (BIM Mandate since 2016), Norway (Statsbygg has required IFC since 2008), Finland (COBIM 2012), Singapore (BIM e-submission), Russia (TIM regulations since 2022) — all require IFC when delivering design documentation to government clients. That's the strongest adoption driver.

CityJSON — modern JSON serialization of urban 3D models is a sibling format at the urban scale, while IFC specializes in the building scale down to individual construction components.

Clash detection. Navisworks and Solibri Model Checker import IFC from architect, structural engineer, and MEP engineer and automatically find collisions — a vent duct running through a load-bearing beam. Without an open IFC standard this would require a single vendor stack.

Quantity take-off and cost estimation. From IFC you automatically extract material volumes, surface areas, pipe lengths — for cost estimates. Estimation software (CostX, Vico) reads IFC and matches elements to cost items.

Facility management. After construction the As-Built IFC model is handed over to the building operator. FM systems (Archibus, IBM TRIRIGA) import IFC and use it for space management, MEP maintenance, emergency planning.

Digital twins. IFC + IoT sensors → real-time digital twin. CityGML (urban scale, LoD0-LoD4) and IFC (building scale, down to individual components) often work in tandem: CityGML for city-wide context, IFC for the specific building inside.

Strengths and weaknesses

Strengths. Open ISO standard with no vendor lock-in — the key advantage over Revit RVT and ArchiCAD PLN. Vendor-neutral interop — dozens of CAD/CDE tools support reading and writing IFC. Lossless semantics — not just geometry but property sets, relationships, materials, classifications. Spatial hierarchy is built into the model. Coverage in 4.3 — buildings plus linear infrastructure. Rich open source ecosystem — IfcOpenShell, BlenderBIM, FreeCAD BIM, BIMserver. Government support in dozens of countries.

Weaknesses. Verbose ASCII — even a mid-size building yields 50-500 MB of IFC; a typical mid-rise is gigabytes. Complex schema — ~1300 entities in IFC4 means a full implementation is intractable; each CAD implements its own subset. MVD fragmentation — the same IFC file may display correctly in one CAD and incorrectly in another due to different MVD interpretation. Lossy geometry round-trip — exporting from Revit to IFC and back loses parametrics (a wall becomes a "dumb" mass). Read performance — parsing a large IFC takes minutes vs seconds for proprietary formats. Weak ifcJSON / ifcXML tool support (effectively only SPF and ifcZIP work in practice).

IFC vs Revit RVT vs CityGML vs glTF

vs Revit RVT — Autodesk's proprietary binary vs an open ISO standard. RVT preserves parametrics (a wall stays editable by type); IFC export loses parametrics and keeps resulting geometry plus property sets. RVT works only in Autodesk's ecosystem; IFC is universal interop.

vs CityGML — urban scale vs building scale. CityGML describes cities at LoD0 (footprints), LoD1 (extrusion), LoD2 (with roof), LoD3 (with openings), LoD4 (with interior). IFC starts where CityGML stops — at individual components of one building: walls with layers, windows with hardware, stairs with treads. CityGML for city models, IFC for design and construction.

vs CityJSON — JSON vs EXPRESS/STEP. CityJSON is more compact and easier to parse in a browser, but it's a city format, not a building format. For architectural BIM, CityJSON is too coarse.

vs glTF / OBJ / FBX — visualization vs BIM. glTF and OBJ describe only mesh geometry for rendering. IFC carries semantics: this is a wall, this is a window with these property sets. For visualization-only, glTF is multiple times more efficient by size. For BIM workflow, IFC is irreplaceable.

vs STEP AP242 — siblings via ISO 10303. STEP is generic CAD interchange for mechanical engineering, aerospace, shipbuilding. IFC is the AEC specialization of STEP. Architects use IFC, mechanical engineers use STEP.

Software for IFC

BlenderBIM (free, open source). A Blender add-on for full BIM work with IFC native. Doesn't convert through intermediate mesh — works directly with IfcOpenShell objects. Reads and writes IFC2x3 / IFC4 / IFC4.3, property sets, classifications, drawing generation. Ideal for architects who don't want to pay Autodesk.

FreeCAD BIM (free, open source). FreeCAD's BIM Workbench reads and writes IFC and models walls / slabs / windows parametrically. Active development through a FreeCAD project grant.

Autodesk Revit (commercial). Supports IFC2x3 and IFC4 for read and write. Round-trip quality is average — parametrics are lost. Since 2024 IFC4.3 support has improved.

Graphisoft ArchiCAD (commercial). Historically one of the best IFC exporters in the industry — Graphisoft is a long-time active buildingSMART participant. ArchiCAD 27 supports IFC 4.3.

Tekla Structures (commercial). Leader for structural BIM with detailed reinforcement and steel connections. Supports Structural IFC.

Solibri Model Checker (commercial). Specialized IFC viewer/checker — clash detection, rule-based model validation, quantity take-off. Standard for government BIM audits.

BIMserver (free, open source). IFC server with repository, model checking, REST API. Used as a CDE backend.

IfcOpenShell (free, open source). C++ and Python library — the main open-source IFC reader/writer. Used inside BlenderBIM, FreeCAD BIM, many CDE platforms. Our ifc_exporter.py also uses IfcOpenShell.

Map generation of Kaliningrad city center

Pipeline in OSM2CDR

Our ifc_exporter.py builds a valid IFC4 model from OSM data. The process:

Step 1: Data loading. Through local_osm_loader.py we pull all building polygons in the requested bbox from PostGIS, plus heights (building:levels, height tags). If no height — fallback to 3 levels × 3 meters = 9 m.

Step 2: IFC project structure. Through IfcOpenShell we assemble the tree: IfcProject → IfcSite (with georeferencing via IfcMapConversion in IFC4) → IfcBuilding for each OSM way. CRS is specified via IfcProjectedCRS (default EPSG:3857 or user-picked from the 165 supported).

Step 3: Extract buildings as IfcWall + IfcSlab + IfcRoof. For each building: - Footprint polygon → IfcSlab (ground-floor slab) via IfcExtrudedAreaSolid of thickness 0.3 m. - Walls around the footprint → IfcWall with extrusion to building height. - Roof → IfcRoof. For LoD1 — flat roof via IfcSlab; for LoD2 — pitched roof if roof:shape=gabled|hipped tag exists.

Step 4: Property sets. Each IfcBuilding carries Pset_BuildingCommon with OSM metadata: NumberOfStoreys, BuildingType (residential / commercial / industrial from OSM building tag), GrossPlannedArea. Each IfcWall — Pset_WallCommon with IsExternal=true, LoadBearing=true.

Step 5: Serialization. IfcOpenShell writes a STEP Physical File (.ifc). Optionally a ZIP wrapper → .ifcZIP. We declare MVD as Coordination View 2.0 — maximum compatibility with Revit, ArchiCAD, Tekla.

Step 6: Validation. We run the result through ifcopenshell.validate(model) — schema compliance check. Optionally validate via bSDD / buildingSMART validation service.

Current implementation yields LoD1 for buildings without a roof:shape tag and LoD2 for buildings with an explicit roof shape. Roads, bridges, and IFC4.3 infrastructure are on the roadmap (gated on full IfcRoad / IfcBridge support in IfcOpenShell).

Map generation of Tokyo city center

FAQ

How is IFC different from CityGML? Scope and scale. CityGML describes whole cities at LoD0-LoD4: footprints, block extrusion, roofs, facades with openings. IFC starts where CityGML stops — at individual building components: walls with multilayer construction, windows with hardware, MEP systems. CityGML for urban planning and digital city twins; IFC for designing and constructing a specific object. They often work in tandem through CityGML 3.0's Building module, which is theoretically IFC-mappable.

How to open IFC for free? The best free option is BlenderBIM (Blender add-on, GPL). Alternatives: FreeCAD with BIM Workbench, IfcOpenShell-Python for programmatic access, online IFC viewers (xeokit BIM Viewer, IfcJS, BIMvision Free). Solibri Anywhere — Solibri's free viewer (without model checking features).

How to reduce IFC size? Main strategies: use ifcZIP (typically 5-10x compression vs raw SPF); reduce geometric detail via Tessellation instead of Brep; strip unnecessary property sets via IFC filter (Solibri / IfcOpenShell); export only the needed MVD subset; instead of one monolith split into discipline-specific IFCs (Architectural, Structural, MEP).

Can I get IFC4.3 bridge or road models from OSM? Technically IFC4.3 supports IfcRoad and IfcBridge, but IfcOpenShell as of 2026 has incomplete implementation of these entities. Our ifc_exporter.py currently focuses on IfcBuilding. OSM roads are better exported via CityJSON or GeoJSON; infrastructure BIM with IFC 4.3 is the next iteration when the toolchain matures.

Conclusion

IFC is the backbone of modern BIM. If you work with serious architecture, structural engineering, or MEP, sooner or later you'll face an IFC exchange requirement — from a client, a government review, or a partner working in a different CAD. Open standard, ISO certification, vendor-neutrality, a strong open source ecosystem — IFC isn't perfect (verbose, complex, MVD fragmentation), but there's no alternative at the "universal BIM exchange" level. For an architect who wants a starting point of a neighborhood model from OSM, exporting OSM → IFC through osm2cdr is a fast way to get site context in a minute instead of an hour of manual tracing in Revit.

Try OSM-area export to IFC: /formats/ifc/ — pick a bbox, tier, click Export. Open the result in BlenderBIM, Revit, or ArchiCAD.

Sources

← All articles