Skip to main content

What systems are

In Brick, a System groups equipment that works together for a common purpose. A chilled water system includes the chiller, chilled water pumps, and the cooling coils they serve. A hot water system includes the boiler, hot water pumps, and heating coils. Systems answer questions that feeds chains can’t easily express: “show me everything in the chilled water loop,” including pumps that don’t directly feed the chiller but are part of the same distribution system.

Query signature

system(
  siteId: String!,
  name: String,
  nameMatch: NameMatch,
  is: String,
  hasProperty: String,
  propertyValue: String
): [System!]!
Also available as a nested field on Building and Equipment (without siteId, since those are already scoped).
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
nameStringFilter by system name. Case-insensitive substring by default
nameMatchNameMatchCONTAINS (default) or EXACT
isStringBrick class (e.g., Chilled_Water_System)
hasPropertyStringOnly systems with this property defined
propertyValueStringExact match on property value (requires hasProperty)

Return fields

FieldTypeDescription
uriString!Full entity URI
idID!System identifier
nameString!System name
typeString!Brick class (e.g., Chilled_Water_System)
ifcIdStringIFC model element ID. Links to the BIM model
equipment[Equipment!]!Equipment in this system. Accepts name, nameMatch, is, recursive filters
points[Point!]!Points associated with the system. Accepts name, nameMatch, is, recursive filters
properties[EntityProperty!]!Static metadata as structured objects (name, value, unit)

Common system types

Brick classWhat it groups
HVAC_SystemAll HVAC equipment in a building
Chilled_Water_SystemChillers, CHW pumps, cooling coils, cooling towers
Hot_Water_SystemBoilers, HW pumps, heating coils
Condenser_Water_SystemCooling towers, CW pumps, chiller condensers
Air_SystemAHUs, VAVs, and the ductwork connecting them
Lighting_SystemLuminaires, lighting controllers, occupancy sensors
Electrical_SystemMeters, switchgear, transformers, UPS

Examples

Find systems by name

{
  system(name: "Hot Water") {
    name
    type
    equipment { name type }
  }
}
{
  "data": {
    "system": [
      {
        "name": "Hot Water System",
        "type": "Hot_Water_System",
        "equipment": [
          { "name": "TE01-XX-HIU-001", "type": "Heat_Exchanger" },
          { "name": "TE01-XX-HWP-001", "type": "Hot_Water_Pump" },
          { "name": "TE01-XX-HWP-002", "type": "Hot_Water_Pump" }
        ]
      }
    ]
  }
}

List all systems in a building

{
  building(id: "B001") {
    systems {
      name
      type
    }
  }
}

System with its supply temperature sensors

{
  system(name: "Hot Water") {
    name
    type
    points(is: "Supply_Air_Temperature_Sensor") {
      name
      type
      unit
    }
  }
}

Query a specific system type

{
  system(is: "Chilled_Water_System") {
    name
    equipment {
      name
      type
      points(is: "Temperature_Sensor") {
        name
        type
        unit
      }
    }
  }
}
This returns every piece of equipment in the chilled water loop with its temperature sensors: chillers, pumps, cooling towers, all in one query.

Filter equipment within a system

Use name, nameMatch, and is on the nested equipment field:
{
  system(name: "Hot Water") {
    name
    equipment(is: "Pump") {
      name
      type
    }
  }
}
Returns only pumps within the hot water system.

Recursive: all points across system equipment

{
  system(name: "Hot Water") {
    name
    points(recursive: true, is: "Temperature_Sensor") {
      name
      type
      unit
    }
  }
}
recursive: true on system points collects points from all equipment in the system, not just points directly on the system entity.

Filter systems by property

{
  system(hasProperty: "designCapacity") {
    name
    type
    properties { name value unit }
  }
}

Which systems does this equipment belong to?

{
  equipment(id: "TE01-XX-AHU-001") {
    name
    systems {
      name
      type
    }
  }
}
Equipment.systems returns all systems the equipment belongs to without filter arguments. It does not support name, nameMatch, or is parameters.

Systems vs feeds chains

Use caseUse systemsUse feeds/traversal
”Everything in the chilled water loop”system(is: "Chilled_Water_System")Harder, since pumps may not be in the feeds chain
”What feeds this zone?”Use upstreamMore precise. Follows the specific path
”All equipment in the HVAC plant”system(is: "HVAC_System")Would need multiple traversals from different roots
”Impact of chiller failure”Use downstreamBetter. Shows the specific propagation path
Systems group by purpose. Feeds chains follow medium flow. Use both.