Skip to main content

The problem with explicit types

Without class hierarchy, querying building data means knowing every specific type you’re looking for:
Miss a type? You miss data. Add a new equipment type next year? Every query breaks. This doesn’t scale.

How is works

The is argument queries by Brick class and automatically includes all subtypes:
This returns AHUs, VAVs, FCUs, heat exchangers, and every equipment type that is a subclass of HVAC_Equipment in the Brick hierarchy. Add a new type next year? It automatically matches.

The class hierarchy

Brick organizes building concepts into a tree. Every class inherits from its parent, and querying a parent matches all descendants.
When you query for Temperature_Sensor, you get all five subtypes. When you query for Sensor, you get temperature sensors plus humidity sensors, pressure sensors, CO2 sensors, and everything else. The hierarchy does the filtering for you.

Common hierarchies

Equipment

Points (sensors)

Points (setpoints and commands)

Narrow vs broad queries

The broader the class, the more results. Start broad to explore, narrow when you know what you need.

Query examples

All sensors on an AHU

Returns temperature sensors, humidity sensors, pressure sensors, flow sensors, and every other sensor type attached to this AHU.

All setpoints in a building

Combining is with other arguments

is composes with every other filter argument:

How it works under the hood

When you pass is: "HVAC_Equipment", Tacit resolves the Brick class hierarchy to find all subclasses:
  1. Look up HVAC_Equipment in the Brick ontology
  2. Find all classes where X rdfs:subClassOf* HVAC_Equipment
  3. Match any entity whose class is in that set
This is the same resolution that SPARQL’s a/rdfs:subClassOf* performs, but expressed as a single argument in a GraphQL query.

Equivalent SPARQL

The is argument replaces this SPARQL pattern:
Same resolution, expressed as a single argument instead of a property path.

Next steps

Relationships & traversal

Follow equipment chains with upstream and downstream queries.

GraphQL query reference

Full reference for all query arguments and return fields.