Ga naar hoofdinhoud

weScan JSON Schema — Nijbegun Isolatieplan

This document describes the JSON format exported by weScan and imported into the Nijbegun insulation plan intake form.

Purpose

Once an advisor has created a customer and a building (with its rekenzone) in Nij Begun, they can upload a JSON file exported from weScan. This automatically fills in building elements, dimensions, and orientations in the intake form — removing the need to enter this data twice.

The import covers building geometry. Insulation values and installations still need to be filled in manually by the advisor. Adjacency defaults to outside air and should be verified per element.

Top-Level Fields

All top-level fields are optional. When present, they are applied to the existing building object/zone.

FieldTypeUnitDescription
building_yearstringConstruction year, e.g. "1978"
building_heightstringmTotal building height, e.g. "6.2"
building_layersarray of stringsGebruiksoppervlak per bouwlaag (floor area per storey), e.g. ["48.0", "44.0"]
childrenGroupsarray of elementsBuilding elements — see below

All numeric values must be strings, e.g. "28.0" not 28.0.

Building Elements (childrenGroups)

Each element in childrenGroups has the following structure:

{
"type": "walls",
"name": "Voorgevel",
"additionalFields": { ... },
"childrenGroups": [ ... ]
}

Common Fields

FieldRequiredTypeDescription
typeYesstring (enum)Element type — see Element Types
nameNostringDisplay label in the intake form. Defaults to the Dutch element type name if omitted ("Gevel", "Vloer", "Dak", "Raam", "Deur", "Paneel").
additionalFieldsNoobjectGeometry properties — all values must be strings. Omit the key entirely if no geometry is provided.
childrenGroupsNoarrayChild elements (openings inside this element). Defaults to [] if omitted.

additionalFields per Element Type

All fields inside additionalFields are optional. Omitted fields are left blank in the intake form and must be filled in manually.

FieldUnitApplies toDescription
surface_areaAll typesGross area including any openings
heightmAll typesElement height
widthmAll typesElement width
cardinal_pointwalls, roof, windowOrientation — see Cardinal Points. Defaults to s.
inclination°walls, floor, roofTilt angle: 0 = flat, 90 = vertical. Subgeometries inherit the parent value when omitted. Defaults: wall=90, sloped roof=45, floor/flat roof=0.
adjacencywalls, floor, roofAdjoining space — see Adjacency Types. Defaults to buitenlucht when omitted.
perimetermfloorPerimeter of the floor element
glass_insulationwindowGlass type — see Glass Types
windowFrameKindwindow, panelFrame material — see Frame Types

GUIDs and index values are auto-generated on import — do not include them in the JSON.

Element Types

ValueDefault nameDescription
wallsGevelFacade / exterior wall
floorVloerGround floor or intermediate floor
roofDakSloped or flat roof
windowRaamWindow (child of walls or roof)
doorDeurDoor (child of walls)
panelPaneelOpaque panel in a facade (child of walls)

Windows and doors are nested as childrenGroups inside their parent wall or roof element.

Cardinal Points

ValueDutch
nNoord
neNoordoost
eOost
seZuidoost
sZuid (default)
swZuidwest
wWest
nwNoordwest

Glass Types

Applies to window elements only via glass_insulation.

ValueDescription
enkelGlasEnkel glas
dubbelGlasDubbel glas
hrGlasdubbelGlasMetCoatingHR glas
hrPlusGlasHR+ glas
hrPlusPlusGlasHR++ glas
tripleHrGlasDriedubbel glas

Full Example

{
"building_year": "1978",
"building_height": "6.2",
"building_layers": ["48.0", "44.0"],
"childrenGroups": [
{
"type": "walls",
"name": "Voorgevel",
"additionalFields": {
"surface_area": "28.0",
"height": "5.4",
"width": "5.2",
"cardinal_point": "s"
},
"childrenGroups": [
{
"type": "window",
"name": "Raam woonkamer",
"additionalFields": {
"surface_area": "3.6",
"height": "1.5",
"width": "2.4",
"glass_insulation": "hrPlusPlusGlas"
}
},
{
"type": "door",
"name": "Voordeur",
"additionalFields": {
"surface_area": "1.98",
"height": "2.2",
"width": "0.9"
}
},
{
"type": "panel",
"additionalFields": {
"surface_area": "0.5",
"height": "0.5",
"width": "1.0"
}
}
]
},
{
"type": "walls",
"additionalFields": {
"surface_area": "38.0",
"height": "5.4",
"width": "7.0",
"cardinal_point": "e"
}
},
{
"type": "floor",
"name": "Begane grondvloer",
"additionalFields": {
"surface_area": "48.0",
"height": "8.0",
"width": "6.0",
"perimeter": "28.0"
}
},
{
"type": "roof",
"name": "Hellend dak voor",
"additionalFields": {
"surface_area": "30.0",
"height": "5.0",
"width": "6.0",
"cardinal_point": "s"
},
"childrenGroups": [
{
"type": "window",
"additionalFields": {
"surface_area": "0.9",
"height": "0.9",
"width": "1.0",
"glass_insulation": "dubbelGlas"
}
}
]
},
{
"type": "roof",
"additionalFields": {
"surface_area": "8.0",
"height": "4.0",
"width": "2.0"
}
}
]
}

Adjacency Types

Applies to walls, floor, and roof elements via adjacency. Defaults to buitenlucht when omitted.

ValueDescription
buitenluchtOutside air (default)
grondGround
kruipruimteCrawl space
aangrenzendeOnverwarmdeRuimteAdjacent unheated space
aangrenzendeOnverwarmdeSerreAdjacent unheated conservatory
aangrenzendeSterkGeventileerdeRuimteAdjacent strongly ventilated space
aangrenzendeOnverwarmdeKelderAdjacent unheated basement
aangrenzendeVerwarmdeRuimteAdjacent heated space

Frame Types

Applies to window and panel elements via windowFrameKind.

ValueDescription
woodOrPlasticWood or plastic frame
metalThermallyBrokenMetal, thermally broken
metalNonThermallyBrokenMetal, not thermally broken

Validation Rules

  • type is the only required field per element; all other fields are optional
  • If name is omitted, the import assigns the Dutch default for the element type
  • If childrenGroups is omitted, it defaults to an empty list
  • All additionalFields values must be strings, not numbers
  • glass_insulation only applies to window elements
  • windowFrameKind applies to window and panel elements
  • inclination applies to walls, floor, and roof; subgeometries inherit from parent
  • adjacency applies to walls, floor, and roof; defaults to buitenlucht when omitted
  • perimeter only applies to floor elements
  • cardinal_point defaults to s when omitted on walls and roofs
  • Only window, door, and panel elements may appear as children of walls or roof