Understanding Brick Schema¶
Learn what Brick Schema is and why it matters for portable analytics.
The Problem¶
Different buildings use different names for the same sensor:
| Building A | Building B | Building C |
|---|---|---|
HW_Supply_Temp |
SupplyTempHotWater |
HWST_01 |
Result: Custom code for EACH building 🔴
The Solution¶
Brick provides one standard name:
Result: Code ONCE, works EVERYWHERE ✅
Real Example¶
From official Brick documentation:

What you see:
- 🏢 Buildings & spaces
- ⚙️ Equipment (boilers, pumps)
- 🌡️ Sensors (temperature, flow)
- 🔗 Relationships (connections)
HHW Brick creates this from your CSV automatically!
How It Works¶
Your CSV:
Generated Brick:
# Equipment
:Boiler_01 a brick:Boiler .
# Sensors
:Supply_Temp a brick:Hot_Water_Supply_Temperature_Sensor .
:Return_Temp a brick:Hot_Water_Return_Temperature_Sensor .
# Relationships
:Boiler_01 brick:hasPoint :Supply_Temp, :Return_Temp .
Why This Matters¶
Traditional ❌:
# Building A
supply = data["HW_Supply_Temp"]
# Building B - different code!
supply = data["SupplyTempHotWater"]
Brick ✅:
# Works on ALL buildings!
query = """
SELECT ?supply WHERE {
?supply a brick:Hot_Water_Supply_Temperature_Sensor .
}
"""
Portable Analytics¶
def analyze_any_building(brick_model):
"""Same code for building 1, 2, 3... 100!"""
query = """
SELECT ?supply ?return WHERE {
?supply a brick:Hot_Water_Supply_Temperature_Sensor .
?return a brick:Hot_Water_Return_Temperature_Sensor .
}
"""
# Auto-discovers sensors, calculates ΔT
Time saved: 90% reduction 🚀
What HHW Brick Does¶
- ✅ You provide CSV files
- ✅ Converts to Brick Schema
- ✅ Run analytics on ANY building
FAQ¶
Q: Do I need to know Brick/RDF/SPARQL?
A: No! HHW Brick handles everything.
Q: What if my system isn't supported?
A: Use "Generic Boiler" or request it.
Learn More¶
Key Takeaway
Brick = one language for ALL buildings
→ Write once, deploy everywhere 🚀
Next: Prepare your CSV →