Query signature
Equipment, Zone, Location, Building, and System types (without siteId, since those are already scoped).
All root queries require
siteId. See multi-tenant scoping. Examples below omit siteId for brevity.Arguments
| Argument | Type | Description |
|---|---|---|
siteId | String! | Required. Scopes the query to a specific site |
id | String | Filter to a specific point |
name | String | Filter by point name. Case-insensitive substring by default |
nameMatch | NameMatch | CONTAINS (default) or EXACT |
equipmentId | String | Points on this equipment |
locationId | String | Points at or below this location (transitive) |
locationName | String | Points at or below locations matching this name |
zoneId | String | Points in this zone |
systemId | String | Points on equipment in this system |
is | String | Brick class name. Resolves all subtypes |
equipmentIs | String | Filter by equipment Brick class (e.g., VAV). Combine with locationName for cross-cutting queries |
hasProperty | String | Only points with this property defined |
propertyValue | String | Exact match on property value (requires hasProperty) |
Return fields
| Field | Type | Description |
|---|---|---|
uri | String! | Full entity URI |
id | ID! | Point identifier |
name | String! | Point name |
type | String! | Brick class (e.g., Zone_Air_Temperature_Sensor) |
typeHierarchy | [String!]! | Full class hierarchy from leaf to root (e.g., ["Zone_Air_Temperature_Sensor", "Temperature_Sensor", "Sensor", "Point"]) |
unit | String | Engineering unit (DEG_C, DEG_F, PA, CFM, etc.) |
equipmentId | String! | ID of the parent equipment (string ID). Use the equipment field for the full object |
timeseriesId | String | Timeseries UUID. Pass this value as a timeseriesIds entry to the timeseries REST API. null if the point is not connected to a time series source |
currentValue | PointValue | Latest reading (last 5 minutes). Returns null if timeseriesId is null or no recent data. Only resolved when requested, so no performance cost if omitted |
equipment | Equipment | The full equipment object this point belongs to |
location | Location | Physical location of this point |
properties | [EntityProperty!]! | Static metadata as structured objects (name, value, unit) |
For the latest reading, use
currentValue { value timestamp quality } on the Point type. For historical time-range data, use the timeseries REST API with the point’s timeseriesId.Examples
Find points by name
Temperature sensors on VAVs: the cross-cutting query
The most powerful query pattern. No UUIDs needed. CombinelocationName, equipmentIs, and is on the point root query to query across the entire building graph:
Supply air temperatures on AHUs
All temperature sensors (semantic resolution)
is: "Temperature_Sensor" resolves the full Brick hierarchy. Supply air, return air, zone, outside air, chilled water, and hot water temperature sensors are all included:
Points on a specific piece of equipment
Damper commands across all AHUs
CO2 sensors building-wide
Combining equipmentIs without locationName
You can use equipmentIs alone to find points across all equipment of a type:
Filter points by property
equipmentId vs equipment field
Every point has anequipmentId (the parent equipment’s string ID) and an equipment field (the full Equipment object). Use equipmentId when you just need the ID. Use equipment when you need the full object with its fields:
