From dabd3eccf35f46bf3fcb103b885075a940476360 Mon Sep 17 00:00:00 2001 From: ggartside Date: Thu, 5 Jan 2023 11:36:06 +0100 Subject: [PATCH] Add test for #4764 --- resources/CMakeLists.txt | 2 + resources/utilities/Geometry/issue-4323.json | 7856 +++++++++++++++++ resources/utilities/Geometry/shadingtest.json | 763 ++ .../FloorspaceReverseTranslator_GTest.cpp | 122 +- 4 files changed, 8717 insertions(+), 26 deletions(-) create mode 100644 resources/utilities/Geometry/issue-4323.json create mode 100644 resources/utilities/Geometry/shadingtest.json diff --git a/resources/CMakeLists.txt b/resources/CMakeLists.txt index ca59c74f600..e3e655caba2 100644 --- a/resources/CMakeLists.txt +++ b/resources/CMakeLists.txt @@ -68,6 +68,8 @@ set(utilities_resources_src utilities/Geometry/surface_match_floorplan.json utilities/Geometry/threejs.json utilities/Geometry/window_floorplan.json + utilities/Geometry/issue-4323.json + utilities/Geometry/shadingtest.json utilities/Geometry/minimal_GLTF_File.gltf utilities/Geometry/7-7_Windows_Complete.gltf utilities/Geometry/15023_Model12.gltf diff --git a/resources/utilities/Geometry/issue-4323.json b/resources/utilities/Geometry/issue-4323.json new file mode 100644 index 00000000000..5d96df641af --- /dev/null +++ b/resources/utilities/Geometry/issue-4323.json @@ -0,0 +1,7856 @@ +{ + "option_name": "Option1", + "project": { + "footprintID": "a7b3-a7fe-90bf-a1f0", + "config": { + "units": "ip", + "unitsEditable": true, + "language": "EN-US" + }, + "north_axis": 61.45759144759188, + "ground": { + "floor_offset": 0, + "azimuth_angle": 0, + "tilt_slope": 0 + }, + "grid": { + "visible": true, + "spacing": 2 + }, + "view": { + "min_x": -167.58460037949397, + "max_x": 379.45067252175769, + "min_y": -239.69919444379503, + "max_y": 394.32639708395529 + }, + "map": { + "initialized": true, + "enabled": true, + "visible": true, + "latitude": 30.29223399286647, + "longitude": -97.73211210695526, + "zoom": 4.5, + "rotation": 1.072637321105987, + "elevation": 0 + }, + "previous_story": { + "visible": true + }, + "show_import_export": true + }, + "stories": [ + { + "id": "1", + "handle": null, + "name": "Story 1", + "image_id": null, + "below_floor_plenum_height": 0, + "floor_to_ceiling_height": 10, + "above_ceiling_plenum_height": 0, + "multiplier": 1, + "color": "#88ccee", + "geometry": { + "id": "2", + "vertices": [ + { + "id": "27", + "x": 106, + "y": 18, + "edge_ids": [ + "31", + "34", + "43" + ] + }, + { + "id": "28", + "x": 40, + "y": 18, + "edge_ids": [ + "31", + "102" + ] + }, + { + "id": "29", + "x": 40, + "y": 28, + "edge_ids": [ + "157", + "179" + ] + }, + { + "id": "30", + "x": 106, + "y": 28, + "edge_ids": [ + "34", + "180" + ] + }, + { + "id": "37", + "x": 10, + "y": 18, + "edge_ids": [ + "41", + "103", + "107", + "122" + ] + }, + { + "id": "38", + "x": 10, + "y": 6, + "edge_ids": [ + "41", + "78", + "82", + "88" + ] + }, + { + "id": "39", + "x": 106, + "y": 6, + "edge_ids": [ + "43", + "62" + ] + }, + { + "id": "47", + "x": 98, + "y": 6, + "edge_ids": [ + "59", + "66" + ] + }, + { + "id": "56", + "x": 98, + "y": -12, + "edge_ids": [ + "59", + "60", + "76" + ] + }, + { + "id": "57", + "x": 106, + "y": -12, + "edge_ids": [ + "60", + "62" + ] + }, + { + "id": "64", + "x": 40, + "y": 6, + "edge_ids": [ + "66", + "79" + ] + }, + { + "id": "72", + "x": 36, + "y": 6, + "edge_ids": [ + "75", + "78", + "79" + ] + }, + { + "id": "73", + "x": 36, + "y": -12, + "edge_ids": [ + "75", + "76", + "83" + ] + }, + { + "id": "81", + "x": 10, + "y": -12, + "edge_ids": [ + "82", + "83", + "90" + ] + }, + { + "id": "86", + "x": -2, + "y": 6, + "edge_ids": [ + "88", + "89" + ] + }, + { + "id": "87", + "x": -2, + "y": -12, + "edge_ids": [ + "89", + "90", + "152" + ] + }, + { + "id": "93", + "x": 36, + "y": 26, + "edge_ids": [ + "100", + "135" + ] + }, + { + "id": "94", + "x": 26, + "y": 26, + "edge_ids": [ + "98", + "130" + ] + }, + { + "id": "95", + "x": 26, + "y": 18, + "edge_ids": [ + "98", + "99", + "103" + ] + }, + { + "id": "96", + "x": 36, + "y": 18, + "edge_ids": [ + "99", + "100", + "102" + ] + }, + { + "id": "105", + "x": 10, + "y": 26, + "edge_ids": [ + "107", + "125" + ] + }, + { + "id": "117", + "x": 10, + "y": 28, + "edge_ids": [ + "125", + "169", + "1342" + ] + }, + { + "id": "118", + "x": -8, + "y": 28, + "edge_ids": [ + "121", + "140", + "1324" + ] + }, + { + "id": "119", + "x": -8, + "y": 18, + "edge_ids": [ + "121", + "122" + ] + }, + { + "id": "126", + "x": 26, + "y": 28, + "edge_ids": [ + "130", + "168", + "171" + ] + }, + { + "id": "131", + "x": 36, + "y": 28, + "edge_ids": [ + "135", + "157", + "170" + ] + }, + { + "id": "137", + "x": -30, + "y": 28, + "edge_ids": [ + "140", + "141" + ] + }, + { + "id": "138", + "x": -30, + "y": -12, + "edge_ids": [ + "141", + "142" + ] + }, + { + "id": "139", + "x": -8, + "y": -12, + "edge_ids": [ + "142", + "152" + ] + }, + { + "id": "159", + "x": 20, + "y": 28, + "edge_ids": [ + "168", + "169" + ] + }, + { + "id": "160", + "x": 32, + "y": 28, + "edge_ids": [ + "170", + "171" + ] + }, + { + "id": "173", + "x": 44, + "y": 28, + "edge_ids": [ + "179", + "180", + "1410" + ] + }, + { + "id": "753", + "x": 145, + "y": 322, + "edge_ids": [ + "757", + "760" + ] + }, + { + "id": "754", + "x": 244, + "y": 322, + "edge_ids": [ + "757", + "758" + ] + }, + { + "id": "755", + "x": 244, + "y": 260, + "edge_ids": [ + "758", + "759" + ] + }, + { + "id": "756", + "x": 145, + "y": 260, + "edge_ids": [ + "759", + "760" + ] + }, + { + "id": "763", + "x": -43, + "y": -56, + "edge_ids": [ + "767", + "770" + ] + }, + { + "id": "764", + "x": -11, + "y": -56, + "edge_ids": [ + "767", + "768" + ] + }, + { + "id": "765", + "x": -11, + "y": -127, + "edge_ids": [ + "768", + "769" + ] + }, + { + "id": "766", + "x": -43, + "y": -127, + "edge_ids": [ + "769", + "770" + ] + }, + { + "id": "773", + "x": 0, + "y": -53, + "edge_ids": [ + "777", + "780" + ] + }, + { + "id": "774", + "x": 20, + "y": -53, + "edge_ids": [ + "777", + "778" + ] + }, + { + "id": "775", + "x": 20, + "y": -73, + "edge_ids": [ + "778", + "779" + ] + }, + { + "id": "776", + "x": 0, + "y": -73, + "edge_ids": [ + "779", + "780" + ] + }, + { + "id": "783", + "x": 14, + "y": -93, + "edge_ids": [ + "787", + "790" + ] + }, + { + "id": "784", + "x": 50, + "y": -93, + "edge_ids": [ + "787", + "788" + ] + }, + { + "id": "785", + "x": 50, + "y": -128, + "edge_ids": [ + "788", + "789" + ] + }, + { + "id": "786", + "x": 14, + "y": -128, + "edge_ids": [ + "789", + "790" + ] + }, + { + "id": "803", + "x": 77, + "y": -81, + "edge_ids": [ + "807", + "810" + ] + }, + { + "id": "804", + "x": 119, + "y": -81, + "edge_ids": [ + "807", + "808" + ] + }, + { + "id": "805", + "x": 119, + "y": -110, + "edge_ids": [ + "808", + "809" + ] + }, + { + "id": "806", + "x": 77, + "y": -110, + "edge_ids": [ + "809", + "810" + ] + }, + { + "id": "813", + "x": 126, + "y": -43, + "edge_ids": [ + "817", + "820" + ] + }, + { + "id": "814", + "x": 153, + "y": -43, + "edge_ids": [ + "817", + "818" + ] + }, + { + "id": "815", + "x": 153, + "y": -74, + "edge_ids": [ + "818", + "819" + ] + }, + { + "id": "816", + "x": 126, + "y": -74, + "edge_ids": [ + "819", + "820" + ] + }, + { + "id": "823", + "x": 143, + "y": -88, + "edge_ids": [ + "827", + "830" + ] + }, + { + "id": "824", + "x": 178, + "y": -88, + "edge_ids": [ + "827", + "828" + ] + }, + { + "id": "825", + "x": 178, + "y": -130, + "edge_ids": [ + "828", + "829" + ] + }, + { + "id": "826", + "x": 143, + "y": -130, + "edge_ids": [ + "829", + "830" + ] + }, + { + "id": "833", + "x": 163, + "y": -48, + "edge_ids": [ + "837", + "840" + ] + }, + { + "id": "834", + "x": 179, + "y": -48, + "edge_ids": [ + "837", + "838" + ] + }, + { + "id": "835", + "x": 179, + "y": -62, + "edge_ids": [ + "838", + "839" + ] + }, + { + "id": "836", + "x": 163, + "y": -62, + "edge_ids": [ + "839", + "840" + ] + }, + { + "id": "844", + "x": 236, + "y": -103, + "edge_ids": [ + "848", + "851" + ] + }, + { + "id": "845", + "x": 308, + "y": -103, + "edge_ids": [ + "848", + "849" + ] + }, + { + "id": "846", + "x": 308, + "y": -153, + "edge_ids": [ + "849", + "850" + ] + }, + { + "id": "847", + "x": 236, + "y": -153, + "edge_ids": [ + "850", + "851" + ] + }, + { + "id": "1162", + "x": 84, + "y": 207, + "edge_ids": [ + "1190", + "1217" + ] + }, + { + "id": "1163", + "x": 58, + "y": 191, + "edge_ids": [ + "1190", + "1191" + ] + }, + { + "id": "1164", + "x": 68, + "y": 174, + "edge_ids": [ + "1191", + "1192" + ] + }, + { + "id": "1165", + "x": 58, + "y": 168, + "edge_ids": [ + "1192", + "1193" + ] + }, + { + "id": "1166", + "x": 88, + "y": 122, + "edge_ids": [ + "1193", + "1194" + ] + }, + { + "id": "1167", + "x": 96, + "y": 127, + "edge_ids": [ + "1194", + "1195" + ] + }, + { + "id": "1168", + "x": 103, + "y": 117, + "edge_ids": [ + "1195", + "1196" + ] + }, + { + "id": "1169", + "x": 100, + "y": 115, + "edge_ids": [ + "1196", + "1197" + ] + }, + { + "id": "1170", + "x": 104, + "y": 108, + "edge_ids": [ + "1197", + "1198" + ] + }, + { + "id": "1171", + "x": 75, + "y": 88, + "edge_ids": [ + "1198", + "1199" + ] + }, + { + "id": "1172", + "x": 105, + "y": 43, + "edge_ids": [ + "1199", + "1200" + ] + }, + { + "id": "1173", + "x": 139, + "y": 68, + "edge_ids": [ + "1200", + "1201" + ] + }, + { + "id": "1174", + "x": 160, + "y": 38, + "edge_ids": [ + "1201", + "1202" + ] + }, + { + "id": "1175", + "x": 191, + "y": 36, + "edge_ids": [ + "1202", + "1203" + ] + }, + { + "id": "1176", + "x": 190, + "y": 23, + "edge_ids": [ + "1203", + "1204" + ] + }, + { + "id": "1177", + "x": 244, + "y": 14, + "edge_ids": [ + "1204", + "1205" + ] + }, + { + "id": "1178", + "x": 245, + "y": 25, + "edge_ids": [ + "1205", + "1206" + ] + }, + { + "id": "1179", + "x": 265, + "y": 22, + "edge_ids": [ + "1206", + "1207" + ] + }, + { + "id": "1180", + "x": 264, + "y": 11, + "edge_ids": [ + "1207", + "1208" + ] + }, + { + "id": "1181", + "x": 318, + "y": 2, + "edge_ids": [ + "1208", + "1209" + ] + }, + { + "id": "1182", + "x": 321, + "y": 12, + "edge_ids": [ + "1209", + "1210" + ] + }, + { + "id": "1183", + "x": 345, + "y": 10, + "edge_ids": [ + "1210", + "1211" + ] + }, + { + "id": "1184", + "x": 348, + "y": 40, + "edge_ids": [ + "1211", + "1212" + ] + }, + { + "id": "1185", + "x": 341, + "y": 41, + "edge_ids": [ + "1212", + "1213" + ] + }, + { + "id": "1186", + "x": 341, + "y": 195, + "edge_ids": [ + "1213", + "1214" + ] + }, + { + "id": "1187", + "x": 283, + "y": 196, + "edge_ids": [ + "1214", + "1215" + ] + }, + { + "id": "1188", + "x": 281, + "y": 56, + "edge_ids": [ + "1215", + "1216" + ] + }, + { + "id": "1189", + "x": 179, + "y": 70, + "edge_ids": [ + "1216", + "1217" + ] + }, + { + "id": "1220", + "x": -33, + "y": 272, + "edge_ids": [ + "1224", + "1227" + ] + }, + { + "id": "1221", + "x": 21, + "y": 272, + "edge_ids": [ + "1224", + "1225" + ] + }, + { + "id": "1222", + "x": 21, + "y": 203, + "edge_ids": [ + "1225", + "1226" + ] + }, + { + "id": "1223", + "x": -33, + "y": 203, + "edge_ids": [ + "1226", + "1227" + ] + }, + { + "id": "1293", + "x": 44, + "y": 169, + "edge_ids": [ + "1307", + "1357", + "1403" + ] + }, + { + "id": "1301", + "x": 4, + "y": 169, + "edge_ids": [ + "1305", + "1357", + "1401" + ] + }, + { + "id": "1302", + "x": 4, + "y": 202, + "edge_ids": [ + "1305", + "1306" + ] + }, + { + "id": "1303", + "x": 44, + "y": 202, + "edge_ids": [ + "1306", + "1307" + ] + }, + { + "id": "1318", + "x": 4, + "y": 28, + "edge_ids": [ + "1324", + "1415" + ] + }, + { + "id": "1334", + "x": 9, + "y": 45, + "edge_ids": [ + "1337", + "1416" + ] + }, + { + "id": "1335", + "x": 44, + "y": 45, + "edge_ids": [ + "1337", + "1404", + "1410" + ] + }, + { + "id": "1336", + "x": 9, + "y": 28, + "edge_ids": [ + "1342", + "1414" + ] + }, + { + "id": "1395", + "x": 49, + "y": 169, + "edge_ids": [ + "1399", + "1403" + ] + }, + { + "id": "1396", + "x": 49, + "y": 45, + "edge_ids": [ + "1399", + "1404" + ] + }, + { + "id": "1397", + "x": 4, + "y": 45, + "edge_ids": [ + "1401", + "1417" + ] + }, + { + "id": "1407", + "x": 7, + "y": 45, + "edge_ids": [ + "1412", + "1416", + "1417" + ] + }, + { + "id": "1408", + "x": 7, + "y": 28, + "edge_ids": [ + "1412", + "1414", + "1415" + ] + }, + { + "id": "1439", + "x": -46, + "y": 20, + "edge_ids": [ + "1443", + "1446" + ] + }, + { + "id": "1440", + "x": -66, + "y": 20, + "edge_ids": [ + "1443", + "1444" + ] + }, + { + "id": "1441", + "x": -66, + "y": 40, + "edge_ids": [ + "1444", + "1445" + ] + }, + { + "id": "1442", + "x": -46, + "y": 40, + "edge_ids": [ + "1445", + "1446" + ] + }, + { + "id": "1449", + "x": -48, + "y": 42, + "edge_ids": [ + "1453", + "1456" + ] + }, + { + "id": "1450", + "x": -28, + "y": 42, + "edge_ids": [ + "1453", + "1454" + ] + }, + { + "id": "1451", + "x": -28, + "y": 63, + "edge_ids": [ + "1454", + "1455" + ] + }, + { + "id": "1452", + "x": -48, + "y": 63, + "edge_ids": [ + "1455", + "1456" + ] + } + ], + "edges": [ + { + "id": "31", + "vertex_ids": [ + "27", + "28" + ], + "face_ids": [ + "35", + "44" + ] + }, + { + "id": "34", + "vertex_ids": [ + "30", + "27" + ], + "face_ids": [ + "35" + ] + }, + { + "id": "41", + "vertex_ids": [ + "37", + "38" + ], + "face_ids": [ + "44", + "144" + ] + }, + { + "id": "43", + "vertex_ids": [ + "39", + "27" + ], + "face_ids": [ + "44" + ] + }, + { + "id": "59", + "vertex_ids": [ + "47", + "56" + ], + "face_ids": [ + "44", + "77" + ] + }, + { + "id": "60", + "vertex_ids": [ + "56", + "57" + ], + "face_ids": [ + "44" + ] + }, + { + "id": "62", + "vertex_ids": [ + "57", + "39" + ], + "face_ids": [ + "44" + ] + }, + { + "id": "66", + "vertex_ids": [ + "47", + "64" + ], + "face_ids": [ + "44", + "77" + ] + }, + { + "id": "75", + "vertex_ids": [ + "72", + "73" + ], + "face_ids": [ + "77", + "84" + ] + }, + { + "id": "76", + "vertex_ids": [ + "73", + "56" + ], + "face_ids": [ + "77" + ] + }, + { + "id": "78", + "vertex_ids": [ + "38", + "72" + ], + "face_ids": [ + "44", + "84" + ] + }, + { + "id": "79", + "vertex_ids": [ + "72", + "64" + ], + "face_ids": [ + "44", + "77" + ] + }, + { + "id": "82", + "vertex_ids": [ + "38", + "81" + ], + "face_ids": [ + "84", + "91" + ] + }, + { + "id": "83", + "vertex_ids": [ + "81", + "73" + ], + "face_ids": [ + "84" + ] + }, + { + "id": "88", + "vertex_ids": [ + "38", + "86" + ], + "face_ids": [ + "91", + "144" + ] + }, + { + "id": "89", + "vertex_ids": [ + "86", + "87" + ], + "face_ids": [ + "91", + "144" + ] + }, + { + "id": "90", + "vertex_ids": [ + "87", + "81" + ], + "face_ids": [ + "91" + ] + }, + { + "id": "98", + "vertex_ids": [ + "94", + "95" + ], + "face_ids": [ + "101", + "108" + ] + }, + { + "id": "99", + "vertex_ids": [ + "95", + "96" + ], + "face_ids": [ + "44", + "101" + ] + }, + { + "id": "100", + "vertex_ids": [ + "96", + "93" + ], + "face_ids": [ + "35", + "101" + ] + }, + { + "id": "102", + "vertex_ids": [ + "28", + "96" + ], + "face_ids": [ + "35", + "44" + ] + }, + { + "id": "103", + "vertex_ids": [ + "95", + "37" + ], + "face_ids": [ + "44", + "108" + ] + }, + { + "id": "107", + "vertex_ids": [ + "105", + "37" + ], + "face_ids": [ + "108", + "124" + ] + }, + { + "id": "121", + "vertex_ids": [ + "118", + "119" + ], + "face_ids": [ + "124", + "144" + ] + }, + { + "id": "122", + "vertex_ids": [ + "119", + "37" + ], + "face_ids": [ + "124", + "144" + ] + }, + { + "id": "125", + "vertex_ids": [ + "105", + "117" + ], + "face_ids": [ + "108", + "124" + ] + }, + { + "id": "130", + "vertex_ids": [ + "94", + "126" + ], + "face_ids": [ + "101", + "108" + ] + }, + { + "id": "135", + "vertex_ids": [ + "93", + "131" + ], + "face_ids": [ + "35", + "101" + ] + }, + { + "id": "140", + "vertex_ids": [ + "118", + "137" + ], + "face_ids": [ + "144" + ] + }, + { + "id": "141", + "vertex_ids": [ + "137", + "138" + ], + "face_ids": [ + "144" + ] + }, + { + "id": "142", + "vertex_ids": [ + "138", + "139" + ], + "face_ids": [ + "144" + ] + }, + { + "id": "152", + "vertex_ids": [ + "139", + "87" + ], + "face_ids": [ + "144" + ] + }, + { + "id": "157", + "vertex_ids": [ + "29", + "131" + ], + "face_ids": [ + "35", + "1413" + ] + }, + { + "id": "168", + "vertex_ids": [ + "126", + "159" + ], + "face_ids": [ + "108", + "1413" + ] + }, + { + "id": "169", + "vertex_ids": [ + "159", + "117" + ], + "face_ids": [ + "108", + "1413" + ] + }, + { + "id": "170", + "vertex_ids": [ + "131", + "160" + ], + "face_ids": [ + "101", + "1413" + ] + }, + { + "id": "171", + "vertex_ids": [ + "160", + "126" + ], + "face_ids": [ + "101", + "1413" + ] + }, + { + "id": "179", + "vertex_ids": [ + "29", + "173" + ], + "face_ids": [ + "35", + "1413" + ] + }, + { + "id": "180", + "vertex_ids": [ + "173", + "30" + ], + "face_ids": [ + "35" + ] + }, + { + "id": "757", + "vertex_ids": [ + "753", + "754" + ], + "face_ids": [ + "761" + ] + }, + { + "id": "758", + "vertex_ids": [ + "754", + "755" + ], + "face_ids": [ + "761" + ] + }, + { + "id": "759", + "vertex_ids": [ + "755", + "756" + ], + "face_ids": [ + "761" + ] + }, + { + "id": "760", + "vertex_ids": [ + "756", + "753" + ], + "face_ids": [ + "761" + ] + }, + { + "id": "767", + "vertex_ids": [ + "763", + "764" + ], + "face_ids": [ + "771" + ] + }, + { + "id": "768", + "vertex_ids": [ + "764", + "765" + ], + "face_ids": [ + "771" + ] + }, + { + "id": "769", + "vertex_ids": [ + "765", + "766" + ], + "face_ids": [ + "771" + ] + }, + { + "id": "770", + "vertex_ids": [ + "766", + "763" + ], + "face_ids": [ + "771" + ] + }, + { + "id": "777", + "vertex_ids": [ + "773", + "774" + ], + "face_ids": [ + "781" + ] + }, + { + "id": "778", + "vertex_ids": [ + "774", + "775" + ], + "face_ids": [ + "781" + ] + }, + { + "id": "779", + "vertex_ids": [ + "775", + "776" + ], + "face_ids": [ + "781" + ] + }, + { + "id": "780", + "vertex_ids": [ + "776", + "773" + ], + "face_ids": [ + "781" + ] + }, + { + "id": "787", + "vertex_ids": [ + "783", + "784" + ], + "face_ids": [ + "791" + ] + }, + { + "id": "788", + "vertex_ids": [ + "784", + "785" + ], + "face_ids": [ + "791" + ] + }, + { + "id": "789", + "vertex_ids": [ + "785", + "786" + ], + "face_ids": [ + "791" + ] + }, + { + "id": "790", + "vertex_ids": [ + "786", + "783" + ], + "face_ids": [ + "791" + ] + }, + { + "id": "807", + "vertex_ids": [ + "803", + "804" + ], + "face_ids": [ + "811" + ] + }, + { + "id": "808", + "vertex_ids": [ + "804", + "805" + ], + "face_ids": [ + "811" + ] + }, + { + "id": "809", + "vertex_ids": [ + "805", + "806" + ], + "face_ids": [ + "811" + ] + }, + { + "id": "810", + "vertex_ids": [ + "806", + "803" + ], + "face_ids": [ + "811" + ] + }, + { + "id": "817", + "vertex_ids": [ + "813", + "814" + ], + "face_ids": [ + "821" + ] + }, + { + "id": "818", + "vertex_ids": [ + "814", + "815" + ], + "face_ids": [ + "821" + ] + }, + { + "id": "819", + "vertex_ids": [ + "815", + "816" + ], + "face_ids": [ + "821" + ] + }, + { + "id": "820", + "vertex_ids": [ + "816", + "813" + ], + "face_ids": [ + "821" + ] + }, + { + "id": "827", + "vertex_ids": [ + "823", + "824" + ], + "face_ids": [ + "831" + ] + }, + { + "id": "828", + "vertex_ids": [ + "824", + "825" + ], + "face_ids": [ + "831" + ] + }, + { + "id": "829", + "vertex_ids": [ + "825", + "826" + ], + "face_ids": [ + "831" + ] + }, + { + "id": "830", + "vertex_ids": [ + "826", + "823" + ], + "face_ids": [ + "831" + ] + }, + { + "id": "837", + "vertex_ids": [ + "833", + "834" + ], + "face_ids": [ + "841" + ] + }, + { + "id": "838", + "vertex_ids": [ + "834", + "835" + ], + "face_ids": [ + "841" + ] + }, + { + "id": "839", + "vertex_ids": [ + "835", + "836" + ], + "face_ids": [ + "841" + ] + }, + { + "id": "840", + "vertex_ids": [ + "836", + "833" + ], + "face_ids": [ + "841" + ] + }, + { + "id": "848", + "vertex_ids": [ + "844", + "845" + ], + "face_ids": [ + "852" + ] + }, + { + "id": "849", + "vertex_ids": [ + "845", + "846" + ], + "face_ids": [ + "852" + ] + }, + { + "id": "850", + "vertex_ids": [ + "846", + "847" + ], + "face_ids": [ + "852" + ] + }, + { + "id": "851", + "vertex_ids": [ + "847", + "844" + ], + "face_ids": [ + "852" + ] + }, + { + "id": "1190", + "vertex_ids": [ + "1162", + "1163" + ], + "face_ids": [ + "1218" + ] + }, + { + "id": "1191", + "vertex_ids": [ + "1163", + "1164" + ], + "face_ids": [ + "1218" + ] + }, + { + "id": "1192", + "vertex_ids": [ + "1164", + "1165" + ], + "face_ids": [ + "1218" + ] + }, + { + "id": "1193", + "vertex_ids": [ + "1165", + "1166" + ], + "face_ids": [ + "1218" + ] + }, + { + "id": "1194", + "vertex_ids": [ + "1166", + "1167" + ], + "face_ids": [ + "1218" + ] + }, + { + "id": "1195", + "vertex_ids": [ + "1167", + "1168" + ], + "face_ids": [ + "1218" + ] + }, + { + "id": "1196", + "vertex_ids": [ + "1168", + "1169" + ], + "face_ids": [ + "1218" + ] + }, + { + "id": "1197", + "vertex_ids": [ + "1169", + "1170" + ], + "face_ids": [ + "1218" + ] + }, + { + "id": "1198", + "vertex_ids": [ + "1170", + "1171" + ], + "face_ids": [ + "1218" + ] + }, + { + "id": "1199", + "vertex_ids": [ + "1171", + "1172" + ], + "face_ids": [ + "1218" + ] + }, + { + "id": "1200", + "vertex_ids": [ + "1172", + "1173" + ], + "face_ids": [ + "1218" + ] + }, + { + "id": "1201", + "vertex_ids": [ + "1173", + "1174" + ], + "face_ids": [ + "1218" + ] + }, + { + "id": "1202", + "vertex_ids": [ + "1174", + "1175" + ], + "face_ids": [ + "1218" + ] + }, + { + "id": "1203", + "vertex_ids": [ + "1175", + "1176" + ], + "face_ids": [ + "1218" + ] + }, + { + "id": "1204", + "vertex_ids": [ + "1176", + "1177" + ], + "face_ids": [ + "1218" + ] + }, + { + "id": "1205", + "vertex_ids": [ + "1177", + "1178" + ], + "face_ids": [ + "1218" + ] + }, + { + "id": "1206", + "vertex_ids": [ + "1178", + "1179" + ], + "face_ids": [ + "1218" + ] + }, + { + "id": "1207", + "vertex_ids": [ + "1179", + "1180" + ], + "face_ids": [ + "1218" + ] + }, + { + "id": "1208", + "vertex_ids": [ + "1180", + "1181" + ], + "face_ids": [ + "1218" + ] + }, + { + "id": "1209", + "vertex_ids": [ + "1181", + "1182" + ], + "face_ids": [ + "1218" + ] + }, + { + "id": "1210", + "vertex_ids": [ + "1182", + "1183" + ], + "face_ids": [ + "1218" + ] + }, + { + "id": "1211", + "vertex_ids": [ + "1183", + "1184" + ], + "face_ids": [ + "1218" + ] + }, + { + "id": "1212", + "vertex_ids": [ + "1184", + "1185" + ], + "face_ids": [ + "1218" + ] + }, + { + "id": "1213", + "vertex_ids": [ + "1185", + "1186" + ], + "face_ids": [ + "1218" + ] + }, + { + "id": "1214", + "vertex_ids": [ + "1186", + "1187" + ], + "face_ids": [ + "1218" + ] + }, + { + "id": "1215", + "vertex_ids": [ + "1187", + "1188" + ], + "face_ids": [ + "1218" + ] + }, + { + "id": "1216", + "vertex_ids": [ + "1188", + "1189" + ], + "face_ids": [ + "1218" + ] + }, + { + "id": "1217", + "vertex_ids": [ + "1189", + "1162" + ], + "face_ids": [ + "1218" + ] + }, + { + "id": "1224", + "vertex_ids": [ + "1220", + "1221" + ], + "face_ids": [ + "1228" + ] + }, + { + "id": "1225", + "vertex_ids": [ + "1221", + "1222" + ], + "face_ids": [ + "1228" + ] + }, + { + "id": "1226", + "vertex_ids": [ + "1222", + "1223" + ], + "face_ids": [ + "1228" + ] + }, + { + "id": "1227", + "vertex_ids": [ + "1223", + "1220" + ], + "face_ids": [ + "1228" + ] + }, + { + "id": "1305", + "vertex_ids": [ + "1301", + "1302" + ], + "face_ids": [ + "1308" + ] + }, + { + "id": "1306", + "vertex_ids": [ + "1302", + "1303" + ], + "face_ids": [ + "1308" + ] + }, + { + "id": "1307", + "vertex_ids": [ + "1303", + "1293" + ], + "face_ids": [ + "1308" + ] + }, + { + "id": "1324", + "vertex_ids": [ + "1318", + "118" + ], + "face_ids": [ + "124" + ] + }, + { + "id": "1337", + "vertex_ids": [ + "1334", + "1335" + ], + "face_ids": [ + "1402", + "1413" + ] + }, + { + "id": "1342", + "vertex_ids": [ + "117", + "1336" + ], + "face_ids": [ + "124", + "1413" + ] + }, + { + "id": "1357", + "vertex_ids": [ + "1301", + "1293" + ], + "face_ids": [ + "1308", + "1402" + ] + }, + { + "id": "1399", + "vertex_ids": [ + "1395", + "1396" + ], + "face_ids": [ + "1402" + ] + }, + { + "id": "1401", + "vertex_ids": [ + "1397", + "1301" + ], + "face_ids": [ + "1402" + ] + }, + { + "id": "1403", + "vertex_ids": [ + "1293", + "1395" + ], + "face_ids": [ + "1402" + ] + }, + { + "id": "1404", + "vertex_ids": [ + "1396", + "1335" + ], + "face_ids": [ + "1402" + ] + }, + { + "id": "1410", + "vertex_ids": [ + "1335", + "173" + ], + "face_ids": [ + "1413" + ] + }, + { + "id": "1412", + "vertex_ids": [ + "1408", + "1407" + ], + "face_ids": [ + "1413" + ] + }, + { + "id": "1414", + "vertex_ids": [ + "1336", + "1408" + ], + "face_ids": [ + "124", + "1413" + ] + }, + { + "id": "1415", + "vertex_ids": [ + "1408", + "1318" + ], + "face_ids": [ + "124" + ] + }, + { + "id": "1416", + "vertex_ids": [ + "1334", + "1407" + ], + "face_ids": [ + "1402", + "1413" + ] + }, + { + "id": "1417", + "vertex_ids": [ + "1407", + "1397" + ], + "face_ids": [ + "1402" + ] + }, + { + "id": "1443", + "vertex_ids": [ + "1439", + "1440" + ], + "face_ids": [ + "1447" + ] + }, + { + "id": "1444", + "vertex_ids": [ + "1440", + "1441" + ], + "face_ids": [ + "1447" + ] + }, + { + "id": "1445", + "vertex_ids": [ + "1441", + "1442" + ], + "face_ids": [ + "1447" + ] + }, + { + "id": "1446", + "vertex_ids": [ + "1442", + "1439" + ], + "face_ids": [ + "1447" + ] + }, + { + "id": "1453", + "vertex_ids": [ + "1449", + "1450" + ], + "face_ids": [ + "1457" + ] + }, + { + "id": "1454", + "vertex_ids": [ + "1450", + "1451" + ], + "face_ids": [ + "1457" + ] + }, + { + "id": "1455", + "vertex_ids": [ + "1451", + "1452" + ], + "face_ids": [ + "1457" + ] + }, + { + "id": "1456", + "vertex_ids": [ + "1452", + "1449" + ], + "face_ids": [ + "1457" + ] + } + ], + "faces": [ + { + "id": "35", + "edge_ids": [ + "180", + "179", + "157", + "135", + "100", + "102", + "31", + "34" + ], + "edge_order": [ + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "id": "44", + "edge_ids": [ + "31", + "102", + "99", + "103", + "41", + "78", + "79", + "66", + "59", + "60", + "62", + "43" + ], + "edge_order": [ + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1 + ] + }, + { + "id": "77", + "edge_ids": [ + "66", + "79", + "75", + "76", + "59" + ], + "edge_order": [ + 1, + 0, + 1, + 1, + 0 + ] + }, + { + "id": "84", + "edge_ids": [ + "78", + "82", + "83", + "75" + ], + "edge_order": [ + 0, + 1, + 1, + 0 + ] + }, + { + "id": "91", + "edge_ids": [ + "88", + "89", + "90", + "82" + ], + "edge_order": [ + 1, + 1, + 1, + 0 + ] + }, + { + "id": "101", + "edge_ids": [ + "170", + "171", + "130", + "98", + "99", + "100", + "135" + ], + "edge_order": [ + 1, + 1, + 0, + 1, + 1, + 1, + 1 + ] + }, + { + "id": "108", + "edge_ids": [ + "168", + "169", + "125", + "107", + "103", + "98", + "130" + ], + "edge_order": [ + 1, + 1, + 0, + 1, + 0, + 0, + 1 + ] + }, + { + "id": "124", + "edge_ids": [ + "1342", + "1414", + "1415", + "1324", + "121", + "122", + "107", + "125" + ], + "edge_order": [ + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1 + ] + }, + { + "id": "144", + "edge_ids": [ + "88", + "41", + "122", + "121", + "140", + "141", + "142", + "152", + "89" + ], + "edge_order": [ + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0 + ] + }, + { + "id": "761", + "edge_ids": [ + "757", + "758", + "759", + "760" + ], + "edge_order": [ + 1, + 1, + 1, + 1 + ] + }, + { + "id": "771", + "edge_ids": [ + "767", + "768", + "769", + "770" + ], + "edge_order": [ + 1, + 1, + 1, + 1 + ] + }, + { + "id": "781", + "edge_ids": [ + "777", + "778", + "779", + "780" + ], + "edge_order": [ + 1, + 1, + 1, + 1 + ] + }, + { + "id": "791", + "edge_ids": [ + "787", + "788", + "789", + "790" + ], + "edge_order": [ + 1, + 1, + 1, + 1 + ] + }, + { + "id": "811", + "edge_ids": [ + "807", + "808", + "809", + "810" + ], + "edge_order": [ + 1, + 1, + 1, + 1 + ] + }, + { + "id": "821", + "edge_ids": [ + "817", + "818", + "819", + "820" + ], + "edge_order": [ + 1, + 1, + 1, + 1 + ] + }, + { + "id": "831", + "edge_ids": [ + "827", + "828", + "829", + "830" + ], + "edge_order": [ + 1, + 1, + 1, + 1 + ] + }, + { + "id": "841", + "edge_ids": [ + "837", + "838", + "839", + "840" + ], + "edge_order": [ + 1, + 1, + 1, + 1 + ] + }, + { + "id": "852", + "edge_ids": [ + "848", + "849", + "850", + "851" + ], + "edge_order": [ + 1, + 1, + 1, + 1 + ] + }, + { + "id": "1160", + "edge_ids": [], + "edge_order": [] + }, + { + "id": "1218", + "edge_ids": [ + "1190", + "1191", + "1192", + "1193", + "1194", + "1195", + "1196", + "1197", + "1198", + "1199", + "1200", + "1201", + "1202", + "1203", + "1204", + "1205", + "1206", + "1207", + "1208", + "1209", + "1210", + "1211", + "1212", + "1213", + "1214", + "1215", + "1216", + "1217" + ], + "edge_order": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1 + ] + }, + { + "id": "1228", + "edge_ids": [ + "1224", + "1225", + "1226", + "1227" + ], + "edge_order": [ + 1, + 1, + 1, + 1 + ] + }, + { + "id": "1308", + "edge_ids": [ + "1306", + "1305", + "1357", + "1307" + ], + "edge_order": [ + 0, + 0, + 1, + 0 + ] + }, + { + "id": "1402", + "edge_ids": [ + "1357", + "1403", + "1399", + "1404", + "1337", + "1416", + "1417", + "1401" + ], + "edge_order": [ + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1 + ] + }, + { + "id": "1413", + "edge_ids": [ + "1416", + "1337", + "1410", + "179", + "157", + "170", + "171", + "168", + "169", + "1342", + "1414", + "1412" + ], + "edge_order": [ + 0, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1 + ] + }, + { + "id": "1447", + "edge_ids": [ + "1443", + "1444", + "1445", + "1446" + ], + "edge_order": [ + 1, + 1, + 1, + 1 + ] + }, + { + "id": "1457", + "edge_ids": [ + "1453", + "1454", + "1455", + "1456" + ], + "edge_order": [ + 1, + 1, + 1, + 1 + ] + } + ] + }, + "spaces": [ + { + "id": "26", + "handle": null, + "name": "Space 1-1", + "face_id": "35", + "building_unit_id": null, + "thermal_zone_id": "tz_1", + "space_type_id": "181", + "construction_set_id": null, + "pitched_roof_id": null, + "daylighting_controls": [], + "below_floor_plenum_height": null, + "floor_to_ceiling_height": null, + "above_ceiling_plenum_height": null, + "floor_offset": null, + "open_to_below": null, + "color": "#bbc3c7", + "type": "space", + "area": 700 + }, + { + "id": "36", + "handle": null, + "name": "Space 1-2", + "face_id": "44", + "building_unit_id": null, + "thermal_zone_id": "tz_2", + "space_type_id": "361", + "construction_set_id": null, + "pitched_roof_id": null, + "daylighting_controls": [], + "below_floor_plenum_height": null, + "floor_to_ceiling_height": null, + "above_ceiling_plenum_height": null, + "floor_offset": null, + "open_to_below": null, + "color": "#bbc3c7", + "type": "space", + "area": 1296 + }, + { + "id": "71", + "handle": null, + "name": "Space 1-3", + "face_id": "77", + "building_unit_id": null, + "thermal_zone_id": "tz_3", + "space_type_id": "186", + "construction_set_id": null, + "pitched_roof_id": null, + "daylighting_controls": [], + "below_floor_plenum_height": null, + "floor_to_ceiling_height": null, + "above_ceiling_plenum_height": null, + "floor_offset": null, + "open_to_below": null, + "color": "#bbc3c7", + "type": "space", + "area": 1116 + }, + { + "id": "80", + "handle": null, + "name": "Space 1-4", + "face_id": "84", + "building_unit_id": null, + "thermal_zone_id": "tz_4", + "space_type_id": "191", + "construction_set_id": null, + "pitched_roof_id": null, + "daylighting_controls": [], + "below_floor_plenum_height": null, + "floor_to_ceiling_height": null, + "above_ceiling_plenum_height": null, + "floor_offset": null, + "open_to_below": null, + "color": "#bbc3c7", + "type": "space", + "area": 468 + }, + { + "id": "85", + "handle": null, + "name": "Space 1-5", + "face_id": "91", + "building_unit_id": null, + "thermal_zone_id": "tz_5", + "space_type_id": "189", + "construction_set_id": null, + "pitched_roof_id": null, + "daylighting_controls": [], + "below_floor_plenum_height": null, + "floor_to_ceiling_height": null, + "above_ceiling_plenum_height": null, + "floor_offset": null, + "open_to_below": null, + "color": "#bbc3c7", + "type": "space", + "area": 216 + }, + { + "id": "92", + "handle": null, + "name": "Space 1-6", + "face_id": "101", + "building_unit_id": null, + "thermal_zone_id": "tz_6", + "space_type_id": "193", + "construction_set_id": null, + "pitched_roof_id": null, + "daylighting_controls": [], + "below_floor_plenum_height": null, + "floor_to_ceiling_height": null, + "above_ceiling_plenum_height": null, + "floor_offset": null, + "open_to_below": null, + "color": "#bbc3c7", + "type": "space", + "area": 100 + }, + { + "id": "104", + "handle": null, + "name": "Space 1-7", + "face_id": "108", + "building_unit_id": null, + "thermal_zone_id": "tz_7", + "space_type_id": "188", + "construction_set_id": null, + "pitched_roof_id": null, + "daylighting_controls": [], + "below_floor_plenum_height": null, + "floor_to_ceiling_height": null, + "above_ceiling_plenum_height": null, + "floor_offset": null, + "open_to_below": null, + "color": "#bbc3c7", + "type": "space", + "area": 160 + }, + { + "id": "116", + "handle": null, + "name": "Space 1-8", + "face_id": "124", + "building_unit_id": null, + "thermal_zone_id": "tz_8", + "space_type_id": "192", + "construction_set_id": null, + "pitched_roof_id": null, + "daylighting_controls": [], + "below_floor_plenum_height": null, + "floor_to_ceiling_height": null, + "above_ceiling_plenum_height": null, + "floor_offset": null, + "open_to_below": null, + "color": "#bbc3c7", + "type": "space", + "area": 180 + }, + { + "id": "136", + "handle": null, + "name": "Space 1-9", + "face_id": "144", + "building_unit_id": null, + "thermal_zone_id": "tz_9", + "space_type_id": "181", + "construction_set_id": null, + "pitched_roof_id": null, + "daylighting_controls": [], + "below_floor_plenum_height": null, + "floor_to_ceiling_height": null, + "above_ceiling_plenum_height": null, + "floor_offset": null, + "open_to_below": null, + "color": "#bbc3c7", + "type": "space", + "area": 1204 + } + ], + "shading": [ + { + "handle": null, + "id": "752", + "name": "Shading 1-1", + "face_id": "761", + "color": "#E8E3E5", + "floor_to_ceiling_height": 10, + "type": "shading" + }, + { + "handle": null, + "id": "762", + "name": "Shading 1-2", + "face_id": "771", + "color": "#E8E3E5", + "floor_to_ceiling_height": 10, + "type": "shading" + }, + { + "handle": null, + "id": "772", + "name": "Shading 1-3", + "face_id": "781", + "color": "#E8E3E5", + "floor_to_ceiling_height": 10, + "type": "shading" + }, + { + "handle": null, + "id": "782", + "name": "Shading 1-4", + "face_id": "791", + "color": "#E8E3E5", + "floor_to_ceiling_height": 10, + "type": "shading" + }, + { + "handle": null, + "id": "802", + "name": "Shading 1-5", + "face_id": "811", + "color": "#E8E3E5", + "floor_to_ceiling_height": 10, + "type": "shading" + }, + { + "handle": null, + "id": "812", + "name": "Shading 1-6", + "face_id": "821", + "color": "#E8E3E5", + "floor_to_ceiling_height": 10, + "type": "shading" + }, + { + "handle": null, + "id": "822", + "name": "Shading 1-7", + "face_id": "831", + "color": "#E8E3E5", + "floor_to_ceiling_height": 10, + "type": "shading" + }, + { + "handle": null, + "id": "832", + "name": "Shading 1-8", + "face_id": "841", + "color": "#E8E3E5", + "floor_to_ceiling_height": 10, + "type": "shading" + }, + { + "handle": null, + "id": "843", + "name": "Shading 1-9", + "face_id": "852", + "color": "#E8E3E5", + "floor_to_ceiling_height": 10, + "type": "shading" + }, + { + "handle": null, + "id": "1161", + "name": "Shading 1-10", + "face_id": "1218", + "color": "#E8E3E5", + "floor_to_ceiling_height": 30, + "type": "shading" + }, + { + "handle": null, + "id": "1219", + "name": "Shading 1-11", + "face_id": "1228", + "color": "#E8E3E5", + "floor_to_ceiling_height": 30, + "type": "shading" + }, + { + "handle": null, + "id": "1300", + "name": "Shading 1-12", + "face_id": "1308", + "color": "#E8E3E5", + "floor_to_ceiling_height": 30, + "type": "shading" + }, + { + "handle": null, + "id": "1394", + "name": "Shading 1-13", + "face_id": "1402", + "color": "#E8E3E5", + "floor_to_ceiling_height": 25, + "type": "shading" + }, + { + "handle": null, + "id": "1406", + "name": "Shading 1-14", + "face_id": "1413", + "color": "#E8E3E5", + "floor_to_ceiling_height": 17, + "type": "shading" + }, + { + "handle": null, + "id": "1438", + "name": "Shading 1-15", + "face_id": "1447", + "color": "#E8E3E5", + "floor_to_ceiling_height": 30, + "type": "shading" + }, + { + "handle": null, + "id": "1448", + "name": "Shading 1-16", + "face_id": "1457", + "color": "#E8E3E5", + "floor_to_ceiling_height": 30, + "type": "shading" + } + ], + "windows": [ + { + "edge_id": "90", + "alpha": 0.6875, + "window_definition_id": 1, + "id": 1, + "name": "window 1" + }, + { + "edge_id": "83", + "alpha": 0.9301430288461539, + "window_definition_id": 2, + "id": 2, + "name": "window 2" + }, + { + "edge_id": "76", + "alpha": 0.010875504032258066, + "window_definition_id": 3, + "id": 3, + "name": "window 3" + }, + { + "edge_id": "76", + "alpha": 0.43951612903225809, + "window_definition_id": 4, + "id": 4, + "name": "window 4" + }, + { + "edge_id": "76", + "alpha": 0.8991935483870968, + "window_definition_id": 5, + "id": 5, + "name": "window 5" + }, + { + "edge_id": "62", + "alpha": 0.2777777777777778, + "window_definition_id": 6, + "id": 6, + "name": "window 6" + }, + { + "edge_id": "62", + "alpha": 0.8333333333333334, + "window_definition_id": 7, + "id": 7, + "name": "window 7" + }, + { + "edge_id": "43", + "alpha": 0.5833333333333334, + "window_definition_id": 8, + "id": 8, + "name": "window 8" + }, + { + "edge_id": "34", + "alpha": 0.5, + "window_definition_id": 9, + "id": 9, + "name": "window 9" + }, + { + "edge_id": "180", + "alpha": 0.875, + "window_definition_id": 10, + "id": 10, + "name": "window 10" + }, + { + "edge_id": "180", + "alpha": 0.625, + "window_definition_id": 11, + "id": 11, + "name": "window 11" + }, + { + "edge_id": "180", + "alpha": 0.375, + "window_definition_id": 12, + "id": 12, + "name": "window 12" + }, + { + "edge_id": "180", + "alpha": 0.125, + "window_definition_id": 13, + "id": 13, + "name": "window 13" + }, + { + "edge_id": "142", + "alpha": 0.125, + "window_definition_id": 14, + "id": 14, + "name": "window 14" + }, + { + "edge_id": "142", + "alpha": 0.375, + "window_definition_id": 15, + "id": 15, + "name": "window 15" + }, + { + "edge_id": "142", + "alpha": 0.625, + "window_definition_id": 16, + "id": 16, + "name": "window 16" + }, + { + "edge_id": "142", + "alpha": 0.875, + "window_definition_id": 17, + "id": 17, + "name": "window 17" + }, + { + "edge_id": "141", + "alpha": 0.125, + "window_definition_id": 18, + "id": 18, + "name": "window 18" + }, + { + "edge_id": "141", + "alpha": 0.375, + "window_definition_id": 19, + "id": 19, + "name": "window 19" + }, + { + "edge_id": "141", + "alpha": 0.625, + "window_definition_id": 20, + "id": 20, + "name": "window 20" + }, + { + "edge_id": "141", + "alpha": 0.875, + "window_definition_id": 21, + "id": 21, + "name": "window 21" + }, + { + "edge_id": "140", + "alpha": 0.060044938016528947, + "window_definition_id": 22, + "id": 22, + "name": "window 22" + }, + { + "edge_id": "140", + "alpha": 0.3693181818181818, + "window_definition_id": 23, + "id": 23, + "name": "window 23" + }, + { + "edge_id": "140", + "alpha": 0.7897727272727273, + "window_definition_id": 24, + "id": 24, + "name": "window 24" + }, + { + "edge_id": "1324", + "alpha": 0.22299905303030308, + "window_definition_id": 25, + "id": 25, + "name": "window 25" + }, + { + "edge_id": "1324", + "alpha": 0.7968342803030303, + "window_definition_id": 26, + "id": 26, + "name": "window 26" + }, + { + "edge_id": "1415", + "alpha": 0.6546704545454547, + "window_definition_id": 27, + "id": 27, + "name": "window 27" + } + ], + "doors": [], + "construction_lines": [], + "area": 5440 + }, + { + "id": "194", + "handle": null, + "name": "Story 2", + "image_id": "198", + "below_floor_plenum_height": 0, + "floor_to_ceiling_height": 10, + "above_ceiling_plenum_height": 0, + "multiplier": 1, + "color": "#332288", + "geometry": { + "id": "195", + "vertices": [ + { + "id": "200", + "x": 108, + "y": 28, + "edge_ids": [ + "204", + "207" + ] + }, + { + "id": "201", + "x": 52, + "y": 28, + "edge_ids": [ + "204", + "221" + ] + }, + { + "id": "202", + "x": 52, + "y": 0, + "edge_ids": [ + "206", + "215" + ] + }, + { + "id": "203", + "x": 108, + "y": 0, + "edge_ids": [ + "206", + "207", + "336" + ] + }, + { + "id": "209", + "x": 42, + "y": 6, + "edge_ids": [ + "214", + "219" + ] + }, + { + "id": "210", + "x": 52, + "y": 6, + "edge_ids": [ + "214", + "215" + ] + }, + { + "id": "211", + "x": 20, + "y": 28, + "edge_ids": [ + "221", + "332", + "349" + ] + }, + { + "id": "212", + "x": 30, + "y": 0, + "edge_ids": [ + "218", + "329" + ] + }, + { + "id": "213", + "x": 42, + "y": 0, + "edge_ids": [ + "218", + "219", + "323" + ] + }, + { + "id": "223", + "x": 108, + "y": -12, + "edge_ids": [ + "227", + "230", + "336" + ] + }, + { + "id": "224", + "x": 100, + "y": -12, + "edge_ids": [ + "227", + "228", + "325" + ] + }, + { + "id": "225", + "x": 100, + "y": -34, + "edge_ids": [ + "228", + "229", + "235" + ] + }, + { + "id": "226", + "x": 108, + "y": -34, + "edge_ids": [ + "229", + "230" + ] + }, + { + "id": "233", + "x": 38, + "y": -34, + "edge_ids": [ + "235", + "236", + "242" + ] + }, + { + "id": "234", + "x": 38, + "y": -12, + "edge_ids": [ + "236", + "317", + "324" + ] + }, + { + "id": "240", + "x": 10, + "y": -34, + "edge_ids": [ + "242", + "254" + ] + }, + { + "id": "241", + "x": 10, + "y": -12, + "edge_ids": [ + "249", + "280", + "285" + ] + }, + { + "id": "246", + "x": 10, + "y": -22, + "edge_ids": [ + "249", + "250" + ] + }, + { + "id": "247", + "x": 0, + "y": -22, + "edge_ids": [ + "250", + "251", + "265" + ] + }, + { + "id": "248", + "x": 0, + "y": -34, + "edge_ids": [ + "251", + "254", + "258" + ] + }, + { + "id": "256", + "x": -30, + "y": -34, + "edge_ids": [ + "258", + "259" + ] + }, + { + "id": "257", + "x": -30, + "y": -22, + "edge_ids": [ + "259", + "270" + ] + }, + { + "id": "262", + "x": -20, + "y": -22, + "edge_ids": [ + "265", + "275" + ] + }, + { + "id": "263", + "x": -20, + "y": 20, + "edge_ids": [ + "267", + "299" + ] + }, + { + "id": "264", + "x": -30, + "y": 20, + "edge_ids": [ + "267", + "270", + "358" + ] + }, + { + "id": "272", + "x": -20, + "y": -4, + "edge_ids": [ + "275", + "294" + ] + }, + { + "id": "273", + "x": 10, + "y": -4, + "edge_ids": [ + "280", + "291", + "298" + ] + }, + { + "id": "282", + "x": 22, + "y": -12, + "edge_ids": [ + "285", + "288", + "315" + ] + }, + { + "id": "283", + "x": 10, + "y": 2, + "edge_ids": [ + "291", + "347" + ] + }, + { + "id": "284", + "x": 22, + "y": 2, + "edge_ids": [ + "288", + "313", + "351" + ] + }, + { + "id": "292", + "x": -10, + "y": -4, + "edge_ids": [ + "294", + "298", + "303" + ] + }, + { + "id": "293", + "x": -10, + "y": 20, + "edge_ids": [ + "299", + "309" + ] + }, + { + "id": "300", + "x": -10, + "y": 8, + "edge_ids": [ + "303", + "304" + ] + }, + { + "id": "301", + "x": 10, + "y": 8, + "edge_ids": [ + "304", + "305" + ] + }, + { + "id": "302", + "x": 10, + "y": 20, + "edge_ids": [ + "305", + "309", + "352" + ] + }, + { + "id": "311", + "x": 28, + "y": 2, + "edge_ids": [ + "313", + "330" + ] + }, + { + "id": "312", + "x": 28, + "y": -12, + "edge_ids": [ + "315", + "317" + ] + }, + { + "id": "319", + "x": 42, + "y": -12, + "edge_ids": [ + "323", + "324", + "325" + ] + }, + { + "id": "328", + "x": 29.28, + "y": 2.01, + "edge_ids": [ + "329", + "330", + "332" + ] + }, + { + "id": "345", + "x": 20, + "y": 2, + "edge_ids": [ + "347", + "351" + ] + }, + { + "id": "346", + "x": 10, + "y": 28, + "edge_ids": [ + "349", + "352", + "359" + ] + }, + { + "id": "356", + "x": -30, + "y": 28, + "edge_ids": [ + "358", + "359" + ] + } + ], + "edges": [ + { + "id": "204", + "vertex_ids": [ + "200", + "201" + ], + "face_ids": [ + "208" + ] + }, + { + "id": "206", + "vertex_ids": [ + "202", + "203" + ], + "face_ids": [ + "208", + "337" + ] + }, + { + "id": "207", + "vertex_ids": [ + "203", + "200" + ], + "face_ids": [ + "208" + ] + }, + { + "id": "214", + "vertex_ids": [ + "209", + "210" + ], + "face_ids": [ + "208", + "337" + ] + }, + { + "id": "215", + "vertex_ids": [ + "210", + "202" + ], + "face_ids": [ + "208", + "337" + ] + }, + { + "id": "218", + "vertex_ids": [ + "212", + "213" + ], + "face_ids": [ + "208", + "316" + ] + }, + { + "id": "219", + "vertex_ids": [ + "213", + "209" + ], + "face_ids": [ + "208", + "337" + ] + }, + { + "id": "221", + "vertex_ids": [ + "201", + "211" + ], + "face_ids": [ + "208" + ] + }, + { + "id": "227", + "vertex_ids": [ + "223", + "224" + ], + "face_ids": [ + "231", + "337" + ] + }, + { + "id": "228", + "vertex_ids": [ + "224", + "225" + ], + "face_ids": [ + "231", + "238" + ] + }, + { + "id": "229", + "vertex_ids": [ + "225", + "226" + ], + "face_ids": [ + "231" + ] + }, + { + "id": "230", + "vertex_ids": [ + "226", + "223" + ], + "face_ids": [ + "231" + ] + }, + { + "id": "235", + "vertex_ids": [ + "225", + "233" + ], + "face_ids": [ + "238" + ] + }, + { + "id": "236", + "vertex_ids": [ + "233", + "234" + ], + "face_ids": [ + "238", + "245" + ] + }, + { + "id": "242", + "vertex_ids": [ + "233", + "240" + ], + "face_ids": [ + "245" + ] + }, + { + "id": "249", + "vertex_ids": [ + "241", + "246" + ], + "face_ids": [ + "245", + "278" + ] + }, + { + "id": "250", + "vertex_ids": [ + "246", + "247" + ], + "face_ids": [ + "245", + "278" + ] + }, + { + "id": "251", + "vertex_ids": [ + "247", + "248" + ], + "face_ids": [ + "245", + "261" + ] + }, + { + "id": "254", + "vertex_ids": [ + "248", + "240" + ], + "face_ids": [ + "245" + ] + }, + { + "id": "258", + "vertex_ids": [ + "248", + "256" + ], + "face_ids": [ + "261" + ] + }, + { + "id": "259", + "vertex_ids": [ + "256", + "257" + ], + "face_ids": [ + "261" + ] + }, + { + "id": "265", + "vertex_ids": [ + "247", + "262" + ], + "face_ids": [ + "261", + "278" + ] + }, + { + "id": "267", + "vertex_ids": [ + "263", + "264" + ], + "face_ids": [ + "261", + "360" + ] + }, + { + "id": "270", + "vertex_ids": [ + "264", + "257" + ], + "face_ids": [ + "261" + ] + }, + { + "id": "275", + "vertex_ids": [ + "262", + "272" + ], + "face_ids": [ + "261", + "278" + ] + }, + { + "id": "280", + "vertex_ids": [ + "273", + "241" + ], + "face_ids": [ + "278", + "289" + ] + }, + { + "id": "285", + "vertex_ids": [ + "282", + "241" + ], + "face_ids": [ + "245", + "289" + ] + }, + { + "id": "288", + "vertex_ids": [ + "284", + "282" + ], + "face_ids": [ + "289", + "316" + ] + }, + { + "id": "291", + "vertex_ids": [ + "273", + "283" + ], + "face_ids": [ + "289", + "343" + ] + }, + { + "id": "294", + "vertex_ids": [ + "272", + "292" + ], + "face_ids": [ + "261", + "278" + ] + }, + { + "id": "298", + "vertex_ids": [ + "292", + "273" + ], + "face_ids": [ + "278", + "343" + ] + }, + { + "id": "299", + "vertex_ids": [ + "293", + "263" + ], + "face_ids": [ + "261", + "360" + ] + }, + { + "id": "303", + "vertex_ids": [ + "292", + "300" + ], + "face_ids": [ + "261", + "343" + ] + }, + { + "id": "304", + "vertex_ids": [ + "300", + "301" + ], + "face_ids": [ + "261", + "343" + ] + }, + { + "id": "305", + "vertex_ids": [ + "301", + "302" + ], + "face_ids": [ + "261", + "343" + ] + }, + { + "id": "309", + "vertex_ids": [ + "302", + "293" + ], + "face_ids": [ + "261", + "360" + ] + }, + { + "id": "313", + "vertex_ids": [ + "284", + "311" + ], + "face_ids": [ + "316", + "343" + ] + }, + { + "id": "315", + "vertex_ids": [ + "312", + "282" + ], + "face_ids": [ + "245", + "316" + ] + }, + { + "id": "317", + "vertex_ids": [ + "312", + "234" + ], + "face_ids": [ + "245", + "316" + ] + }, + { + "id": "323", + "vertex_ids": [ + "319", + "213" + ], + "face_ids": [ + "316", + "337" + ] + }, + { + "id": "324", + "vertex_ids": [ + "234", + "319" + ], + "face_ids": [ + "238", + "316" + ] + }, + { + "id": "325", + "vertex_ids": [ + "319", + "224" + ], + "face_ids": [ + "238", + "337" + ] + }, + { + "id": "329", + "vertex_ids": [ + "212", + "328" + ], + "face_ids": [ + "208", + "316" + ] + }, + { + "id": "330", + "vertex_ids": [ + "328", + "311" + ], + "face_ids": [ + "316", + "343" + ] + }, + { + "id": "332", + "vertex_ids": [ + "211", + "328" + ], + "face_ids": [ + "208", + "343" + ] + }, + { + "id": "336", + "vertex_ids": [ + "203", + "223" + ], + "face_ids": [ + "337" + ] + }, + { + "id": "347", + "vertex_ids": [ + "283", + "345" + ], + "face_ids": [ + "289", + "343" + ] + }, + { + "id": "349", + "vertex_ids": [ + "211", + "346" + ], + "face_ids": [ + "343" + ] + }, + { + "id": "351", + "vertex_ids": [ + "345", + "284" + ], + "face_ids": [ + "289", + "343" + ] + }, + { + "id": "352", + "vertex_ids": [ + "346", + "302" + ], + "face_ids": [ + "343", + "360" + ] + }, + { + "id": "358", + "vertex_ids": [ + "264", + "356" + ], + "face_ids": [ + "360" + ] + }, + { + "id": "359", + "vertex_ids": [ + "356", + "346" + ], + "face_ids": [ + "360" + ] + } + ], + "faces": [ + { + "id": "208", + "edge_ids": [ + "214", + "215", + "206", + "207", + "204", + "221", + "332", + "329", + "218", + "219" + ], + "edge_order": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1 + ] + }, + { + "id": "231", + "edge_ids": [ + "227", + "228", + "229", + "230" + ], + "edge_order": [ + 1, + 1, + 1, + 1 + ] + }, + { + "id": "238", + "edge_ids": [ + "235", + "236", + "324", + "325", + "228" + ], + "edge_order": [ + 1, + 1, + 1, + 1, + 1 + ] + }, + { + "id": "245", + "edge_ids": [ + "317", + "315", + "285", + "249", + "250", + "251", + "254", + "242", + "236" + ], + "edge_order": [ + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1 + ] + }, + { + "id": "261", + "edge_ids": [ + "265", + "275", + "294", + "303", + "304", + "305", + "309", + "299", + "267", + "270", + "259", + "258", + "251" + ], + "edge_order": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0 + ] + }, + { + "id": "278", + "edge_ids": [ + "250", + "265", + "275", + "294", + "298", + "280", + "249" + ], + "edge_order": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1 + ] + }, + { + "id": "289", + "edge_ids": [ + "285", + "280", + "291", + "347", + "351", + "288" + ], + "edge_order": [ + 1, + 0, + 1, + 1, + 1, + 1 + ] + }, + { + "id": "316", + "edge_ids": [ + "218", + "329", + "330", + "313", + "288", + "315", + "317", + "324", + "323" + ], + "edge_order": [ + 0, + 1, + 1, + 0, + 1, + 0, + 1, + 1, + 1 + ] + }, + { + "id": "337", + "edge_ids": [ + "206", + "215", + "214", + "219", + "323", + "325", + "227", + "336" + ], + "edge_order": [ + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0 + ] + }, + { + "id": "343", + "edge_ids": [ + "347", + "351", + "313", + "330", + "332", + "349", + "352", + "305", + "304", + "303", + "298", + "291" + ], + "edge_order": [ + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1 + ] + }, + { + "id": "360", + "edge_ids": [ + "309", + "299", + "267", + "358", + "359", + "352" + ], + "edge_order": [ + 1, + 1, + 1, + 1, + 1, + 1 + ] + } + ] + }, + "spaces": [ + { + "id": "199", + "handle": null, + "name": "Space 2-1", + "face_id": "208", + "building_unit_id": null, + "thermal_zone_id": "tz_10", + "space_type_id": "181", + "construction_set_id": null, + "pitched_roof_id": null, + "daylighting_controls": [], + "below_floor_plenum_height": null, + "floor_to_ceiling_height": null, + "above_ceiling_plenum_height": null, + "floor_offset": null, + "open_to_below": null, + "color": "#bbc3c7", + "type": "space", + "area": 2264.0299999999999 + }, + { + "id": "222", + "handle": null, + "name": "Space 2-2", + "face_id": "231", + "building_unit_id": null, + "thermal_zone_id": "tz_11", + "space_type_id": "191", + "construction_set_id": null, + "pitched_roof_id": null, + "daylighting_controls": [], + "below_floor_plenum_height": null, + "floor_to_ceiling_height": null, + "above_ceiling_plenum_height": null, + "floor_offset": null, + "open_to_below": null, + "color": "#bbc3c7", + "type": "space", + "area": 176 + }, + { + "id": "232", + "handle": null, + "name": "Space 2-3", + "face_id": "238", + "building_unit_id": null, + "thermal_zone_id": "tz_12", + "space_type_id": "649", + "construction_set_id": null, + "pitched_roof_id": null, + "daylighting_controls": [], + "below_floor_plenum_height": null, + "floor_to_ceiling_height": null, + "above_ceiling_plenum_height": null, + "floor_offset": null, + "open_to_below": null, + "color": "#bbc3c7", + "type": "space", + "area": 1364 + }, + { + "id": "239", + "handle": null, + "name": "Space 2-4", + "face_id": "245", + "building_unit_id": null, + "thermal_zone_id": "tz_13", + "space_type_id": "188", + "construction_set_id": null, + "pitched_roof_id": null, + "daylighting_controls": [], + "below_floor_plenum_height": null, + "floor_to_ceiling_height": null, + "above_ceiling_plenum_height": null, + "floor_offset": null, + "open_to_below": null, + "color": "#bbc3c7", + "type": "space", + "area": 736 + }, + { + "id": "255", + "handle": null, + "name": "Space 2-5", + "face_id": "261", + "building_unit_id": null, + "thermal_zone_id": "tz_14", + "space_type_id": "649", + "construction_set_id": null, + "pitched_roof_id": null, + "daylighting_controls": [], + "below_floor_plenum_height": null, + "floor_to_ceiling_height": null, + "above_ceiling_plenum_height": null, + "floor_offset": null, + "open_to_below": null, + "color": "#bbc3c7", + "type": "space", + "area": 1260 + }, + { + "id": "271", + "handle": null, + "name": "Space 2-6", + "face_id": "278", + "building_unit_id": null, + "thermal_zone_id": "tz_15", + "space_type_id": "189", + "construction_set_id": null, + "pitched_roof_id": null, + "daylighting_controls": [], + "below_floor_plenum_height": null, + "floor_to_ceiling_height": null, + "above_ceiling_plenum_height": null, + "floor_offset": null, + "open_to_below": null, + "color": "#bbc3c7", + "type": "space", + "area": 540 + }, + { + "id": "281", + "handle": null, + "name": "Space 2-7", + "face_id": "289", + "building_unit_id": null, + "thermal_zone_id": "tz_16", + "space_type_id": "185", + "construction_set_id": null, + "pitched_roof_id": null, + "daylighting_controls": [], + "below_floor_plenum_height": null, + "floor_to_ceiling_height": null, + "above_ceiling_plenum_height": null, + "floor_offset": null, + "open_to_below": null, + "color": "#bbc3c7", + "type": "space", + "area": 168 + }, + { + "id": "310", + "handle": null, + "name": "Space 2-8", + "face_id": "316", + "building_unit_id": null, + "thermal_zone_id": "tz_17", + "space_type_id": "192", + "construction_set_id": null, + "pitched_roof_id": null, + "daylighting_controls": [], + "below_floor_plenum_height": null, + "floor_to_ceiling_height": null, + "above_ceiling_plenum_height": null, + "floor_offset": null, + "open_to_below": null, + "color": "#bbc3c7", + "type": "space", + "area": 255.29 + }, + { + "id": "333", + "handle": null, + "name": "Space 2-9", + "face_id": "337", + "building_unit_id": null, + "thermal_zone_id": "tz_18", + "space_type_id": "361", + "construction_set_id": null, + "pitched_roof_id": null, + "daylighting_controls": [], + "below_floor_plenum_height": null, + "floor_to_ceiling_height": null, + "above_ceiling_plenum_height": null, + "floor_offset": null, + "open_to_below": null, + "color": "#bbc3c7", + "type": "space", + "area": 852 + }, + { + "id": "341", + "handle": null, + "name": "Space 2-10", + "face_id": "343", + "building_unit_id": null, + "thermal_zone_id": "tz_19", + "space_type_id": "361", + "construction_set_id": null, + "pitched_roof_id": null, + "daylighting_controls": [], + "below_floor_plenum_height": null, + "floor_to_ceiling_height": null, + "above_ceiling_plenum_height": null, + "floor_offset": null, + "open_to_below": null, + "color": "#bbc3c7", + "type": "space", + "area": 620.6800000000001 + }, + { + "id": "355", + "handle": null, + "name": "Space 2-11", + "face_id": "360", + "building_unit_id": null, + "thermal_zone_id": "tz_20", + "space_type_id": "192", + "construction_set_id": null, + "pitched_roof_id": null, + "daylighting_controls": [], + "below_floor_plenum_height": null, + "floor_to_ceiling_height": null, + "above_ceiling_plenum_height": null, + "floor_offset": null, + "open_to_below": null, + "color": "#bbc3c7", + "type": "space", + "area": 320 + } + ], + "shading": [], + "windows": [ + { + "edge_id": "359", + "alpha": 0.9723551136363636, + "window_definition_id": 28, + "id": 28, + "name": "window 28" + }, + { + "edge_id": "359", + "alpha": 0.43125, + "window_definition_id": 29, + "id": 29, + "name": "window 29" + }, + { + "edge_id": "349", + "alpha": 0.497, + "window_definition_id": 30, + "id": 30, + "name": "window 30" + }, + { + "edge_id": "221", + "alpha": 0.14999360795454542, + "window_definition_id": 31, + "id": 31, + "name": "window 31" + }, + { + "edge_id": "221", + "alpha": 0.7552563920454546, + "window_definition_id": 32, + "id": 32, + "name": "window 32" + }, + { + "edge_id": "204", + "alpha": 0.3080357142857143, + "window_definition_id": 33, + "id": 33, + "name": "window 33" + }, + { + "edge_id": "204", + "alpha": 0.8365393668831169, + "window_definition_id": 34, + "id": 34, + "name": "window 34" + }, + { + "edge_id": "207", + "alpha": 0.16964285714285716, + "window_definition_id": 35, + "id": 35, + "name": "window 35" + }, + { + "edge_id": "207", + "alpha": 0.7232142857142857, + "window_definition_id": 36, + "id": 36, + "name": "window 36" + }, + { + "edge_id": "336", + "alpha": 0.8499411764705882, + "window_definition_id": 37, + "id": 37, + "name": "window 37" + }, + { + "edge_id": "230", + "alpha": 0.3522727272727273, + "window_definition_id": 38, + "id": 38, + "name": "window 38" + }, + { + "edge_id": "230", + "alpha": 0.9736042780748663, + "window_definition_id": 39, + "id": 39, + "name": "window 39" + }, + { + "edge_id": "235", + "alpha": 0.7056451612903226, + "window_definition_id": 40, + "id": 40, + "name": "window 40" + }, + { + "edge_id": "235", + "alpha": 0.14919354838709679, + "window_definition_id": 41, + "id": 41, + "name": "window 41" + }, + { + "edge_id": "242", + "alpha": 0.5803571428571429, + "window_definition_id": 42, + "id": 42, + "name": "window 42" + }, + { + "edge_id": "258", + "alpha": 0.425, + "window_definition_id": 43, + "id": 43, + "name": "window 43" + }, + { + "edge_id": "259", + "alpha": 0.6458333333333334, + "window_definition_id": 44, + "id": 44, + "name": "window 44" + }, + { + "edge_id": "270", + "alpha": 0.047582706766917327, + "window_definition_id": 45, + "id": 45, + "name": "window 45" + }, + { + "edge_id": "270", + "alpha": 0.3630952380952381, + "window_definition_id": 46, + "id": 46, + "name": "window 46" + }, + { + "edge_id": "270", + "alpha": 0.7321428571428571, + "window_definition_id": 47, + "id": 47, + "name": "window 47" + }, + { + "edge_id": "358", + "alpha": 0.27255921052631595, + "window_definition_id": 48, + "id": 48, + "name": "window 48" + } + ], + "doors": [], + "construction_lines": [], + "area": 8556 + }, + { + "id": "439", + "handle": null, + "name": "Story 3", + "image_id": "443", + "below_floor_plenum_height": 0, + "floor_to_ceiling_height": 10, + "above_ceiling_plenum_height": 0, + "multiplier": 1, + "color": "#117733", + "geometry": { + "id": "440", + "vertices": [ + { + "id": "445", + "x": 108, + "y": 28, + "edge_ids": [ + "449", + "452" + ] + }, + { + "id": "446", + "x": 60, + "y": 28, + "edge_ids": [ + "449", + "468", + "469" + ] + }, + { + "id": "447", + "x": 60, + "y": -10, + "edge_ids": [ + "457", + "472" + ] + }, + { + "id": "448", + "x": 108, + "y": -10, + "edge_ids": [ + "452", + "462" + ] + }, + { + "id": "454", + "x": 70, + "y": -10, + "edge_ids": [ + "457", + "482" + ] + }, + { + "id": "455", + "x": 70, + "y": -34, + "edge_ids": [ + "459", + "477", + "480" + ] + }, + { + "id": "456", + "x": 108, + "y": -34, + "edge_ids": [ + "459", + "462" + ] + }, + { + "id": "464", + "x": 48, + "y": -2, + "edge_ids": [ + "467", + "470", + "538" + ] + }, + { + "id": "465", + "x": 60, + "y": -2, + "edge_ids": [ + "467", + "468", + "472" + ] + }, + { + "id": "466", + "x": 48, + "y": 28, + "edge_ids": [ + "469", + "470", + "662" + ] + }, + { + "id": "474", + "x": 56, + "y": -34, + "edge_ids": [ + "477", + "478", + "486" + ] + }, + { + "id": "475", + "x": 56, + "y": -18, + "edge_ids": [ + "478", + "479", + "488" + ] + }, + { + "id": "476", + "x": 70, + "y": -18, + "edge_ids": [ + "479", + "480", + "482" + ] + }, + { + "id": "484", + "x": 38, + "y": -34, + "edge_ids": [ + "486", + "487", + "493" + ] + }, + { + "id": "485", + "x": 38, + "y": -18, + "edge_ids": [ + "487", + "488", + "495" + ] + }, + { + "id": "491", + "x": 10, + "y": -34, + "edge_ids": [ + "493", + "494", + "648" + ] + }, + { + "id": "492", + "x": 10, + "y": -18, + "edge_ids": [ + "494", + "495", + "506" + ] + }, + { + "id": "498", + "x": -2, + "y": -34, + "edge_ids": [ + "510", + "648" + ] + }, + { + "id": "499", + "x": -2, + "y": -10, + "edge_ids": [ + "503", + "512" + ] + }, + { + "id": "500", + "x": 10, + "y": -10, + "edge_ids": [ + "503", + "506", + "536" + ] + }, + { + "id": "508", + "x": -30, + "y": -34, + "edge_ids": [ + "510", + "511" + ] + }, + { + "id": "509", + "x": -30, + "y": -10, + "edge_ids": [ + "511", + "512", + "520" + ] + }, + { + "id": "515", + "x": 10, + "y": 28, + "edge_ids": [ + "519", + "537", + "546" + ] + }, + { + "id": "516", + "x": -30, + "y": 28, + "edge_ids": [ + "519", + "520" + ] + }, + { + "id": "532", + "x": 10, + "y": -2, + "edge_ids": [ + "536", + "537", + "538" + ] + }, + { + "id": "543", + "x": 20, + "y": 28, + "edge_ids": [ + "546", + "661" + ] + }, + { + "id": "554", + "x": 36, + "y": 28, + "edge_ids": [ + "573", + "654", + "659" + ] + }, + { + "id": "566", + "x": 46, + "y": 28, + "edge_ids": [ + "573", + "662" + ] + }, + { + "id": "650", + "x": 36, + "y": 18, + "edge_ids": [ + "654", + "655" + ] + }, + { + "id": "651", + "x": 26, + "y": 18, + "edge_ids": [ + "655", + "656" + ] + }, + { + "id": "652", + "x": 26, + "y": 28, + "edge_ids": [ + "656", + "659", + "661" + ] + } + ], + "edges": [ + { + "id": "449", + "vertex_ids": [ + "445", + "446" + ], + "face_ids": [ + "453" + ] + }, + { + "id": "452", + "vertex_ids": [ + "448", + "445" + ], + "face_ids": [ + "453" + ] + }, + { + "id": "457", + "vertex_ids": [ + "447", + "454" + ], + "face_ids": [ + "453", + "525" + ] + }, + { + "id": "459", + "vertex_ids": [ + "455", + "456" + ], + "face_ids": [ + "453" + ] + }, + { + "id": "462", + "vertex_ids": [ + "456", + "448" + ], + "face_ids": [ + "453" + ] + }, + { + "id": "467", + "vertex_ids": [ + "464", + "465" + ], + "face_ids": [ + "471", + "525" + ] + }, + { + "id": "468", + "vertex_ids": [ + "465", + "446" + ], + "face_ids": [ + "453", + "471" + ] + }, + { + "id": "469", + "vertex_ids": [ + "446", + "466" + ], + "face_ids": [ + "471" + ] + }, + { + "id": "470", + "vertex_ids": [ + "466", + "464" + ], + "face_ids": [ + "471", + "541" + ] + }, + { + "id": "472", + "vertex_ids": [ + "465", + "447" + ], + "face_ids": [ + "453", + "525" + ] + }, + { + "id": "477", + "vertex_ids": [ + "455", + "474" + ], + "face_ids": [ + "481" + ] + }, + { + "id": "478", + "vertex_ids": [ + "474", + "475" + ], + "face_ids": [ + "481", + "489" + ] + }, + { + "id": "479", + "vertex_ids": [ + "475", + "476" + ], + "face_ids": [ + "481", + "525" + ] + }, + { + "id": "480", + "vertex_ids": [ + "476", + "455" + ], + "face_ids": [ + "453", + "481" + ] + }, + { + "id": "482", + "vertex_ids": [ + "454", + "476" + ], + "face_ids": [ + "453", + "525" + ] + }, + { + "id": "486", + "vertex_ids": [ + "474", + "484" + ], + "face_ids": [ + "489" + ] + }, + { + "id": "487", + "vertex_ids": [ + "484", + "485" + ], + "face_ids": [ + "489", + "496" + ] + }, + { + "id": "488", + "vertex_ids": [ + "485", + "475" + ], + "face_ids": [ + "489", + "525" + ] + }, + { + "id": "493", + "vertex_ids": [ + "484", + "491" + ], + "face_ids": [ + "496" + ] + }, + { + "id": "494", + "vertex_ids": [ + "491", + "492" + ], + "face_ids": [ + "496", + "513" + ] + }, + { + "id": "495", + "vertex_ids": [ + "492", + "485" + ], + "face_ids": [ + "496", + "525" + ] + }, + { + "id": "503", + "vertex_ids": [ + "499", + "500" + ], + "face_ids": [ + "513", + "521" + ] + }, + { + "id": "506", + "vertex_ids": [ + "500", + "492" + ], + "face_ids": [ + "513", + "525" + ] + }, + { + "id": "510", + "vertex_ids": [ + "498", + "508" + ], + "face_ids": [ + "513" + ] + }, + { + "id": "511", + "vertex_ids": [ + "508", + "509" + ], + "face_ids": [ + "513" + ] + }, + { + "id": "512", + "vertex_ids": [ + "509", + "499" + ], + "face_ids": [ + "513", + "521" + ] + }, + { + "id": "519", + "vertex_ids": [ + "515", + "516" + ], + "face_ids": [ + "521" + ] + }, + { + "id": "520", + "vertex_ids": [ + "516", + "509" + ], + "face_ids": [ + "521" + ] + }, + { + "id": "536", + "vertex_ids": [ + "500", + "532" + ], + "face_ids": [ + "521", + "525" + ] + }, + { + "id": "537", + "vertex_ids": [ + "532", + "515" + ], + "face_ids": [ + "521", + "541" + ] + }, + { + "id": "538", + "vertex_ids": [ + "464", + "532" + ], + "face_ids": [ + "525", + "541" + ] + }, + { + "id": "546", + "vertex_ids": [ + "515", + "543" + ], + "face_ids": [ + "541" + ] + }, + { + "id": "573", + "vertex_ids": [ + "554", + "566" + ], + "face_ids": [ + "541" + ] + }, + { + "id": "648", + "vertex_ids": [ + "498", + "491" + ], + "face_ids": [ + "513" + ] + }, + { + "id": "654", + "vertex_ids": [ + "554", + "650" + ], + "face_ids": [ + "541", + "660" + ] + }, + { + "id": "655", + "vertex_ids": [ + "650", + "651" + ], + "face_ids": [ + "541", + "660" + ] + }, + { + "id": "656", + "vertex_ids": [ + "651", + "652" + ], + "face_ids": [ + "541", + "660" + ] + }, + { + "id": "659", + "vertex_ids": [ + "652", + "554" + ], + "face_ids": [ + "660" + ] + }, + { + "id": "661", + "vertex_ids": [ + "543", + "652" + ], + "face_ids": [ + "541" + ] + }, + { + "id": "662", + "vertex_ids": [ + "466", + "566" + ], + "face_ids": [ + "541" + ] + } + ], + "faces": [ + { + "id": "453", + "edge_ids": [ + "449", + "468", + "472", + "457", + "482", + "480", + "459", + "462", + "452" + ], + "edge_order": [ + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1 + ] + }, + { + "id": "471", + "edge_ids": [ + "467", + "468", + "469", + "470" + ], + "edge_order": [ + 1, + 1, + 1, + 1 + ] + }, + { + "id": "481", + "edge_ids": [ + "477", + "478", + "479", + "480" + ], + "edge_order": [ + 1, + 1, + 1, + 1 + ] + }, + { + "id": "489", + "edge_ids": [ + "486", + "487", + "488", + "478" + ], + "edge_order": [ + 1, + 1, + 1, + 0 + ] + }, + { + "id": "496", + "edge_ids": [ + "493", + "494", + "495", + "487" + ], + "edge_order": [ + 1, + 1, + 1, + 0 + ] + }, + { + "id": "513", + "edge_ids": [ + "503", + "512", + "511", + "510", + "648", + "494", + "506" + ], + "edge_order": [ + 0, + 0, + 0, + 0, + 1, + 1, + 0 + ] + }, + { + "id": "521", + "edge_ids": [ + "512", + "503", + "536", + "537", + "519", + "520" + ], + "edge_order": [ + 1, + 1, + 1, + 1, + 1, + 1 + ] + }, + { + "id": "525", + "edge_ids": [ + "457", + "472", + "467", + "538", + "536", + "506", + "495", + "488", + "479", + "482" + ], + "edge_order": [ + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 0 + ] + }, + { + "id": "541", + "edge_ids": [ + "662", + "573", + "654", + "655", + "656", + "661", + "546", + "537", + "538", + "470" + ], + "edge_order": [ + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "id": "660", + "edge_ids": [ + "659", + "654", + "655", + "656" + ], + "edge_order": [ + 1, + 1, + 1, + 1 + ] + } + ] + }, + "spaces": [ + { + "id": "444", + "handle": null, + "name": "Space 3-1", + "face_id": "453", + "building_unit_id": null, + "thermal_zone_id": "tz_21", + "space_type_id": "184", + "construction_set_id": null, + "pitched_roof_id": null, + "daylighting_controls": [], + "below_floor_plenum_height": null, + "floor_to_ceiling_height": null, + "above_ceiling_plenum_height": null, + "floor_offset": null, + "open_to_below": null, + "color": "#bbc3c7", + "type": "space", + "area": 2736 + }, + { + "id": "463", + "handle": null, + "name": "Space 3-2", + "face_id": "471", + "building_unit_id": null, + "thermal_zone_id": "tz_22", + "space_type_id": "649", + "construction_set_id": null, + "pitched_roof_id": null, + "daylighting_controls": [], + "below_floor_plenum_height": null, + "floor_to_ceiling_height": null, + "above_ceiling_plenum_height": null, + "floor_offset": null, + "open_to_below": null, + "color": "#bbc3c7", + "type": "space", + "area": 360 + }, + { + "id": "473", + "handle": null, + "name": "Space 3-3", + "face_id": "481", + "building_unit_id": null, + "thermal_zone_id": "tz_23", + "space_type_id": "649", + "construction_set_id": null, + "pitched_roof_id": null, + "daylighting_controls": [], + "below_floor_plenum_height": null, + "floor_to_ceiling_height": null, + "above_ceiling_plenum_height": null, + "floor_offset": null, + "open_to_below": null, + "color": "#bbc3c7", + "type": "space", + "area": 224 + }, + { + "id": "483", + "handle": null, + "name": "Space 3-4", + "face_id": "489", + "building_unit_id": null, + "thermal_zone_id": "tz_24", + "space_type_id": "184", + "construction_set_id": null, + "pitched_roof_id": null, + "daylighting_controls": [], + "below_floor_plenum_height": null, + "floor_to_ceiling_height": null, + "above_ceiling_plenum_height": null, + "floor_offset": null, + "open_to_below": null, + "color": "#bbc3c7", + "type": "space", + "area": 288 + }, + { + "id": "490", + "handle": null, + "name": "Space 3-5", + "face_id": "496", + "building_unit_id": null, + "thermal_zone_id": "tz_25", + "space_type_id": "188", + "construction_set_id": null, + "pitched_roof_id": null, + "daylighting_controls": [], + "below_floor_plenum_height": null, + "floor_to_ceiling_height": null, + "above_ceiling_plenum_height": null, + "floor_offset": null, + "open_to_below": null, + "color": "#bbc3c7", + "type": "space", + "area": 448 + }, + { + "id": "507", + "handle": null, + "name": "Space 3-6", + "face_id": "513", + "building_unit_id": null, + "thermal_zone_id": "tz_26", + "space_type_id": "649", + "construction_set_id": null, + "pitched_roof_id": null, + "daylighting_controls": [], + "below_floor_plenum_height": null, + "floor_to_ceiling_height": null, + "above_ceiling_plenum_height": null, + "floor_offset": null, + "open_to_below": null, + "color": "#bbc3c7", + "type": "space", + "area": 960 + }, + { + "id": "514", + "handle": null, + "name": "Space 3-7", + "face_id": "521", + "building_unit_id": null, + "thermal_zone_id": "tz_27", + "space_type_id": "184", + "construction_set_id": null, + "pitched_roof_id": null, + "daylighting_controls": [], + "below_floor_plenum_height": null, + "floor_to_ceiling_height": null, + "above_ceiling_plenum_height": null, + "floor_offset": null, + "open_to_below": null, + "color": "#bbc3c7", + "type": "space", + "area": 1520 + }, + { + "id": "522", + "handle": null, + "name": "Space 3-8", + "face_id": "525", + "building_unit_id": null, + "thermal_zone_id": "tz_28", + "space_type_id": "361", + "construction_set_id": null, + "pitched_roof_id": null, + "daylighting_controls": [], + "below_floor_plenum_height": null, + "floor_to_ceiling_height": null, + "above_ceiling_plenum_height": null, + "floor_offset": null, + "open_to_below": null, + "color": "#bbc3c7", + "type": "space", + "area": 880 + }, + { + "id": "539", + "handle": null, + "name": "Space 3-9", + "face_id": "541", + "building_unit_id": null, + "thermal_zone_id": "tz_29", + "space_type_id": "185", + "construction_set_id": null, + "pitched_roof_id": null, + "daylighting_controls": [], + "below_floor_plenum_height": null, + "floor_to_ceiling_height": null, + "above_ceiling_plenum_height": null, + "floor_offset": null, + "open_to_below": null, + "color": "#bbc3c7", + "type": "space", + "area": 1040 + }, + { + "id": "658", + "handle": null, + "name": "Space 3-10", + "face_id": "660", + "building_unit_id": null, + "thermal_zone_id": "tz_30", + "space_type_id": "193", + "construction_set_id": null, + "pitched_roof_id": null, + "daylighting_controls": [], + "below_floor_plenum_height": null, + "floor_to_ceiling_height": null, + "above_ceiling_plenum_height": null, + "floor_offset": null, + "open_to_below": null, + "color": "#bbc3c7", + "type": "space", + "area": 100 + } + ], + "shading": [], + "windows": [ + { + "edge_id": "519", + "alpha": 0.026644886363636334, + "window_definition_id": 49, + "id": 49, + "name": "window 49" + }, + { + "edge_id": "519", + "alpha": 0.56875, + "window_definition_id": 50, + "id": 50, + "name": "window 50" + }, + { + "edge_id": "546", + "alpha": 0.497, + "window_definition_id": 51, + "id": 51, + "name": "window 51" + }, + { + "edge_id": "661", + "alpha": 0.497, + "window_definition_id": 52, + "id": 52, + "name": "window 52" + }, + { + "edge_id": "659", + "alpha": 0.47557954545454536, + "window_definition_id": 53, + "id": 53, + "name": "window 53" + }, + { + "edge_id": "573", + "alpha": 0.8234204545454547, + "window_definition_id": 54, + "id": 54, + "name": "window 54" + }, + { + "edge_id": "662", + "alpha": 0.497, + "window_definition_id": 55, + "id": 55, + "name": "window 55" + }, + { + "edge_id": "469", + "alpha": 0.497, + "window_definition_id": 56, + "id": 56, + "name": "window 56" + }, + { + "edge_id": "449", + "alpha": 0.359375, + "window_definition_id": 57, + "id": 57, + "name": "window 57" + }, + { + "edge_id": "449", + "alpha": 0.8931292613636364, + "window_definition_id": 58, + "id": 58, + "name": "window 58" + }, + { + "edge_id": "452", + "alpha": 0.022123839009287949, + "window_definition_id": 59, + "id": 59, + "name": "window 59" + }, + { + "edge_id": "452", + "alpha": 0.3881578947368421, + "window_definition_id": 60, + "id": 60, + "name": "window 60" + }, + { + "edge_id": "452", + "alpha": 0.7960526315789474, + "window_definition_id": 61, + "id": 61, + "name": "window 61" + }, + { + "edge_id": "462", + "alpha": 0.3229166666666667, + "window_definition_id": 62, + "id": 62, + "name": "window 62" + }, + { + "edge_id": "462", + "alpha": 0.9338872549019608, + "window_definition_id": 63, + "id": 63, + "name": "window 63" + }, + { + "edge_id": "459", + "alpha": 0.5460526315789474, + "window_definition_id": 64, + "id": 64, + "name": "window 64" + }, + { + "edge_id": "477", + "alpha": 0.8918102678571429, + "window_definition_id": 65, + "id": 65, + "name": "window 65" + }, + { + "edge_id": "486", + "alpha": 0.06992534722222223, + "window_definition_id": 66, + "id": 66, + "name": "window 66" + }, + { + "edge_id": "493", + "alpha": 0.5803571428571429, + "window_definition_id": 67, + "id": 67, + "name": "window 67" + }, + { + "edge_id": "510", + "alpha": 0.38392857142857148, + "window_definition_id": 68, + "id": 68, + "name": "window 68" + }, + { + "edge_id": "511", + "alpha": 0.8973969298245613, + "window_definition_id": 69, + "id": 69, + "name": "window 69" + }, + { + "edge_id": "511", + "alpha": 0.3229166666666667, + "window_definition_id": 70, + "id": 70, + "name": "window 70" + }, + { + "edge_id": "520", + "alpha": 0.20394736842105264, + "window_definition_id": 71, + "id": 71, + "name": "window 71" + }, + { + "edge_id": "520", + "alpha": 0.6118421052631579, + "window_definition_id": 72, + "id": 72, + "name": "window 72" + }, + { + "edge_id": "520", + "alpha": 0.9531980609418282, + "window_definition_id": 73, + "id": 73, + "name": "window 73" + } + ], + "doors": [], + "construction_lines": [], + "area": 8556 + } + ], + "building_units": [], + "thermal_zones": [ + { + "id": "tz_1", + "handle": null, + "name": "Thermal Zone 1", + "color": "#332288" + }, + { + "id": "tz_2", + "handle": null, + "name": "Thermal Zone 2", + "color": "#117733" + }, + { + "id": "tz_3", + "handle": null, + "name": "Thermal Zone 3", + "color": "#999933" + }, + { + "id": "tz_4", + "handle": null, + "name": "Thermal Zone 4", + "color": "#ddcc77" + }, + { + "id": "tz_5", + "handle": null, + "name": "Thermal Zone 5", + "color": "#cc6677" + }, + { + "id": "tz_6", + "handle": null, + "name": "Thermal Zone 6", + "color": "#882255" + }, + { + "id": "tz_7", + "handle": null, + "name": "Thermal Zone 7", + "color": "#44aa99" + }, + { + "id": "tz_8", + "handle": null, + "name": "Thermal Zone 8", + "color": "#6699cc" + }, + { + "id": "tz_9", + "handle": null, + "name": "Thermal Zone 9", + "color": "#661100" + }, + { + "id": "tz_10", + "handle": null, + "name": "Thermal Zone 10", + "color": "#aa4466" + }, + { + "id": "tz_11", + "handle": null, + "name": "Thermal Zone 11", + "color": "#aa4499" + }, + { + "id": "tz_12", + "handle": null, + "name": "Thermal Zone 12", + "color": "#88ccee" + }, + { + "id": "tz_13", + "handle": null, + "name": "Thermal Zone 13", + "color": "#332288" + }, + { + "id": "tz_14", + "handle": null, + "name": "Thermal Zone 14", + "color": "#117733" + }, + { + "id": "tz_15", + "handle": null, + "name": "Thermal Zone 15", + "color": "#999933" + }, + { + "id": "tz_16", + "handle": null, + "name": "Thermal Zone 16", + "color": "#ddcc77" + }, + { + "id": "tz_17", + "handle": null, + "name": "Thermal Zone 17", + "color": "#cc6677" + }, + { + "id": "tz_18", + "handle": null, + "name": "Thermal Zone 18", + "color": "#882255" + }, + { + "id": "tz_19", + "handle": null, + "name": "Thermal Zone 19", + "color": "#44aa99" + }, + { + "id": "tz_20", + "handle": null, + "name": "Thermal Zone 20", + "color": "#6699cc" + }, + { + "id": "tz_21", + "handle": null, + "name": "Thermal Zone 21", + "color": "#661100" + }, + { + "id": "tz_22", + "handle": null, + "name": "Thermal Zone 22", + "color": "#aa4466" + }, + { + "id": "tz_23", + "handle": null, + "name": "Thermal Zone 23", + "color": "#aa4499" + }, + { + "id": "tz_24", + "handle": null, + "name": "Thermal Zone 24", + "color": "#88ccee" + }, + { + "id": "tz_25", + "handle": null, + "name": "Thermal Zone 25", + "color": "#332288" + }, + { + "id": "tz_26", + "handle": null, + "name": "Thermal Zone 26", + "color": "#117733" + }, + { + "id": "tz_27", + "handle": null, + "name": "Thermal Zone 27", + "color": "#999933" + }, + { + "id": "tz_28", + "handle": null, + "name": "Thermal Zone 28", + "color": "#ddcc77" + }, + { + "id": "tz_29", + "handle": null, + "name": "Thermal Zone 29", + "color": "#cc6677" + }, + { + "id": "tz_30", + "handle": null, + "name": "Thermal Zone 30", + "color": "#882255" + } + ], + "space_types": [ + { + "handle": null, + "id": "181", + "name": "SecondarySchool-Cafeteria", + "color": "#88ccee", + "type": "space_types" + }, + { + "handle": null, + "id": "182", + "name": "SecondarySchool-Classroom", + "color": "#332288", + "type": "space_types" + }, + { + "handle": null, + "id": "184", + "name": "SecondarySchool-Library", + "color": "#999933", + "type": "space_types" + }, + { + "handle": null, + "id": "185", + "name": "SecondarySchool-Lobby", + "color": "#ddcc77", + "type": "space_types" + }, + { + "handle": null, + "id": "186", + "name": "SecondarySchool-Mechanical", + "color": "#cc6677", + "type": "space_types" + }, + { + "handle": null, + "id": "188", + "name": "SecondarySchool-Restroom", + "color": "#44aa99", + "type": "space_types" + }, + { + "handle": null, + "id": "189", + "name": "SecondarySchool-Kitchen", + "color": "#6699cc", + "type": "space_types" + }, + { + "handle": null, + "id": "190", + "name": "SecondarySchool-Computer", + "color": "#661100", + "type": "space_types" + }, + { + "handle": null, + "id": "191", + "name": "Office-Storage", + "color": "#aa4466", + "type": "space_types" + }, + { + "handle": null, + "id": "192", + "name": "Office-Stair", + "color": "#aa4499", + "type": "space_types" + }, + { + "handle": null, + "id": "193", + "name": "SmallHotel-ElevatorCore", + "color": "#88ccee", + "type": "space_types" + }, + { + "handle": null, + "id": "361", + "name": "SecondarySchool-Corridor", + "color": "#332288", + "type": "space_types" + }, + { + "handle": null, + "id": "649", + "name": "SecondarySchool-Office", + "color": "#117733", + "type": "space_types" + } + ], + "construction_sets": [], + "window_definitions": [ + { + "id": 1, + "name": "Window 1", + "type": "window_definitions", + "window_type": "Fixed", + "window_definition_mode": "Single Window", + "wwr": null, + "width": 4.453125, + "height": 6.4, + "sill_height": 1.7999999999999999, + "texture": "circles-5", + "overhang_projection_factor": null, + "fin_projection_factor": null, + "window_spacing": null + }, + { + "id": 2, + "name": "Window 2", + "type": "window_definitions", + "window_type": "Fixed", + "window_definition_mode": "Single Window", + "wwr": null, + "width": 3.4765625, + "height": 6.4, + "sill_height": 1.7999999999999999, + "texture": "circles-5", + "overhang_projection_factor": null, + "fin_projection_factor": null, + "window_spacing": null + }, + { + "id": 3, + "name": "Window 3", + "type": "window_definitions", + "window_type": "Fixed", + "window_definition_mode": "Single Window", + "wwr": null, + "width": 0.9765625, + "height": 6.4, + "sill_height": 1.7999999999999999, + "texture": "circles-5", + "overhang_projection_factor": null, + "fin_projection_factor": null, + "window_spacing": null + }, + { + "id": 4, + "name": "Window 4", + "type": "window_definitions", + "window_type": "Fixed", + "window_definition_mode": "Single Window", + "wwr": null, + "width": 4.453125, + "height": 6.4, + "sill_height": 1.7999999999999999, + "texture": "circles-5", + "overhang_projection_factor": null, + "fin_projection_factor": null, + "window_spacing": null + }, + { + "id": 5, + "name": "Window 5", + "type": "window_definitions", + "window_type": "Fixed", + "window_definition_mode": "Single Window", + "wwr": null, + "width": 4.453125, + "height": 6.4, + "sill_height": 1.7999999999999999, + "texture": "circles-5", + "overhang_projection_factor": null, + "fin_projection_factor": null, + "window_spacing": null + }, + { + "id": 6, + "name": "Window 6", + "type": "window_definitions", + "window_type": "Fixed", + "window_definition_mode": "Single Window", + "wwr": null, + "width": 2.9411764705882357, + "height": 6.799999999999999, + "sill_height": 1.6000000000000004, + "texture": "circles-5", + "overhang_projection_factor": null, + "fin_projection_factor": null, + "window_spacing": null + }, + { + "id": 7, + "name": "Window 7", + "type": "window_definitions", + "window_type": "Fixed", + "window_definition_mode": "Single Window", + "wwr": null, + "width": 2.9411764705882357, + "height": 6.799999999999999, + "sill_height": 1.6000000000000004, + "texture": "circles-5", + "overhang_projection_factor": null, + "fin_projection_factor": null, + "window_spacing": null + }, + { + "id": 8, + "name": "Window 8", + "type": "window_definitions", + "window_type": "Fixed", + "window_definition_mode": "Single Window", + "wwr": null, + "width": 2.9411764705882357, + "height": 6.799999999999999, + "sill_height": 1.6000000000000004, + "texture": "circles-5", + "overhang_projection_factor": null, + "fin_projection_factor": null, + "window_spacing": null + }, + { + "id": 9, + "name": "Window 9", + "type": "window_definitions", + "window_type": "Fixed", + "window_definition_mode": "Single Window", + "wwr": null, + "width": 2.941176470588232, + "height": 6.799999999999999, + "sill_height": 1.6000000000000004, + "texture": "circles-5", + "overhang_projection_factor": null, + "fin_projection_factor": null, + "window_spacing": null + }, + { + "id": 10, + "name": "Window 10", + "type": "window_definitions", + "window_type": "Fixed", + "window_definition_mode": "Single Window", + "wwr": null, + "width": 12.329545454545439, + "height": 8.8, + "sill_height": 0.5999999999999994, + "texture": "circles-5", + "overhang_projection_factor": null, + "fin_projection_factor": null, + "window_spacing": null + }, + { + "id": 11, + "name": "Window 11", + "type": "window_definitions", + "window_type": "Fixed", + "window_definition_mode": "Single Window", + "wwr": null, + "width": 12.329545454545439, + "height": 8.8, + "sill_height": 0.5999999999999994, + "texture": "circles-5", + "overhang_projection_factor": null, + "fin_projection_factor": null, + "window_spacing": null + }, + { + "id": 12, + "name": "Window 12", + "type": "window_definitions", + "window_type": "Fixed", + "window_definition_mode": "Single Window", + "wwr": null, + "width": 12.329545454545447, + "height": 8.8, + "sill_height": 0.5999999999999994, + "texture": "circles-5", + "overhang_projection_factor": null, + "fin_projection_factor": null, + "window_spacing": null + }, + { + "id": 13, + "name": "Window 13", + "type": "window_definitions", + "window_type": "Fixed", + "window_definition_mode": "Single Window", + "wwr": null, + "width": 12.329545454545454, + "height": 8.8, + "sill_height": 0.5999999999999994, + "texture": "circles-5", + "overhang_projection_factor": null, + "fin_projection_factor": null, + "window_spacing": null + }, + { + "id": 14, + "name": "Window 14", + "type": "window_definitions", + "window_type": "Fixed", + "window_definition_mode": "Single Window", + "wwr": null, + "width": 0.859375, + "height": 6.4, + "sill_height": 1.7999999999999999, + "texture": "circles-5", + "overhang_projection_factor": null, + "fin_projection_factor": null, + "window_spacing": null + }, + { + "id": 15, + "name": "Window 15", + "type": "window_definitions", + "window_type": "Fixed", + "window_definition_mode": "Single Window", + "wwr": null, + "width": 0.859375, + "height": 6.4, + "sill_height": 1.7999999999999999, + "texture": "circles-5", + "overhang_projection_factor": null, + "fin_projection_factor": null, + "window_spacing": null + }, + { + "id": 16, + "name": "Window 16", + "type": "window_definitions", + "window_type": "Fixed", + "window_definition_mode": "Single Window", + "wwr": null, + "width": 0.859375, + "height": 6.4, + "sill_height": 1.7999999999999999, + "texture": "circles-5", + "overhang_projection_factor": null, + "fin_projection_factor": null, + "window_spacing": null + }, + { + "id": 17, + "name": "Window 17", + "type": "window_definitions", + "window_type": "Fixed", + "window_definition_mode": "Single Window", + "wwr": null, + "width": 0.859375, + "height": 6.4, + "sill_height": 1.7999999999999999, + "texture": "circles-5", + "overhang_projection_factor": null, + "fin_projection_factor": null, + "window_spacing": null + }, + { + "id": 18, + "name": "Window 18", + "type": "window_definitions", + "window_type": "Fixed", + "window_definition_mode": "Single Window", + "wwr": null, + "width": 5.2631578947368429, + "height": 7.6, + "sill_height": 1.2, + "texture": "circles-5", + "overhang_projection_factor": null, + "fin_projection_factor": null, + "window_spacing": null + }, + { + "id": 19, + "name": "Window 19", + "type": "window_definitions", + "window_type": "Fixed", + "window_definition_mode": "Single Window", + "wwr": null, + "width": 5.2631578947368429, + "height": 7.6, + "sill_height": 1.2, + "texture": "circles-5", + "overhang_projection_factor": null, + "fin_projection_factor": null, + "window_spacing": null + }, + { + "id": 20, + "name": "Window 20", + "type": "window_definitions", + "window_type": "Fixed", + "window_definition_mode": "Single Window", + "wwr": null, + "width": 5.2631578947368429, + "height": 7.6, + "sill_height": 1.2, + "texture": "circles-5", + "overhang_projection_factor": null, + "fin_projection_factor": null, + "window_spacing": null + }, + { + "id": 21, + "name": "Window 21", + "type": "window_definitions", + "window_type": "Fixed", + "window_definition_mode": "Single Window", + "wwr": null, + "width": 5.2631578947368429, + "height": 7.6, + "sill_height": 1.2, + "texture": "circles-5", + "overhang_projection_factor": null, + "fin_projection_factor": null, + "window_spacing": null + }, + { + "id": 22, + "name": "Window 22", + "type": "window_definitions", + "window_type": "Fixed", + "window_definition_mode": "Single Window", + "wwr": null, + "width": 2.5539772727272735, + "height": 8.8, + "sill_height": 0.5999999999999994, + "texture": "circles-5", + "overhang_projection_factor": null, + "fin_projection_factor": null, + "window_spacing": null + }, + { + "id": 23, + "name": "Window 23", + "type": "window_definitions", + "window_type": "Fixed", + "window_definition_mode": "Single Window", + "wwr": null, + "width": 7.357954545454547, + "height": 8.8, + "sill_height": 0.5999999999999994, + "texture": "circles-5", + "overhang_projection_factor": null, + "fin_projection_factor": null, + "window_spacing": null + }, + { + "id": 24, + "name": "Window 24", + "type": "window_definitions", + "window_type": "Fixed", + "window_definition_mode": "Single Window", + "wwr": null, + "width": 7.357954545454547, + "height": 8.8, + "sill_height": 0.5999999999999994, + "texture": "circles-5", + "overhang_projection_factor": null, + "fin_projection_factor": null, + "window_spacing": null + }, + { + "id": 25, + "name": "Window 25", + "type": "window_definitions", + "window_type": "Fixed", + "window_definition_mode": "Single Window", + "wwr": null, + "width": 5.303977272727273, + "height": 8.8, + "sill_height": 0.5999999999999994, + "texture": "circles-5", + "overhang_projection_factor": null, + "fin_projection_factor": null, + "window_spacing": null + }, + { + "id": 26, + "name": "Window 26", + "type": "window_definitions", + "window_type": "Fixed", + "window_definition_mode": "Single Window", + "wwr": null, + "width": 4.8039772727272729, + "height": 8.8, + "sill_height": 0.5999999999999994, + "texture": "circles-5", + "overhang_projection_factor": null, + "fin_projection_factor": null, + "window_spacing": null + }, + { + "id": 27, + "name": "Window 27", + "type": "window_definitions", + "window_type": "Fixed", + "window_definition_mode": "Single Window", + "wwr": null, + "width": 2.0539772727272718, + "height": 8.8, + "sill_height": 0.5999999999999994, + "texture": "circles-5", + "overhang_projection_factor": null, + "fin_projection_factor": null, + "window_spacing": null + }, + { + "id": 28, + "name": "Window 28", + "type": "window_definitions", + "window_type": "Fixed", + "window_definition_mode": "Single Window", + "wwr": null, + "width": 1.9715909090909066, + "height": 8.8, + "sill_height": 0.5999999999999994, + "texture": "circles-5", + "overhang_projection_factor": null, + "fin_projection_factor": null, + "window_spacing": null + }, + { + "id": 29, + "name": "Window 29", + "type": "window_definitions", + "window_type": "Fixed", + "window_definition_mode": "Single Window", + "wwr": null, + "width": 27.443181818181814, + "height": 8.8, + "sill_height": 0.5999999999999994, + "texture": "circles-5", + "overhang_projection_factor": null, + "fin_projection_factor": null, + "window_spacing": null + }, + { + "id": 30, + "name": "Window 30", + "type": "window_definitions", + "window_type": "Fixed", + "window_definition_mode": "Single Window", + "wwr": null, + "width": 10, + "height": 8.8, + "sill_height": 0.5999999999999994, + "texture": "circles-5", + "overhang_projection_factor": null, + "fin_projection_factor": null, + "window_spacing": null + }, + { + "id": 31, + "name": "Window 31", + "type": "window_definitions", + "window_type": "Fixed", + "window_definition_mode": "Single Window", + "wwr": null, + "width": 9.471590909090907, + "height": 8.8, + "sill_height": 0.5999999999999994, + "texture": "circles-5", + "overhang_projection_factor": null, + "fin_projection_factor": null, + "window_spacing": null + }, + { + "id": 32, + "name": "Window 32", + "type": "window_definitions", + "window_type": "Fixed", + "window_definition_mode": "Single Window", + "wwr": null, + "width": 15.471590909090907, + "height": 8.8, + "sill_height": 0.5999999999999994, + "texture": "circles-5", + "overhang_projection_factor": null, + "fin_projection_factor": null, + "window_spacing": null + }, + { + "id": 33, + "name": "Window 33", + "type": "window_definitions", + "window_type": "Fixed", + "window_definition_mode": "Single Window", + "wwr": null, + "width": 27.443181818181814, + "height": 8.8, + "sill_height": 0.5999999999999994, + "texture": "circles-5", + "overhang_projection_factor": null, + "fin_projection_factor": null, + "window_spacing": null + }, + { + "id": 34, + "name": "Window 34", + "type": "window_definitions", + "window_type": "Fixed", + "window_definition_mode": "Single Window", + "wwr": null, + "width": 17.971590909090908, + "height": 8.8, + "sill_height": 0.5999999999999994, + "texture": "circles-5", + "overhang_projection_factor": null, + "fin_projection_factor": null, + "window_spacing": null + }, + { + "id": 35, + "name": "Window 35", + "type": "window_definitions", + "window_type": "Fixed", + "window_definition_mode": "Single Window", + "wwr": null, + "width": 4.558823529411766, + "height": 6.799999999999999, + "sill_height": 1.6000000000000004, + "texture": "circles-5", + "overhang_projection_factor": null, + "fin_projection_factor": null, + "window_spacing": null + }, + { + "id": 36, + "name": "Window 36", + "type": "window_definitions", + "window_type": "Fixed", + "window_definition_mode": "Single Window", + "wwr": null, + "width": 4.558823529411768, + "height": 6.799999999999999, + "sill_height": 1.6000000000000004, + "texture": "circles-5", + "overhang_projection_factor": null, + "fin_projection_factor": null, + "window_spacing": null + }, + { + "id": 37, + "name": "Window 37", + "type": "window_definitions", + "window_type": "Fixed", + "window_definition_mode": "Single Window", + "wwr": null, + "width": 3.529411764705884, + "height": 6.799999999999999, + "sill_height": 1.6000000000000004, + "texture": "circles-5", + "overhang_projection_factor": null, + "fin_projection_factor": null, + "window_spacing": null + }, + { + "id": 38, + "name": "Window 38", + "type": "window_definitions", + "window_type": "Fixed", + "window_definition_mode": "Single Window", + "wwr": null, + "width": 4.558823529411768, + "height": 6.799999999999999, + "sill_height": 1.6000000000000004, + "texture": "circles-5", + "overhang_projection_factor": null, + "fin_projection_factor": null, + "window_spacing": null + }, + { + "id": 39, + "name": "Window 39", + "type": "window_definitions", + "window_type": "Fixed", + "window_definition_mode": "Single Window", + "wwr": null, + "width": 1.029411764705884, + "height": 6.799999999999999, + "sill_height": 1.6000000000000004, + "texture": "circles-5", + "overhang_projection_factor": null, + "fin_projection_factor": null, + "window_spacing": null + }, + { + "id": 40, + "name": "Window 40", + "type": "window_definitions", + "window_type": "Fixed", + "window_definition_mode": "Single Window", + "wwr": null, + "width": 5.390625, + "height": 6.4, + "sill_height": 1.7999999999999999, + "texture": "circles-5", + "overhang_projection_factor": null, + "fin_projection_factor": null, + "window_spacing": null + }, + { + "id": 41, + "name": "Window 41", + "type": "window_definitions", + "window_type": "Fixed", + "window_definition_mode": "Single Window", + "wwr": null, + "width": 5.390625, + "height": 6.4, + "sill_height": 1.7999999999999999, + "texture": "circles-5", + "overhang_projection_factor": null, + "fin_projection_factor": null, + "window_spacing": null + }, + { + "id": 42, + "name": "Window 42", + "type": "window_definitions", + "window_type": "Fixed", + "window_definition_mode": "Single Window", + "wwr": null, + "width": 5.390625, + "height": 6.4, + "sill_height": 1.7999999999999999, + "texture": "circles-5", + "overhang_projection_factor": null, + "fin_projection_factor": null, + "window_spacing": null + }, + { + "id": 43, + "name": "Window 43", + "type": "window_definitions", + "window_type": "Fixed", + "window_definition_mode": "Single Window", + "wwr": null, + "width": 5.390625, + "height": 6.4, + "sill_height": 1.7999999999999999, + "texture": "circles-5", + "overhang_projection_factor": null, + "fin_projection_factor": null, + "window_spacing": null + }, + { + "id": 44, + "name": "Window 44", + "type": "window_definitions", + "window_type": "Fixed", + "window_definition_mode": "Single Window", + "wwr": null, + "width": 8.15789473684211, + "height": 7.6, + "sill_height": 1.2, + "texture": "circles-5", + "overhang_projection_factor": null, + "fin_projection_factor": null, + "window_spacing": null + }, + { + "id": 45, + "name": "Window 45", + "type": "window_definitions", + "window_type": "Fixed", + "window_definition_mode": "Single Window", + "wwr": null, + "width": 3.828947368421055, + "height": 7.6, + "sill_height": 1.2, + "texture": "circles-5", + "overhang_projection_factor": null, + "fin_projection_factor": null, + "window_spacing": null + }, + { + "id": 46, + "name": "Window 46", + "type": "window_definitions", + "window_type": "Fixed", + "window_definition_mode": "Single Window", + "wwr": null, + "width": 8.157894736842107, + "height": 7.6, + "sill_height": 1.2, + "texture": "circles-5", + "overhang_projection_factor": null, + "fin_projection_factor": null, + "window_spacing": null + }, + { + "id": 47, + "name": "Window 47", + "type": "window_definitions", + "window_type": "Fixed", + "window_definition_mode": "Single Window", + "wwr": null, + "width": 8.157894736842107, + "height": 7.6, + "sill_height": 1.2, + "texture": "circles-5", + "overhang_projection_factor": null, + "fin_projection_factor": null, + "window_spacing": null + }, + { + "id": 48, + "name": "Window 48", + "type": "window_definitions", + "window_type": "Fixed", + "window_definition_mode": "Single Window", + "wwr": null, + "width": 4.328947368421055, + "height": 7.6, + "sill_height": 1.2, + "texture": "circles-5", + "overhang_projection_factor": null, + "fin_projection_factor": null, + "window_spacing": null + }, + { + "id": 49, + "name": "Window 49", + "type": "window_definitions", + "window_type": "Fixed", + "window_definition_mode": "Single Window", + "wwr": null, + "width": 1.9715909090909066, + "height": 8.8, + "sill_height": 0.5999999999999994, + "texture": "circles-5", + "overhang_projection_factor": null, + "fin_projection_factor": null, + "window_spacing": null + }, + { + "id": 50, + "name": "Window 50", + "type": "window_definitions", + "window_type": "Fixed", + "window_definition_mode": "Single Window", + "wwr": null, + "width": 27.443181818181814, + "height": 8.8, + "sill_height": 0.5999999999999994, + "texture": "circles-5", + "overhang_projection_factor": null, + "fin_projection_factor": null, + "window_spacing": null + }, + { + "id": 51, + "name": "Window 51", + "type": "window_definitions", + "window_type": "Fixed", + "window_definition_mode": "Single Window", + "wwr": null, + "width": 10, + "height": 8.8, + "sill_height": 0.5999999999999994, + "texture": "circles-5", + "overhang_projection_factor": null, + "fin_projection_factor": null, + "window_spacing": null + }, + { + "id": 52, + "name": "Window 52", + "type": "window_definitions", + "window_type": "Fixed", + "window_definition_mode": "Single Window", + "wwr": null, + "width": 6, + "height": 8.8, + "sill_height": 0.5999999999999994, + "texture": "circles-5", + "overhang_projection_factor": null, + "fin_projection_factor": null, + "window_spacing": null + }, + { + "id": 53, + "name": "Window 53", + "type": "window_definitions", + "window_type": "Fixed", + "window_definition_mode": "Single Window", + "wwr": null, + "width": 9.471590909090907, + "height": 8.8, + "sill_height": 0.5999999999999994, + "texture": "circles-5", + "overhang_projection_factor": null, + "fin_projection_factor": null, + "window_spacing": null + }, + { + "id": 54, + "name": "Window 54", + "type": "window_definitions", + "window_type": "Fixed", + "window_definition_mode": "Single Window", + "wwr": null, + "width": 3.4715909090909067, + "height": 8.8, + "sill_height": 0.5999999999999994, + "texture": "circles-5", + "overhang_projection_factor": null, + "fin_projection_factor": null, + "window_spacing": null + }, + { + "id": 55, + "name": "Window 55", + "type": "window_definitions", + "window_type": "Fixed", + "window_definition_mode": "Single Window", + "wwr": null, + "width": 2, + "height": 8.8, + "sill_height": 0.5999999999999994, + "texture": "circles-5", + "overhang_projection_factor": null, + "fin_projection_factor": null, + "window_spacing": null + }, + { + "id": 56, + "name": "Window 56", + "type": "window_definitions", + "window_type": "Fixed", + "window_definition_mode": "Single Window", + "wwr": null, + "width": 12, + "height": 8.8, + "sill_height": 0.5999999999999994, + "texture": "circles-5", + "overhang_projection_factor": null, + "fin_projection_factor": null, + "window_spacing": null + }, + { + "id": 57, + "name": "Window 57", + "type": "window_definitions", + "window_type": "Fixed", + "window_definition_mode": "Single Window", + "wwr": null, + "width": 27.443181818181814, + "height": 8.8, + "sill_height": 0.5999999999999994, + "texture": "circles-5", + "overhang_projection_factor": null, + "fin_projection_factor": null, + "window_spacing": null + }, + { + "id": 58, + "name": "Window 58", + "type": "window_definitions", + "window_type": "Fixed", + "window_definition_mode": "Single Window", + "wwr": null, + "width": 9.971590909090907, + "height": 8.8, + "sill_height": 0.5999999999999994, + "texture": "circles-5", + "overhang_projection_factor": null, + "fin_projection_factor": null, + "window_spacing": null + }, + { + "id": 59, + "name": "Window 59", + "type": "window_definitions", + "window_type": "Fixed", + "window_definition_mode": "Single Window", + "wwr": null, + "width": 1.529411764705884, + "height": 6.799999999999999, + "sill_height": 1.6000000000000004, + "texture": "circles-5", + "overhang_projection_factor": null, + "fin_projection_factor": null, + "window_spacing": null + }, + { + "id": 60, + "name": "Window 60", + "type": "window_definitions", + "window_type": "Fixed", + "window_definition_mode": "Single Window", + "wwr": null, + "width": 4.558823529411766, + "height": 6.799999999999999, + "sill_height": 1.6000000000000004, + "texture": "circles-5", + "overhang_projection_factor": null, + "fin_projection_factor": null, + "window_spacing": null + }, + { + "id": 61, + "name": "Window 61", + "type": "window_definitions", + "window_type": "Fixed", + "window_definition_mode": "Single Window", + "wwr": null, + "width": 4.558823529411768, + "height": 6.799999999999999, + "sill_height": 1.6000000000000004, + "texture": "circles-5", + "overhang_projection_factor": null, + "fin_projection_factor": null, + "window_spacing": null + }, + { + "id": 62, + "name": "Window 62", + "type": "window_definitions", + "window_type": "Fixed", + "window_definition_mode": "Single Window", + "wwr": null, + "width": 4.558823529411768, + "height": 6.799999999999999, + "sill_height": 1.6000000000000004, + "texture": "circles-5", + "overhang_projection_factor": null, + "fin_projection_factor": null, + "window_spacing": null + }, + { + "id": 63, + "name": "Window 63", + "type": "window_definitions", + "window_type": "Fixed", + "window_definition_mode": "Single Window", + "wwr": null, + "width": 3.029411764705884, + "height": 6.799999999999999, + "sill_height": 1.6000000000000004, + "texture": "circles-5", + "overhang_projection_factor": null, + "fin_projection_factor": null, + "window_spacing": null + }, + { + "id": 64, + "name": "Window 64", + "type": "window_definitions", + "window_type": "Fixed", + "window_definition_mode": "Single Window", + "wwr": null, + "width": 5.390625, + "height": 6.4, + "sill_height": 1.7999999999999999, + "texture": "circles-5", + "overhang_projection_factor": null, + "fin_projection_factor": null, + "window_spacing": null + }, + { + "id": 65, + "name": "Window 65", + "type": "window_definitions", + "window_type": "Fixed", + "window_definition_mode": "Single Window", + "wwr": null, + "width": 2.9453125, + "height": 6.4, + "sill_height": 1.7999999999999999, + "texture": "circles-5", + "overhang_projection_factor": null, + "fin_projection_factor": null, + "window_spacing": null + }, + { + "id": 66, + "name": "Window 66", + "type": "window_definitions", + "window_type": "Fixed", + "window_definition_mode": "Single Window", + "wwr": null, + "width": 2.4453125, + "height": 6.4, + "sill_height": 1.7999999999999999, + "texture": "circles-5", + "overhang_projection_factor": null, + "fin_projection_factor": null, + "window_spacing": null + }, + { + "id": 67, + "name": "Window 67", + "type": "window_definitions", + "window_type": "Fixed", + "window_definition_mode": "Single Window", + "wwr": null, + "width": 5.390625, + "height": 6.4, + "sill_height": 1.7999999999999999, + "texture": "circles-5", + "overhang_projection_factor": null, + "fin_projection_factor": null, + "window_spacing": null + }, + { + "id": 68, + "name": "Window 68", + "type": "window_definitions", + "window_type": "Fixed", + "window_definition_mode": "Single Window", + "wwr": null, + "width": 5.390625, + "height": 6.4, + "sill_height": 1.7999999999999999, + "texture": "circles-5", + "overhang_projection_factor": null, + "fin_projection_factor": null, + "window_spacing": null + }, + { + "id": 69, + "name": "Window 69", + "type": "window_definitions", + "window_type": "Fixed", + "window_definition_mode": "Single Window", + "wwr": null, + "width": 4.828947368421053, + "height": 7.6, + "sill_height": 1.2, + "texture": "circles-5", + "overhang_projection_factor": null, + "fin_projection_factor": null, + "window_spacing": null + }, + { + "id": 70, + "name": "Window 70", + "type": "window_definitions", + "window_type": "Fixed", + "window_definition_mode": "Single Window", + "wwr": null, + "width": 8.15789473684211, + "height": 7.6, + "sill_height": 1.2, + "texture": "circles-5", + "overhang_projection_factor": null, + "fin_projection_factor": null, + "window_spacing": null + }, + { + "id": 71, + "name": "Window 71", + "type": "window_definitions", + "window_type": "Fixed", + "window_definition_mode": "Single Window", + "wwr": null, + "width": 8.15789473684211, + "height": 7.6, + "sill_height": 1.2, + "texture": "circles-5", + "overhang_projection_factor": null, + "fin_projection_factor": null, + "window_spacing": null + }, + { + "id": 72, + "name": "Window 72", + "type": "window_definitions", + "window_type": "Fixed", + "window_definition_mode": "Single Window", + "wwr": null, + "width": 8.157894736842107, + "height": 7.6, + "sill_height": 1.2, + "texture": "circles-5", + "overhang_projection_factor": null, + "fin_projection_factor": null, + "window_spacing": null + }, + { + "id": 73, + "name": "Window 73", + "type": "window_definitions", + "window_type": "Fixed", + "window_definition_mode": "Single Window", + "wwr": null, + "width": 3.328947368421053, + "height": 7.6, + "sill_height": 1.2, + "texture": "circles-5", + "overhang_projection_factor": null, + "fin_projection_factor": null, + "window_spacing": null + } + ], + "daylighting_control_definitions": [], + "pitched_roofs": [], + "door_definitions": [], + "version": "0.7.0", + "area": 22552 +} \ No newline at end of file diff --git a/resources/utilities/Geometry/shadingtest.json b/resources/utilities/Geometry/shadingtest.json new file mode 100644 index 00000000000..000cbc94201 --- /dev/null +++ b/resources/utilities/Geometry/shadingtest.json @@ -0,0 +1,763 @@ +{ + "application": { + "currentSelections": { + "story": null, + "story_id": "1", + "subselection_ids": { + "1": "43", + "194": "199" + }, + "component_id": null, + "component_definition_id": null, + "component_instance_id": null, + "space_property_id": null, + "tool": "Rectangle", + "mode": "spaces", + "snapMode": "grid-strict", + "modeTab": "floorplan", + "subselectionType": "shading" + }, + "modes": [ + "spaces", + "shading", + "building_units", + "thermal_zones", + "pitched_roofs", + "space_types", + "images" + ], + "tools": [ + "Pan", + "Drag", + "Rectangle", + "Polygon", + "Eraser", + "Select", + "Map", + "Fill", + "Place Component", + "Image", + "Apply Property" + ], + "scale": { + "x": { + "pixels": 1576, + "rwuRange": [ + -293.7944862155388, + 53.794486215538828 + ] + }, + "y": { + "pixels": 798, + "rwuRange": [ + -78, + 98 + ] + } + } + }, + "project": { + "config": { + "units": "ip", + "unitsEditable": true, + "language": "EN-US" + }, + "north_axis": 0, + "ground": { + "floor_offset": 0, + "azimuth_angle": 0, + "tilt_slope": 0 + }, + "grid": { + "visible": true, + "spacing": 5 + }, + "view": { + "min_x": -408.62384044439747, + "min_y": -273.8788240498126, + "max_x": 536.0929384496819, + "max_y": 204.47396120239262 + }, + "map": { + "initialized": false, + "enabled": false, + "visible": true, + "latitude": 39.7653, + "longitude": -104.9863, + "zoom": 4.5, + "rotation": 0, + "elevation": 0 + }, + "previous_story": { + "visible": true + }, + "show_import_export": true, + "preview3D": { + "enabled": true + }, + "footprintID": "a7b3-a7fe-90bf-a1f0" + }, + "stories": [ + { + "id": "1", + "handle": null, + "name": "Story 1", + "image_visible": true, + "below_floor_plenum_height": 2, + "floor_to_ceiling_height": 8, + "above_ceiling_plenum_height": 2, + "multiplier": 1, + "color": "#88ccee", + "geometry": { + "id": "2", + "vertices": [ + { + "id": "5", + "x": -170, + "y": 90, + "edge_ids": [ + "9", + "12" + ] + }, + { + "id": "6", + "x": 5, + "y": 90, + "edge_ids": [ + "9", + "10" + ] + }, + { + "id": "7", + "x": 5, + "y": -70, + "edge_ids": [ + "10", + "11" + ] + }, + { + "id": "8", + "x": -170, + "y": -70, + "edge_ids": [ + "11", + "12" + ] + }, + { + "id": "14", + "x": -245, + "y": 85, + "edge_ids": [ + "18", + "21" + ] + }, + { + "id": "15", + "x": -180, + "y": 85, + "edge_ids": [ + "18", + "19" + ] + }, + { + "id": "16", + "x": -180, + "y": -55, + "edge_ids": [ + "19", + "20" + ] + }, + { + "id": "17", + "x": -245, + "y": -55, + "edge_ids": [ + "20", + "21" + ] + }, + { + "id": "24", + "x": -165, + "y": -85, + "edge_ids": [ + "28", + "31" + ] + }, + { + "id": "25", + "x": 0, + "y": -85, + "edge_ids": [ + "28", + "29" + ] + }, + { + "id": "26", + "x": 0, + "y": -135, + "edge_ids": [ + "29", + "30" + ] + }, + { + "id": "27", + "x": -165, + "y": -135, + "edge_ids": [ + "30", + "31" + ] + }, + { + "id": "34", + "x": 20, + "y": 75, + "edge_ids": [ + "38", + "41" + ] + }, + { + "id": "35", + "x": 90, + "y": 75, + "edge_ids": [ + "38", + "39" + ] + }, + { + "id": "36", + "x": 90, + "y": -55, + "edge_ids": [ + "39", + "40" + ] + }, + { + "id": "37", + "x": 20, + "y": -55, + "edge_ids": [ + "40", + "41" + ] + }, + { + "id": "44", + "x": -155, + "y": 155, + "edge_ids": [ + "48", + "51" + ] + }, + { + "id": "45", + "x": -5, + "y": 155, + "edge_ids": [ + "48", + "49" + ] + }, + { + "id": "46", + "x": -5, + "y": 105, + "edge_ids": [ + "49", + "50" + ] + }, + { + "id": "47", + "x": -155, + "y": 105, + "edge_ids": [ + "50", + "51" + ] + } + ], + "edges": [ + { + "id": "9", + "vertex_ids": [ + "5", + "6" + ], + "face_ids": [ + "13" + ] + }, + { + "id": "10", + "vertex_ids": [ + "6", + "7" + ], + "face_ids": [ + "13" + ] + }, + { + "id": "11", + "vertex_ids": [ + "7", + "8" + ], + "face_ids": [ + "13" + ] + }, + { + "id": "12", + "vertex_ids": [ + "8", + "5" + ], + "face_ids": [ + "13" + ] + }, + { + "id": "18", + "vertex_ids": [ + "14", + "15" + ], + "face_ids": [ + "22" + ] + }, + { + "id": "19", + "vertex_ids": [ + "15", + "16" + ], + "face_ids": [ + "22" + ] + }, + { + "id": "20", + "vertex_ids": [ + "16", + "17" + ], + "face_ids": [ + "22" + ] + }, + { + "id": "21", + "vertex_ids": [ + "17", + "14" + ], + "face_ids": [ + "22" + ] + }, + { + "id": "28", + "vertex_ids": [ + "24", + "25" + ], + "face_ids": [ + "32" + ] + }, + { + "id": "29", + "vertex_ids": [ + "25", + "26" + ], + "face_ids": [ + "32" + ] + }, + { + "id": "30", + "vertex_ids": [ + "26", + "27" + ], + "face_ids": [ + "32" + ] + }, + { + "id": "31", + "vertex_ids": [ + "27", + "24" + ], + "face_ids": [ + "32" + ] + }, + { + "id": "38", + "vertex_ids": [ + "34", + "35" + ], + "face_ids": [ + "42" + ] + }, + { + "id": "39", + "vertex_ids": [ + "35", + "36" + ], + "face_ids": [ + "42" + ] + }, + { + "id": "40", + "vertex_ids": [ + "36", + "37" + ], + "face_ids": [ + "42" + ] + }, + { + "id": "41", + "vertex_ids": [ + "37", + "34" + ], + "face_ids": [ + "42" + ] + }, + { + "id": "48", + "vertex_ids": [ + "44", + "45" + ], + "face_ids": [ + "52" + ] + }, + { + "id": "49", + "vertex_ids": [ + "45", + "46" + ], + "face_ids": [ + "52" + ] + }, + { + "id": "50", + "vertex_ids": [ + "46", + "47" + ], + "face_ids": [ + "52" + ] + }, + { + "id": "51", + "vertex_ids": [ + "47", + "44" + ], + "face_ids": [ + "52" + ] + } + ], + "faces": [ + { + "id": "13", + "edge_ids": [ + "9", + "10", + "11", + "12" + ], + "edge_order": [ + 1, + 1, + 1, + 1 + ] + }, + { + "id": "22", + "edge_ids": [ + "18", + "19", + "20", + "21" + ], + "edge_order": [ + 1, + 1, + 1, + 1 + ] + }, + { + "id": "32", + "edge_ids": [ + "28", + "29", + "30", + "31" + ], + "edge_order": [ + 1, + 1, + 1, + 1 + ] + }, + { + "id": "42", + "edge_ids": [ + "38", + "39", + "40", + "41" + ], + "edge_order": [ + 1, + 1, + 1, + 1 + ] + }, + { + "id": "52", + "edge_ids": [ + "48", + "49", + "50", + "51" + ], + "edge_order": [ + 1, + 1, + 1, + 1 + ] + } + ] + }, + "images": [], + "spaces": [ + { + "id": "3", + "handle": null, + "name": "Space 1 - 1", + "face_id": "13", + "building_unit_id": null, + "thermal_zone_id": null, + "space_type_id": null, + "construction_set_id": null, + "pitched_roof_id": null, + "daylighting_controls": [], + "below_floor_plenum_height": null, + "floor_to_ceiling_height": null, + "above_ceiling_plenum_height": null, + "floor_offset": null, + "open_to_below": null, + "building_type_id": null, + "template": null, + "color": "#88ccee", + "type": "space" + } + ], + "shading": [ + { + "handle": null, + "id": "4", + "name": "Shading 1 - 1", + "face_id": "22", + "color": "#E8E3E5", + "below_floor_plenum_height": 0, + "floor_to_ceiling_height": 20, + "above_ceiling_plenum_height": 10, + "type": "shading" + }, + { + "id": "23", + "handle": null, + "name": "Shading 1 - 2", + "face_id": "32", + "color": "#E8E3E5", + "type": "shading" + }, + { + "id": "33", + "handle": null, + "name": "Shading 1 - 3", + "face_id": "42", + "color": "#E8E3E5", + "floor_to_ceiling_height": 20, + "type": "shading" + }, + { + "id": "43", + "handle": null, + "name": "Shading 1 - 4", + "face_id": "52", + "color": "#E8E3E5", + "above_ceiling_plenum_height": 10, + "type": "shading" + } + ], + "windows": [], + "doors": [] + } + ], + "building_units": [], + "building_types": [ + { + "handle": null, + "id": "SecondarySchool", + "name": "Secondary School" + }, + { + "handle": null, + "id": "PrimarySchool", + "name": "Primary School" + }, + { + "handle": null, + "id": "SmallOffice", + "name": "Small Office" + }, + { + "handle": null, + "id": "MediumOffice", + "name": "Medium Office" + }, + { + "handle": null, + "id": "LargeOffice", + "name": "Large Office" + }, + { + "handle": null, + "id": "SmallHotel", + "name": "Small Hotel" + }, + { + "handle": null, + "id": "LargeHotel", + "name": "Large Hotel" + }, + { + "handle": null, + "id": "Warehouse", + "name": "Warehouse" + }, + { + "handle": null, + "id": "RetailStandalone", + "name": "Retail Standalone" + }, + { + "handle": null, + "id": "RetailStripmall", + "name": "Retail Stripmall" + }, + { + "handle": null, + "id": "QuickServiceRestaurant", + "name": "Quick Service Restaurant" + }, + { + "handle": null, + "id": "FullServiceRestaurant", + "name": "Full Service Restaurant" + }, + { + "handle": null, + "id": "MidriseApartment", + "name": "Midrise Apartment" + }, + { + "handle": null, + "id": "HighriseApartment", + "name": "Highrise Apartment" + }, + { + "handle": null, + "id": "Hospital", + "name": "Hospital" + }, + { + "handle": null, + "id": "Outpatient", + "name": "Outpatient" + }, + { + "handle": null, + "id": "SuperMarket", + "name": "Super Market" + }, + { + "handle": null, + "id": "Laboratory", + "name": "Laboratory" + }, + { + "handle": null, + "id": "LargeDataCenterLowITE", + "name": "Large Data Center Low ITE" + }, + { + "handle": null, + "id": "LargeDataCenterHighITE", + "name": "Large Data Center High ITE" + }, + { + "handle": null, + "id": "SmallDataCenterLowITE", + "name": "Small Data Center Low ITE" + }, + { + "handle": null, + "id": "SmallDataCenterHighITE", + "name": "Small Data Center High ITE" + } + ], + "thermal_zones": [], + "space_types": [], + "construction_sets": [], + "window_definitions": [], + "daylighting_control_definitions": [], + "pitched_roofs": [], + "door_definitions": [], + "version": "0.7.0" +} \ No newline at end of file diff --git a/src/model/test/FloorspaceReverseTranslator_GTest.cpp b/src/model/test/FloorspaceReverseTranslator_GTest.cpp index 9b838e36d5f..5bd2902863c 100644 --- a/src/model/test/FloorspaceReverseTranslator_GTest.cpp +++ b/src/model/test/FloorspaceReverseTranslator_GTest.cpp @@ -82,6 +82,35 @@ using namespace openstudio::model; OutputDebugString(os_.str().c_str()); \ } +void CompareSurfaceGroups(Model& model, Model& baseline) { + + auto shadingGroup1 = model.getModelObjects(); + auto shadingGroup2 = baseline.getModelObjects(); + EXPECT_EQ(shadingGroup1.size(), shadingGroup2.size()); + for (auto& shadingGroup : shadingGroup1) { + // Shading Surface Group names only match for building shading + if (shadingGroup.shadingSurfaceType() == "Building") { + auto match = baseline.getModelObjectByName(*shadingGroup.name()); + EXPECT_TRUE(match.has_value()); + std::string surfaceType = shadingGroup.shadingSurfaceType(); + EXPECT_EQ(shadingGroup.shadingSurfaceType(), match->shadingSurfaceType()); + EXPECT_EQ(shadingGroup.shadingSurfaces().size(), match->shadingSurfaces().size()); + + // Match surfaces by vertices + for (auto& shadingSurface : shadingGroup.shadingSurfaces()) { + bool matched = false; + for (auto& shadingSurface2 : match->shadingSurfaces()) { + if (circularEqual(shadingSurface.vertices(), shadingSurface2.vertices())) { + matched = true; + break; + } + } + EXPECT_TRUE(matched); + } + } + } +} + void CompareTwoModels(Model& model, Model& baseline) { // Compare story count @@ -160,31 +189,7 @@ void CompareTwoModels(Model& model, Model& baseline) { } // Compare ShadingSurfaceGroup - auto shadingGroup1 = model.getModelObjects(); - auto shadingGroup2 = baseline.getModelObjects(); - EXPECT_EQ(shadingGroup1.size(), shadingGroup2.size()); - for (auto& shadingGroup : shadingGroup1) { - // Shading Surface Group names only match for building shading - if (shadingGroup.shadingSurfaceType() == "Building") { - auto match = baseline.getModelObjectByName(*shadingGroup.name()); - EXPECT_TRUE(match.has_value()); - std::string surfaceType = shadingGroup.shadingSurfaceType(); - EXPECT_EQ(shadingGroup.shadingSurfaceType(), match->shadingSurfaceType()); - EXPECT_EQ(shadingGroup.shadingSurfaces().size(), match->shadingSurfaces().size()); - - // Match surfaces by vertices - for (auto& shadingSurface : shadingGroup.shadingSurfaces()) { - bool matched = false; - for (auto& shadingSurface2 : match->shadingSurfaces()) { - if (circularEqual(shadingSurface.vertices(), shadingSurface2.vertices())) { - matched = true; - break; - } - } - EXPECT_TRUE(matched); - } - } - } + CompareSurfaceGroups(model, baseline); // Compare stories auto stories1 = model.getConcreteModelObjects(); @@ -255,7 +260,9 @@ void CompareTwoModels(Model& model, Model& baseline) { // Check space surfaces and subsurfaces EXPECT_EQ(space.surfaces().size(), match->surfaces().size()); - + if (space.surfaces().size() != match->surfaces().size()) { + EXPECT_EQ(*space.name(), "test"); + } for (auto& surface1 : space.surfaces()) { std::string name1 = *surface1.name(); bool matchedSurface = false; @@ -292,6 +299,7 @@ void CompareTwoModels(Model& model, Model& baseline) { } } + CompareSurfaceGroups(model, baseline); auto shading1 = model.getConcreteModelObjects(); auto shading2 = baseline.getConcreteModelObjects(); EXPECT_EQ(shading1.size(), shading2.size()); @@ -1389,3 +1397,65 @@ TEST_F(ModelFixture, FloorspaceReverseTranslator_FloorplanJS_Site_ClimateZones_4 EXPECT_EQ(-30.0, newModel_->getOptionalUniqueModelObject()->northAxis()); EXPECT_FALSE(newModel_->getOptionalUniqueModelObject()->nominalFloortoFloorHeight()); } + +// Tests issue 4764 where the height of shading objects is incorrect + +TEST_F(ModelFixture, FloorspaceReverseTranslator_Issue_4764) { + + ThreeJSReverseTranslator rt; + + openstudio::path p = resourcesPath() / toPath("utilities/Geometry/issue-4323.json"); + ASSERT_TRUE(exists(p)); + + boost::optional floorPlan = FloorplanJS::load(toString(p)); + ASSERT_TRUE(floorPlan); + + // not triangulated, for model transport/translation + ThreeScene scene = floorPlan->toThreeScene(true); + + boost::optional model = rt.modelFromThreeJS(scene); + ASSERT_TRUE(model); + model->save(resourcesPath() / toPath("model/issue-4764_threejs.osm"), true); + + FloorspaceReverseTranslator frt; + boost::optional model1 = frt.modelFromFloorspace(toString(p)); + ASSERT_TRUE(model1); + + model1->save(resourcesPath() / toPath("model/issue-4764_direct.osm"), true); + + CompareSurfaceGroups(*model1, *model); +} + +// Figuring out how floorspace is supposed to model shading because the schema does not help +// Presumably the floor_to_ceiling_height is an override, but +// does it also have an above_ceiling_plenum_height like space? +// Answer: Yes It Does. If no heightts are specified then three stacked shading ojects are made if the story +// has below floor and above ceiling +// If a height is not specified the heoght is taken from the story, but which height? +// Answer seems to be the below floor, above ceiling and floro to ceiling heights + +TEST_F(ModelFixture, FloorspaceReverseTranslator_shadingtest) { + + ThreeJSReverseTranslator rt; + + openstudio::path p = resourcesPath() / toPath("utilities/Geometry/shadingtest.json"); + ASSERT_TRUE(exists(p)); + + boost::optional floorPlan = FloorplanJS::load(toString(p)); + ASSERT_TRUE(floorPlan); + + // not triangulated, for model transport/translation + ThreeScene scene = floorPlan->toThreeScene(true); + + boost::optional model = rt.modelFromThreeJS(scene); + ASSERT_TRUE(model); + model->save(resourcesPath() / toPath("utilities/Geometry/shadingtest_threejs.osm"), true); + + FloorspaceReverseTranslator frt; + boost::optional model1 = frt.modelFromFloorspace(toString(p)); + ASSERT_TRUE(model1); + + model1->save(resourcesPath() / toPath("utilities/Geometry/shadingtest_direct.osm"), true); + + CompareSurfaceGroups(*model1, *model); +} \ No newline at end of file