The problem with explicit types
Without class hierarchy, querying building data means knowing every specific type you’re looking for:How is works
The is argument queries by Brick class and automatically includes all subtypes:
HVAC_Equipment in the Brick hierarchy. Add a new type next year? It automatically matches.
Common hierarchies
Equipment
Points (sensors)
Points (setpoints and commands)
Query examples
All sensors on an AHU
All setpoints in a building
Narrow vs broad queries
is argument | What matches |
|---|---|
Point | Every sensor, setpoint, command, and status |
Sensor | All sensors (temperature, humidity, pressure, etc.) |
Temperature_Sensor | All temperature sensors (supply, return, zone, etc.) |
Supply_Air_Temperature_Sensor | Only supply air temperature sensors |
How it works under the hood
When you passis: "HVAC_Equipment", Tacit resolves the Brick class hierarchy to find all subclasses:
- Look up
HVAC_Equipmentin the Brick ontology - Find all classes where
X rdfs:subClassOf* HVAC_Equipment - Match any entity whose class is in that set
a/rdfs:subClassOf* performs, but expressed as a single argument in a GraphQL query.
Combining is with other arguments
Invalid class names
If you pass an unknown class name, the query returns an empty result set. No entities match a class that doesn’t exist in the Brick ontology.Equivalent SPARQL
Theis argument replaces this SPARQL pattern:
Next steps
Relationships & traversal
Follow equipment chains with upstream and downstream queries.
Equipment reference
Full reference for equipment queries with class filtering.
