Guide · handover
Building handover: files for BMS, twins, CAFM, indoor maps and energy
At handover a building moves from drawings to the systems that run it. Export → Building handover makes one zip with a file for each kind of system, all from the same rooms, levels, zones and register assets. Every one of them keeps the same id from one export to the next, so exporting again after a change updates the objects in your system instead of adding them a second time.
Before you export
- Rooms with names. Every file is built from the rooms. A room called Room reads badly in a CAFM; the dialog counts them.
- Levels with heights. Each level becomes a storey at its height (Levels). A level without one is stacked at the wall height, and the dialog says so.
- Assets in the register. Fire, HVAC, BMS, electrical, security and hydraulic assets placed from the Library are in the register with their tag, type and system. Fill in manufacturer, model, serial and install date where you have them. The
feedscolumn (tags, comma separated:VAV-001, VAV-002on an AHU) becomes Brickfeedsand HaystackequipRef. - Zones. In the dialog, group rooms into HVAC, fire, lighting, occupancy, security, circulation or tenancy zones. A room can be in several.
- On the map, for indoor maps. IMDF needs latitude and longitude, so the project has to be on the map.
A campus with no rooms drawn
A site mapped building by building (a data layer of buildings keyed B01, B02..., picked from footprints or drawn) can make a pack before any room is drawn. In the dialog, Buildings from a data layer: each key becomes a building, its shapes the footprint, and every register asset goes in the building whose outline holds it (an external hydrant in the grounds). COBie, IFC, Haystack and Brick are made from that, so a CMMS or BMS gets the buildings and their equipment with ids that stay the same; the CAFM plans, IMDF and gbXML wait for rooms.
Which file for which program
| Program | File | What comes in |
|---|---|---|
| BMS: SkySpark | haystack.zinc or haystack.json | Sites, floors, rooms and equipment as Haystack 4 records, with siteRef, spaceRef and floorRef, areas, and tags such as ahu, vav and elec meter. Bind your points to the equip records by equipRef. |
| BMS: Niagara | haystack.json, svg/ | The Haystack tags for the station’s tag dictionary (nHaystack), and an SVG plan a level as the background of a Px graphic, each room and asset with its id. |
| BMS: Desigo CC, Metasys | svg/ or cafm/, COBie.xlsx | Floor plans for the graphics backgrounds (SVG, or DXF where the graphics editor takes CAD), and the list of rooms and equipment from COBie to name points by. |
| Digital twin: Willow | brick.ttl, model.ifc, COBie.xlsx | The building, floors, rooms, zones and equipment as a Brick graph (hasPart, isPartOf, hasLocation, feeds); the IFC for geometry; COBie for the asset details. |
| Digital twin: Autodesk Tandem | model.ifc | Storeys, spaces, walls with their doors and windows in openings cut through them, a floor slab under each room, and assets as IFC elements with their types. The Plotlay_Register and Plotlay_Identity property sets come in as parameters to map in your facility template. |
| CAFM: Archibus | cafm/, COBie.xlsx | One DXF a level with closed room outlines on RM$ and room text on RM$TXT, the layers the Smart Client extension for AutoCAD reads rooms from, and COBie for spaces, equipment and their types. |
| CAFM: Planon | COBie.xlsx, cafm/ | COBie for properties, floors, spaces and assets; the DXF for its CAD link, with the layer names you map there (choose My own layer names to match). |
| CMMS: Maximo, SAP PM | COBie.xlsx | Floors and spaces as locations (functional locations in SAP), components as assets (equipment), types as their classes, and a routine service job for each type with its typical frequency. Load them with your usual import tool. |
| Indoor map: ArcGIS Indoors | imdf.zip, cafm/ | IMDF levels, units, openings, amenities and anchors (GeoJSON) for the Indoors model, or the DXF floor plans for ArcGIS Pro’s tools for plans from CAD. |
| Indoor map: Apple Maps | imdf.zip | An IMDF 1.0.0 archive. Apple runs its own checks when you submit it. |
| Energy: IES VE, OpenStudio | model.gbxml | The building, storeys, spaces with areas and volumes, and their walls, floors, roofs, doors and windows, with shared walls and floors between spaces. Constructions are named only: give them their layers in the energy program. |
The ids
Each building, level, room, zone and asset keeps a UUID in the project from its first export. IFC and COBie carry the same 128 bits as a 22-character IFC GlobalId (COBie’s ExtIdentifier is the IFC object’s id), Haystack ids and IMDF feature ids are the UUIDs, and Brick names are urn:plotlay:<project>/<uuid>. A copy gets new ids: a duplicated project, an example or project file opened as a new project, a room or asset duplicated within a project, and anything brought in from another project.
How the files were checked
- IFC4 with IfcOpenShell, schema and rules, and its geometry: each wall is smaller by its door and window openings. Brick with the brickschema library’s SHACL shapes for Brick 1.4. gbXML against the gbXML 7.03 schema. Haystack tags against the Haystack 4 definitions. The DXF with ezdxf. COBie read back and checked for the COBie 2.4 sheets, columns, required values and links between sheets.
- IMDF against the specification’s required properties, ids and links.
What it doesn’t do
- Room areas are the drawn outlines (inside face of the walls). Accuracy depends on the drawings, imagery and measurements the project was made from.
- COBie categories are left as n/a where Plotlay has no classification (Uniclass or OmniClass): fill them in your CAFM. A manufacturer goes in as an attribute unless you give its email, as COBie asks.
- gbXML ceilings are flat at each room’s height: a pitched roof is not modelled.
- Haystack has no zone entity: a room’s zones are a
plotlayZonestag.floorRefis the Haystack 3 tag, kept because SkySpark and Niagara read it. - Typical inspection frequencies in COBie jobs are a starting point: verify against the current standard and the building’s maintenance schedule.
Agents can make the same pack through the connector: handover_summary, set_zones and export_handover.