Skip to main content

Query signature

location(
  siteId: String!,
  locationId: String!
): Location
The location root query returns a single location by ID. For browsing the hierarchy, use locations nested on Building or Location.
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
locationIdString!Required. Location identifier

Return fields

FieldTypeDescription
uriString!Full entity URI
idID!Location identifier
nameString!Location name
typeString!Brick class (Wing, Floor, Room, etc.)
ifcIdStringIFC model element ID
properties[EntityProperty!]!Static metadata (name, value, unit)
locations[Location!]!Child locations. Accepts name, nameMatch, is, recursive filters
parentLocationParent location
equipment[Equipment!]!Equipment at this location. Accepts name, nameMatch, is, recursive filters
points[Point!]!Points at this location. Accepts name, nameMatch, is, recursive filters
zones[Zone!]!Zones within this location

Spatial hierarchy

Buildings contain a nested hierarchy of locations:
Building
├── Tower East (Wing)
│   ├── Tower East Ground Floor (Floor)
│   ├── Tower East Level 1 (Floor)
│   ├── Tower East Level 2 (Floor)
│   └── ...
├── Tower West (Wing)
│   ├── Tower West Ground Floor (Floor)
│   ├── Tower West Level 1 (Floor)
│   └── ...
└── Podium (Wing)
    ├── Podium Ground Floor (Floor)
    └── Podium Level 3 (Floor)

Examples

Browse the full spatial tree

Start from a building and drill into its location hierarchy:
{
  building(id: "B001") {
    name
    locations {
      name
      type
      locations {
        name
        type
      }
    }
  }
}
{
  "data": {
    "building": {
      "name": "One Pool Street",
      "locations": [
        {
          "name": "Tower East",
          "type": "Wing",
          "locations": [
            { "name": "Tower East Ground Floor", "type": "Floor" },
            { "name": "Tower East Level 1", "type": "Floor" },
            { "name": "Tower East Level 2", "type": "Floor" }
          ]
        },
        {
          "name": "Tower West",
          "type": "Wing",
          "locations": [
            { "name": "Tower West Ground Floor", "type": "Floor" },
            { "name": "Tower West Level 1", "type": "Floor" },
            { "name": "Tower West Level 2", "type": "Floor" }
          ]
        },
        {
          "name": "Podium",
          "type": "Wing",
          "locations": [
            { "name": "Podium Ground Floor", "type": "Floor" },
            { "name": "Podium Level 3", "type": "Floor" }
          ]
        }
      ]
    }
  }
}

Get a specific location with its equipment

{
  location(locationId: "TW01") {
    name
    type
    properties { name value unit }
    equipment(is: "AHU") {
      name
      type
    }
    zones {
      name
      type
    }
  }
}
{
  "data": {
    "location": {
      "name": "Tower West Level 1",
      "type": "Floor",
      "properties": [
        { "name": "floorNumber", "value": "01", "unit": null }
      ],
      "equipment": [
        { "name": "TW01-XX-AHU-001", "type": "AHU" },
        { "name": "TW01-XX-AHU-002", "type": "AHU" }
      ],
      "zones": [
        { "name": "Atrium", "type": "Zone" },
        { "name": "Computer Engineering 1", "type": "Zone" },
        { "name": "Library", "type": "Zone" },
        { "name": "Teaching Space 1", "type": "Zone" }
      ]
    }
  }
}

Filter locations by type

Find only floors (skip wings):
{
  building(id: "B001") {
    locations(is: "Floor", recursive: true) {
      name
      type
    }
  }
}
recursive: true flattens the hierarchy, returning all floors across all wings in a single list.

All equipment on a floor

{
  location(locationId: "TE01") {
    name
    equipment(is: "HVAC_Equipment") {
      name
      type
    }
  }
}
{
  location(locationId: "TW01") {
    name
    type
    parent {
      name
      type
    }
  }
}
Returns Tower West Level 1 → Tower West (Wing).

Locations vs zones

Locations represent physical space: where things are. Zones represent conditioned space: what equipment serves.
ConceptExampleQuery
Where is this AHU?Tower East Level 1equipment { location { name } }
What space does this VAV cool?Library zoneequipment { feeds { name } } on zone
A floor can contain multiple zones. A zone can span multiple rooms. Use location for spatial questions, zones for HVAC questions.