Skip to main content

Query signature

zone(
  siteId: String!,
  id: String,
  name: String,
  nameMatch: NameMatch,
  locationId: String,
  is: String,
  hasProperty: String,
  propertyValue: String
): [Zone!]!
All root queries require siteId. See multi-tenant scoping. Examples below omit siteId for brevity.

Arguments

ArgumentTypeDescription
siteIdString!Required. Scopes the query to a specific site
idStringFilter to a specific zone
nameStringFilter by zone name. Case-insensitive substring by default
nameMatchNameMatchCONTAINS (default) or EXACT
locationIdStringZones at or below this location (transitive)
isStringBrick class (e.g., HVAC_Zone)
hasPropertyStringOnly zones with this property defined
propertyValueStringExact match on property value (requires hasProperty)

Return fields

FieldTypeDescription
uriString!Full entity URI
idID!Zone identifier
nameString!Zone name
typeString!Brick class
typeHierarchy[String!]!Full class hierarchy from leaf to root (e.g., ["HVAC_Zone", "Zone"])
ifcIdStringIFC model element ID. Links to the BIM model
locations[Location!]!Physical locations in this zone (no filter args, returns all locations)
fedBy[Equipment!]!Equipment that feeds this zone. Accepts name, nameMatch, is filters
upstream[Equipment!]!Transitive upstream equipment chain. Accepts maxDepth, medium, is filters
points[Point!]!Sensors in this zone. Accepts name, nameMatch, is filters
properties[EntityProperty!]!Static metadata as structured objects (name, value, unit)

Examples

Find zones by name

{
  zone(name: "Library") {
    name
    type
    locations { name }
    fedBy { name type }
  }
}

Zones with their feeding equipment

{
  zone(is: "HVAC_Zone") {
    name
    fedBy(is: "VAV") {
      name
      type
    }
  }
}

Zone temperature sensors

{
  zone(name: "Lobby") {
    name
    type
    points(is: "Zone_Air_Temperature_Sensor") {
      name
      type
      unit
    }
  }
}

Filter zones by property

{
  zone(hasProperty: "designOccupancy") {
    name
    type
    properties { name value unit }
  }
}
Use hasProperty alone to find zones that have a specific property defined. Add propertyValue for exact value matching.

Upstream trace from a zone

Find the full equipment chain feeding a zone:
{
  zone(name: "Research Hub", nameMatch: EXACT) {
    name
    upstream {
      name
      type
    }
  }
}
This traces back from the zone through VAVs, AHUs, and plant equipment, returning the entire supply chain in one query.

Filter upstream by equipment type

Only return VAVs in the upstream chain:
{
  zone(name: "Research Hub", nameMatch: EXACT) {
    name
    upstream(is: "VAV") {
      name
      type
    }
  }
}

Zone locations

See which physical spaces a zone covers:
{
  zone(name: "Lobby") {
    name
    locations {
      name
      type
    }
  }
}
Zone.locations returns all locations in the zone without filter arguments. Unlike Building.locations, it does not support name, nameMatch, is, or recursive parameters.