The data model
Every building in Tacit follows the same structure, regardless of the underlying BMS vendor or naming convention.All root queries require
siteId to scope to your site. Examples below omit it for brevity. See multi-tenant scoping.Name-based discovery
Every entity can be found by name, with no UUIDs required. Thename argument does case-insensitive substring matching by default:
nameMatch: EXACT for precise matches. This works on every entity type and on nested fields too.
Buildings
A building is the top-level container. It has a spatial hierarchy of locations (wings, floors, zones) and contains all equipment, systems, and points for that physical site.Equipment
Equipment represents physical devices: air handling units, variable air volume boxes, chillers, boilers, fan coil units, pumps, cooling towers, and more. Each piece of equipment has atype that describes what it is, and a typeHierarchy showing its full class lineage.
feeds relationships, forming chains that represent the physical distribution of air, water, or electricity through a building. Equipment can also have parts (sub-components like fans, dampers, and valves). See relationships and traversal.
Equipment has a typeHierarchy showing its full class lineage (root → leaf), and carries structured metadata via properties:
typeHierarchy returns ["AHU", "HVAC_Equipment", "Equipment", "Entity", "Class"], which is why is: "HVAC_Equipment" matches AHUs. properties returns structured objects like controllerName, isVirtual, pointCount, each with a name, value, and optional unit.
Properties on all entity types
Every entity type hasproperties: [EntityProperty!]!, not just equipment. Buildings, locations, zones, systems, and points can all carry metadata:
IFC integration
Entities that come from an IFC (BIM) model carry anifcId field linking back to the BIM element:
ifcId is null when equipment was created from BMS data rather than an IFC model. Available on Building, Equipment, Location, Zone, and System.
Points
Points are the leaf nodes of the model: individual sensor readings, actuator commands, and setpoints. A point always belongs to a piece of equipment (or directly to a zone in some cases).| Point category | Description | Examples |
|---|---|---|
| Sensors | Measured values from physical sensors | Temperature, humidity, CO2, pressure, flow rate |
| Setpoints | Target values for control loops | Temperature setpoint, pressure setpoint |
| Commands | Actuator positions or on/off states | Damper position, valve position, fan on/off |
| Status | Equipment state feedback | Running status, fault status, mode |
unit (e.g., DEG_C, PA, CFM), a type from the Brick ontology, and an equipmentId linking it back to its parent equipment.
Use
currentValue { value timestamp quality } on the Point type for the latest reading. For historical time-range data, use the timeseries REST endpoint with the point’s timeseriesId.Locations
Locations represent the spatial hierarchy of a building: wings, floors, rooms, and areas. They provide the physical context for where equipment is installed and zones are defined.Zones
Zones represent the spaces that equipment feeds. An HVAC zone is the area controlled by a single terminal unit (like a VAV box). Zones reference locations and are fed by equipment.Cross-cutting queries
The most powerful pattern. Query across the entire building graph without UUIDs:Next steps
Class hierarchy
How
is: "HVAC_Equipment" matches all subtypes automatically.Relationships and traversal
How
upstream and downstream follow equipment chains.