COBie (Construction-Operations Building Information Exchange) is the spreadsheet schema that converts a BIM model into something a facility manager can actually use. It sits at the boundary between design and operations — when an asset is handed over to its operator, COBie is the deliverable that says “here's every space, every door, every air-handling unit, plus the data needed to maintain them.”
On any UK public-sector BIM project, on US Federal projects (where COBie is mandatory under GSA guidelines), and on most private clients with mature asset management practice, you'll be asked for a COBie deliverable alongside the IFC. This page explains what's in it and how our free tool generates one directly from your IFC.
What COBie 2.4 actually contains
COBie is a single XLSX workbook with up to 16 sheets. The sheets that matter for handover, in priority order:
| Sheet | What it lists | Common source in IFC | Our tool |
|---|---|---|---|
| Contact | People and organisations responsible for the data | IfcPersonAndOrganization, IfcOwnerHistory | Auto (placeholder) |
| Facility | The asset itself — building, site, project, units | IfcProject + IfcSite + IfcBuilding | Yes |
| Floor | Storey-level rows with elevation, height, name | IfcBuildingStorey | Yes |
| Space | Rooms with usable height, gross area, net area, room tag | IfcSpace + IfcQuantityArea | Partial — area pending |
| Type | Reusable definitions: WallType-A, DoorType-22, AHU-04 | IfcWallType, IfcDoorType, IfcTypeProduct subtypes | Yes |
| Component | Instances: every wall, door, AHU placed in the model | IfcElement instances linked to types via IfcRelDefinesByType | Yes (cap 20K) |
| System | Functional groups (HVAC system 03, water loop 02) | IfcSystem + IfcRelAssignsToGroup | Not yet |
| Attribute | Free-form key-value pairs not covered by the standard sheets | Pset properties on any element | Not yet |
| Issue / Document / Spare / Resource / Job / Connection | Operations-side data not normally in the design IFC | Usually authored separately in FM systems | Not yet |
How traditional tools generate COBie
The mainstream paid options:
- Solibri Office — has a COBie ruleset and report generator. Strong validation. License is per-seat, around 4-6,000 EUR/year/user depending on region.
- dRofus — focused on programmatic data through design. Great if you've used it from RIBA Stage 1, painful to retrofit at handover. Subscription-based.
- COBie Toolkit (East Carolina University) — free reference implementation, but it's a Java desktop app from 2014 and doesn't track recent IFC4 changes consistently.
- Revit COBie Extension (BIMServices) — generates from inside Revit. Free for individuals but Revit-locked, so anyone delivering from ArchiCAD or Tekla can't use it.
What none of these offer is a friction-free “drop a file, get COBie, no install, no signup” experience. That gap is what this tool fills.
What we extract, mapping by mapping
The mapping below describes how each COBie field is populated from the IFC schema. If you know IFC, this is enough to predict what your output will look like before you even drop the file.
Facility sheet
Name←IfcBuilding.Name(fallback toIfcProject.Name)ProjectName←IfcProject.NameSiteName←IfcSite.NameLinearUnits,AreaUnits,VolumeUnits← currently hard-coded to metres / square metres / cubic metres. ReadingIfcUnitAssignmentproperly is on the roadmap.ExternalProjectIdentifier,ExternalSiteIdentifier,ExternalFacilityIdentifier← left asn/a; populated by the FM platform that imports the COBie.
Floor sheet
- One row per
IfcBuildingStorey Name←Storey.NameElevation←Storey.Elevation(in metres)ExtIdentifier←Storey.GlobalIdHeight←n/a(not yet derived fromPset_BuildingStoreyCommon.NetHeight)
Space sheet
- One row per
IfcSpace Name←Space.NameFloorName← parent storey resolved viaIfcRelAggregatesDescription←Space.LongNameExtIdentifier←Space.GlobalIdGrossArea,NetArea,UsableHeight← currentlyn/a. Will readIfcQuantityAreain next iteration.
Type sheet
- One row per
IfcTypeProductreferenced by anIfcRelDefinesByType Name←Type.NameDescription←Type.DescriptionExtObject←'IfcTypeProduct'ExtIdentifier←Type.GlobalIdManufacturer,ModelNumber,Warranty*,ExpectedLife←n/a(live in psets we don't yet read)
Component sheet
- One row per
IfcElementinstance with a type relationship Name←Element.NameTypeName←Type.Nameresolved viaIfcRelDefinesByTypeSpace← parent space if any (resolved via spatial containment)ExtIdentifier←Element.GlobalId- Hard cap of 20,000 rows. Models with more elements get a notice in the UI.
Honest limits
For real production handover, you almost certainly want one of the paid tools or a hand-curated COBie. This tool is best at:
- Pre-handover sanity check. “Will this IFC convert to COBie at all? Are types and instances cleanly linked?”
- Tender preparation. Demonstrate to a procuring authority that your team produces COBie-ready outputs.
- Education. See the field mapping concretely on your own model rather than reading the COBie spec.
- Light handover for small projects where the FM team will hand-fill manufacturer details anyway.
For full handover on a public-sector or large private project, our paid platform extends this engine: it reads psets and quantities, runs the full COBie validation ruleset, and integrates with project workflow so COBie outputs are produced as part of the issuing flow rather than one-off exports.
You can see what that looks like at cde19650.com, or run the free version here on the home page.