In this section we will use the BRIQL query language to interrogate the model created earlier in the walkthroughs. We will start with very simple queries and work our way up to more advanced features of BRIQL. The full documentation for BRIQL can be found .
Query a Building for Points
This is an example BRIQL query request for finding all points in the published site and building models.
Copy curl --location --request PUT 'https://dataclearinghouse.org/api/mv/v1/query/briql' \
--header 'Content-Type: text/plain' \
--header 'x-api-key: myApiKeyGoesHere' \
--data '{
"models": [
{"orgId": "sandbox-eddf8c4b-a3a7-49a1-82d4-1e4821baca62","siteId": "walkthrough_site","buildingId": "walkthrough_building"}
],
"queryDef": {
"mode": "select",
"variables": [
{
"varType": "node",
"name": "pt",
"output": true,
"fetch": [
"id",
"type",
"hypernym",
"entityProperties"
],
"brickTypes": [
{
"match": "isa",
"type": "Point"
}
]
}
]
}
}
'
Response:
Copy {
"models": [
{
"orgId": "sandbox-eddf8c4b-a3a7-49a1-82d4-1e4821baca62",
"siteId": "walkthrough_site",
"buildingId": "walkthrough_building"
},
{
"orgId": "sandbox-eddf8c4b-a3a7-49a1-82d4-1e4821baca62",
"dataPoolId": "managed_datapool_walkthrough_datasource_390c330e-8335-4084-abf0-00d6daf87c5a"
}
],
"variablesNames": [
"pt"
],
"solutionNodes": {
"pt": [
{
"varType": "node",
"modelIndex": 1,
"id": "walkthrough_site.walkthrough_building.VAV4_HWValve.Status",
"type": "Status",
"hypernym": "Point",
"entityProperty": [],
"fullId": "dch:org/sandbox-eddf8c4b-a3a7-49a1-82d4-1e4821baca62/datapool/managed_datapool_walkthrough_datasource_390c330e-8335-4084-abf0-00d6daf87c5a#walkthrough_site.walkthrough_building.VAV4_HWValve.Status"
},
...
{
"varType": "node",
"modelIndex": 1,
"id": "walkthrough_site.walkthrough_building.MSSB_Primary.Import_KWH",
"type": "Electric_Energy_Sensor",
"hypernym": "Point",
"entityProperty": [
{
"property": "https://brickschema.org/schema/Brick#electricalPhases",
"key": null,
"value": "ABC",
"unit": null,
"nested": []
},
{
"property": "https://brickschema.org/schema/Brick#powerFlow",
"key": null,
"value": "import",
"unit": null,
"nested": []
},
{
"property": "https://brickschema.org/schema/Brick#electricalPhaseCount",
"key": null,
"value": "3",
"unit": null,
"nested": []
},
{
"property": "https://brickschema.org/schema/Brick#powerComplexity",
"key": null,
"value": "real",
"unit": null,
"nested": []
}
],
"fullId": "dch:org/sandbox-eddf8c4b-a3a7-49a1-82d4-1e4821baca62/datapool/managed_datapool_walkthrough_datasource_390c330e-8335-4084-abf0-00d6daf87c5a#walkthrough_site.walkthrough_building.MSSB_Primary.Import_KWH"
}
]
}
}
Describe a known node based on ID
If you already know the node ID of the entity and would like a description of that node along with all of its relationships, you can use the describe query. The following query describes the node "VAV2" in the walkthrough model.
Copy {
"describe": {
"modelRef":{
"orgId":"sandbox-eddf8c4b-a3a7-49a1-82d4-1e4821baca62",
"siteId": "walkthrough_site",
"buildingId": "walkthrough_building"
},
"nodeId": "VAV2"
}
}
Response:
Copy {
"node": {
"modelRef": {
"orgId": "sandbox-eddf8c4b-a3a7-49a1-82d4-1e4821baca62",
"siteId": "walkthrough_site",
"buildingId": "walkthrough_building"
},
"nodeId": "VAV2"
},
"type": "VAV",
"hypernym": "Equipment",
"streamIds": [],
"properties": [],
"relatedNodes": [
{
"relationship": "hasPoint",
"node": {
"modelRef": {
"orgId": "sandbox-eddf8c4b-a3a7-49a1-82d4-1e4821baca62",
"dataPoolId": "managed_datapool_walkthrough_datasource_390c330e-8335-4084-abf0-00d6daf87c5a"
},
"nodeId": "walkthrough_site.walkthrough_building.VAV2.Enable"
},
"type": "Enable_Command",
"hypernym": "Point",
"unit": "unit:UNITLESS",
"label": "Enable",
"streamIds": [
"dsapi-freezing-steep-bug-walkthrough_site.walkthrough_building.VAV2.Enable"
],
"properties": []
},
...
{
"relationship": "feeds",
"node": {
"modelRef": {
"orgId": "sandbox-eddf8c4b-a3a7-49a1-82d4-1e4821baca62",
"siteId": "walkthrough_site",
"buildingId": "walkthrough_building"
},
"nodeId": "Western_Floor_1_Room_2"
},
"type": "Room",
"hypernym": "Location",
"streamIds": [],
"properties": []
}
]
}
Find all equipment with the BRICK class of AHU
This query finds all equipment that have the BRICK class of AHU and all its equivalent and subclasses (i.e. Air_Handling_Unit, Air_Handler_Unit, DDAHU, Rooftop Unit etc) by using the "isa" expression in the "match" field. If you wanted to target one specific class and not the equivalent and subclasses, you could replace "isa" with "equals".
Copy {
"models": [
{
"orgId":"sandbox-eddf8c4b-a3a7-49a1-82d4-1e4821baca62",
"siteId": "walkthrough_site",
"buildingId": "walkthrough_building"
}
],
"queryDef": {
"mode": "select",
"variables": [
{
"varType": "node",
"name": "equipment",
"output": true,
"fetch": ["id","type"],
"brickTypes": [
{"match":"isa", "type":"AHU"}
]
}
]
}
}
Response:
Copy {
"models": [
{
"orgId": "sandbox-eddf8c4b-a3a7-49a1-82d4-1e4821baca62",
"siteId": "walkthrough_site",
"buildingId": "walkthrough_building"
}
],
"variablesNames": [
"equipment"
],
"solutionNodes": {
"equipment": [
{
"varType": "node",
"modelIndex": 0,
"id": "AHU",
"type": "AHU",
"fullId": "dch:org/sandbox-eddf8c4b-a3a7-49a1-82d4-1e4821baca62/site/walkthrough_site/building/walkthrough_building#AHU"
}
]
}
}
Find all equipment with an ID filter
BRIQL also allows us to filter the results based on a specific ID on the node's properties. For this example we will query all nodes that are of BRICK type Equipment (equivalent and subclasses included), and then filter them for IDs that include the text "AHU".
Copy {
"models": [
{
"orgId":"sandbox-eddf8c4b-a3a7-49a1-82d4-1e4821baca62",
"siteId": "walkthrough_site",
"buildingId": "walkthrough_building"
}
],
"queryDef": {
"mode": "select",
"variables": [
{
"varType": "node",
"name": "equipment",
"output": true,
"fetch": ["id","type"],
"brickTypes": [
{"match":"isa", "type":"Equipment"}
],
"filterOn":["id"],
"filterString":"AHU"
}
]
}
}
Response:
Copy {
"models": [
{
"orgId": "sandbox-eddf8c4b-a3a7-49a1-82d4-1e4821baca62",
"siteId": "walkthrough_site",
"buildingId": "walkthrough_building"
}
],
"variablesNames": [
"equipment"
],
"solutionNodes": {
"equipment": [
{
"varType": "node",
"modelIndex": 0,
"id": "AHU",
"type": "AHU",
"fullId": "dch:org/sandbox-eddf8c4b-a3a7-49a1-82d4-1e4821baca62/site/walkthrough_site/building/walkthrough_building#AHU"
},
{
"varType": "node",
"modelIndex": 0,
"id": "AHU_Filter",
"type": "Filter",
"fullId": "dch:org/sandbox-eddf8c4b-a3a7-49a1-82d4-1e4821baca62/site/walkthrough_site/building/walkthrough_building#AHU_Filter"
},
...
{
"varType": "node",
"modelIndex": 0,
"id": "AHU_HWCoil",
"type": "Hot_Water_Coil",
"fullId": "dch:org/sandbox-eddf8c4b-a3a7-49a1-82d4-1e4821baca62/site/walkthrough_site/building/walkthrough_building#AHU_HWCoil"
}
]
}
}
Find all equipment with a submeter
Until now, we queried nodes based on their classes, node IDs and property fields such as ID. Next step is to declare a query path which can resolve node-to-node relationships to find your desired results. This examples will query all equipment that have a submeter and also returns the mapping between individual equipment and their submeters. We declare 2 separate nodes, "equipment" and "submeter", then inside query.paths we set the nodes and what relationship we want to query. In this case, an equipment (brick:Equipment) isMeteredBy a submeter (brick:Electrical_Meter).
Copy {
"models": [
{
"orgId":"sandbox-eddf8c4b-a3a7-49a1-82d4-1e4821baca62",
"siteId": "walkthrough_site",
"buildingId": "walkthrough_building"
}
],
"queryDef": {
"mode": "select",
"variables": [
{
"varType": "node",
"name": "equipment",
"output": true,
"fetch": ["id","type"],
"brickTypes": [
{"match":"isa", "type":"Equipment"}
]
},{
"varType": "node",
"name": "submeter",
"output": true,
"fetch": ["id","type"],
"brickTypes": [
{"match":"isa", "type":"Electrical_Meter"}
]
}
],
"query":{
"paths":[
{
"fromRef":"equipment",
"toRef":"submeter",
"properties":[
{
"property": "isMeteredBy"
}
]
}
]
}
}
}
Response:
Copy {
"models": [
{
"orgId": "sandbox-eddf8c4b-a3a7-49a1-82d4-1e4821baca62",
"siteId": "walkthrough_site",
"buildingId": "walkthrough_building"
}
],
"variablesNames": [
"equipment",
"submeter"
],
"solutionNodes": {
"equipment": [
{
"varType": "node",
"modelIndex": 0,
"id": "Chiller",
"type": "Chiller",
"fullId": "dch:org/sandbox-eddf8c4b-a3a7-49a1-82d4-1e4821baca62/site/walkthrough_site/building/walkthrough_building#Chiller"
},
{
"varType": "node",
"modelIndex": 0,
"id": "Boiler",
"type": "Boiler",
"fullId": "dch:org/sandbox-eddf8c4b-a3a7-49a1-82d4-1e4821baca62/site/walkthrough_site/building/walkthrough_building#Boiler"
},
{
"varType": "node",
"modelIndex": 0,
"id": "Inverter",
"type": "Inverter",
"fullId": "dch:org/sandbox-eddf8c4b-a3a7-49a1-82d4-1e4821baca62/site/walkthrough_site/building/walkthrough_building#Inverter"
}
],
"submeter": [
{
"varType": "node",
"modelIndex": 0,
"id": "M1_Chiller",
"type": "Electrical_Meter",
"fullId": "dch:org/sandbox-eddf8c4b-a3a7-49a1-82d4-1e4821baca62/site/walkthrough_site/building/walkthrough_building#M1_Chiller"
},
{
"varType": "node",
"modelIndex": 0,
"id": "M2_Boiler",
"type": "Electrical_Meter",
"fullId": "dch:org/sandbox-eddf8c4b-a3a7-49a1-82d4-1e4821baca62/site/walkthrough_site/building/walkthrough_building#M2_Boiler"
},
{
"varType": "node",
"modelIndex": 0,
"id": "M3_Gen",
"type": "Electrical_Generation_Meter",
"fullId": "dch:org/sandbox-eddf8c4b-a3a7-49a1-82d4-1e4821baca62/site/walkthrough_site/building/walkthrough_building#M3_Gen"
}
]
},
"solutionTable": [
{
"equipment": {
"varType": "reference",
"fullId": "dch:org/sandbox-eddf8c4b-a3a7-49a1-82d4-1e4821baca62/site/walkthrough_site/building/walkthrough_building#Chiller"
},
"submeter": {
"varType": "reference",
"fullId": "dch:org/sandbox-eddf8c4b-a3a7-49a1-82d4-1e4821baca62/site/walkthrough_site/building/walkthrough_building#M1_Chiller"
}
},
{
"equipment": {
"varType": "reference",
"fullId": "dch:org/sandbox-eddf8c4b-a3a7-49a1-82d4-1e4821baca62/site/walkthrough_site/building/walkthrough_building#Boiler"
},
"submeter": {
"varType": "reference",
"fullId": "dch:org/sandbox-eddf8c4b-a3a7-49a1-82d4-1e4821baca62/site/walkthrough_site/building/walkthrough_building#M2_Boiler"
}
},
{
"equipment": {
"varType": "reference",
"fullId": "dch:org/sandbox-eddf8c4b-a3a7-49a1-82d4-1e4821baca62/site/walkthrough_site/building/walkthrough_building#Inverter"
},
"submeter": {
"varType": "reference",
"fullId": "dch:org/sandbox-eddf8c4b-a3a7-49a1-82d4-1e4821baca62/site/walkthrough_site/building/walkthrough_building#M3_Gen"
}
}
]
}
Find all temperature and humidity points of a room or zone
For this query, we set a variable called "space" which can have the BRICK classes of Space, Floor and Zone. We also have separate variables for our Air_Temperature_Sensor and Humidity_Sensor. We then ask for the isPointOf relationship between both sensor variables and our "space" variable.
Copy {
"models": [
{
"orgId":"sandbox-eddf8c4b-a3a7-49a1-82d4-1e4821baca62",
"siteId": "walkthrough_site",
"buildingId": "walkthrough_building"
}
],
"queryDef": {
"mode": "select",
"variables": [
{
"varType": "node",
"name": "space",
"output": true,
"fetch": ["id"],
"brickTypes": [
{"match":"isa", "type":"Space"},
{"match":"isa", "type":"Floor"},
{"match":"isa", "type":"Zone"}
]
},
{
"varType": "node",
"name": "temperature_sensor",
"output": true,
"fetch": ["pointInfo"],
"brickTypes": [
{"match":"isa", "type":"Air_Temperature_Sensor"}
]
},
{
"varType": "node",
"name": "humidity_sensor",
"output": true,
"fetch": ["pointInfo"],
"brickTypes": [
{"match":"isa", "type":"Humidity_Sensor"}
]
}
],
"query":{
"paths":[
{
"fromRef":"space",
"toRef":"temperature_sensor",
"properties":[{"property":"hasPoint"}]
},
{
"fromRef":"space",
"toRef":"humidity_sensor",
"properties":[{"property":"hasPoint"}]
}
]
}
}
}
Response:
Copy {
"models": [
{
"orgId": "sandbox-eddf8c4b-a3a7-49a1-82d4-1e4821baca62",
"siteId": "walkthrough_site",
"buildingId": "walkthrough_building"
},
{
"orgId": "sandbox-eddf8c4b-a3a7-49a1-82d4-1e4821baca62",
"dataPoolId": "managed_datapool_walkthrough_datasource_390c330e-8335-4084-abf0-00d6daf87c5a"
}
],
"variablesNames": [
"space",
"temperature_sensor",
"humidity_sensor"
],
"solutionNodes": {
"space": [
{
"varType": "node",
"modelIndex": 0,
"id": "Western_Floor_1_Room_1",
"fullId": "dch:org/sandbox-eddf8c4b-a3a7-49a1-82d4-1e4821baca62/site/walkthrough_site/building/walkthrough_building#Western_Floor_1_Room_1"
},
...
],
"temperature_sensor": [
{
"varType": "node",
"modelIndex": 1,
"id": "walkthrough_site.walkthrough_building.TH1.Air_Temp",
"pointInfo": [],
"fullId": "dch:org/sandbox-eddf8c4b-a3a7-49a1-82d4-1e4821baca62/datapool/managed_datapool_walkthrough_datasource_390c330e-8335-4084-abf0-00d6daf87c5a#walkthrough_site.walkthrough_building.TH1.Air_Temp"
},
...
],
"humidity_sensor": [
{
"varType": "node",
"modelIndex": 1,
"id": "walkthrough_site.walkthrough_building.TH1.Air_Hum",
"pointInfo": [],
"fullId": "dch:org/sandbox-eddf8c4b-a3a7-49a1-82d4-1e4821baca62/datapool/managed_datapool_walkthrough_datasource_390c330e-8335-4084-abf0-00d6daf87c5a#walkthrough_site.walkthrough_building.TH1.Air_Hum"
},
...
]
},
"solutionTable": [
{
"space": {
"varType": "reference",
"fullId": "dch:org/sandbox-eddf8c4b-a3a7-49a1-82d4-1e4821baca62/site/walkthrough_site/building/walkthrough_building#Western_Floor_1_Room_1"
},
"temperature_sensor": {
"varType": "reference",
"fullId": "dch:org/sandbox-eddf8c4b-a3a7-49a1-82d4-1e4821baca62/datapool/managed_datapool_walkthrough_datasource_390c330e-8335-4084-abf0-00d6daf87c5a#walkthrough_site.walkthrough_building.TH1.Air_Temp"
},
"humidity_sensor": {
"varType": "reference",
"fullId": "dch:org/sandbox-eddf8c4b-a3a7-49a1-82d4-1e4821baca62/datapool/managed_datapool_walkthrough_datasource_390c330e-8335-4084-abf0-00d6daf87c5a#walkthrough_site.walkthrough_building.TH1.Air_Hum"
}
},
...
{
"space": {
"varType": "reference",
"fullId": "dch:org/sandbox-eddf8c4b-a3a7-49a1-82d4-1e4821baca62/site/walkthrough_site/building/walkthrough_building#HVAC_Zone_A"
},
"temperature_sensor": {
"varType": "reference",
"fullId": "dch:org/sandbox-eddf8c4b-a3a7-49a1-82d4-1e4821baca62/datapool/managed_datapool_walkthrough_datasource_390c330e-8335-4084-abf0-00d6daf87c5a#walkthrough_site.walkthrough_building.TH7.Air_Temp"
},
"humidity_sensor": {
"varType": "reference",
"fullId": "dch:org/sandbox-eddf8c4b-a3a7-49a1-82d4-1e4821baca62/datapool/managed_datapool_walkthrough_datasource_390c330e-8335-4084-abf0-00d6daf87c5a#walkthrough_site.walkthrough_building.TH7.Air_Hum"
}
}
]
}
Find all chillers and which AHUs they serve
Sometimes you require to find a path that are not to immediately adjacent nodes (e.g. Chiller -> CHWP -> CHWCoil). In this case we can define a number of steps you wish to propagate from the source node to the target node. Note "min":1 which tells the query to propagate at least one step from the chiller variable until it reaches a Chilled_Water_Coil.
Copy {
"models": [
{
"orgId":"sandbox-eddf8c4b-a3a7-49a1-82d4-1e4821baca62",
"siteId": "walkthrough_site",
"buildingId": "walkthrough_building"
}
],
"queryDef": {
"mode": "select",
"variables": [
{
"varType": "node",
"name": "chiller",
"output": true,
"fetch": ["id","type"],
"brickTypes": [
{"match":"isa", "type":"Chiller"}
]
},{
"varType": "node",
"name": "ahu_coil",
"output": true,
"fetch": ["id","type"],
"brickTypes": [
{"match":"isa", "type":"Chilled_Water_Coil"}
]
}
],
"query":{
"paths":[
{
"fromRef":"chiller",
"toRef":"ahu_coil",
"properties":[
{
"property": "feeds",
"min":1
}
]
}
]
}
}
}
Response:
Copy {
"models": [
{
"orgId": "sandbox-eddf8c4b-a3a7-49a1-82d4-1e4821baca62",
"siteId": "walkthrough_site",
"buildingId": "walkthrough_building"
}
],
"variablesNames": [
"chiller",
"ahu_coil"
],
"solutionNodes": {
"chiller": [
{
"varType": "node",
"modelIndex": 0,
"id": "Chiller",
"type": "Chiller",
"fullId": "dch:org/sandbox-eddf8c4b-a3a7-49a1-82d4-1e4821baca62/site/walkthrough_site/building/walkthrough_building#Chiller"
}
],
"ahu_coil": [
{
"varType": "node",
"modelIndex": 0,
"id": "AHU_CHWCoil",
"type": "Chilled_Water_Coil",
"fullId": "dch:org/sandbox-eddf8c4b-a3a7-49a1-82d4-1e4821baca62/site/walkthrough_site/building/walkthrough_building#AHU_CHWCoil"
},
...
]
},
"solutionTable": [
{
"chiller": {
"varType": "reference",
"fullId": "dch:org/sandbox-eddf8c4b-a3a7-49a1-82d4-1e4821baca62/site/walkthrough_site/building/walkthrough_building#Chiller"
},
"ahu_coil": {
"varType": "reference",
"fullId": "dch:org/sandbox-eddf8c4b-a3a7-49a1-82d4-1e4821baca62/site/walkthrough_site/building/walkthrough_building#AHU_CHWCoil"
}
}
...
]
}
Find the top level meters and the 3-phase real import energy point of those meters
This query aims to find the top level meter(s) in a building. Before we get started, we need to note some restrictions when dealing with electrical meters:
BRICK does NOT allow a brick:Meter to meter another brick:meter. Two meters can ONLY have a isSubMeterOf/hasSubMeter relationship with each other.
A top level meter by definition is a meter that is NOT a submeter of another meter.
By combining 1 and 2, we can say that a top level meter is a meter which is NOT a submeter of any other equipment regardless of their class. First, we need to use the "nested" block in our query because we have an OPTIONAL node of "anyOtherMeter" which we don't really care about, we just want to use it as a placeholder node to ensure out top level meter is not a submeter of any other node. Next, we set "retain":"absent" to look for meters that do NOT have that specified path.
Additionally, we don't just want the top level meter(s), we want the 3-phase real import energy point of the top level meter(s). This information is declared in the entity property of the target point. We use the "fetchPoints" field to declare the properties we care about (i.e. powerComplexity, powerFlow, electricalPhases and electricalPhaseCount). The "pointsOptional" field is to allow for meters that do not necessarily have a point onboarded, but are identified as the top level meter to return in our response. Finally, we add "pointInfo" to our "fetch" field to get our desired point back.
Copy {
"models": [
{
"orgId":"sandbox-eddf8c4b-a3a7-49a1-82d4-1e4821baca62",
"siteId": "walkthrough_site",
"buildingId": "walkthrough_building"
}
],
"queryDef": {
"mode": "select",
"variables": [
{
"varType": "node",
"name": "buildingMeter",
"output": true,
"fetch": [
"id",
"type",
"pointInfo"
],
"brickType": {
"match": "isa",
"type": "Electrical_Meter"
},
"pointsOptional":true,
"fetchPoints": [
{
"match": "isa",
"type": "Electric_Energy_Sensor",
"hasAllProperties": [
{
"property": {
"prefixed": "brick:powerComplexity"
},
"strval": "real"
},{
"property": {
"prefixed": "brick:powerFlow"
},
"strval": "export"
},{
"property": {
"prefixed": "brick:electricalPhases"
},
"strval": "ABC"
},{
"property": {
"prefixed": "brick:electricalPhaseCount"
},
"strval": "3"
}
]
}
]
}
],
"query": {
"nested": [
{
"paths": [
{
"fromRef": "anyOtherMeter",
"properties": [
{
"property": "hasSubMeter"
}
],
"toRef": "buildingMeter"
}
],
"retain": "absent"
}
]
}
}
}
Response:
Copy {
"models": [
{
"orgId": "sandbox-eddf8c4b-a3a7-49a1-82d4-1e4821baca62",
"siteId": "walkthrough_site",
"buildingId": "walkthrough_building"
}
],
"variablesNames": [
"buildingMeter"
],
"solutionNodes": {
"buildingMeter": [
{
"varType": "node",
"modelIndex": 0,
"id": "MSSB_Primary",
"type": "Building_Electrical_Meter",
"pointInfo": [
{
"type": "Electric_Energy_Sensor",
"point": "dch:org/sandbox-eddf8c4b-a3a7-49a1-82d4-1e4821baca62/datapool/managed_datapool_walkthrough_datasource_390c330e-8335-4084-abf0-00d6daf87c5a#walkthrough_site.walkthrough_building.MSSB_Primary.Export_KWH",
"streams": [
"dsapi-freezing-steep-bug-walkthrough_site.walkthrough_building.MSSB_Primary.Export_KWH"
],
"entityProperties": [
{
"property": "https://brickschema.org/schema/Brick#electricalPhaseCount",
"key": null,
"value": "3",
"unit": null,
"nested": []
},
{
"property": "https://brickschema.org/schema/Brick#electricalPhases",
"key": null,
"value": "ABC",
"unit": null,
"nested": []
},
{
"property": "https://brickschema.org/schema/Brick#powerFlow",
"key": null,
"value": "export",
"unit": null,
"nested": []
},
{
"property": "https://brickschema.org/schema/Brick#powerComplexity",
"key": null,
"value": "real",
"unit": null,
"nested": []
}
],
"unit": "unit:KiloW-HR"
}
],
"fullId": "dch:org/sandbox-eddf8c4b-a3a7-49a1-82d4-1e4821baca62/site/walkthrough_site/building/walkthrough_building#MSSB_Primary"
}
]
}
}