← Back to Knowledge Hub Module 11 → 11.2

11.2 IFC and Real-Time/Sensor Data: Current State, Limitations


Introduction

11.1 deferred a specific question: once a digital twin's baseline comes from verified handover data, how does a live sensor reading actually connect back to a specific element inside that model. This lesson answers that directly, and it's worth saying upfront that the honest answer is less tidy than a polished product demo would suggest. IFC was built to describe an asset's structure, not to carry a continuously changing stream of values, and bridging those two things is real, still-developing technical territory, not a solved, plug-and-play integration.

Why This Connection Isn't Trivial

An IFC file is a serialized representation of an asset's information at the time a particular model exchange was produced, its geometry, properties, quantities, and the relationships between its parts. The important distinction isn't that IFC can only represent static information in some absolute sense. It's that an IFC exchange itself isn't built as a streaming time-series system, and treating an IFC file as the place live sensor values get written into directly, refreshed constantly, would work against the very thing that makes IFC useful as a stable, exchangeable reference structure in the first place.

How a Sensor Reading Actually Gets Tied to an IFC Element

The mechanism IFC does provide for this is simpler than it might sound: every IFC object that derives from IfcRoot carries a GlobalId, a compressed, globally unique identifier, published internationally as ISO 16739-1, introduced into the schema as IfcGloballyUniqueId at IFC 1.5.1. Worth being precise about scope here: not every entity in an IFC file has one. Resource-level entities like IfcCartesianPoint sit below the rooted objects and carry no GUID of their own. GlobalId belongs specifically to the rooted objects, walls, columns, pumps, the actual things a sensor would realistically be monitoring.

That identifier is intended to remain persistent during the lifetime of an IFC object, so ordinary changes to an object's other attributes don't require its identifier to change. That's a real guarantee, but it's not unconditional: if an authoring application deletes an object and recreates it, or if an export and re-import workflow fails to preserve the original identity, the replacement object can end up with a different GlobalId entirely, no longer matching whatever a sensor system had been pointing at.

In practice, this means a sensor doesn't get written into the IFC model. Instead, whatever system manages the sensor keeps a mapping, a small table or configuration linking each sensor's own identifier to the GlobalId of the specific IFC element it monitors. One documented implementation integrating IFC with real-time building data uses exactly this approach: sensor time-series data lives in one database, the IFC-derived building information lives in another, and the two are linked by matching IFC GUIDs, with a separate component keeping that link current. It's a valid, real architecture, worth treating as one working example rather than the industry's single universal solution; other systems link through a chain of identifiers instead, a sensor ID mapped to an asset ID, mapped to an equipment ID, only eventually reaching an IFC GlobalId, or through a digital-twin platform, a BMS tag, or a CMMS identifier serving as the connecting layer instead.

Where the Live Data Itself Actually Lives

IFC is not, in practice, the thing being updated every few seconds in a working system. Real implementations consistently separate the two concerns: a time-series database, purpose-built for handling rapidly arriving, timestamped readings, holds the actual sensor data, while the IFC-derived structure serves as the static reference layer that data gets mapped against. The full shape looks roughly like this:

        IFC
         │
         │ mapping
         ↓
   Brick / semantic layer
         │
         ↓
  Sensor / BMS identifiers
         │
         ↓
  Time-series database

IFC describes the built asset. A semantic layer like Brick describes building equipment, locations, and the points a sensor system actually reports on. The time-series database stores the observations themselves, over time. IFC provides the structural map at the top of that chain. It isn't the thing recording what's currently happening on the ground.

Current Limitations, Stated Honestly

This is a genuinely less mature area than most of what this series has covered, and it's worth saying so plainly rather than presenting a tidier picture than actually exists. Real academic work on this integration continues to describe practical digital twin implementation in the built environment as a significant, open challenge, not a solved problem with a settled playbook. A few specific gaps are worth naming directly. IFC does not provide a native time-series or streaming data model for continuously arriving sensor observations, everything real-time has to be bolted on externally, through whatever mapping and tooling a specific project builds. IFC and the ontologies commonly used to describe sensor networks and their semantics, such as Brick, are separate schemas built for different purposes, and connecting them typically means an additional mapping or semantic layer sitting on top of both, not a built-in bridge either one provides on its own. None of this is a hidden flaw in IFC. It's evidence that this integration is still being actively worked out across the industry, tool by tool, project by project, rather than settled.

Where This Connects Back to the Series' Throughline

The GUID mapping itself is a piece of data, and like every other piece of data this series has examined, it can simply be wrong. A sensor mapped to the wrong GlobalId reports perfectly real, perfectly accurate readings, attributed to the wrong element entirely. A mapping built correctly at commissioning can go stale silently the moment a model gets revised, an element deleted and recreated with a new GlobalId because the authoring or export workflow didn't preserve the original identity, the external mapping table never updated to match, still pointing confidently at an identifier that no longer refers to what it once did. Nothing about the sensor readings themselves would look wrong in either case. The failure sits entirely in a layer this series hasn't examined until now: not the property value, not the extraction logic, but the mapping connecting a live data stream to the right piece of a model in the first place. It's the same presence-versus-correctness gap this series has traced since Module 6, showing up again in a new layer, a mapping that exists and looks complete, correctly formatted, referencing a real GlobalId, while quietly pointing at the wrong thing, or the right thing that no longer exists.

What's Next

The GUID-mapping problem covered here is one specific, concrete instance of a much broader pattern: getting different systems, built around different standards, to genuinely agree on what they're each talking about. The next lesson steps back to that wider picture, interoperability challenges across the built environment more generally, of which sensor mapping is only one example among several.

Key Takeaways

  • An IFC exchange is a serialized snapshot of an asset's information at the time it was produced, not a streaming system. That's the real distinction, not that IFC can only ever represent static information in some absolute sense.
  • GlobalId belongs to objects deriving from IfcRoot, not to every entity in a file. It's intended to persist through an object's lifetime, but that guarantee doesn't survive an object being deleted and recreated, or an export workflow that fails to preserve identity.
  • Real implementations keep sensor data in a separate time-series database, linked to the IFC-derived structure through an identifier chain, GUID matching is one documented approach among several, not a universal standard.
  • This integration remains genuinely immature: no native time-series model in IFC, and separate semantic layers like Brick needed to describe sensor networks, since IFC and sensor ontologies serve different purposes and don't bridge automatically.
  • A GUID mapping is itself data that can be wrong or go stale without any single sensor reading looking incorrect on its own, the same presence-versus-correctness gap this series has traced since Module 6, now showing up in the mapping layer itself.

Discuss this lesson

Comments use a free GitHub account — takes under a minute to create, and keeps discussions spam-free and permanently archived.