Request Data Format
BuEM accepts building data in GeoJSON format. This section details the exact structure and requirements for API requests.
GeoJSON Structure
Top Level
{
"type": "FeatureCollection",
"timeStamp": "2018-01-22T00:00:00Z",
"numberMatched": 1,
"numberReturned": 1,
"features": [/* ... */]
}
Feature Structure
Each building is represented as a GeoJSON Feature:
{
"type": "Feature",
"id": "B001",
"geometry": {
"type": "Point",
"coordinates": [-0.1278, 51.5074]
},
"properties": {
"buem": {
"building_attributes": {/* ... */},
"use_milp": false
}
}
}
Required Fields
Field |
Type |
Description |
|---|---|---|
|
string |
Must be “Feature” or “FeatureCollection” |
|
string |
Unique identifier for the building |
|
object |
GeoJSON geometry (Point recommended) |
|
object |
Building configuration parameters |
Building Attributes Structure
The building_attributes object contains all building configuration data:
Basic Properties
{
"latitude": 51.5074,
"longitude": -0.1278,
"A_ref": 100.0,
"h_room": 2.5
}
Components Structure
The components object defines building envelope elements:
{
"components": {
"Walls": {
"U": 1.6,
"elements": [
{
"id": "Wall_1",
"area": 50.0,
"azimuth": 0.0,
"tilt": 0.0
}
]
},
"Roof": {
"U": 1.5,
"elements": [
{
"id": "Roof_1",
"area": 40.0,
"azimuth": 180.0,
"tilt": 30.0
}
]
},
"Floor": {
"U": 1.7,
"elements": [
{
"id": "Floor_1",
"area": 100.0,
"azimuth": 0.0,
"tilt": 90.0
}
]
},
"Windows": {
"U": 2.5,
"g_gl": 0.5,
"elements": [
{
"id": "Win_1",
"area": 8.0,
"surface": "Wall_1",
"azimuth": 0.0,
"tilt": 0.0
}
]
},
"Doors": {
"U": 3.5,
"elements": [
{
"id": "Door_1",
"area": 2.0,
"surface": "Wall_1",
"azimuth": 0.0,
"tilt": 0.0
}
]
},
"Ventilation": {
"elements": [
{
"id": "Vent_1",
"air_changes": 0.5
}
]
}
}
}
Component Types
Walls
Field |
Type |
Required |
Description |
|---|---|---|---|
|
number |
Yes |
U-value (W/m²K) |
|
number |
No |
Transmission adjustment factor (default: 1.0) |
|
string |
Yes |
Unique element identifier |
|
number |
Yes |
Element area (m²) |
|
number |
Yes |
Orientation angle (degrees, 0=North) |
|
number |
Yes |
Tilt angle (degrees, 0=horizontal, 90=vertical) |
Roof
Same structure as Walls.
Floor
Same structure as Walls.
Windows
Field |
Type |
Required |
Description |
|---|---|---|---|
|
number |
Yes |
U-value (W/m²K) |
|
number |
Yes |
Solar energy transmittance (0-1) |
|
string |
No |
ID of parent surface element |
Doors
Same structure as Walls.
Ventilation
Field |
Type |
Required |
Description |
|---|---|---|---|
|
number |
Yes |
Air changes per hour |
Optional Configuration
Occupancy Settings
{
"num_persons": 4,
"year": 2018,
"seed": 12345,
"use_provided_elecLoad": false
}
Comfort Settings
{
"comfortT_lb": 21.0,
"comfortT_ub": 24.0,
"thermalClass": "medium"
}
Advanced Options
{
"use_milp": false,
"design_T_min": -12.0,
"n_air_infiltration": 0.5
}
Complete Example
Here’s a complete minimal request:
{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"id": "B001",
"geometry": { "type": "Point", "coordinates": [-0.1278, 51.5074] },
"properties": {
"buem": {
"building_attributes": {
"latitude": 51.5074,
"longitude": -0.1278,
"A_ref": 100.0,
"h_room": 2.5,
"components": {
"Walls": {
"U": 1.6,
"elements": [
{ "id": "Wall_1", "area": 50.0, "azimuth": 0.0, "tilt": 0.0 }
]
},
"Roof": {
"U": 1.5,
"elements": [
{ "id": "Roof_1", "area": 40.0, "azimuth": 180.0, "tilt": 30.0 }
]
},
"Floor": {
"U": 1.7,
"elements": [
{ "id": "Floor_1", "area": 100.0, "azimuth": 0.0, "tilt": 90.0 }
]
},
"Windows": {
"U": 2.5,
"g_gl": 0.5,
"elements": [
{ "id": "Win_1", "area": 8.0, "surface": "Wall_1", "azimuth": 0.0, "tilt": 0.0 }
]
},
"Ventilation": {
"elements": [
{ "id": "Vent_1", "air_changes": 0.5 }
]
}
}
}
}
}
}
]
}
Validation Rules
Coordinate System - Latitude: -90 to 90 degrees - Longitude: -180 to 180 degrees - Azimuth: 0 to 360 degrees (0 = North, 90 = East, 180 = South, 270 = West) - Tilt: 0 to 90 degrees (0 = horizontal, 90 = vertical)
Physical Constraints - All areas must be positive numbers - U-values must be positive - g_gl values must be between 0 and 1 - Air changes must be positive
Component Requirements - At least one element required for each component type - Window elements should reference valid wall surfaces - Total window area should not exceed parent wall area
Next Steps
Continue to Response Format to understand the output data format.