From aeb0b7e1adce8863ea8ae3ec6eed27de5e83d57f Mon Sep 17 00:00:00 2001 From: Chris Date: Tue, 19 Mar 2024 22:47:39 -0400 Subject: [PATCH] feat(model): Add method to translate model to vis set --- .github/workflows/ci.yaml | 1 + dragonfly_display/__main__.py | 4 + dragonfly_display/_extend_dragonfly.py | 6 + dragonfly_display/cli/__init__.py | 187 +++++++++++++++++++ dragonfly_display/model.py | 78 ++++++++ extras-requirements.txt | 6 +- requirements.txt | 2 +- tests/json/model_with_doors_skylights.dfjson | 1 + tests/model_extend_test.py | 80 ++++++++ 9 files changed, 361 insertions(+), 4 deletions(-) create mode 100644 dragonfly_display/__main__.py create mode 100644 dragonfly_display/cli/__init__.py create mode 100644 dragonfly_display/model.py create mode 100644 tests/json/model_with_doors_skylights.dfjson create mode 100644 tests/model_extend_test.py diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 9ec87da..480264d 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -23,6 +23,7 @@ jobs: run: | python -m pip install --upgrade pip pip install -r requirements.txt + pip install -r extras-requirements.txt pip install -r dev-requirements.txt - name: run tests run: python -m pytest tests/ diff --git a/dragonfly_display/__main__.py b/dragonfly_display/__main__.py new file mode 100644 index 0000000..7b55c3f --- /dev/null +++ b/dragonfly_display/__main__.py @@ -0,0 +1,4 @@ +from dragonfly_display.cli import display + +if __name__ == '__main__': + display() diff --git a/dragonfly_display/_extend_dragonfly.py b/dragonfly_display/_extend_dragonfly.py index f9aae2f..f4e3904 100644 --- a/dragonfly_display/_extend_dragonfly.py +++ b/dragonfly_display/_extend_dragonfly.py @@ -1,3 +1,9 @@ # coding=utf-8 # import the core dragonfly modules from dragonfly.model import Model + +# import the extension functions +from .model import model_to_vis_set + +# inject the methods onto the classes +Model.to_vis_set = model_to_vis_set diff --git a/dragonfly_display/cli/__init__.py b/dragonfly_display/cli/__init__.py new file mode 100644 index 0000000..aad2522 --- /dev/null +++ b/dragonfly_display/cli/__init__.py @@ -0,0 +1,187 @@ +"""dragonfly-display commands.""" +import click +import sys +import os +import logging +import json +import pickle + +from honeybee_display.attr import FaceAttribute, RoomAttribute + +from dragonfly.model import Model +from dragonfly.cli import main + + +_logger = logging.getLogger(__name__) + + +# command group for all display extension commands. +@click.group(help='dragonfly display commands.') +@click.version_option() +def display(): + pass + + +@display.command('model-to-vis') +@click.argument('model-file', type=click.Path( + exists=True, file_okay=True, dir_okay=False, resolve_path=True)) +@click.option( + '--multiplier/--full-geometry', ' /-fg', help='Flag to note if the ' + 'multipliers on each Building story should be passed along to the ' + 'generated Honeybee Room objects or if full geometry objects should be ' + 'written for each story in the building.', default=True, show_default=True) +@click.option( + '--no-ceil-adjacency/--ceil-adjacency', ' /-a', help='Flag to indicate ' + 'whether adjacencies should be solved between interior stories when ' + 'Room2D floor and ceiling geometries are coplanar. This ensures ' + 'that Surface boundary conditions are used instead of Adiabatic ones. ' + 'Note that this input has no effect when the object-per-model is Story.', + default=True, show_default=True) +@click.option( + '--color-by', '-c', help='Text for the property that dictates the colors of ' + 'the Model geometry. Choose from: type, boundary_condition, none. ' + 'If none, only a wireframe of the Model will be generated (assuming the ' + '--exclude-wireframe option is not used). None is useful when the primary ' + 'purpose of the visualization is to display results in relation to the Model ' + 'geometry or display some room_attr or face_attr as an AnalysisGeometry ' + 'or Text labels.', type=str, default='type', show_default=True) +@click.option( + '--wireframe/--exclude-wireframe', ' /-xw', help='Flag to note whether a ' + 'ContextGeometry dedicated to the Model Wireframe (in DisplayLineSegment3D) should ' + 'be included in the output VisualizationSet.', default=True, show_default=True) +@click.option( + '--mesh/--faces', help='Flag to note whether the colored model geometries should ' + 'be represented with DisplayMesh3D objects instead of DisplayFace3D objects. ' + 'Meshes can usually be rendered faster and they scale well for large models ' + 'but all geometry is triangulated (meaning that their wireframe in certain ' + 'platforms might not appear ideal).', default=True, show_default=True) +@click.option( + '--show-color-by/--hide-color-by', ' /-hcb', help='Flag to note whether the ' + 'color-by geometry should be hidden or shown by default. Hiding the color-by ' + 'geometry is useful when the primary purpose of the visualization is to display ' + 'grid-data or room/face attributes but it is still desirable to have the option ' + 'to turn on the geometry.', default=True, show_default=True) +@click.option( + '--room-attr', '-r', help='An optional text string of an attribute that the Model ' + 'Rooms have, which will be used to construct a visualization of this attribute ' + 'in the resulting VisualizationSet. Multiple instances of this option can be passed ' + 'and a separate VisualizationData will be added to the AnalysisGeometry that ' + 'represents the attribute in the resulting VisualizationSet (or a separate ' + 'ContextGeometry layer if room_text_labels is True). Room attributes ' + 'input here can have . that separates the nested attributes from ' + 'one another. For example, properties.energy.program_type.', + type=click.STRING, multiple=True, default=None, show_default=True) +@click.option( + '--face-attr', '-f', help='An optional text string of an attribute that the Model ' + 'Faces have, which will be used to construct a visualization of this attribute in ' + 'the resulting VisualizationSet. Multiple instances of this option can be passed and' + ' a separate VisualizationData will be added to the AnalysisGeometry that ' + 'represents the attribute in the resulting VisualizationSet (or a separate ' + 'ContextGeometry layer if face_text_labels is True). Face attributes ' + 'input here can have . that separates the nested attributes from ' + 'one another. For example, properties.energy.construction.', + type=click.STRING, multiple=True, default=None, show_default=True) +@click.option( + '--color-attr/--text-attr', help='Flag to note whether to note whether the ' + 'input room-attr and face-attr should be expressed as a colored AnalysisGeometry ' + 'or a ContextGeometry as text labels.', default=True, show_default=True) +@click.option( + '--grid-display-mode', '-m', help='Text that dictates how the ContextGeometry ' + 'for Model SensorGrids should display in the resulting visualization. The Default ' + 'option will draw sensor points whenever there is no grid_data_path and will not ' + 'draw them at all when grid data is provided, assuming the AnalysisGeometry of ' + 'the grids is sufficient. Choose from: Default, Points, Wireframe, Surface, ' + 'SurfaceWithEdges, None.', + type=str, default='Default', show_default=True) +@click.option( + '--hide-grid/--show-grid', ' /-sg', help='Flag to note whether the SensorGrid ' + 'ContextGeometry should be hidden or shown by default.', + default=True, show_default=True) +@click.option( + '--output-format', '-of', help='Text for the output format of the resulting ' + 'VisualizationSet File (.vsf). Choose from: vsf, json, pkl, vtkjs, html. Note ' + 'that both vsf and json refer to the the JSON version of the VisualizationSet ' + 'file and the distinction between the two is only for help in coordinating file ' + 'extensions (since both .vsf and .json can be acceptable). Also note that ' + 'ladybug-vtk must be installed in order for the vtkjs or html options to be usable ' + 'and the html format refers to a web page with the vtkjs file embedded within it. ' + 'The vtkjs and html options also require an explicit --output-file to be specified.', + type=str, default='vsf', show_default=True) +@click.option( + '--output-file', help='Optional file to output the JSON string of ' + 'the config object. By default, it will be printed out to stdout', + type=click.File('w'), default='-', show_default=True) +def model_to_vis_set( + model_file, multiplier, no_ceil_adjacency, + color_by, wireframe, mesh, show_color_by, + room_attr, face_attr, color_attr, grid_display_mode, hide_grid, + output_format, output_file): + """Translate a Dragonfly Model file (.dfjson) to a VisualizationSet file (.vsf). + + This command can also optionally translate the Dragonfly Model to a .vtkjs file, + which can be visualized in the open source Visual ToolKit (VTK) platform. + + \b + Args: + model_file: Full path to a Dragonfly Model (DFJSON or DFpkl) file. + """ + try: + model_obj = Model.from_file(model_file) + room_attrs = [] if len(room_attr) == 0 or room_attr[0] == '' else room_attr + face_attrs = [] if len(face_attr) == 0 or face_attr[0] == '' else face_attr + text_labels = not color_attr + hide_color_by = not show_color_by + + face_attributes = [] + for fa in face_attrs: + faa = FaceAttribute(name=fa, attrs=[fa], color=color_attr, text=text_labels) + face_attributes.append(faa) + + room_attributes = [] + for ra in room_attrs: + raa = RoomAttribute(name=ra, attrs=[ra], color=color_attr, text=text_labels) + room_attributes.append(raa) + + ceil_adjacency = not no_ceil_adjacency + vis_set = model_obj.to_vis_set( + multiplier, ceil_adjacency, color_by=color_by, include_wireframe=wireframe, + use_mesh=mesh, hide_color_by=hide_color_by, room_attrs=room_attributes, + face_attrs=face_attributes, grid_display_mode=grid_display_mode, + hide_grid=hide_grid) + output_format = output_format.lower() + if output_format in ('vsf', 'json'): + output_file.write(json.dumps(vis_set.to_dict())) + elif output_format == 'pkl': + if output_file.name != '': + out_folder, out_file = os.path.split(output_file.name) + vis_set.to_pkl(out_file, out_folder) + else: + output_file.write(pickle.dumps(vis_set.to_dict())) + elif output_format in ('vtkjs', 'html'): + assert output_file.name != '', \ + 'Must specify an --output-file to use --output-format vtkjs.' + out_folder, out_file = os.path.split(output_file.name) + try: + if out_file.endswith('.vtkjs'): + out_file = out_file[:-6] + elif out_file.endswith('.html'): + out_file = out_file[:-5] + if output_format == 'vtkjs': + vis_set.to_vtkjs(output_folder=out_folder, file_name=out_file) + if output_format == 'html': + vis_set.to_html(output_folder=out_folder, file_name=out_file) + except AttributeError as ae: + raise AttributeError( + 'Ladybug-vtk must be installed in order to use --output-format ' + 'vtkjs.\n{}'.format(ae)) + else: + raise ValueError('Unrecognized output-format "{}".'.format(output_format)) + except Exception as e: + _logger.exception('Failed to translate Model to VisualizationSet.\n{}'.format(e)) + sys.exit(1) + else: + sys.exit(0) + + +# add display sub-group to dragonfly CLI +main.add_command(display) diff --git a/dragonfly_display/model.py b/dragonfly_display/model.py new file mode 100644 index 0000000..99bf25b --- /dev/null +++ b/dragonfly_display/model.py @@ -0,0 +1,78 @@ +"""Method to translate a Dragonfly Model to a VisualizationSet.""" +from honeybee_display.model import model_to_vis_set as hb_model_to_vis_set + + +def model_to_vis_set( + model, use_multiplier=True, solve_ceiling_adjacencies=False, + color_by='type', include_wireframe=True, use_mesh=True, + hide_color_by=False, room_attrs=None, face_attrs=None, + grid_display_mode='Default', hide_grid=True): + """Translate a Dragonfly Model to a VisualizationSet. + + Args: + model: A Dragonfly Model object to be converted to a VisualizationSet. + use_multiplier: If True, the multipliers on this Model's Stories will be + passed along to the generated Honeybee Room objects, indicating the + simulation will be run once for each unique room and then results + will be multiplied. If False, full geometry objects will be written + for each and every floor in the building that are represented through + multipliers and all resulting multipliers will be 1. (Default: True). + solve_ceiling_adjacencies: Boolean to note whether adjacencies should be + solved between interior stories when Room2D floor and ceiling + geometries are coplanar. This ensures that Surface boundary + conditions are used instead of Adiabatic ones. Note that this input + has no effect when the object_per_model is Story. (Default: False). + color_by: Text that dictates the colors of the Model geometry. + If none, only a wireframe of the Model will be generated, assuming + include_wireframe is True. This is useful when the primary purpose of + the visualization is to display results in relation to the Model + geometry or display some room_attrs or face_attrs as an AnalysisGeometry + or Text labels. (Default: type). Choose from the following: + + * type + * boundary_condition + * None + + include_wireframe: Boolean to note whether a ContextGeometry dedicated to + the Model Wireframe (in DisplayLineSegment3D) should be included + in the output VisualizationSet. (Default: True). + use_mesh: Boolean to note whether the colored model geometries should + be represented with DisplayMesh3D objects (True) instead of DisplayFace3D + objects (False). Meshes can usually be rendered faster and they scale + well for large models but all geometry is triangulated (meaning that + the wireframe in certain platforms might not appear ideal). (Default: True). + hide_color_by: Boolean to note whether the color_by geometry should be + hidden or shown by default. Hiding the color-by geometry is useful + when the primary purpose of the visualization is to display grid_data + or room/face attributes but it is still desirable to have the option + to turn on the geometry. + room_attrs: An optional list of room attribute objects from the + honeybee_display.attr module. + face_attrs: An optional list of face attribute objects from the + honeybee_display.attr module. + grid_display_mode: Text that dictates how the ContextGeometry for Model + SensorGrids should display in the resulting visualization. The Default + option will draw sensor points. Choose from the following: + + * Default + * Points + * Wireframe + * Surface + * SurfaceWithEdges + * None + + hide_grid: Boolean to note whether the SensorGrid ContextGeometry should be + hidden or shown by default. (Default: True). + + Returns: + A VisualizationSet object that represents the model. + """ + # create the Honeybee Model from the Dragonfly one + hb_model = model.to_honeybee( + 'District', use_multiplier=use_multiplier, + solve_ceiling_adjacencies=solve_ceiling_adjacencies, + enforce_adj=False, enforce_solid=True)[0] + # convert the Honeybee Model to a VisualizationSet + return hb_model_to_vis_set( + hb_model, color_by, include_wireframe, use_mesh, hide_color_by, + room_attrs, face_attrs, grid_display_mode, hide_grid) diff --git a/extras-requirements.txt b/extras-requirements.txt index 31930a0..3e68d62 100644 --- a/extras-requirements.txt +++ b/extras-requirements.txt @@ -1,3 +1,3 @@ -dragonfly-energy>=1.95.35 -dragonfly-radiance>=1.64.118 -ladybug-vtk>=0.13.9 +dragonfly-energy>=1.25.28 +dragonfly-radiance>=0.3.20 +ladybug-vtk>=0.14.0 diff --git a/requirements.txt b/requirements.txt index 0de72b5..4c00c9e 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,2 +1,2 @@ -honeybee-display>=0.3.4 +honeybee-display>=0.3.6 dragonfly-core>=1.42.18 diff --git a/tests/json/model_with_doors_skylights.dfjson b/tests/json/model_with_doors_skylights.dfjson new file mode 100644 index 0000000..8b17448 --- /dev/null +++ b/tests/json/model_with_doors_skylights.dfjson @@ -0,0 +1 @@ +{"display_name": "Unnamed", "identifier": "Model_b2f2245e-972c-48c3-b632-5641bd834a13", "tolerance": 0.01, "angle_tolerance": 1.0, "buildings": [{"display_name": "Unnamed", "identifier": "Model_b2f2245e-972c-48c3-b632-5641bd834a13", "unique_stories": [{"display_name": "Level1", "identifier": "Level1", "multiplier": 1, "floor_to_floor_height": 3.5499999999999989, "room_2ds": [{"display_name": "Laundry 104", "identifier": "Laundry104", "floor_boundary": [[7.6424815174376253, -3.3415939785816882], [10.001931517437626, -3.3415939785816962], [10.00193151743763, -0.74414397858163828], [8.2900211243561515, -0.74414397858163284], [7.6424815174376288, -0.74414397858163084]], "is_ground_contact": true, "is_top_exposed": false, "floor_to_ceiling_height": 2.9999999999999991, "user_data": {"__layer__": "Room"}, "type": "Room2D", "window_parameters": [null, null, {"are_doors": [true], "type": "DetailedWindows", "polygons": [[[1.0400000000000009, 2.4222222222222212], [0.080000000000000071, 2.4222222222222212], [0.080000000000000071, 0.033866666666666656], [1.0400000000000009, 0.033866666666666656]]]}, null, null], "floor_height": 0.0, "boundary_conditions": [{"boundary_condition_objects": ["Living106..Face5", "Living106"], "type": "Surface"}, {"boundary_condition_objects": ["Hall105..Face7", "Hall105"], "type": "Surface"}, {"boundary_condition_objects": ["Bath103..Face4", "Bath103"], "type": "Surface"}, {"boundary_condition_objects": ["Mech.102..Face5", "Mech.102"], "type": "Surface"}, {"boundary_condition_objects": ["KitchenDining101..Face2", "KitchenDining101"], "type": "Surface"}], "properties": {"radiance": {"type": "Room2DRadiancePropertiesAbridged"}, "energy": {"program_type": "2019::SmallOffice::Storage", "type": "Room2DEnergyPropertiesAbridged", "construction_set": "2019::ClimateZone1::SteelFramed", "hvac": "DOAS with FCU AirCooled"}, "type": "Room2DPropertiesAbridged", "uwg": {"type": "Room2DUWGPropertiesAbridged"}}}, {"display_name": "Kitchen & Dining 101", "identifier": "KitchenDining101", "floor_boundary": [[6.9609315174376256, -3.3415939785816864], [7.6424815174376253, -3.3415939785816882], [7.6424815174376288, -0.74414397858163084], [6.9609315174376292, -0.74414397858162851], [6.9609315174376301, 1.2384060214181869], [6.8599315174376345, 1.2384060214181871], [6.8599315174376345, 2.89940602141874], [-4.93806848256237, 2.8994060214205764], [-4.9380684825623806, -3.2015939785816503], [6.9609315174376256, -3.2015939785816876]], "is_ground_contact": true, "is_top_exposed": false, "floor_to_ceiling_height": 2.9999999999999991, "user_data": {"__layer__": "Room"}, "type": "Room2D", "window_parameters": [null, null, null, {"are_doors": [true], "type": "DetailedWindows", "polygons": [[[1.9275499999998145, 2.4555555555555535], [0.045549999999815571, 2.4555555555555535], [0.045549999999815571, 0.033866666666666656], [1.9275499999998145, 0.033866666666666656]]]}, null, null, {"are_doors": [false, false, false, false, false, false, false, false], "type": "DetailedWindows", "polygons": [[[1.378000000000009, 2.9555555555555135], [0.038000000000006473, 2.9555555555555135], [0.038000000000006473, 0.044444444444444557], [1.3780000000000117, 0.044444444444444557]], [[2.8780000000000099, 2.95555555555572], [1.4180000000000108, 2.95555555555572], [1.4180000000000108, 0.044444444444444557], [2.8780000000000108, 0.044444444444444557]], [[4.378000000000009, 2.95555555555572], [2.9180000000000095, 2.95555555555572], [2.918000000000009, 0.044444444444444557], [4.378000000000009, 0.044444444444444557]], [[5.8780000000000072, 2.95555555555572], [4.4180000000000099, 2.95555555555572], [4.418000000000009, 0.044444444444444557], [5.878000000000009, 0.044444444444444557]], [[7.3780000000000081, 2.95555555555572], [5.918000000000009, 2.95555555555572], [5.9180000000000081, 0.044444444444444557], [7.3780000000000081, 0.044444444444444557]], [[8.8780000000000072, 2.95555555555572], [7.418000000000009, 2.95555555555572], [7.418000000000009, 0.044444444444444557], [8.878000000000009, 0.044444444444444557]], [[10.378000000000007, 2.95555555555572], [8.9180000000000099, 2.95555555555572], [8.9180000000000099, 0.044444444444444557], [10.378000000000011, 0.044444444444444557]], [[11.758000000000008, 2.9555555555555135], [10.418000000000006, 2.9555555555555135], [10.418000000000006, 0.044444444444444557], [11.75800000000001, 0.044444444444444557]]]}, {"are_doors": [false, false, false, false], "type": "DetailedWindows", "polygons": [[[6.030500000001112, 2.95555555555572], [4.5705000000011129, 2.95555555555572], [4.5705000000011129, 0.044444444444444557], [6.0305000000011129, 0.044444444444444557]], [[4.530500000001112, 2.95555555555572], [3.0705000000011129, 2.95555555555572], [3.0705000000011129, 0.044444444444444557], [4.530500000001112, 0.044444444444444557]], [[3.0305000000011124, 2.95555555555572], [1.5705000000011133, 2.95555555555572], [1.5705000000011133, 0.044444444444444557], [3.0305000000011129, 0.044444444444444557]], [[1.5305000000011122, 2.95555555555572], [0.070500000001113339, 2.95555555555572], [0.070500000001113339, 0.044444444444444557], [1.5305000000011126, 0.044444444444444557]]]}, {"are_doors": [false, false, false, false, false, false, false, false], "type": "DetailedWindows", "polygons": [[[1.3790000000000044, 2.9555555555556468], [0.039999999999997371, 2.9555555555556468], [0.039999999999997371, 0.044444444444444557], [1.3790000000000044, 0.044444444444444557]], [[2.8790000000000022, 2.95555555555572], [1.4190000000000027, 2.95555555555572], [1.4190000000000027, 0.044444444444444557], [2.8790000000000022, 0.044444444444444557]], [[4.3790000000000031, 2.95555555555572], [2.9190000000000036, 2.95555555555572], [2.9190000000000031, 0.044444444444444557], [4.3790000000000031, 0.044444444444444557]], [[5.8790000000000013, 2.95555555555572], [4.4190000000000023, 2.95555555555572], [4.4190000000000023, 0.044444444444444557], [5.8790000000000013, 0.044444444444444557]], [[7.3790000000000031, 2.95555555555572], [5.9190000000000031, 2.95555555555572], [5.9190000000000031, 0.044444444444444557], [7.3790000000000031, 0.044444444444444557]], [[8.8790000000000013, 2.95555555555572], [7.4190000000000023, 2.95555555555572], [7.4190000000000023, 0.044444444444444557], [8.8790000000000031, 0.044444444444444557]], [[10.379000000000001, 2.95555555555572], [8.9190000000000023, 2.95555555555572], [8.9190000000000023, 0.044444444444444557], [10.379000000000001, 0.044444444444444557]], [[11.758000000000006, 2.9555555555556468], [10.419, 2.9555555555556468], [10.419, 0.044444444444444557], [11.758000000000006, 0.044444444444444557]]]}, null], "floor_height": 0.0, "boundary_conditions": [{"boundary_condition_objects": ["Living106..Face6", "Living106"], "type": "Surface"}, {"boundary_condition_objects": ["Laundry104..Face5", "Laundry104"], "type": "Surface"}, {"boundary_condition_objects": ["Mech.102..Face4", "Mech.102"], "type": "Surface"}, {"boundary_condition_objects": ["Mech.102..Face3", "Mech.102"], "type": "Surface"}, {"boundary_condition_objects": ["Hall105..Face3", "Hall105"], "type": "Surface"}, {"boundary_condition_objects": ["Hall105..Face2", "Hall105"], "type": "Surface"}, {"view_factor": {"type": "Autocalculate"}, "sun_exposure": true, "wind_exposure": true, "type": "Outdoors"}, {"view_factor": {"type": "Autocalculate"}, "sun_exposure": true, "wind_exposure": true, "type": "Outdoors"}, {"view_factor": {"type": "Autocalculate"}, "sun_exposure": true, "wind_exposure": true, "type": "Outdoors"}, {"view_factor": {"type": "Autocalculate"}, "sun_exposure": true, "wind_exposure": true, "type": "Outdoors"}], "properties": {"radiance": {"type": "Room2DRadiancePropertiesAbridged"}, "energy": {"program_type": "2019::SmallOffice::OpenOffice", "type": "Room2DEnergyPropertiesAbridged", "construction_set": "2019::ClimateZone1::SteelFramed", "hvac": "DOAS with FCU AirCooled"}, "type": "Room2DPropertiesAbridged", "uwg": {"type": "Room2DUWGPropertiesAbridged"}}}, {"display_name": "Bath 103", "identifier": "Bath103", "floor_boundary": [[10.00193151743763, -0.74414397858163794], [10.00193151743763, 1.2384060214181769], [8.290021124356155, 1.2384060214181827], [8.2900211243561515, -0.74414397858163261]], "is_ground_contact": true, "is_top_exposed": false, "floor_to_ceiling_height": 2.9999999999999991, "user_data": {"__layer__": "Room"}, "type": "Room2D", "window_parameters": [null, {"are_doors": [true], "type": "DetailedWindows", "polygons": [[[1.0399999999999991, 2.4222222222222212], [0.079999999999998295, 2.4222222222222212], [0.079999999999998295, 0.033866666666666656], [1.0399999999999991, 0.033866666666666656]]]}, null, {"are_doors": [true], "type": "DetailedWindows", "polygons": [[[1.631910393081478, 2.4222222222222212], [0.67191039308147715, 2.4222222222222212], [0.67191039308147715, 0.033866666666666656], [1.631910393081478, 0.033866666666666656]]]}], "floor_height": 0.0, "boundary_conditions": [{"boundary_condition_objects": ["Hall105..Face6", "Hall105"], "type": "Surface"}, {"boundary_condition_objects": ["Hall105..Face5", "Hall105"], "type": "Surface"}, {"boundary_condition_objects": ["Mech.102..Face1", "Mech.102"], "type": "Surface"}, {"boundary_condition_objects": ["Laundry104..Face3", "Laundry104"], "type": "Surface"}], "properties": {"radiance": {"type": "Room2DRadiancePropertiesAbridged"}, "energy": {"program_type": "2019::SmallOffice::Restroom", "type": "Room2DEnergyPropertiesAbridged", "construction_set": "2019::ClimateZone1::SteelFramed", "hvac": "DOAS with FCU AirCooled"}, "type": "Room2DPropertiesAbridged", "uwg": {"type": "Room2DUWGPropertiesAbridged"}}}, {"display_name": "Hall 105", "identifier": "Hall105", "floor_boundary": [[13.162931517437627, 2.8994060214182307], [6.8599315174376345, 2.89940602141874], [6.8599315174376345, 1.2384060214181871], [6.9609315174376301, 1.2384060214181869], [8.290021124356155, 1.2384060214181825], [10.00193151743763, 1.2384060214181769], [10.001931517437628, -0.74414397858163839], [10.001931517437626, -3.3415939785816962], [13.162931517437622, -3.3415939785817077]], "is_ground_contact": true, "is_top_exposed": false, "floor_to_ceiling_height": 2.9999999999999991, "user_data": {"__layer__": "Room"}, "type": "Room2D", "window_parameters": [{"are_doors": [false, false], "type": "DetailedWindows", "polygons": [[[3.0609999999999307, 2.9661333333333326], [1.6209999999999312, 2.9661333333333326], [1.6209999999999312, 0.044444444444444557], [3.0609999999999307, 0.044444444444444557]], [[1.5809999999999338, 2.9661333333333326], [0.14099999999998758, 2.9661333333333326], [0.14099999999998758, 0.044444444444444557], [1.5809999999999338, 0.044444444444444557]]]}, null, null, null, {"are_doors": [true], "type": "DetailedWindows", "polygons": [[[1.6319103930814762, 2.4222222222222212], [0.67191039308147538, 2.4222222222222212], [0.67191039308147538, 0.033866666666666656], [1.6319103930814762, 0.033866666666666656]]]}, null, null, null, {"are_doors": [false], "type": "DetailedWindows", "polygons": [[[6.0999999999999392, 2.9661333333333326], [4.7999999999999385, 2.9661333333333326], [4.7999999999999385, 0.044444444444444557], [6.0999999999999392, 0.044444444444444557]]]}], "floor_height": 0.0, "boundary_conditions": [{"view_factor": {"type": "Autocalculate"}, "sun_exposure": true, "wind_exposure": true, "type": "Outdoors"}, {"boundary_condition_objects": ["KitchenDining101..Face6", "KitchenDining101"], "type": "Surface"}, {"boundary_condition_objects": ["KitchenDining101..Face5", "KitchenDining101"], "type": "Surface"}, {"boundary_condition_objects": ["Mech.102..Face2", "Mech.102"], "type": "Surface"}, {"boundary_condition_objects": ["Bath103..Face2", "Bath103"], "type": "Surface"}, {"boundary_condition_objects": ["Bath103..Face1", "Bath103"], "type": "Surface"}, {"boundary_condition_objects": ["Laundry104..Face2", "Laundry104"], "type": "Surface"}, {"boundary_condition_objects": ["Living106..Face4", "Living106"], "type": "Surface"}, {"view_factor": {"type": "Autocalculate"}, "sun_exposure": true, "wind_exposure": true, "type": "Outdoors"}], "properties": {"radiance": {"type": "Room2DRadiancePropertiesAbridged"}, "energy": {"program_type": "2019::SmallOffice::Corridor", "type": "Room2DEnergyPropertiesAbridged", "construction_set": "2019::ClimateZone1::SteelFramed", "hvac": "DOAS with FCU AirCooled"}, "type": "Room2DPropertiesAbridged", "uwg": {"type": "Room2DUWGPropertiesAbridged"}}}, {"display_name": "Living 106", "identifier": "Living106", "floor_boundary": [[6.9609315174376238, -3.3415939785816873], [6.9609315174376043, -15.201593978581815], [13.162931517437602, -15.201593978581837], [13.162931517437622, -3.3415939785817068], [10.001931517437626, -3.341593978581697], [7.6424815174376262, -3.3415939785816895]], "is_ground_contact": true, "is_top_exposed": true, "floor_to_ceiling_height": 2.750000000000083, "user_data": {"__layer__": "Room"}, "type": "Room2D", "window_parameters": [{"are_doors": [false, false, false, false], "type": "DetailedWindows", "polygons": [[[4.3600000000001025, 2.6999999999999935], [2.8600000000001033, 2.6999999999999926], [2.8600000000001033, 0.030480000000000063], [4.3600000000001025, 0.030480000000000063]], [[8.860000000000106, 2.6999999999999935], [7.3600000000001069, 2.6999999999999926], [7.3600000000001069, 0.030480000000000063], [8.860000000000106, 0.030480000000000063]], [[5.8600000000001033, 2.6999999999999935], [4.3600000000001042, 2.6999999999999926], [4.3600000000001042, 0.030480000000000063], [5.8600000000001033, 0.030480000000000063]], [[7.3600000000001033, 2.6999999999999935], [5.8600000000001051, 2.6999999999999926], [5.8600000000001051, 0.030480000000000063], [7.3600000000001033, 0.030480000000000063]]]}, {"are_doors": [false, false, false, false, false, false, true, true], "type": "DetailedWindows", "polygons": [[[3.0809999999999977, 2.0800000000000001], [1.6209999999999969, 2.0799999999999996], [1.6209999999999969, 0.040000000000000147], [3.0809999999999977, 0.040000000000000147]], [[4.580999999999996, 2.0800000000000001], [3.1209999999999969, 2.0799999999999996], [3.1209999999999969, 0.040000000000000147], [4.580999999999996, 0.040000000000000147]], [[1.5809999999999977, 2.6599999999999997], [0.14100000000000001, 2.6599999999999997], [0.14100000000000001, 2.1199999999999997], [1.5809999999999977, 2.1199999999999997]], [[3.0809999999999977, 2.6599999999999997], [1.6209999999999969, 2.6599999999999997], [1.6209999999999969, 2.1199999999999997], [3.0809999999999977, 2.1199999999999997]], [[4.580999999999996, 2.6599999999999997], [3.1209999999999969, 2.6599999999999997], [3.1209999999999969, 2.1199999999999997], [4.580999999999996, 2.1199999999999997]], [[6.0609999999999964, 2.6599999999999997], [4.6210000000000004, 2.6599999999999997], [4.6210000000000004, 2.1199999999999997], [6.0609999999999964, 2.1199999999999997]], [[1.5809999999999977, 2.0799999999999996], [0.14100000000000001, 2.0799999999999996], [0.14100000000000001, 0.030480000000000063], [1.5809999999999977, 0.030480000000000063]], [[6.0609999999999964, 2.0799999999999996], [4.6210000000000004, 2.0799999999999996], [4.6210000000000004, 0.030480000000000063], [6.0609999999999964, 0.030480000000000063]]]}, {"are_doors": [false, false, false, false, false, false, false], "type": "DetailedWindows", "polygons": [[[4.5000000000000426, 2.6999999999999926], [3.0000000000000444, 2.6999999999999935], [3.0000000000000444, 0.030480000000000063], [4.5000000000000426, 0.030480000000000063]], [[9.0000000000000462, 2.6999999999999926], [7.5000000000000471, 2.6999999999999935], [7.5000000000000471, 0.030480000000000063], [9.0000000000000462, 0.030480000000000063]], [[7.5000000000000453, 2.6999999999999926], [6.0000000000000462, 2.6999999999999935], [6.0000000000000462, 0.030480000000000063], [7.5000000000000453, 0.030480000000000063]], [[6.0000000000000444, 2.6999999999999926], [4.5000000000000462, 2.6999999999999935], [4.5000000000000462, 0.030480000000000063], [6.0000000000000444, 0.030480000000000063]], [[9.7104000000000035, 1.1034306518518386], [9.7104000000000052, 0.85092606422919959], [9.8889477061886808, 0.6723783580405126], [10.141452293811323, 0.6723783580405126], [10.320000000000004, 0.85092606422919981], [10.320000000000004, 1.1034306518518384], [10.141452293811323, 1.2819783580405169], [9.8889477061886808, 1.2819783580405173]], [[9.8436875430250588, 2.3884799968241235], [9.8000000000000433, 2.2540820294303252], [9.8000000000000433, 1.7968820294303174], [10.257200000000047, 1.7968820294303174], [10.257200000000047, 2.2540820294303239], [10.213541284914161, 2.3884497381043839], [10.099241284914161, 2.4714935490553969], [9.957958715085935, 2.4714935490553973]], [[1.4972232402290899, 1.7548117910472434], [1.3808000000000593, 1.3964979012497598], [1.4972232402290881, 1.0381840114522756], [1.8020510276746649, 0.81672737371142601], [2.1787489723254243, 0.81672737371142434], [2.4835767597710028, 1.0381840114522709], [2.6000000000000334, 1.396497901249758], [2.4835767597710063, 1.7548117910472421], [2.1787767597710115, 1.9762619535832719], [1.8020510276746684, 1.9762684287880914]]]}, null, null, null], "floor_height": -0.54999999999999993, "boundary_conditions": [{"view_factor": {"type": "Autocalculate"}, "sun_exposure": true, "wind_exposure": true, "type": "Outdoors"}, {"view_factor": {"type": "Autocalculate"}, "sun_exposure": true, "wind_exposure": true, "type": "Outdoors"}, {"view_factor": {"type": "Autocalculate"}, "sun_exposure": true, "wind_exposure": true, "type": "Outdoors"}, {"boundary_condition_objects": ["Hall105..Face8", "Hall105"], "type": "Surface"}, {"boundary_condition_objects": ["Laundry104..Face1", "Laundry104"], "type": "Surface"}, {"boundary_condition_objects": ["KitchenDining101..Face1", "KitchenDining101"], "type": "Surface"}], "properties": {"radiance": {"type": "Room2DRadiancePropertiesAbridged"}, "energy": {"program_type": "2019::SmallOffice::OpenOffice", "type": "Room2DEnergyPropertiesAbridged", "construction_set": "2019::ClimateZone1::SteelFramed", "hvac": "DOAS with FCU AirCooled"}, "type": "Room2DPropertiesAbridged", "uwg": {"type": "Room2DUWGPropertiesAbridged"}}}, {"display_name": "Mech. 102", "identifier": "Mech.102", "floor_boundary": [[8.2900211243561515, -0.7441439785816325], [8.290021124356155, 1.2384060214181825], [6.9609315174376301, 1.2384060214181869], [6.9609315174376292, -0.74414397858162851], [7.6424815174376288, -0.74414397858163051]], "is_ground_contact": true, "is_top_exposed": false, "floor_to_ceiling_height": 2.9999999999999991, "user_data": {"__layer__": "Room"}, "type": "Room2D", "window_parameters": [null, null, {"are_doors": [true], "type": "DetailedWindows", "polygons": [[[1.9369999999999998, 2.4555555555555535], [0.055000000000000826, 2.4555555555555535], [0.055000000000000826, 0.033866666666666656], [1.9369999999999998, 0.033866666666666656]]]}, null, null], "floor_height": 0.0, "boundary_conditions": [{"boundary_condition_objects": ["Bath103..Face3", "Bath103"], "type": "Surface"}, {"boundary_condition_objects": ["Hall105..Face4", "Hall105"], "type": "Surface"}, {"boundary_condition_objects": ["KitchenDining101..Face4", "KitchenDining101"], "type": "Surface"}, {"boundary_condition_objects": ["KitchenDining101..Face3", "KitchenDining101"], "type": "Surface"}, {"boundary_condition_objects": ["Laundry104..Face4", "Laundry104"], "type": "Surface"}], "properties": {"radiance": {"type": "Room2DRadiancePropertiesAbridged"}, "energy": {"program_type": "2019::SmallOffice::Elec/MechRoom", "type": "Room2DEnergyPropertiesAbridged", "construction_set": "2019::ClimateZone1::SteelFramed", "hvac": "DOAS with FCU AirCooled"}, "type": "Room2DPropertiesAbridged", "uwg": {"type": "Room2DUWGPropertiesAbridged"}}}], "type": "Story", "floor_height": -0.54999999999999993, "properties": {"radiance": {"type": "StoryRadiancePropertiesAbridged"}, "energy": {"type": "StoryEnergyPropertiesAbridged"}, "type": "StoryPropertiesAbridged", "uwg": {"type": "StoryUWGPropertiesAbridged"}}}, {"display_name": "Level2", "identifier": "Level2", "multiplier": 1, "floor_to_floor_height": 5.9130596570021554, "roof": {"geometry": [{"type": "Face3D", "plane": {"o": [13.162931517437627, -0.087122349708955299, 8.9130596570021545], "n": [-1.1270276705905432e-15, -0.69329027309872537, 0.72065844699600579], "type": "Plane", "x": [-1.0, 6.7654215563095489e-17, -1.4988010832439617e-15]}, "boundary": [[13.162931517437627, -0.087122349708955299, 8.9130596570021545], [-4.8880684825623852, -0.087122349708954078, 8.9130596570021279], [-4.8880684825623817, -3.3025939785815122, 5.8197007808039904], [13.162931517437631, -3.3025939785815135, 5.819700780804018]]}, {"type": "Face3D", "plane": {"o": [13.162931517437627, -0.087122349708955937, 8.9130596570021545], "n": [-1.1618788790924629e-15, -0.72065844699600579, -0.69329027309872548], "type": "Plane", "x": [-1.0, -1.5005358067199381e-16, 1.8318679906315083e-15]}, "boundary": [[13.162931517437627, -0.087122349708955937, 8.9130596570021545], [-4.8880684825623888, -0.087122349708958643, 8.9130596570021883], [-4.8880684825623959, 2.8994060214182751, 5.8086357506544095], [13.16293151743762, 2.8994060214182782, 5.8086357506543758]]}], "type": "RoofSpecification"}, "room_2ds": [{"display_name": "Master Bedroom 206", "identifier": "MasterBedroom206", "floor_boundary": [[1.0619315174376314, 0.038406021418206204], [1.0619315174376334, 1.3584060214182057], [1.0619315174376358, 2.8994060214182698], [-4.8880684825623932, 2.8994060214182884], [-4.8880684825623826, -3.3025939785814971], [-1.378068482562381, -3.3025939785815077], [-1.3780684825623766, 0.038406021418214323]], "is_ground_contact": false, "is_top_exposed": true, "floor_to_ceiling_height": 5.9130596570021554, "user_data": {"__layer__": "Room"}, "type": "Room2D", "window_parameters": [null, {"are_doors": [true], "type": "DetailedWindows", "polygons": [[[1.420000000000063, 0.030480000000000285], [1.420000000000063, 2.1799999999999997], [0.46000000000006347, 2.1799999999999997], [0.46000000000006347, 0.030480000000000285]]]}, {"are_doors": [false], "type": "DetailedWindows", "polygons": [[[4.5000000000000053, 2.6999999999999931], [3.000000000000008, 2.699999999999994], [3.000000000000008, 0.030480000000000285], [4.5000000000000053, 0.030480000000000285]]]}, {"are_doors": [false, false, false, false, false, false, false, false, false, false, false, true], "type": "DetailedWindows", "polygons": [[[3.0809999999999991, 2.080000000000001], [1.6209999999999989, 2.080000000000001], [1.6209999999999989, 0.040000000000001368], [3.0809999999999991, 0.040000000000001368]], [[4.5809999999999995, 2.080000000000001], [3.1209999999999987, 2.080000000000001], [3.1209999999999987, 0.040000000000001368], [4.5809999999999995, 0.040000000000001368]], [[6.0609999999998898, 2.080000000000001], [4.6209999999998921, 2.080000000000001], [4.6209999999998921, 0.040000000000001368], [6.0609999999998898, 0.040000000000001368]], [[0.22036120979381169, 2.9800000000000004], [0.14099999999999913, 2.897505944593588], [0.14099999999999913, 2.1200000000000001], [1.5809999999999991, 2.1200000000000001], [1.5809999999999991, 2.9800000000000004]], [[3.0809999999999991, 2.9800000000000004], [1.6209999999999991, 2.9800000000000004], [1.6209999999999991, 2.1200000000000001], [3.0809999999999991, 2.1200000000000001]], [[4.5809999999999995, 2.9800000000000004], [3.1209999999999991, 2.9800000000000004], [3.1209999999999991, 2.1200000000000001], [4.5809999999999995, 2.1200000000000001]], [[5.9776769532255365, 2.9800000000000004], [4.6209999999999987, 2.9800000000000004], [4.6209999999999987, 2.1200000000000001], [6.0609999999997859, 2.1200000000000001], [6.0609999999997859, 2.8998412811307031]], [[1.5809999999999993, 3.0200000000000005], [1.5809999999999993, 4.3943510669633792], [0.25884214488802337, 3.0200000000000005]], [[2.9876230980831049, 5.8565017081983664], [1.6209999999999993, 4.435930098140318], [1.6209999999999993, 3.0200000000000005], [3.0809999999999991, 3.0200000000000005], [3.0809999999999991, 5.7666709456493015]], [[4.5809999999999995, 4.3236358796163472], [3.1209999999999991, 5.728190010555088], [3.1209999999999991, 3.0200000000000005], [4.5809999999999995, 3.0200000000000005]], [[5.9360979220485977, 3.0200000000000005], [4.6209999999999996, 4.2851549445221346], [4.6209999999999996, 3.0200000000000005]], [[1.5809999999999977, 2.080000000000001], [0.14100000000000046, 2.080000000000001], [0.14100000000000046, 0.030480000000000285], [1.5809999999999977, 0.030480000000000285]]]}, {"are_doors": [false], "type": "DetailedWindows", "polygons": [[[2.9500000000000237, 0.030480000000000285], [2.9500000000000237, 2.699999999999994], [1.4500000000000255, 2.6999999999999931], [1.4500000000000255, 0.030480000000000285]]]}, {"are_doors": [true], "type": "DetailedWindows", "polygons": [[[1.745999999999952, 2.027000000000001], [0.80099999999995264, 2.027000000000001], [0.80099999999995219, 0.030480000000000285], [1.7459999999999523, 0.030480000000000285]]]}, null], "floor_height": 2.9999999999999991, "boundary_conditions": [{"boundary_condition_objects": ["Bedroom204..Face5", "Bedroom204"], "type": "Surface"}, {"boundary_condition_objects": ["EntryHall201..Face4", "EntryHall201"], "type": "Surface"}, {"view_factor": {"type": "Autocalculate"}, "sun_exposure": true, "wind_exposure": true, "type": "Outdoors"}, {"view_factor": {"type": "Autocalculate"}, "sun_exposure": true, "wind_exposure": true, "type": "Outdoors"}, {"view_factor": {"type": "Autocalculate"}, "sun_exposure": true, "wind_exposure": true, "type": "Outdoors"}, {"boundary_condition_objects": ["MasterBath207..Face1", "MasterBath207"], "type": "Surface"}, {"boundary_condition_objects": ["MasterBath207..Face4", "MasterBath207"], "type": "Surface"}], "properties": {"radiance": {"type": "Room2DRadiancePropertiesAbridged"}, "energy": {"program_type": "2019::SmallOffice::OpenOffice", "type": "Room2DEnergyPropertiesAbridged", "construction_set": "2019::ClimateZone1::SteelFramed", "hvac": "DOAS with FCU AirCooled"}, "type": "Room2DPropertiesAbridged", "uwg": {"type": "Room2DUWGPropertiesAbridged"}}}, {"display_name": "Master Bath 207", "identifier": "MasterBath207", "floor_boundary": [[-1.3780684825623759, 0.038406021418214323], [-1.3780684825623806, -3.3025939785815082], [1.061931517437626, -3.3025939785815166], [1.0619315174376314, 0.038406021418206204]], "is_ground_contact": false, "is_top_exposed": true, "floor_to_ceiling_height": 5.9130596570021554, "user_data": {"__layer__": "Room"}, "type": "Room2D", "window_parameters": [{"are_doors": [true], "type": "DetailedWindows", "polygons": [[[2.5399999999997696, 2.027000000000001], [1.5949999999997699, 2.027000000000001], [1.5949999999997697, 0.030480000000000285], [2.53999999999977, 0.030480000000000285]]]}, {"are_doors": [false], "type": "DetailedWindows", "polygons": [[[1.9400000000000377, 0.030480000000000285], [1.9400000000000377, 2.699999999999994], [0.44000000000003947, 2.6999999999999931], [0.44000000000003947, 0.030480000000000285]]]}, null, null], "floor_height": 2.9999999999999991, "boundary_conditions": [{"boundary_condition_objects": ["MasterBedroom206..Face6", "MasterBedroom206"], "type": "Surface"}, {"view_factor": {"type": "Autocalculate"}, "sun_exposure": true, "wind_exposure": true, "type": "Outdoors"}, {"boundary_condition_objects": ["Bedroom204..Face6", "Bedroom204"], "type": "Surface"}, {"boundary_condition_objects": ["MasterBedroom206..Face7", "MasterBedroom206"], "type": "Surface"}], "properties": {"radiance": {"type": "Room2DRadiancePropertiesAbridged"}, "energy": {"program_type": "2019::SmallOffice::Restroom", "type": "Room2DEnergyPropertiesAbridged", "construction_set": "2019::ClimateZone1::SteelFramed", "hvac": "DOAS with FCU AirCooled"}, "type": "Room2DPropertiesAbridged", "uwg": {"type": "Room2DUWGPropertiesAbridged"}}}, {"display_name": "Bedroom 204", "identifier": "Bedroom204", "floor_boundary": [[4.1219315174376279, -1.4655939785817005], [4.1219315174376288, -1.1455939785817004], [4.1219315174376314, 0.65040602141827786], [4.1219315174376323, 1.3584060214181961], [1.0619315174376336, 1.3584060214182057], [1.0619315174376314, 0.03840602141820626], [1.061931517437626, -3.3025939785815166], [4.5056455989155477, -3.3025939785815277], [4.5056455989155531, -1.465593978581702]], "is_ground_contact": false, "is_top_exposed": true, "floor_to_ceiling_height": 5.9130596570021554, "user_data": {"__layer__": "Room"}, "type": "Room2D", "window_parameters": [null, {"are_doors": [false, true], "type": "DetailedWindows", "polygons": [[[0.21439999999989823, 1.3454522938113254], [0.21439999999989856, 1.0929477061886876], [0.392947706188575, 0.91440000000000143], [0.6454522938112135, 0.91440000000000143], [0.82399999999989659, 1.0929477061886876], [0.82399999999989704, 1.3454522938113262], [0.6454522938112135, 1.5240000000000036], [0.39294770618857522, 1.5240000000000036]], [[1.763999999999897, 0.030480000000000285], [1.763999999999897, 2.1799999999999997], [0.80399999999989746, 2.1799999999999997], [0.80399999999989746, 0.030480000000000285]]]}, null, {"are_doors": [true], "type": "DetailedWindows", "polygons": [[[2.9609999999999914, 0.030480000000000285], [2.9609999999999914, 2.1799999999999997], [2.0009999999999915, 2.1799999999999997], [2.0009999999999915, 0.030480000000000285]]]}, null, null, {"are_doors": [false], "type": "DetailedWindows", "polygons": [[[3.0000000000000164, 0.030480000000000285], [3.0000000000000164, 2.699999999999994], [1.5000000000000182, 2.6999999999999931], [1.5000000000000182, 0.030480000000000285]]]}, null, null], "floor_height": 2.9999999999999991, "boundary_conditions": [{"boundary_condition_objects": ["Shaft214..Face4", "Shaft214"], "type": "Surface"}, {"boundary_condition_objects": ["Bath2205..Face2", "Bath2205"], "type": "Surface"}, {"boundary_condition_objects": ["Linen208..Face3", "Linen208"], "type": "Surface"}, {"boundary_condition_objects": ["EntryHall201..Face5", "EntryHall201"], "type": "Surface"}, {"boundary_condition_objects": ["MasterBedroom206..Face1", "MasterBedroom206"], "type": "Surface"}, {"boundary_condition_objects": ["MasterBath207..Face3", "MasterBath207"], "type": "Surface"}, {"view_factor": {"type": "Autocalculate"}, "sun_exposure": true, "wind_exposure": true, "type": "Outdoors"}, {"boundary_condition_objects": ["Bath1203..Face2", "Bath1203"], "type": "Surface"}, {"boundary_condition_objects": ["Shaft214..Face5", "Shaft214"], "type": "Surface"}], "properties": {"radiance": {"type": "Room2DRadiancePropertiesAbridged"}, "energy": {"program_type": "2019::SmallOffice::OpenOffice", "type": "Room2DEnergyPropertiesAbridged", "construction_set": "2019::ClimateZone1::SteelFramed", "hvac": "DOAS with FCU AirCooled"}, "type": "Room2DPropertiesAbridged", "uwg": {"type": "Room2DUWGPropertiesAbridged"}}}, {"display_name": "Bath 1 203", "identifier": "Bath1203", "floor_boundary": [[7.0019315174376278, -1.4655939785817096], [4.5056455989155531, -1.4655939785817023], [4.5056455989155477, -3.3025939785815277], [7.0019315174376242, -3.3025939785815361]], "is_ground_contact": false, "is_top_exposed": true, "skylight_parameters": {"are_doors": [false], "type": "DetailedSkylights", "polygons": [[[5.7961876759545019, -1.7531946427533784], [5.7961876759544984, -2.6356680676481927], [6.9687253589210867, -2.6356680676481949], [6.9687253589210885, -1.75319464275338]]]}, "floor_to_ceiling_height": 4.586937725005515, "user_data": {"__layer__": "Room"}, "type": "Room2D", "window_parameters": [null, null, null, {"are_doors": [true], "type": "DetailedWindows", "polygons": [[[1.0809999999997228, 0.030480000000000285], [1.0809999999997228, 2.1799999999999997], [0.12099999999972244, 2.1799999999999997], [0.12099999999972244, 0.030480000000000285]]]}], "floor_height": 2.9999999999999991, "boundary_conditions": [{"boundary_condition_objects": ["Shaft214..Face6", "Shaft214"], "type": "Surface"}, {"boundary_condition_objects": ["Bedroom204..Face8", "Bedroom204"], "type": "Surface"}, {"view_factor": {"type": "Autocalculate"}, "sun_exposure": true, "wind_exposure": true, "type": "Outdoors"}, {"boundary_condition_objects": ["Bedroom1202..Face5", "Bedroom1202"], "type": "Surface"}], "properties": {"radiance": {"type": "Room2DRadiancePropertiesAbridged"}, "energy": {"program_type": "2019::SmallOffice::Restroom", "type": "Room2DEnergyPropertiesAbridged", "construction_set": "2019::ClimateZone1::SteelFramed", "hvac": "DOAS with FCU AirCooled"}, "type": "Room2DPropertiesAbridged", "uwg": {"type": "Room2DUWGPropertiesAbridged"}}}, {"display_name": "Bath 2 205", "identifier": "Bath2205", "floor_boundary": [[6.6168315174376993, 0.65040602141826986], [4.1219315174376314, 0.65040602141827808], [4.1219315174376279, -1.1455939785817004], [6.6168315174376966, -1.1455939785817089]], "is_ground_contact": false, "is_top_exposed": true, "skylight_parameters": {"are_doors": [false], "type": "DetailedSkylights", "polygons": [[[5.3272003589209485, 0.62927453389422516], [4.1546626759543619, 0.62927453389422894], [4.154662675954361, -0.084173982946091824], [5.3272003589209476, -0.084173982946093823]]]}, "floor_to_ceiling_height": 5.9130596570021554, "user_data": {"__layer__": "Room"}, "type": "Room2D", "window_parameters": [null, {"are_doors": [false, true], "type": "DetailedWindows", "polygons": [[[0.97200000000008135, 1.3454522938113262], [0.97200000000008191, 1.0929477061886876], [1.150547706188765, 0.91440000000000143], [1.4030522938114038, 0.91440000000000143], [1.5816000000000798, 1.0929477061886876], [1.5816000000000803, 1.3454522938113254], [1.4030522938114032, 1.5240000000000036], [1.150547706188765, 1.5240000000000036]], [[0.99200000000008104, 0.030480000000000285], [0.99200000000008104, 2.1799999999999997], [0.032000000000081297, 2.1799999999999997], [0.032000000000081297, 0.030480000000000285]]]}, null, null], "floor_height": 2.9999999999999991, "boundary_conditions": [{"boundary_condition_objects": ["Linen208..Face4", "Linen208"], "type": "Surface"}, {"boundary_condition_objects": ["Bedroom204..Face2", "Bedroom204"], "type": "Surface"}, {"boundary_condition_objects": ["Shaft214..Face3", "Shaft214"], "type": "Surface"}, {"boundary_condition_objects": ["Bedroom1202..Face2", "Bedroom1202"], "type": "Surface"}], "properties": {"radiance": {"type": "Room2DRadiancePropertiesAbridged"}, "energy": {"program_type": "2019::SmallOffice::Restroom", "type": "Room2DEnergyPropertiesAbridged", "construction_set": "2019::ClimateZone1::SteelFramed", "hvac": "DOAS with FCU AirCooled"}, "type": "Room2DPropertiesAbridged", "uwg": {"type": "Room2DUWGPropertiesAbridged"}}}, {"display_name": "Bedroom 1 202", "identifier": "Bedroom1202", "floor_boundary": [[6.6168315174376993, 1.3584060214181886], [6.6168315174376984, 0.65040602141826998], [6.6168315174376966, -1.1455939785817089], [7.0019315174376278, -1.1455939785817102], [7.0019315174376269, -1.4655939785817096], [7.0019315174376242, -3.3025939785815361], [10.001931517437626, -3.3025939785815455], [10.00193151743763, 1.3584060214181775]], "is_ground_contact": false, "is_top_exposed": true, "floor_to_ceiling_height": 5.9130596570021554, "user_data": {"__layer__": "Room"}, "type": "Room2D", "window_parameters": [null, null, null, null, {"are_doors": [true], "type": "DetailedWindows", "polygons": [[[1.7160000000001041, 0.030480000000000285], [1.7160000000001041, 2.1799999999999997], [0.7560000000001037, 2.1799999999999997], [0.7560000000001037, 0.030480000000000285]]]}, {"are_doors": [false], "type": "DetailedWindows", "polygons": [[[2.899000000000024, 0.030480000000000285], [2.899000000000024, 2.699999999999994], [1.3990000000000258, 2.6999999999999931], [1.3990000000000258, 0.030480000000000285]]]}, null, {"are_doors": [true], "type": "DetailedWindows", "polygons": [[[1.0809999999999977, 0.030480000000000285], [1.0809999999999977, 2.1799999999999997], [0.12099999999999866, 2.1799999999999997], [0.12099999999999866, 0.030480000000000285]]]}], "floor_height": 2.9999999999999991, "boundary_conditions": [{"boundary_condition_objects": ["Linen208..Face1", "Linen208"], "type": "Surface"}, {"boundary_condition_objects": ["Bath2205..Face4", "Bath2205"], "type": "Surface"}, {"boundary_condition_objects": ["Shaft214..Face2", "Shaft214"], "type": "Surface"}, {"boundary_condition_objects": ["Shaft214..Face1", "Shaft214"], "type": "Surface"}, {"boundary_condition_objects": ["Bath1203..Face4", "Bath1203"], "type": "Surface"}, {"view_factor": {"type": "Autocalculate"}, "sun_exposure": true, "wind_exposure": true, "type": "Outdoors"}, {"boundary_condition_objects": ["EntryHall201..Face8", "EntryHall201"], "type": "Surface"}, {"boundary_condition_objects": ["EntryHall201..Face7", "EntryHall201"], "type": "Surface"}], "properties": {"radiance": {"type": "Room2DRadiancePropertiesAbridged"}, "energy": {"program_type": "2019::SmallOffice::OpenOffice", "type": "Room2DEnergyPropertiesAbridged", "construction_set": "2019::ClimateZone1::SteelFramed", "hvac": "DOAS with FCU AirCooled"}, "type": "Room2DPropertiesAbridged", "uwg": {"type": "Room2DUWGPropertiesAbridged"}}}, {"display_name": "Entry Hall 201", "identifier": "EntryHall201", "floor_boundary": [[10.001931517437626, -3.3025939785815455], [13.162931517437634, -3.3025939785815557], [13.162931517437627, 2.8994060214182316], [1.0619315174376367, 2.8994060214182698], [1.061931517437634, 1.3584060214182059], [4.1219315174376323, 1.3584060214181961], [6.6168315174376993, 1.3584060214181881], [10.00193151743763, 1.3584060214181772]], "is_ground_contact": false, "is_top_exposed": true, "floor_to_ceiling_height": 5.9130596570021554, "user_data": {"__layer__": "Room"}, "type": "Room2D", "window_parameters": [{"are_doors": [false, true], "type": "DetailedWindows", "polygons": [[[2.9700000000000149, 2.660000000000001], [1.6209999999999987, 2.660000000000001], [1.6209999999999987, 0.040000000000001368], [2.9700000000000149, 0.040000000000001368]], [[1.5809999999999995, 2.660000000000001], [0.14100000000000001, 2.660000000000001], [0.14100000000000001, 0.030480000000000285], [1.5809999999999995, 0.030480000000000285]]]}, {"are_doors": [false, false], "type": "DetailedWindows", "polygons": [[[6.0609999999997868, 0.02000000000000135], [6.0609999999997868, 2.660000000000001], [4.760999999999787, 2.660000000000001], [4.760999999999787, 0.020000000000000462]], [[1.440999999999842, 2.660000000000001], [0.14099999999999957, 2.660000000000001], [0.14099999999999957, 0.040000000000001368], [1.440999999999842, 0.040000000000001368]]]}, {"are_doors": [false, false, false, true], "type": "DetailedWindows", "polygons": [[[9.1009999999999973, 2.6999999999999931], [7.6009999999999982, 2.699999999999994], [7.6009999999999982, 0.030480000000000285], [9.1009999999999973, 0.030480000000000285]], [[1.5809999999999338, 2.6600000000000019], [0.14099999999998758, 2.660000000000001], [0.14099999999998758, 0.020000000000000462], [1.5809999999999338, 0.020000000000000462]], [[7.6009999999999982, 2.6999999999999931], [6.101, 2.699999999999994], [6.101, 0.030480000000000285], [7.6009999999999982, 0.030480000000000285]], [[3.0609999999999307, 2.660000000000001], [1.6209999999999312, 2.660000000000001], [1.6209999999999312, 0.030480000000000285], [3.0609999999999307, 0.030480000000000285]]]}, {"are_doors": [true], "type": "DetailedWindows", "polygons": [[[1.0810000000000006, 0.030480000000000285], [1.0810000000000006, 2.1799999999999997], [0.12100000000000133, 2.1799999999999997], [0.12100000000000133, 0.030480000000000285]]]}, {"are_doors": [true], "type": "DetailedWindows", "polygons": [[[1.0590000000000068, 0.030480000000000285], [1.0590000000000068, 2.1799999999999997], [0.099000000000007082, 2.1799999999999997], [0.099000000000007082, 0.030480000000000285]]]}, {"are_doors": [true, true], "type": "DetailedWindows", "polygons": [[[2.334900000000069, 2.0270000000000019], [1.3899000000000687, 2.027000000000001], [1.3899000000000687, 0.030480000000000285], [2.334900000000069, 0.030480000000000285]], [[1.1050000000000009, 2.027000000000001], [0.16000000000000192, 2.027000000000001], [0.16000000000000281, 0.030480000000000285], [1.1050000000000026, 0.030480000000000285]]]}, {"are_doors": [true], "type": "DetailedWindows", "polygons": [[[3.2640999999999316, 0.030480000000000285], [3.2640999999999316, 2.1799999999999997], [2.3040999999999325, 2.1799999999999997], [2.3040999999999325, 0.030480000000000285]]]}, null], "floor_height": 2.9999999999999991, "boundary_conditions": [{"view_factor": {"type": "Autocalculate"}, "sun_exposure": true, "wind_exposure": true, "type": "Outdoors"}, {"view_factor": {"type": "Autocalculate"}, "sun_exposure": true, "wind_exposure": true, "type": "Outdoors"}, {"view_factor": {"type": "Autocalculate"}, "sun_exposure": true, "wind_exposure": true, "type": "Outdoors"}, {"boundary_condition_objects": ["MasterBedroom206..Face2", "MasterBedroom206"], "type": "Surface"}, {"boundary_condition_objects": ["Bedroom204..Face4", "Bedroom204"], "type": "Surface"}, {"boundary_condition_objects": ["Linen208..Face2", "Linen208"], "type": "Surface"}, {"boundary_condition_objects": ["Bedroom1202..Face8", "Bedroom1202"], "type": "Surface"}, {"boundary_condition_objects": ["Bedroom1202..Face7", "Bedroom1202"], "type": "Surface"}], "properties": {"radiance": {"type": "Room2DRadiancePropertiesAbridged"}, "energy": {"program_type": "2019::SmallOffice::Corridor", "type": "Room2DEnergyPropertiesAbridged", "construction_set": "2019::ClimateZone1::SteelFramed", "hvac": "DOAS with FCU AirCooled"}, "type": "Room2DPropertiesAbridged", "uwg": {"type": "Room2DUWGPropertiesAbridged"}}}, {"display_name": "Linen 208", "identifier": "Linen208", "floor_boundary": [[6.6168315174376993, 0.65040602141826986], [6.6168315174376993, 1.3584060214181879], [4.1219315174376323, 1.3584060214181961], [4.1219315174376314, 0.65040602141827808]], "is_ground_contact": false, "is_top_exposed": true, "floor_to_ceiling_height": 5.1464167785777706, "user_data": {"__layer__": "Room"}, "type": "Room2D", "window_parameters": [null, {"are_doors": [true, true], "type": "DetailedWindows", "polygons": [[[1.1049999999999986, 2.027000000000001], [0.15999999999999748, 2.0270000000000019], [0.15999999999999748, 0.030480000000000285], [1.1049999999999986, 0.030480000000000285]], [[2.334900000000065, 2.027000000000001], [1.3899000000000656, 2.027000000000001], [1.3899000000000648, 0.030480000000000285], [2.334900000000065, 0.030480000000000285]]]}, null, null], "floor_height": 2.9999999999999991, "boundary_conditions": [{"boundary_condition_objects": ["Bedroom1202..Face1", "Bedroom1202"], "type": "Surface"}, {"boundary_condition_objects": ["EntryHall201..Face6", "EntryHall201"], "type": "Surface"}, {"boundary_condition_objects": ["Bedroom204..Face3", "Bedroom204"], "type": "Surface"}, {"boundary_condition_objects": ["Bath2205..Face1", "Bath2205"], "type": "Surface"}], "properties": {"radiance": {"type": "Room2DRadiancePropertiesAbridged"}, "energy": {"program_type": "2019::SmallOffice::Storage", "type": "Room2DEnergyPropertiesAbridged", "construction_set": "2019::ClimateZone1::SteelFramed", "hvac": "DOAS with FCU AirCooled"}, "type": "Room2DPropertiesAbridged", "uwg": {"type": "Room2DUWGPropertiesAbridged"}}}, {"display_name": "Shaft 214", "identifier": "Shaft214", "floor_boundary": [[7.0019315174376278, -1.4655939785817096], [7.0019315174376278, -1.1455939785817102], [6.6168315174376966, -1.1455939785817089], [4.1219315174376279, -1.1455939785817004], [4.1219315174376279, -1.4655939785817005], [4.5056455989155531, -1.4655939785817016]], "is_ground_contact": false, "is_top_exposed": true, "floor_to_ceiling_height": 4.8947852057592112, "user_data": {"__layer__": "Room"}, "type": "Room2D", "floor_height": 2.9999999999999991, "boundary_conditions": [{"boundary_condition_objects": ["Bedroom1202..Face4", "Bedroom1202"], "type": "Surface"}, {"boundary_condition_objects": ["Bedroom1202..Face3", "Bedroom1202"], "type": "Surface"}, {"boundary_condition_objects": ["Bath2205..Face3", "Bath2205"], "type": "Surface"}, {"boundary_condition_objects": ["Bedroom204..Face1", "Bedroom204"], "type": "Surface"}, {"boundary_condition_objects": ["Bedroom204..Face9", "Bedroom204"], "type": "Surface"}, {"boundary_condition_objects": ["Bath1203..Face1", "Bath1203"], "type": "Surface"}], "properties": {"radiance": {"type": "Room2DRadiancePropertiesAbridged"}, "energy": {"program_type": "2019::SmallOffice::Storage", "type": "Room2DEnergyPropertiesAbridged", "construction_set": "2019::ClimateZone1::SteelFramed", "hvac": "DOAS with FCU AirCooled"}, "type": "Room2DPropertiesAbridged", "uwg": {"type": "Room2DUWGPropertiesAbridged"}}}], "type": "Story", "floor_height": 2.9999999999999991, "properties": {"radiance": {"type": "StoryRadiancePropertiesAbridged"}, "energy": {"type": "StoryEnergyPropertiesAbridged"}, "type": "StoryPropertiesAbridged", "uwg": {"type": "StoryUWGPropertiesAbridged"}}}], "type": "Building", "properties": {"radiance": {"type": "BuildingRadiancePropertiesAbridged"}, "energy": {"type": "BuildingEnergyPropertiesAbridged"}, "type": "BuildingPropertiesAbridged", "uwg": {"fract_heat_to_canyon": 0.5, "vintage": "New", "roof_veg_fraction": 0.0, "program": "LargeOffice", "type": "BuildingUWGPropertiesAbridged"}}}], "type": "Model", "version": "1.8.1", "context_shades": [{"display_name": "Shade_ae8b4e75-e47d-473a-8255-a4634e701f79-000e6ff4_0", "identifier": "Shade_ae8b4e75-e47d-473a-8255-a4634e701f79-000e6ff4_0", "is_detached": false, "geometry": [{"type": "Face3D", "boundary": [[-7.6155389226250927, 11.714493218379594, 17.206110617732861], [-7.6155389226250927, 11.714493218379594, 4.4045106177328535], [-7.6155389226250927, 30.084615306333561, 4.4045106177328535], [-7.6155389226250927, 30.084615306333561, 17.206110617732861]]}], "user_data": {"__layer__": "Shade"}, "type": "ContextShade", "properties": {"radiance": {"type": "ContextShadeRadiancePropertiesAbridged"}, "energy": {"type": "ContextShadeEnergyPropertiesAbridged"}, "type": "ContextShadePropertiesAbridged", "uwg": {"type": "ContextShadeUWGPropertiesAbridged", "is_vegetation": false}}}, {"display_name": "Shade_ae8b4e75-e47d-473a-8255-a4634e701f79-000e6ff4_1", "identifier": "Shade_ae8b4e75-e47d-473a-8255-a4634e701f79-000e6ff4_1", "is_detached": false, "geometry": [{"type": "Face3D", "boundary": [[-16.779435160431358, 20.899554262356578, 17.206110617732861], [-16.779435160431358, 20.899554262356578, 4.4045106177328535], [1.548357315181174, 20.899554262356578, 4.4045106177328535], [1.548357315181174, 20.899554262356578, 17.206110617732861]]}], "user_data": {"__layer__": "Shade"}, "type": "ContextShade", "properties": {"radiance": {"type": "ContextShadeRadiancePropertiesAbridged"}, "energy": {"type": "ContextShadeEnergyPropertiesAbridged"}, "type": "ContextShadePropertiesAbridged", "uwg": {"type": "ContextShadeUWGPropertiesAbridged", "is_vegetation": false}}}, {"display_name": "Shade_ae8b4e75-e47d-473a-8255-a4634e701f79-000e70d1_0", "identifier": "Shade_ae8b4e75-e47d-473a-8255-a4634e701f79-000e70d1_0", "is_detached": false, "geometry": [{"type": "Face3D", "boundary": [[-10.304748172080851, 15.599992717475285, 11.66444242610206], [-10.304748172080851, 15.599992717475285, 4.0444424261020551], [-10.304748172080851, 23.954968061526358, 4.0444424261020551], [-10.304748172080851, 23.954968061526358, 11.66444242610206]]}], "user_data": {"__layer__": "Shade"}, "type": "ContextShade", "properties": {"radiance": {"type": "ContextShadeRadiancePropertiesAbridged"}, "energy": {"type": "ContextShadeEnergyPropertiesAbridged"}, "type": "ContextShadePropertiesAbridged", "uwg": {"type": "ContextShadeUWGPropertiesAbridged", "is_vegetation": false}}}, {"display_name": "Shade_ae8b4e75-e47d-473a-8255-a4634e701f79-000e70d1_1", "identifier": "Shade_ae8b4e75-e47d-473a-8255-a4634e701f79-000e70d1_1", "is_detached": false, "geometry": [{"type": "Face3D", "boundary": [[-14.453477777971596, 19.77748038950082, 11.66444242610206], [-14.453477777971596, 19.77748038950082, 4.0444424261020551], [-6.1560185661901041, 19.77748038950082, 4.0444424261020551], [-6.1560185661901041, 19.77748038950082, 11.66444242610206]]}], "user_data": {"__layer__": "Shade"}, "type": "ContextShade", "properties": {"radiance": {"type": "ContextShadeRadiancePropertiesAbridged"}, "energy": {"type": "ContextShadeEnergyPropertiesAbridged"}, "type": "ContextShadePropertiesAbridged", "uwg": {"type": "ContextShadeUWGPropertiesAbridged", "is_vegetation": false}}}, {"display_name": "Shade_ae8b4e75-e47d-473a-8255-a4634e701f79-000e7134_0", "identifier": "Shade_ae8b4e75-e47d-473a-8255-a4634e701f79-000e7134_0", "is_detached": false, "geometry": [{"type": "Face3D", "boundary": [[-8.4799836479891262, 11.749966583852697, 12.837540265772438], [-8.4799836479891262, 11.749966583852697, 3.6935327080942182], [-8.4799836479891262, 22.403002082650215, 3.6935327080942182], [-8.4799836479891262, 22.403002082650215, 12.837540265772438]]}], "user_data": {"__layer__": "Shade"}, "type": "ContextShade", "properties": {"radiance": {"type": "ContextShadeRadiancePropertiesAbridged"}, "energy": {"type": "ContextShadeEnergyPropertiesAbridged"}, "type": "ContextShadePropertiesAbridged", "uwg": {"type": "ContextShadeUWGPropertiesAbridged", "is_vegetation": false}}}, {"display_name": "Shade_ae8b4e75-e47d-473a-8255-a4634e701f79-000e7134_1", "identifier": "Shade_ae8b4e75-e47d-473a-8255-a4634e701f79-000e7134_1", "is_detached": false, "geometry": [{"type": "Face3D", "boundary": [[-13.809558450875027, 17.076484333251454, 12.837540265772438], [-13.809558450875027, 17.076484333251454, 3.6935327080942182], [-3.1504088451032253, 17.076484333251454, 3.6935327080942182], [-3.1504088451032253, 17.076484333251454, 12.837540265772438]]}], "user_data": {"__layer__": "Shade"}, "type": "ContextShade", "properties": {"radiance": {"type": "ContextShadeRadiancePropertiesAbridged"}, "energy": {"type": "ContextShadeEnergyPropertiesAbridged"}, "type": "ContextShadePropertiesAbridged", "uwg": {"type": "ContextShadeUWGPropertiesAbridged", "is_vegetation": false}}}, {"display_name": "Shade_ae8b4e75-e47d-473a-8255-a4634e701f79-000e71c7_0", "identifier": "Shade_ae8b4e75-e47d-473a-8255-a4634e701f79-000e71c7_0", "is_detached": false, "geometry": [{"type": "Face3D", "boundary": [[-2.7377406412960612, 6.9935077018348633, 10.253269328188637], [-2.7377406412960612, 6.9935077018348633, 2.6332693281886321], [-2.7377406412960612, 12.949791310449314, 2.6332693281886321], [-2.7377406412960612, 12.949791310449314, 10.253269328188637]]}], "user_data": {"__layer__": "Shade"}, "type": "ContextShade", "properties": {"radiance": {"type": "ContextShadeRadiancePropertiesAbridged"}, "energy": {"type": "ContextShadeEnergyPropertiesAbridged"}, "type": "ContextShadePropertiesAbridged", "uwg": {"type": "ContextShadeUWGPropertiesAbridged", "is_vegetation": false}}}, {"display_name": "Shade_ae8b4e75-e47d-473a-8255-a4634e701f79-000e71c7_1", "identifier": "Shade_ae8b4e75-e47d-473a-8255-a4634e701f79-000e71c7_1", "is_detached": false, "geometry": [{"type": "Face3D", "boundary": [[-5.7157385580126094, 9.9716495061420893, 10.253269328188637], [-5.7157385580126094, 9.9716495061420893, 2.6332693281886321], [0.24025727542048722, 9.9716495061420893, 2.6332693281886321], [0.24025727542048722, 9.9716495061420893, 10.253269328188637]]}], "user_data": {"__layer__": "Shade"}, "type": "ContextShade", "properties": {"radiance": {"type": "ContextShadeRadiancePropertiesAbridged"}, "energy": {"type": "ContextShadeEnergyPropertiesAbridged"}, "type": "ContextShadePropertiesAbridged", "uwg": {"type": "ContextShadeUWGPropertiesAbridged", "is_vegetation": false}}}, {"display_name": "Shade_ae8b4e75-e47d-473a-8255-a4634e701f79-000e7214_0", "identifier": "Shade_ae8b4e75-e47d-473a-8255-a4634e701f79-000e7214_0", "is_detached": false, "geometry": [{"type": "Face3D", "boundary": [[-4.6617585601429612, 8.0862235935163937, 10.571370837448306], [-4.6617585601429612, 8.0862235935163937, 2.9513708374483021], [-4.6617585601429612, 16.441198937567467, 2.9513708374483021], [-4.6617585601429612, 16.441198937567467, 10.571370837448306]]}], "user_data": {"__layer__": "Shade"}, "type": "ContextShade", "properties": {"radiance": {"type": "ContextShadeRadiancePropertiesAbridged"}, "energy": {"type": "ContextShadeEnergyPropertiesAbridged"}, "type": "ContextShadePropertiesAbridged", "uwg": {"type": "ContextShadeUWGPropertiesAbridged", "is_vegetation": false}}}, {"display_name": "Shade_ae8b4e75-e47d-473a-8255-a4634e701f79-000e7214_1", "identifier": "Shade_ae8b4e75-e47d-473a-8255-a4634e701f79-000e7214_1", "is_detached": false, "geometry": [{"type": "Face3D", "boundary": [[-8.8104881660337071, 12.263711265541929, 10.571370837448306], [-8.8104881660337071, 12.263711265541929, 2.9513708374483021], [-0.51302895425221562, 12.263711265541929, 2.9513708374483021], [-0.51302895425221562, 12.263711265541929, 10.571370837448306]]}], "user_data": {"__layer__": "Shade"}, "type": "ContextShade", "properties": {"radiance": {"type": "ContextShadeRadiancePropertiesAbridged"}, "energy": {"type": "ContextShadeEnergyPropertiesAbridged"}, "type": "ContextShadePropertiesAbridged", "uwg": {"type": "ContextShadeUWGPropertiesAbridged", "is_vegetation": false}}}, {"display_name": "Shade_ae8b4e75-e47d-473a-8255-a4634e701f79-000e7247_0", "identifier": "Shade_ae8b4e75-e47d-473a-8255-a4634e701f79-000e7247_0", "is_detached": false, "geometry": [{"type": "Face3D", "boundary": [[-6.6960944593556055, 4.2457581836996612, 14.677245428416763], [-6.6960944593556055, 4.2457581836996612, 2.4852454284167544], [-6.6960944593556055, 15.017750109084348, 2.4852454284167544], [-6.6960944593556055, 15.017750109084348, 14.677245428416763]]}], "user_data": {"__layer__": "Shade"}, "type": "ContextShade", "properties": {"radiance": {"type": "ContextShadeRadiancePropertiesAbridged"}, "energy": {"type": "ContextShadeEnergyPropertiesAbridged"}, "type": "ContextShadePropertiesAbridged", "uwg": {"type": "ContextShadeUWGPropertiesAbridged", "is_vegetation": false}}}, {"display_name": "Shade_ae8b4e75-e47d-473a-8255-a4634e701f79-000e7247_1", "identifier": "Shade_ae8b4e75-e47d-473a-8255-a4634e701f79-000e7247_1", "is_detached": false, "geometry": [{"type": "Face3D", "boundary": [[-12.089509271944358, 9.6317541463920033, 14.677245428416763], [-12.089509271944358, 9.6317541463920033, 2.4852454284167544], [-1.3026796467668522, 9.6317541463920033, 2.4852454284167544], [-1.3026796467668522, 9.6317541463920033, 14.677245428416763]]}], "user_data": {"__layer__": "Shade"}, "type": "ContextShade", "properties": {"radiance": {"type": "ContextShadeRadiancePropertiesAbridged"}, "energy": {"type": "ContextShadeEnergyPropertiesAbridged"}, "type": "ContextShadePropertiesAbridged", "uwg": {"type": "ContextShadeUWGPropertiesAbridged", "is_vegetation": false}}}, {"display_name": "Shade_ae8b4e75-e47d-473a-8255-a4634e701f79-000e7280_0", "identifier": "Shade_ae8b4e75-e47d-473a-8255-a4634e701f79-000e7280_0", "is_detached": false, "geometry": [{"type": "Face3D", "boundary": [[23.29486770829859, -14.32675913493571, 7.9945561998526768], [23.29486770829859, -14.32675913493571, 0.37455619985267175], [23.29486770829859, -5.9717837908846372, 0.37455619985267175], [23.29486770829859, -5.9717837908846372, 7.9945561998526768]]}], "user_data": {"__layer__": "Shade"}, "type": "ContextShade", "properties": {"radiance": {"type": "ContextShadeRadiancePropertiesAbridged"}, "energy": {"type": "ContextShadeEnergyPropertiesAbridged"}, "type": "ContextShadePropertiesAbridged", "uwg": {"type": "ContextShadeUWGPropertiesAbridged", "is_vegetation": false}}}, {"display_name": "Shade_ae8b4e75-e47d-473a-8255-a4634e701f79-000e7280_1", "identifier": "Shade_ae8b4e75-e47d-473a-8255-a4634e701f79-000e7280_1", "is_detached": false, "geometry": [{"type": "Face3D", "boundary": [[19.146138102407846, -10.149271462910173, 7.9945561998526768], [19.146138102407846, -10.149271462910173, 0.37455619985267175], [27.443597314189336, -10.149271462910173, 0.37455619985267175], [27.443597314189336, -10.149271462910173, 7.9945561998526768]]}], "user_data": {"__layer__": "Shade"}, "type": "ContextShade", "properties": {"radiance": {"type": "ContextShadeRadiancePropertiesAbridged"}, "energy": {"type": "ContextShadeEnergyPropertiesAbridged"}, "type": "ContextShadePropertiesAbridged", "uwg": {"type": "ContextShadeUWGPropertiesAbridged", "is_vegetation": false}}}, {"display_name": "Shade_ae8b4e75-e47d-473a-8255-a4634e701f79-000e7293_0", "identifier": "Shade_ae8b4e75-e47d-473a-8255-a4634e701f79-000e7293_0", "is_detached": false, "geometry": [{"type": "Face3D", "boundary": [[22.149750091176493, -22.559073847825928, 12.959468653527606], [22.149750091176493, -22.559073847825928, 0.15786865352759877], [22.149750091176493, -4.1889517598719657, 0.15786865352759877], [22.149750091176493, -4.1889517598719657, 12.959468653527606]]}], "user_data": {"__layer__": "Shade"}, "type": "ContextShade", "properties": {"radiance": {"type": "ContextShadeRadiancePropertiesAbridged"}, "energy": {"type": "ContextShadeEnergyPropertiesAbridged"}, "type": "ContextShadePropertiesAbridged", "uwg": {"type": "ContextShadeUWGPropertiesAbridged", "is_vegetation": false}}}, {"display_name": "Shade_ae8b4e75-e47d-473a-8255-a4634e701f79-000e7293_1", "identifier": "Shade_ae8b4e75-e47d-473a-8255-a4634e701f79-000e7293_1", "is_detached": false, "geometry": [{"type": "Face3D", "boundary": [[12.985853853370221, -13.374012803848947, 12.959468653527606], [12.985853853370221, -13.374012803848947, 0.15786865352759877], [31.31364632898276, -13.374012803848947, 0.15786865352759877], [31.31364632898276, -13.374012803848947, 12.959468653527606]]}], "user_data": {"__layer__": "Shade"}, "type": "ContextShade", "properties": {"radiance": {"type": "ContextShadeRadiancePropertiesAbridged"}, "energy": {"type": "ContextShadeEnergyPropertiesAbridged"}, "type": "ContextShadePropertiesAbridged", "uwg": {"type": "ContextShadeUWGPropertiesAbridged", "is_vegetation": false}}}, {"display_name": "Shade_ae8b4e75-e47d-473a-8255-a4634e701f79-000e72e0_0", "identifier": "Shade_ae8b4e75-e47d-473a-8255-a4634e701f79-000e72e0_0", "is_detached": false, "geometry": [{"type": "Face3D", "boundary": [[24.554017553780142, -20.222503159560066, 7.9086342604732751], [24.554017553780142, -20.222503159560066, 0.28863426047327073], [24.554017553780142, -11.867527815508994, 0.28863426047327073], [24.554017553780142, -11.867527815508994, 7.9086342604732751]]}], "user_data": {"__layer__": "Shade"}, "type": "ContextShade", "properties": {"radiance": {"type": "ContextShadeRadiancePropertiesAbridged"}, "energy": {"type": "ContextShadeEnergyPropertiesAbridged"}, "type": "ContextShadePropertiesAbridged", "uwg": {"type": "ContextShadeUWGPropertiesAbridged", "is_vegetation": false}}}, {"display_name": "Shade_ae8b4e75-e47d-473a-8255-a4634e701f79-000e72e0_1", "identifier": "Shade_ae8b4e75-e47d-473a-8255-a4634e701f79-000e72e0_1", "is_detached": false, "geometry": [{"type": "Face3D", "boundary": [[20.405287947889398, -16.045015487534531, 7.9086342604732751], [20.405287947889398, -16.045015487534531, 0.28863426047327073], [28.702747159670889, -16.045015487534531, 0.28863426047327073], [28.702747159670889, -16.045015487534531, 7.9086342604732751]]}], "user_data": {"__layer__": "Shade"}, "type": "ContextShade", "properties": {"radiance": {"type": "ContextShadeRadiancePropertiesAbridged"}, "energy": {"type": "ContextShadeEnergyPropertiesAbridged"}, "type": "ContextShadePropertiesAbridged", "uwg": {"type": "ContextShadeUWGPropertiesAbridged", "is_vegetation": false}}}, {"display_name": "Shade_ae8b4e75-e47d-473a-8255-a4634e701f79-000e7305_0", "identifier": "Shade_ae8b4e75-e47d-473a-8255-a4634e701f79-000e7305_0", "is_detached": false, "geometry": [{"type": "Face3D", "boundary": [[25.05152356639676, -23.565544765643057, 7.8803992509386269], [25.05152356639676, -23.565544765643057, 0.26039925093862315], [25.05152356639676, -15.210569421591984, 0.26039925093862315], [25.05152356639676, -15.210569421591984, 7.8803992509386269]]}], "user_data": {"__layer__": "Shade"}, "type": "ContextShade", "properties": {"radiance": {"type": "ContextShadeRadiancePropertiesAbridged"}, "energy": {"type": "ContextShadeEnergyPropertiesAbridged"}, "type": "ContextShadePropertiesAbridged", "uwg": {"type": "ContextShadeUWGPropertiesAbridged", "is_vegetation": false}}}, {"display_name": "Shade_ae8b4e75-e47d-473a-8255-a4634e701f79-000e7305_1", "identifier": "Shade_ae8b4e75-e47d-473a-8255-a4634e701f79-000e7305_1", "is_detached": false, "geometry": [{"type": "Face3D", "boundary": [[20.902793960506017, -19.388057093617519, 7.8803992509386269], [20.902793960506017, -19.388057093617519, 0.26039925093862315], [29.200253172287507, -19.388057093617519, 0.26039925093862315], [29.200253172287507, -19.388057093617519, 7.8803992509386269]]}], "user_data": {"__layer__": "Shade"}, "type": "ContextShade", "properties": {"radiance": {"type": "ContextShadeRadiancePropertiesAbridged"}, "energy": {"type": "ContextShadeEnergyPropertiesAbridged"}, "type": "ContextShadePropertiesAbridged", "uwg": {"type": "ContextShadeUWGPropertiesAbridged", "is_vegetation": false}}}, {"display_name": "Shade_ae8b4e75-e47d-473a-8255-a4634e701f79-000e733a_0", "identifier": "Shade_ae8b4e75-e47d-473a-8255-a4634e701f79-000e733a_0", "is_detached": false, "geometry": [{"type": "Face3D", "boundary": [[24.06725775855622, -27.842938088912401, 9.1821614297776417], [24.06725775855622, -27.842938088912401, 0.038153872099421025], [24.06725775855622, -17.189902590114887, 0.038153872099421025], [24.06725775855622, -17.189902590114887, 9.1821614297776417]]}], "user_data": {"__layer__": "Shade"}, "type": "ContextShade", "properties": {"radiance": {"type": "ContextShadeRadiancePropertiesAbridged"}, "energy": {"type": "ContextShadeEnergyPropertiesAbridged"}, "type": "ContextShadePropertiesAbridged", "uwg": {"type": "ContextShadeUWGPropertiesAbridged", "is_vegetation": false}}}, {"display_name": "Shade_ae8b4e75-e47d-473a-8255-a4634e701f79-000e733a_1", "identifier": "Shade_ae8b4e75-e47d-473a-8255-a4634e701f79-000e733a_1", "is_detached": false, "geometry": [{"type": "Face3D", "boundary": [[18.737682955670319, -22.516420339513644, 9.1821614297776417], [18.737682955670319, -22.516420339513644, 0.038153872099421025], [29.396832561442118, -22.516420339513644, 0.038153872099421025], [29.396832561442118, -22.516420339513644, 9.1821614297776417]]}], "user_data": {"__layer__": "Shade"}, "type": "ContextShade", "properties": {"radiance": {"type": "ContextShadeRadiancePropertiesAbridged"}, "energy": {"type": "ContextShadeEnergyPropertiesAbridged"}, "type": "ContextShadePropertiesAbridged", "uwg": {"type": "ContextShadeUWGPropertiesAbridged", "is_vegetation": false}}}, {"display_name": "Shade_ae8b4e75-e47d-473a-8255-a4634e701f79-000e7371_0", "identifier": "Shade_ae8b4e75-e47d-473a-8255-a4634e701f79-000e7371_0", "is_detached": false, "geometry": [{"type": "Face3D", "boundary": [[23.39641554928075, -29.244000598413248, 7.5274987606432413], [23.39641554928075, -29.244000598413248, -0.092501239356763354], [23.39641554928075, -20.889025254362178, -0.092501239356763354], [23.39641554928075, -20.889025254362178, 7.5274987606432413]]}], "user_data": {"__layer__": "Shade"}, "type": "ContextShade", "properties": {"radiance": {"type": "ContextShadeRadiancePropertiesAbridged"}, "energy": {"type": "ContextShadeEnergyPropertiesAbridged"}, "type": "ContextShadePropertiesAbridged", "uwg": {"type": "ContextShadeUWGPropertiesAbridged", "is_vegetation": false}}}, {"display_name": "Shade_ae8b4e75-e47d-473a-8255-a4634e701f79-000e7371_1", "identifier": "Shade_ae8b4e75-e47d-473a-8255-a4634e701f79-000e7371_1", "is_detached": false, "geometry": [{"type": "Face3D", "boundary": [[19.24768594339, -25.066512926387709, 7.5274987606432413], [19.24768594339, -25.066512926387709, -0.092501239356763354], [27.545145155171493, -25.066512926387709, -0.092501239356763354], [27.545145155171493, -25.066512926387709, 7.5274987606432413]]}], "user_data": {"__layer__": "Shade"}, "type": "ContextShade", "properties": {"radiance": {"type": "ContextShadeRadiancePropertiesAbridged"}, "energy": {"type": "ContextShadeEnergyPropertiesAbridged"}, "type": "ContextShadePropertiesAbridged", "uwg": {"type": "ContextShadeUWGPropertiesAbridged", "is_vegetation": false}}}, {"display_name": "Shade_ae8b4e75-e47d-473a-8255-a4634e701f79-000e73a4_0", "identifier": "Shade_ae8b4e75-e47d-473a-8255-a4634e701f79-000e73a4_0", "is_detached": false, "geometry": [{"type": "Face3D", "boundary": [[24.309136586645494, -32.755103908322063, 7.7623246871219278], [24.309136586645494, -32.755103908322063, 0.14232468712192342], [24.309136586645494, -24.484523741749317, 0.14232468712192342], [24.309136586645494, -24.484523741749317, 7.7623246871219278]]}], "user_data": {"__layer__": "Shade"}, "type": "ContextShade", "properties": {"radiance": {"type": "ContextShadeRadiancePropertiesAbridged"}, "energy": {"type": "ContextShadeEnergyPropertiesAbridged"}, "type": "ContextShadePropertiesAbridged", "uwg": {"type": "ContextShadeUWGPropertiesAbridged", "is_vegetation": false}}}, {"display_name": "Shade_ae8b4e75-e47d-473a-8255-a4634e701f79-000e73a4_1", "identifier": "Shade_ae8b4e75-e47d-473a-8255-a4634e701f79-000e73a4_1", "is_detached": false, "geometry": [{"type": "Face3D", "boundary": [[20.174216463241866, -28.619813825035688, 7.7623246871219278], [20.174216463241866, -28.619813825035688, 0.14232468712192342], [28.444056710049122, -28.619813825035688, 0.14232468712192342], [28.444056710049122, -28.619813825035688, 7.7623246871219278]]}], "user_data": {"__layer__": "Shade"}, "type": "ContextShade", "properties": {"radiance": {"type": "ContextShadeRadiancePropertiesAbridged"}, "energy": {"type": "ContextShadeEnergyPropertiesAbridged"}, "type": "ContextShadePropertiesAbridged", "uwg": {"type": "ContextShadeUWGPropertiesAbridged", "is_vegetation": false}}}, {"display_name": "Shade_ae8b4e75-e47d-473a-8255-a4634e701f79-000e7449_0", "identifier": "Shade_ae8b4e75-e47d-473a-8255-a4634e701f79-000e7449_0", "is_detached": false, "geometry": [{"type": "Face3D", "boundary": [[19.587848313585035, -45.620036718256074, 7.3520071054174121], [19.587848313585035, -45.620036718256074, -0.26799289458259223], [19.587848313585035, -33.994677000925229, -0.26799289458259223], [19.587848313585035, -33.994677000925229, 7.3520071054174121]]}], "user_data": {"__layer__": "Shade"}, "type": "ContextShade", "properties": {"radiance": {"type": "ContextShadeRadiancePropertiesAbridged"}, "energy": {"type": "ContextShadeEnergyPropertiesAbridged"}, "type": "ContextShadePropertiesAbridged", "uwg": {"type": "ContextShadeUWGPropertiesAbridged", "is_vegetation": false}}}, {"display_name": "Shade_ae8b4e75-e47d-473a-8255-a4634e701f79-000e7449_1", "identifier": "Shade_ae8b4e75-e47d-473a-8255-a4634e701f79-000e7449_1", "is_detached": false, "geometry": [{"type": "Face3D", "boundary": [[13.892430519420122, -39.807356859590655, 7.3520071054174121], [13.892430519420122, -39.807356859590655, -0.26799289458259223], [25.283266107749945, -39.807356859590655, -0.26799289458259223], [25.283266107749945, -39.807356859590655, 7.3520071054174121]]}], "user_data": {"__layer__": "Shade"}, "type": "ContextShade", "properties": {"radiance": {"type": "ContextShadeRadiancePropertiesAbridged"}, "energy": {"type": "ContextShadeEnergyPropertiesAbridged"}, "type": "ContextShadePropertiesAbridged", "uwg": {"type": "ContextShadeUWGPropertiesAbridged", "is_vegetation": false}}}, {"display_name": "Shade_ae8b4e75-e47d-473a-8255-a4634e701f79-000e7482_0", "identifier": "Shade_ae8b4e75-e47d-473a-8255-a4634e701f79-000e7482_0", "is_detached": false, "geometry": [{"type": "Face3D", "boundary": [[17.403522343807936, -45.505039198872375, 7.0801881922189827], [17.403522343807936, -45.505039198872375, -0.53981180778102122], [17.403522343807936, -37.150063854821298, -0.53981180778102122], [17.403522343807936, -37.150063854821298, 7.0801881922189827]]}], "user_data": {"__layer__": "Shade"}, "type": "ContextShade", "properties": {"radiance": {"type": "ContextShadeRadiancePropertiesAbridged"}, "energy": {"type": "ContextShadeEnergyPropertiesAbridged"}, "type": "ContextShadePropertiesAbridged", "uwg": {"type": "ContextShadeUWGPropertiesAbridged", "is_vegetation": false}}}, {"display_name": "Shade_ae8b4e75-e47d-473a-8255-a4634e701f79-000e7482_1", "identifier": "Shade_ae8b4e75-e47d-473a-8255-a4634e701f79-000e7482_1", "is_detached": false, "geometry": [{"type": "Face3D", "boundary": [[13.254792737917189, -41.32755152684684, 7.0801881922189827], [13.254792737917189, -41.32755152684684, -0.53981180778102122], [21.552251949698679, -41.32755152684684, -0.53981180778102122], [21.552251949698679, -41.32755152684684, 7.0801881922189827]]}], "user_data": {"__layer__": "Shade"}, "type": "ContextShade", "properties": {"radiance": {"type": "ContextShadeRadiancePropertiesAbridged"}, "energy": {"type": "ContextShadeEnergyPropertiesAbridged"}, "type": "ContextShadePropertiesAbridged", "uwg": {"type": "ContextShadeUWGPropertiesAbridged", "is_vegetation": false}}}], "properties": {"radiance": {"modifiers": [], "type": "ModelRadianceProperties", "global_modifier_set": {"shade_set": {"type": "ShadeModifierSetAbridged", "interior_modifier": "generic_interior_shade_0.50", "exterior_modifier": "generic_exterior_shade_0.35"}, "roof_ceiling_set": {"type": "RoofCeilingModifierSetAbridged", "interior_modifier": "generic_ceiling_0.80", "exterior_modifier": "generic_ceiling_0.80"}, "context_modifier": "generic_context_0.20", "modifiers": [{"dependencies": [], "modifier": null, "g_reflectance": 0.5, "identifier": "generic_wall_0.50", "specularity": 0.0, "b_reflectance": 0.5, "r_reflectance": 0.5, "type": "Plastic", "roughness": 0.0}, {"b_transmissivity": 0.95841543286105957, "r_transmissivity": 0.95841543286105957, "modifier": null, "identifier": "generic_interior_window_vis_0.88", "refraction_index": null, "type": "Glass", "dependencies": [], "g_transmissivity": 0.95841543286105957}, {"dependencies": [], "modifier": null, "g_reflectance": 0.5, "identifier": "generic_interior_shade_0.50", "specularity": 0.0, "b_reflectance": 0.5, "r_reflectance": 0.5, "type": "Plastic", "roughness": 0.0}, {"dependencies": [], "modifier": null, "g_reflectance": 0.20000000000000001, "identifier": "generic_floor_0.20", "specularity": 0.0, "b_reflectance": 0.20000000000000001, "r_reflectance": 0.20000000000000001, "type": "Plastic", "roughness": 0.0}, {"dependencies": [], "modifier": null, "g_reflectance": 0.80000000000000004, "identifier": "generic_ceiling_0.80", "specularity": 0.0, "b_reflectance": 0.80000000000000004, "r_reflectance": 0.80000000000000004, "type": "Plastic", "roughness": 0.0}, {"b_transmissivity": 0.69757618153843315, "r_transmissivity": 0.69757618153843315, "modifier": null, "identifier": "generic_exterior_window_vis_0.64", "refraction_index": null, "type": "Glass", "dependencies": [], "g_transmissivity": 0.69757618153843315}, {"r_reflectance": 1.0, "b_reflectance": 1.0, "roughness": 0.0, "identifier": "air_boundary", "type": "Trans", "dependencies": [], "g_reflectance": 1.0, "specularity": 0.0, "transmitted_diff": 1.0, "transmitted_spec": 1.0, "modifier": null}, {"dependencies": [], "modifier": null, "g_reflectance": 0.34999999999999998, "identifier": "generic_exterior_shade_0.35", "specularity": 0.0, "b_reflectance": 0.34999999999999998, "r_reflectance": 0.34999999999999998, "type": "Plastic", "roughness": 0.0}, {"dependencies": [], "modifier": null, "g_reflectance": 0.5, "identifier": "generic_opaque_door_0.50", "specularity": 0.0, "b_reflectance": 0.5, "r_reflectance": 0.5, "type": "Plastic", "roughness": 0.0}, {"dependencies": [], "modifier": null, "g_reflectance": 0.20000000000000001, "identifier": "generic_context_0.20", "specularity": 0.0, "b_reflectance": 0.20000000000000001, "r_reflectance": 0.20000000000000001, "type": "Plastic", "roughness": 0.0}], "wall_set": {"type": "WallModifierSetAbridged", "interior_modifier": "generic_wall_0.50", "exterior_modifier": "generic_wall_0.50"}, "door_set": {"exterior_glass_modifier": "generic_exterior_window_vis_0.64", "interior_glass_modifier": "generic_interior_window_vis_0.88", "overhead_modifier": "generic_opaque_door_0.50", "exterior_modifier": "generic_opaque_door_0.50", "interior_modifier": "generic_opaque_door_0.50", "type": "DoorModifierSetAbridged"}, "floor_set": {"type": "FloorModifierSetAbridged", "interior_modifier": "generic_floor_0.20", "exterior_modifier": "generic_floor_0.20"}, "type": "GlobalModifierSet", "aperture_set": {"interior_modifier": "generic_interior_window_vis_0.88", "window_modifier": "generic_exterior_window_vis_0.64", "skylight_modifier": "generic_exterior_window_vis_0.64", "type": "ApertureModifierSetAbridged", "operable_modifier": "generic_exterior_window_vis_0.64"}, "air_boundary_modifier": "air_boundary"}, "modifier_sets": []}, "energy": {"constructions": [{"type": "OpaqueConstructionAbridged", "identifier": "Typical Insulated Metal Door-R3", "materials": ["F08 Metal surface", "Typical Insulation-R3"]}, {"type": "WindowConstructionAbridged", "identifier": "U 0.65 SHGC 0.25 Dbl Ref-C-H Clr 6mm/6mm Air", "materials": ["REF C CLEAR HI 6MM", "AIR 6MM", "CLEAR 6MM"]}, {"type": "OpaqueConstructionAbridged", "identifier": "Typical Insulated Steel Framed Exterior Wall-R9", "materials": ["25mm Stucco", "5/8 in. Gypsum Board", "Typical Insulation-R7", "5/8 in. Gypsum Board"]}, {"type": "OpaqueConstructionAbridged", "identifier": "Typical Insulated Carpeted 8in Slab Floor", "materials": ["Typical Insulation", "8 in. Normalweight Concrete Floor", "Typical Carpet Pad"]}, {"type": "OpaqueConstructionAbridged", "identifier": "Typical Insulated Basement Mass Wall", "materials": ["Typical Insulation", "8 in. Concrete Block Basement Wall"]}, {"type": "OpaqueConstructionAbridged", "identifier": "Typical IEAD Roof - Highly Reflective-R21", "materials": ["Roof Membrane - Highly Reflective", "Typical Insulation-R21", "Metal Roof Surface"]}, {"type": "WindowConstructionAbridged", "identifier": "U 0.5 SHGC 0.23 Simple Glazing Window", "materials": ["U 0.5 SHGC 0.23 Simple Glazing"]}, {"type": "WindowConstructionAbridged", "identifier": "U 0.7 SHGC 0.3 Simple Glazing Skylight", "materials": ["U 0.7 SHGC 0.3 Simple Glazing"]}, {"type": "OpaqueConstructionAbridged", "identifier": "Typical Overhead Door-R4", "materials": ["Typical Insulation-R4"]}, {"type": "OpaqueConstructionAbridged", "identifier": "Typical Insulated Steel Framed Exterior Floor-R3", "materials": ["25mm Stucco", "5/8 in. Gypsum Board", "Typical Insulation-R1", "5/8 in. Gypsum Board", "Typical Carpet Pad"]}], "materials": [{"roughness": "MediumSmooth", "visible_absorptance": 0.69999999999999996, "solar_absorptance": 0.69999999999999996, "identifier": "Typical Insulation-R4", "thermal_absorptance": 0.90000000000000002, "type": "EnergyMaterialNoMass", "r_value": 0.70444073523953932}, {"roughness": "MediumSmooth", "visible_absorptance": 0.69999999999999996, "solar_absorptance": 0.69999999999999996, "identifier": "Typical Insulation-R7", "thermal_absorptance": 0.90000000000000002, "type": "EnergyMaterialNoMass", "r_value": 1.2327712866691938}, {"conductivity": 45.249718743617663, "specific_heat": 499.67760800730963, "density": 7824.0178894897126, "thermal_absorptance": 0.90000000000000002, "thickness": 0.00079999999999999787, "solar_absorptance": 0.69999999999999996, "visible_absorptance": 0.69999999999999996, "roughness": "Smooth", "type": "EnergyMaterial", "identifier": "Metal Roof Surface"}, {"shgc": 0.29999999999999999, "vt": 0.59999999999999998, "identifier": "U 0.7 SHGC 0.3 Simple Glazing", "u_factor": 3.9745999999999997, "type": "EnergyWindowMaterialSimpleGlazSys"}, {"shgc": 0.23000000000000001, "vt": 0.59999999999999998, "identifier": "U 0.5 SHGC 0.23 Simple Glazing", "u_factor": 2.839, "type": "EnergyWindowMaterialSimpleGlazSys"}, {"conductivity": 45.249718743617805, "specific_heat": 499.67760800731378, "density": 7824.0178894897126, "thermal_absorptance": 0.90000000000000002, "thickness": 0.00080000000000000026, "solar_absorptance": 0.69999999999999996, "visible_absorptance": 0.69999999999999996, "roughness": "Smooth", "type": "EnergyMaterial", "identifier": "F08 Metal surface"}, {"roughness": "MediumSmooth", "visible_absorptance": 0.69999999999999996, "solar_absorptance": 0.69999999999999996, "identifier": "Typical Insulation", "thermal_absorptance": 0.90000000000000002, "type": "EnergyMaterialNoMass", "r_value": 0.02822222224266701}, {"conductivity": 0.15989299909405463, "specific_heat": 1089.2971854559414, "density": 800.00182919117651, "thermal_absorptance": 0.90000000000000002, "thickness": 0.015900000000000001, "solar_absorptance": 0.69999999999999996, "visible_absorptance": 0.69999999999999996, "roughness": "MediumSmooth", "type": "EnergyMaterial", "identifier": "5/8 in. Gypsum Board"}, {"conductivity": 0.15989299909405608, "specific_heat": 1459.0586153813556, "density": 1121.2925638172201, "thermal_absorptance": 0.75, "thickness": 0.009499999999999998, "solar_absorptance": 0.45000000000000001, "visible_absorptance": 0.69999999999999996, "roughness": "VeryRough", "type": "EnergyMaterial", "identifier": "Roof Membrane - Highly Reflective"}, {"gas_type": "Air", "thickness": 0.0062999999999999966, "identifier": "AIR 6MM", "type": "EnergyWindowMaterialGas"}, {"conductivity": 0.71951849592324957, "specific_heat": 839.45838145228447, "density": 1856.0042437235265, "thermal_absorptance": 0.90000000000000002, "thickness": 0.025399999999999999, "solar_absorptance": 0.69999999999999996, "visible_absorptance": 0.69999999999999996, "roughness": "Smooth", "type": "EnergyMaterial", "identifier": "25mm Stucco"}, {"conductivity": 1.3251132299919861, "specific_heat": 911.41195700533888, "density": 1842.0042117126811, "thermal_absorptance": 0.90000000000000002, "thickness": 0.20319999999999999, "solar_absorptance": 0.69999999999999996, "visible_absorptance": 0.69999999999999996, "roughness": "MediumRough", "type": "EnergyMaterial", "identifier": "8 in. Concrete Block Basement Wall"}, {"roughness": "MediumSmooth", "visible_absorptance": 0.69999999999999996, "solar_absorptance": 0.69999999999999996, "identifier": "Typical Insulation-R21", "thermal_absorptance": 0.90000000000000002, "type": "EnergyMaterialNoMass", "r_value": 3.6983138600075818}, {"visible_reflectance_back": 0.080000000000000002, "solar_reflectance": 0.070999999999999994, "visible_reflectance": 0.080000000000000002, "type": "EnergyWindowMaterialGlazing", "emissivity_back": 0.83999999999999997, "emissivity": 0.83999999999999997, "dirt_correction": 1.0, "solar_diffusing": false, "visible_transmittance": 0.88100000000000001, "infrared_transmittance": 0.0, "conductivity": 0.8993981199040626, "solar_reflectance_back": 0.070999999999999994, "identifier": "CLEAR 6MM", "solar_transmittance": 0.77500000000000002, "thickness": 0.0059999999999999767}, {"conductivity": 2.308455174420426, "specific_heat": 831.46353972416728, "density": 2322.0053092273811, "thermal_absorptance": 0.90000000000000002, "thickness": 0.20319999999999999, "solar_absorptance": 0.69999999999999996, "visible_absorptance": 0.69999999999999996, "roughness": "MediumRough", "type": "EnergyMaterial", "identifier": "8 in. Normalweight Concrete Floor"}, {"visible_reflectance_back": 0.34999999999999998, "solar_reflectance": 0.16, "visible_reflectance": 0.17000000000000001, "type": "EnergyWindowMaterialGlazing", "emissivity_back": 0.55000000000000004, "emissivity": 0.83999999999999997, "dirt_correction": 1.0, "solar_diffusing": false, "visible_transmittance": 0.22, "infrared_transmittance": 0.0, "conductivity": 0.8993981199040626, "solar_reflectance_back": 0.39000000000000001, "identifier": "REF C CLEAR HI 6MM", "solar_transmittance": 0.20000000000000001, "thickness": 0.0059999999999999767}, {"roughness": "MediumSmooth", "visible_absorptance": 0.69999999999999996, "solar_absorptance": 0.69999999999999996, "identifier": "Typical Insulation-R1", "thermal_absorptance": 0.90000000000000002, "type": "EnergyMaterialNoMass", "r_value": 0.17611018380988483}, {"roughness": "MediumSmooth", "visible_absorptance": 0.69999999999999996, "solar_absorptance": 0.69999999999999996, "identifier": "Typical Insulation-R3", "thermal_absorptance": 0.90000000000000002, "type": "EnergyMaterialNoMass", "r_value": 0.52833055142965446}, {"roughness": "VeryRough", "visible_absorptance": 0.80000000000000004, "solar_absorptance": 0.69999999999999996, "identifier": "Typical Carpet Pad", "thermal_absorptance": 0.90000000000000002, "type": "EnergyMaterialNoMass", "r_value": 0.2164799871520999}], "shws": [], "hvacs": [{"equipment_type": "DOAS_FCU_ACChiller", "sensible_heat_recovery": 0.80000000000000004, "vintage": "ASHRAE_2019", "display_name": "DOAS with FCU AirCooled", "identifier": "DOAS with FCU AirCooled", "demand_controlled_ventilation": true, "latent_heat_recovery": 0.75, "type": "FCUwithDOASAbridged"}], "schedule_type_limits": [{"upper_limit": {"type": "NoLimit"}, "identifier": "Temperature", "lower_limit": -273.14999999999998, "numeric_type": "Continuous", "unit_type": "Temperature", "type": "ScheduleTypeLimit"}, {"upper_limit": {"type": "NoLimit"}, "identifier": "Activity Level", "lower_limit": 0.0, "numeric_type": "Continuous", "unit_type": "ActivityLevel", "type": "ScheduleTypeLimit"}, {"upper_limit": 1.0, "identifier": "Fractional", "lower_limit": 0.0, "numeric_type": "Continuous", "unit_type": "Dimensionless", "type": "ScheduleTypeLimit"}], "type": "ModelEnergyProperties", "global_construction_set": {"constructions": [{"type": "WindowConstructionAbridged", "identifier": "Generic Single Pane", "materials": ["Generic Clear Glass"]}, {"type": "OpaqueConstructionAbridged", "identifier": "Generic Interior Wall", "materials": ["Generic Gypsum Board", "Generic Wall Air Gap", "Generic Gypsum Board"]}, {"type": "OpaqueConstructionAbridged", "identifier": "Generic Exposed Floor", "materials": ["Generic Painted Metal", "Generic Ceiling Air Gap", "Generic 50mm Insulation", "Generic LW Concrete"]}, {"type": "OpaqueConstructionAbridged", "identifier": "Generic Roof", "materials": ["Generic Roof Membrane", "Generic 50mm Insulation", "Generic LW Concrete", "Generic Ceiling Air Gap", "Generic Acoustic Tile"]}, {"type": "OpaqueConstructionAbridged", "identifier": "Generic Exterior Door", "materials": ["Generic Painted Metal", "Generic 25mm Insulation", "Generic Painted Metal"]}, {"type": "OpaqueConstructionAbridged", "identifier": "Generic Interior Door", "materials": ["Generic 25mm Wood"]}, {"air_mixing_schedule": "Always On", "type": "AirBoundaryConstructionAbridged", "identifier": "Generic Air Boundary", "air_mixing_per_area": 0.10000000000000001}, {"type": "OpaqueConstructionAbridged", "identifier": "Generic Interior Floor", "materials": ["Generic Acoustic Tile", "Generic Ceiling Air Gap", "Generic LW Concrete"]}, {"solar_reflectance": 0.34999999999999998, "identifier": "Generic Shade", "visible_reflectance": 0.34999999999999998, "is_specular": false, "type": "ShadeConstruction"}, {"type": "WindowConstructionAbridged", "identifier": "Generic Double Pane", "materials": ["Generic Low-e Glass", "Generic Window Air Gap", "Generic Clear Glass"]}, {"type": "OpaqueConstructionAbridged", "identifier": "Generic Underground Roof", "materials": ["Generic 50mm Insulation", "Generic HW Concrete", "Generic Ceiling Air Gap", "Generic Acoustic Tile"]}, {"type": "OpaqueConstructionAbridged", "identifier": "Generic Exterior Wall", "materials": ["Generic Brick", "Generic LW Concrete", "Generic 50mm Insulation", "Generic Wall Air Gap", "Generic Gypsum Board"]}, {"type": "OpaqueConstructionAbridged", "identifier": "Generic Underground Wall", "materials": ["Generic 50mm Insulation", "Generic HW Concrete", "Generic Wall Air Gap", "Generic Gypsum Board"]}, {"type": "OpaqueConstructionAbridged", "identifier": "Generic Interior Ceiling", "materials": ["Generic LW Concrete", "Generic Ceiling Air Gap", "Generic Acoustic Tile"]}, {"type": "OpaqueConstructionAbridged", "identifier": "Generic Ground Slab", "materials": ["Generic 50mm Insulation", "Generic HW Concrete"]}], "materials": [{"conductivity": 0.14999999999999999, "specific_heat": 1630.0, "density": 608.0, "thermal_absorptance": 0.90000000000000002, "thickness": 0.025399999999999999, "solar_absorptance": 0.5, "visible_absorptance": 0.5, "roughness": "MediumSmooth", "type": "EnergyMaterial", "identifier": "Generic 25mm Wood"}, {"visible_reflectance_back": 0.20999999999999999, "solar_reflectance": 0.35999999999999999, "visible_reflectance": 0.20999999999999999, "type": "EnergyWindowMaterialGlazing", "emissivity_back": 0.047, "emissivity": 0.83999999999999997, "dirt_correction": 1.0, "solar_diffusing": false, "visible_transmittance": 0.70999999999999996, "infrared_transmittance": 0.0, "conductivity": 1.0, "solar_reflectance_back": 0.35999999999999999, "identifier": "Generic Low-e Glass", "solar_transmittance": 0.45000000000000001, "thickness": 0.0060000000000000001}, {"conductivity": 0.53000000000000003, "specific_heat": 840.0, "density": 1280.0, "thermal_absorptance": 0.90000000000000002, "thickness": 0.10000000000000001, "solar_absorptance": 0.80000000000000004, "visible_absorptance": 0.80000000000000004, "roughness": "MediumRough", "type": "EnergyMaterial", "identifier": "Generic LW Concrete"}, {"conductivity": 0.55600000000000005, "specific_heat": 1000.0, "density": 1.28, "thermal_absorptance": 0.90000000000000002, "thickness": 0.10000000000000001, "solar_absorptance": 0.69999999999999996, "visible_absorptance": 0.69999999999999996, "roughness": "Smooth", "type": "EnergyMaterial", "identifier": "Generic Ceiling Air Gap"}, {"conductivity": 0.059999999999999998, "specific_heat": 590.0, "density": 368.0, "thermal_absorptance": 0.90000000000000002, "thickness": 0.02, "solar_absorptance": 0.20000000000000001, "visible_absorptance": 0.20000000000000001, "roughness": "MediumSmooth", "type": "EnergyMaterial", "identifier": "Generic Acoustic Tile"}, {"conductivity": 1.95, "specific_heat": 900.0, "density": 2240.0, "thermal_absorptance": 0.90000000000000002, "thickness": 0.20000000000000001, "solar_absorptance": 0.80000000000000004, "visible_absorptance": 0.80000000000000004, "roughness": "MediumRough", "type": "EnergyMaterial", "identifier": "Generic HW Concrete"}, {"conductivity": 0.66700000000000004, "specific_heat": 1000.0, "density": 1.28, "thermal_absorptance": 0.90000000000000002, "thickness": 0.10000000000000001, "solar_absorptance": 0.69999999999999996, "visible_absorptance": 0.69999999999999996, "roughness": "Smooth", "type": "EnergyMaterial", "identifier": "Generic Wall Air Gap"}, {"conductivity": 0.16, "specific_heat": 1460.0, "density": 1120.0, "thermal_absorptance": 0.90000000000000002, "thickness": 0.01, "solar_absorptance": 0.65000000000000002, "visible_absorptance": 0.65000000000000002, "roughness": "MediumRough", "type": "EnergyMaterial", "identifier": "Generic Roof Membrane"}, {"conductivity": 0.16, "specific_heat": 1090.0, "density": 800.0, "thermal_absorptance": 0.90000000000000002, "thickness": 0.012699999999999999, "solar_absorptance": 0.5, "visible_absorptance": 0.5, "roughness": "MediumSmooth", "type": "EnergyMaterial", "identifier": "Generic Gypsum Board"}, {"gas_type": "Air", "thickness": 0.012699999999999999, "identifier": "Generic Window Air Gap", "type": "EnergyWindowMaterialGas"}, {"conductivity": 0.90000000000000002, "specific_heat": 790.0, "density": 1920.0, "thermal_absorptance": 0.90000000000000002, "thickness": 0.10000000000000001, "solar_absorptance": 0.65000000000000002, "visible_absorptance": 0.65000000000000002, "roughness": "MediumRough", "type": "EnergyMaterial", "identifier": "Generic Brick"}, {"visible_reflectance_back": 0.080000000000000002, "solar_reflectance": 0.070000000000000007, "visible_reflectance": 0.080000000000000002, "type": "EnergyWindowMaterialGlazing", "emissivity_back": 0.83999999999999997, "emissivity": 0.83999999999999997, "dirt_correction": 1.0, "solar_diffusing": false, "visible_transmittance": 0.88, "infrared_transmittance": 0.0, "conductivity": 1.0, "solar_reflectance_back": 0.070000000000000007, "identifier": "Generic Clear Glass", "solar_transmittance": 0.77000000000000002, "thickness": 0.0060000000000000001}, {"conductivity": 0.029999999999999999, "specific_heat": 1210.0, "density": 43.0, "thermal_absorptance": 0.90000000000000002, "thickness": 0.025000000000000001, "solar_absorptance": 0.69999999999999996, "visible_absorptance": 0.69999999999999996, "roughness": "MediumRough", "type": "EnergyMaterial", "identifier": "Generic 25mm Insulation"}, {"conductivity": 0.029999999999999999, "specific_heat": 1210.0, "density": 43.0, "thermal_absorptance": 0.90000000000000002, "thickness": 0.050000000000000003, "solar_absorptance": 0.69999999999999996, "visible_absorptance": 0.69999999999999996, "roughness": "MediumRough", "type": "EnergyMaterial", "identifier": "Generic 50mm Insulation"}, {"conductivity": 45.0, "specific_heat": 410.0, "density": 7690.0, "thermal_absorptance": 0.90000000000000002, "thickness": 0.0015, "solar_absorptance": 0.5, "visible_absorptance": 0.5, "roughness": "Smooth", "type": "EnergyMaterial", "identifier": "Generic Painted Metal"}], "air_boundary_construction": "Generic Air Boundary", "shade_construction": "Generic Shade", "roof_ceiling_set": {"ground_construction": "Generic Underground Roof", "interior_construction": "Generic Interior Ceiling", "exterior_construction": "Generic Roof", "type": "RoofCeilingConstructionSetAbridged"}, "wall_set": {"ground_construction": "Generic Underground Wall", "interior_construction": "Generic Interior Wall", "exterior_construction": "Generic Exterior Wall", "type": "WallConstructionSetAbridged"}, "door_set": {"overhead_construction": "Generic Exterior Door", "interior_glass_construction": "Generic Single Pane", "exterior_glass_construction": "Generic Double Pane", "type": "DoorConstructionSetAbridged", "interior_construction": "Generic Interior Door", "exterior_construction": "Generic Exterior Door"}, "floor_set": {"ground_construction": "Generic Ground Slab", "interior_construction": "Generic Interior Floor", "exterior_construction": "Generic Exposed Floor", "type": "FloorConstructionSetAbridged"}, "type": "GlobalConstructionSet", "aperture_set": {"skylight_construction": "Generic Double Pane", "type": "ApertureConstructionSetAbridged", "interior_construction": "Generic Single Pane", "operable_construction": "Generic Double Pane", "window_construction": "Generic Double Pane"}}, "schedules": [{"identifier": "OfficeSmall CLGSETP_SCH_NO_OPTIMUM", "schedule_rules": [{"apply_tuesday": true, "apply_saturday": false, "schedule_day": "OfficeSmall CLGSETP_SCH_NO_OPTIMUM_Wkdy", "apply_friday": true, "apply_monday": true, "start_date": [1, 1], "end_date": [12, 31], "apply_wednesday": true, "type": "ScheduleRuleAbridged", "apply_thursday": true, "apply_sunday": false}], "default_day_schedule": "OfficeSmall CLGSETP_SCH_NO_OPTIMUM_Default", "summer_designday_schedule": "OfficeSmall CLGSETP_SCH_NO_OPTIMUM_SmrDsn", "schedule_type_limit": "Temperature", "type": "ScheduleRulesetAbridged", "winter_designday_schedule": "OfficeSmall CLGSETP_SCH_NO_OPTIMUM_WntrDsn", "day_schedules": [{"identifier": "OfficeSmall CLGSETP_SCH_NO_OPTIMUM_Default", "times": [[0, 0]], "values": [29.440000000000001], "type": "ScheduleDay", "interpolate": false}, {"identifier": "OfficeSmall CLGSETP_SCH_NO_OPTIMUM_SmrDsn", "times": [[0, 0]], "values": [23.890000000000001], "type": "ScheduleDay", "interpolate": false}, {"identifier": "OfficeSmall CLGSETP_SCH_NO_OPTIMUM_WntrDsn", "times": [[0, 0]], "values": [29.440000000000001], "type": "ScheduleDay", "interpolate": false}, {"identifier": "OfficeSmall CLGSETP_SCH_NO_OPTIMUM_Wkdy", "times": [[0, 0], [6, 0], [18, 0]], "values": [29.440000000000001, 23.890000000000001, 29.440000000000001], "type": "ScheduleDay", "interpolate": false}]}, {"identifier": "OfficeSmall BLDG_OCC_SCH", "schedule_rules": [{"apply_tuesday": true, "apply_saturday": false, "schedule_day": "OfficeSmall BLDG_OCC_SCH_Wkdy", "apply_friday": true, "apply_monday": true, "start_date": [1, 1], "end_date": [12, 31], "apply_wednesday": true, "type": "ScheduleRuleAbridged", "apply_thursday": true, "apply_sunday": false}], "default_day_schedule": "OfficeSmall BLDG_OCC_SCH_Default", "summer_designday_schedule": "OfficeSmall BLDG_OCC_SCH_SmrDsn", "schedule_type_limit": "Fractional", "type": "ScheduleRulesetAbridged", "winter_designday_schedule": "OfficeSmall BLDG_OCC_SCH_WntrDsn", "day_schedules": [{"identifier": "OfficeSmall BLDG_OCC_SCH_Default", "times": [[0, 0]], "values": [0.0], "type": "ScheduleDay", "interpolate": false}, {"identifier": "OfficeSmall BLDG_OCC_SCH_SmrDsn", "times": [[0, 0]], "values": [1.0], "type": "ScheduleDay", "interpolate": false}, {"identifier": "OfficeSmall BLDG_OCC_SCH_WntrDsn", "times": [[0, 0]], "values": [0.0], "type": "ScheduleDay", "interpolate": false}, {"identifier": "OfficeSmall BLDG_OCC_SCH_Wkdy", "times": [[0, 0], [6, 0], [7, 0], [8, 0], [12, 0], [13, 0], [17, 0], [18, 0], [22, 0], [23, 0]], "values": [0.0, 0.11, 0.20999999999999999, 1.0, 0.53000000000000003, 1.0, 0.32000000000000001, 0.11, 0.050000000000000003, 0.0], "type": "ScheduleDay", "interpolate": false}]}, {"identifier": "OfficeSmall ACTIVITY_SCH", "default_day_schedule": "OfficeSmall ACTIVITY_SCH_Default", "summer_designday_schedule": "OfficeSmall ACTIVITY_SCH_SmrDsn", "schedule_type_limit": "Activity Level", "type": "ScheduleRulesetAbridged", "winter_designday_schedule": "OfficeSmall ACTIVITY_SCH_WntrDsn", "day_schedules": [{"identifier": "OfficeSmall ACTIVITY_SCH_Default", "times": [[0, 0]], "values": [120.0], "type": "ScheduleDay", "interpolate": false}, {"identifier": "OfficeSmall ACTIVITY_SCH_SmrDsn", "times": [[0, 0]], "values": [120.0], "type": "ScheduleDay", "interpolate": false}, {"identifier": "OfficeSmall ACTIVITY_SCH_WntrDsn", "times": [[0, 0]], "values": [120.0], "type": "ScheduleDay", "interpolate": false}]}, {"identifier": "OfficeSmall INFIL_QUARTER_ON_SCH", "schedule_rules": [{"apply_tuesday": true, "apply_saturday": false, "schedule_day": "OfficeSmall INFIL_QUARTER_ON_SCH_Wkdy", "apply_friday": true, "apply_monday": true, "start_date": [1, 1], "end_date": [12, 31], "apply_wednesday": true, "type": "ScheduleRuleAbridged", "apply_thursday": true, "apply_sunday": false}, {"apply_tuesday": false, "apply_saturday": true, "schedule_day": "OfficeSmall INFIL_QUARTER_ON_SCH_Sat", "apply_friday": false, "apply_monday": false, "start_date": [1, 1], "end_date": [12, 31], "apply_wednesday": false, "type": "ScheduleRuleAbridged", "apply_thursday": false, "apply_sunday": false}], "default_day_schedule": "OfficeSmall INFIL_QUARTER_ON_SCH_Default", "summer_designday_schedule": "OfficeSmall INFIL_QUARTER_ON_SCH_SmrDsn", "schedule_type_limit": "Fractional", "type": "ScheduleRulesetAbridged", "winter_designday_schedule": "OfficeSmall INFIL_QUARTER_ON_SCH_WntrDsn", "day_schedules": [{"identifier": "OfficeSmall INFIL_QUARTER_ON_SCH_Default", "times": [[0, 0]], "values": [1.0], "type": "ScheduleDay", "interpolate": false}, {"identifier": "OfficeSmall INFIL_QUARTER_ON_SCH_SmrDsn", "times": [[0, 0], [7, 0], [19, 0]], "values": [1.0, 0.25, 1.0], "type": "ScheduleDay", "interpolate": false}, {"identifier": "OfficeSmall INFIL_QUARTER_ON_SCH_WntrDsn", "times": [[0, 0], [7, 0], [18, 0]], "values": [1.0, 0.25, 1.0], "type": "ScheduleDay", "interpolate": false}, {"identifier": "OfficeSmall INFIL_QUARTER_ON_SCH_Wkdy", "times": [[0, 0], [7, 0], [19, 0]], "values": [1.0, 0.25, 1.0], "type": "ScheduleDay", "interpolate": false}, {"identifier": "OfficeSmall INFIL_QUARTER_ON_SCH_Sat", "times": [[0, 0], [7, 0], [18, 0]], "values": [1.0, 0.25, 1.0], "type": "ScheduleDay", "interpolate": false}]}, {"identifier": "OfficeSmall HTGSETP_SCH_NO_OPTIMUM", "schedule_rules": [{"apply_tuesday": true, "apply_saturday": false, "schedule_day": "OfficeSmall HTGSETP_SCH_NO_OPTIMUM_Wkdy", "apply_friday": true, "apply_monday": true, "start_date": [1, 1], "end_date": [12, 31], "apply_wednesday": true, "type": "ScheduleRuleAbridged", "apply_thursday": true, "apply_sunday": false}], "default_day_schedule": "OfficeSmall HTGSETP_SCH_NO_OPTIMUM_Default", "summer_designday_schedule": "OfficeSmall HTGSETP_SCH_NO_OPTIMUM_SmrDsn", "schedule_type_limit": "Temperature", "type": "ScheduleRulesetAbridged", "winter_designday_schedule": "OfficeSmall HTGSETP_SCH_NO_OPTIMUM_WntrDsn", "day_schedules": [{"identifier": "OfficeSmall HTGSETP_SCH_NO_OPTIMUM_Default", "times": [[0, 0]], "values": [15.56], "type": "ScheduleDay", "interpolate": false}, {"identifier": "OfficeSmall HTGSETP_SCH_NO_OPTIMUM_SmrDsn", "times": [[0, 0]], "values": [15.56], "type": "ScheduleDay", "interpolate": false}, {"identifier": "OfficeSmall HTGSETP_SCH_NO_OPTIMUM_WntrDsn", "times": [[0, 0]], "values": [21.109999999999999], "type": "ScheduleDay", "interpolate": false}, {"identifier": "OfficeSmall HTGSETP_SCH_NO_OPTIMUM_Wkdy", "times": [[0, 0], [6, 0], [19, 0]], "values": [15.56, 21.109999999999999, 15.56], "type": "ScheduleDay", "interpolate": false}]}, {"identifier": "OfficeSmall BLDG_SWH_SCH", "schedule_rules": [{"apply_tuesday": true, "apply_saturday": false, "schedule_day": "OfficeSmall BLDG_SWH_SCH_Wkdy", "apply_friday": true, "apply_monday": true, "start_date": [1, 1], "end_date": [12, 31], "apply_wednesday": true, "type": "ScheduleRuleAbridged", "apply_thursday": true, "apply_sunday": false}], "default_day_schedule": "OfficeSmall BLDG_SWH_SCH_Default", "summer_designday_schedule": "OfficeSmall BLDG_SWH_SCH_SmrDsn", "type": "ScheduleRulesetAbridged", "winter_designday_schedule": "OfficeSmall BLDG_SWH_SCH_WntrDsn", "day_schedules": [{"identifier": "OfficeSmall BLDG_SWH_SCH_Default", "times": [[0, 0]], "values": [0.0], "type": "ScheduleDay", "interpolate": false}, {"identifier": "OfficeSmall BLDG_SWH_SCH_SmrDsn", "times": [[0, 0], [7, 0], [8, 0], [9, 0], [11, 0], [12, 0], [13, 0], [14, 0], [16, 0], [17, 0], [19, 0], [20, 0], [21, 0], [22, 0]], "values": [0.0, 0.27000000000000002, 0.55000000000000004, 0.64000000000000001, 0.81999999999999995, 1.0, 0.91000000000000003, 0.55000000000000004, 0.72999999999999998, 0.37, 0.17999999999999999, 0.27000000000000002, 0.089999999999999997, 0.0], "type": "ScheduleDay", "interpolate": false}, {"identifier": "OfficeSmall BLDG_SWH_SCH_WntrDsn", "times": [[0, 0], [7, 0], [8, 0], [9, 0], [11, 0], [12, 0], [13, 0], [14, 0], [16, 0], [17, 0], [19, 0], [20, 0], [21, 0], [22, 0]], "values": [0.0, 0.27000000000000002, 0.55000000000000004, 0.64000000000000001, 0.81999999999999995, 1.0, 0.91000000000000003, 0.55000000000000004, 0.72999999999999998, 0.37, 0.17999999999999999, 0.27000000000000002, 0.089999999999999997, 0.0], "type": "ScheduleDay", "interpolate": false}, {"identifier": "OfficeSmall BLDG_SWH_SCH_Wkdy", "times": [[0, 0], [7, 0], [8, 0], [9, 0], [11, 0], [12, 0], [13, 0], [14, 0], [16, 0], [17, 0], [19, 0], [20, 0], [21, 0], [22, 0]], "values": [0.0, 0.27000000000000002, 0.55000000000000004, 0.64000000000000001, 0.81999999999999995, 1.0, 0.91000000000000003, 0.55000000000000004, 0.72999999999999998, 0.37, 0.17999999999999999, 0.27000000000000002, 0.089999999999999997, 0.0], "type": "ScheduleDay", "interpolate": false}]}, {"identifier": "OfficeSmall BLDG_EQUIP_SCH_2013", "schedule_rules": [{"apply_tuesday": true, "apply_saturday": false, "schedule_day": "OfficeSmall BLDG_EQUIP_SCH_2013_Wkdy", "apply_friday": true, "apply_monday": true, "start_date": [1, 1], "end_date": [12, 31], "apply_wednesday": true, "type": "ScheduleRuleAbridged", "apply_thursday": true, "apply_sunday": false}, {"apply_tuesday": false, "apply_saturday": true, "schedule_day": "OfficeSmall BLDG_EQUIP_SCH_2013_Wknd", "apply_friday": false, "apply_monday": false, "start_date": [1, 1], "end_date": [12, 31], "apply_wednesday": false, "type": "ScheduleRuleAbridged", "apply_thursday": false, "apply_sunday": true}], "default_day_schedule": "OfficeSmall BLDG_EQUIP_SCH_2013_Default", "summer_designday_schedule": "OfficeSmall BLDG_EQUIP_SCH_2013_SmrDsn", "schedule_type_limit": "Fractional", "type": "ScheduleRulesetAbridged", "winter_designday_schedule": "OfficeSmall BLDG_EQUIP_SCH_2013_WntrDsn", "day_schedules": [{"identifier": "OfficeSmall BLDG_EQUIP_SCH_2013_Default", "times": [[0, 0], [6, 0], [8, 0], [12, 0], [13, 0], [17, 0], [18, 0], [23, 0]], "values": [0.40947755650000001, 0.47975263350000003, 0.95950526700000005, 0.90193495097999998, 0.95950526700000005, 0.47975263350000003, 0.19190105339999999, 0.16379102200000001], "type": "ScheduleDay", "interpolate": false}, {"identifier": "OfficeSmall BLDG_EQUIP_SCH_2013_SmrDsn", "times": [[0, 0]], "values": [1.0], "type": "ScheduleDay", "interpolate": false}, {"identifier": "OfficeSmall BLDG_EQUIP_SCH_2013_WntrDsn", "times": [[0, 0]], "values": [0.0], "type": "ScheduleDay", "interpolate": false}, {"identifier": "OfficeSmall BLDG_EQUIP_SCH_2013_Wkdy", "times": [[0, 0], [6, 0], [8, 0], [12, 0], [13, 0], [17, 0], [18, 0], [23, 0]], "values": [0.40947755650000001, 0.47975263350000003, 0.95950526700000005, 0.90193495097999998, 0.95950526700000005, 0.47975263350000003, 0.19190105339999999, 0.16379102200000001], "type": "ScheduleDay", "interpolate": false}, {"identifier": "OfficeSmall BLDG_EQUIP_SCH_2013_Wknd", "times": [[0, 0]], "values": [0.1637910226], "type": "ScheduleDay", "interpolate": false}]}, {"identifier": "OfficeSmall BLDG_LIGHT_SCH_2013", "schedule_rules": [{"apply_tuesday": true, "apply_saturday": false, "schedule_day": "OfficeSmall BLDG_LIGHT_SCH_2013_Wkdy", "apply_friday": true, "apply_monday": true, "start_date": [1, 1], "end_date": [12, 31], "apply_wednesday": true, "type": "ScheduleRuleAbridged", "apply_thursday": true, "apply_sunday": false}, {"apply_tuesday": false, "apply_saturday": true, "schedule_day": "OfficeSmall BLDG_LIGHT_SCH_2013_Wknd", "apply_friday": false, "apply_monday": false, "start_date": [1, 1], "end_date": [12, 31], "apply_wednesday": false, "type": "ScheduleRuleAbridged", "apply_thursday": false, "apply_sunday": true}], "default_day_schedule": "OfficeSmall BLDG_LIGHT_SCH_2013_Default", "summer_designday_schedule": "OfficeSmall BLDG_LIGHT_SCH_2013_SmrDsn", "schedule_type_limit": "Fractional", "type": "ScheduleRulesetAbridged", "winter_designday_schedule": "OfficeSmall BLDG_LIGHT_SCH_2013_WntrDsn", "day_schedules": [{"identifier": "OfficeSmall BLDG_LIGHT_SCH_2013_Default", "times": [[0, 0], [5, 0], [6, 0], [7, 0], [8, 0], [12, 0], [13, 0], [17, 0], [18, 0], [20, 0], [22, 0], [23, 0]], "values": [0.17999999999999999, 0.23000000000000001, 0.17864134500000001, 0.32621463000000001, 0.69903135000000005, 0.62136119999999995, 0.69903135000000005, 0.473787915, 0.32621463000000001, 0.24854448000000001, 0.17864134500000001, 0.17999999999999999], "type": "ScheduleDay", "interpolate": false}, {"identifier": "OfficeSmall BLDG_LIGHT_SCH_2013_SmrDsn", "times": [[0, 0]], "values": [1.0], "type": "ScheduleDay", "interpolate": false}, {"identifier": "OfficeSmall BLDG_LIGHT_SCH_2013_WntrDsn", "times": [[0, 0]], "values": [0.0], "type": "ScheduleDay", "interpolate": false}, {"identifier": "OfficeSmall BLDG_LIGHT_SCH_2013_Wkdy", "times": [[0, 0], [5, 0], [6, 0], [7, 0], [8, 0], [12, 0], [13, 0], [17, 0], [18, 0], [20, 0], [22, 0], [23, 0]], "values": [0.17999999999999999, 0.23000000000000001, 0.17864134500000001, 0.32621463000000001, 0.69903135000000005, 0.62136119999999995, 0.69903135000000005, 0.473787915, 0.32621463000000001, 0.24854448000000001, 0.17864134500000001, 0.17999999999999999], "type": "ScheduleDay", "interpolate": false}, {"identifier": "OfficeSmall BLDG_LIGHT_SCH_2013_Wknd", "times": [[0, 0]], "values": [0.17999999999999999], "type": "ScheduleDay", "interpolate": false}]}], "program_types": [{"identifier": "2019::SmallOffice::OpenOffice", "infiltration": {"flow_per_exterior_area": 0.00056896000000000008, "schedule": "OfficeSmall INFIL_QUARTER_ON_SCH", "type": "InfiltrationAbridged", "identifier": "2019::SmallOffice::OpenOffice_Infiltration"}, "lighting": {"identifier": "2019::SmallOffice::OpenOffice_Lighting", "radiant_fraction": 0.40000000000000002, "visible_fraction": 0.20000000000000001, "baseline_watts_per_area": 6.5659789999999996, "type": "LightingAbridged", "return_air_fraction": 0.40000000000000002, "watts_per_area": 6.5659789999999996, "schedule": "OfficeSmall BLDG_LIGHT_SCH_2013"}, "electric_equipment": {"identifier": "2019::SmallOffice::OpenOffice_Electric", "radiant_fraction": 0.5, "latent_fraction": 0.0, "type": "ElectricEquipmentAbridged", "watts_per_area": 10.333343999999999, "lost_fraction": 0.0, "schedule": "OfficeSmall BLDG_EQUIP_SCH_2013"}, "setpoint": {"heating_schedule": "OfficeSmall HTGSETP_SCH_NO_OPTIMUM", "type": "SetpointAbridged", "cooling_schedule": "OfficeSmall CLGSETP_SCH_NO_OPTIMUM", "identifier": "2019::SmallOffice::OpenOffice_Setpoint"}, "ventilation": {"flow_per_area": 0.00030479999999999998, "type": "VentilationAbridged", "flow_per_person": 0.002359735, "identifier": "2019::SmallOffice::OpenOffice_Ventilation"}, "type": "ProgramTypeAbridged", "people": {"identifier": "2019::SmallOffice::OpenOffice_People", "radiant_fraction": 0.29999999999999999, "people_per_area": 0.056510554018707679, "latent_fraction": {"type": "Autocalculate"}, "occupancy_schedule": "OfficeSmall BLDG_OCC_SCH", "type": "PeopleAbridged", "activity_schedule": "OfficeSmall ACTIVITY_SCH"}}, {"identifier": "2019::SmallOffice::Corridor", "infiltration": {"flow_per_exterior_area": 0.00056896000000000008, "schedule": "OfficeSmall INFIL_QUARTER_ON_SCH", "type": "InfiltrationAbridged", "identifier": "2019::SmallOffice::Corridor_Infiltration"}, "lighting": {"identifier": "2019::SmallOffice::Corridor_Lighting", "radiant_fraction": 0.40000000000000002, "visible_fraction": 0.20000000000000001, "baseline_watts_per_area": 4.4131989999999996, "type": "LightingAbridged", "return_air_fraction": 0.40000000000000002, "watts_per_area": 4.4131989999999996, "schedule": "OfficeSmall BLDG_LIGHT_SCH_2013"}, "electric_equipment": {"identifier": "2019::SmallOffice::Corridor_Electric", "radiant_fraction": 0.5, "latent_fraction": 0.0, "type": "ElectricEquipmentAbridged", "watts_per_area": 3.1215309999999996, "lost_fraction": 0.0, "schedule": "OfficeSmall BLDG_EQUIP_SCH_2013"}, "setpoint": {"heating_schedule": "OfficeSmall HTGSETP_SCH_NO_OPTIMUM", "type": "SetpointAbridged", "cooling_schedule": "OfficeSmall CLGSETP_SCH_NO_OPTIMUM", "identifier": "2019::SmallOffice::Corridor_Setpoint"}, "ventilation": {"flow_per_area": 0.00030479999999999998, "type": "VentilationAbridged", "identifier": "2019::SmallOffice::Corridor_Ventilation"}, "type": "ProgramTypeAbridged"}, {"identifier": "2019::SmallOffice::Elec/MechRoom", "infiltration": {"flow_per_exterior_area": 0.00056896000000000008, "schedule": "OfficeSmall INFIL_QUARTER_ON_SCH", "type": "InfiltrationAbridged", "identifier": "2019::SmallOffice::Elec/MechRoom_Infiltration"}, "lighting": {"identifier": "2019::SmallOffice::Elec/MechRoom_Lighting", "radiant_fraction": 0.40000000000000002, "visible_fraction": 0.20000000000000001, "baseline_watts_per_area": 4.6284770000000002, "type": "LightingAbridged", "return_air_fraction": 0.40000000000000002, "watts_per_area": 4.6284770000000002, "schedule": "OfficeSmall BLDG_LIGHT_SCH_2013"}, "electric_equipment": {"identifier": "2019::SmallOffice::Elec/MechRoom_Electric", "radiant_fraction": 0.5, "latent_fraction": 0.0, "type": "ElectricEquipmentAbridged", "watts_per_area": 2.906253, "lost_fraction": 0.0, "schedule": "OfficeSmall BLDG_EQUIP_SCH_2013"}, "service_hot_water": {"flow_per_area": 0.022216902942464319, "identifier": "2019::SmallOffice::Elec/MechRoom_SHW", "target_temperature": 60.0, "sensible_fraction": 0.20000000000000001, "latent_fraction": 0.050000000000000003, "type": "ServiceHotWaterAbridged", "schedule": "OfficeSmall BLDG_SWH_SCH"}, "setpoint": {"heating_schedule": "OfficeSmall HTGSETP_SCH_NO_OPTIMUM", "type": "SetpointAbridged", "cooling_schedule": "OfficeSmall CLGSETP_SCH_NO_OPTIMUM", "identifier": "2019::SmallOffice::Elec/MechRoom_Setpoint"}, "ventilation": {"flow_per_area": 0.00060959999999999996, "type": "VentilationAbridged", "identifier": "2019::SmallOffice::Elec/MechRoom_Ventilation"}, "type": "ProgramTypeAbridged"}, {"identifier": "2019::SmallOffice::Storage", "infiltration": {"flow_per_exterior_area": 0.00056896000000000008, "schedule": "OfficeSmall INFIL_QUARTER_ON_SCH", "type": "InfiltrationAbridged", "identifier": "2019::SmallOffice::Storage_Infiltration"}, "lighting": {"identifier": "2019::SmallOffice::Storage_Lighting", "radiant_fraction": 0.40000000000000002, "visible_fraction": 0.20000000000000001, "baseline_watts_per_area": 4.0902820000000002, "type": "LightingAbridged", "return_air_fraction": 0.40000000000000002, "watts_per_area": 4.0902820000000002, "schedule": "OfficeSmall BLDG_LIGHT_SCH_2013"}, "electric_equipment": {"identifier": "2019::SmallOffice::Storage_Electric", "radiant_fraction": 0.5, "latent_fraction": 0.0, "type": "ElectricEquipmentAbridged", "watts_per_area": 0.0, "lost_fraction": 0.0, "schedule": "OfficeSmall BLDG_EQUIP_SCH_2013"}, "setpoint": {"heating_schedule": "OfficeSmall HTGSETP_SCH_NO_OPTIMUM", "type": "SetpointAbridged", "cooling_schedule": "OfficeSmall CLGSETP_SCH_NO_OPTIMUM", "identifier": "2019::SmallOffice::Storage_Setpoint"}, "ventilation": {"flow_per_area": 0.00060959999999999996, "type": "VentilationAbridged", "identifier": "2019::SmallOffice::Storage_Ventilation"}, "type": "ProgramTypeAbridged"}, {"identifier": "2019::SmallOffice::Restroom", "infiltration": {"flow_per_exterior_area": 0.00056896000000000008, "schedule": "OfficeSmall INFIL_QUARTER_ON_SCH", "type": "InfiltrationAbridged", "identifier": "2019::SmallOffice::Restroom_Infiltration"}, "lighting": {"identifier": "2019::SmallOffice::Restroom_Lighting", "radiant_fraction": 0.40000000000000002, "visible_fraction": 0.20000000000000001, "baseline_watts_per_area": 6.7812570000000001, "type": "LightingAbridged", "return_air_fraction": 0.40000000000000002, "watts_per_area": 6.7812570000000001, "schedule": "OfficeSmall BLDG_LIGHT_SCH_2013"}, "electric_equipment": {"identifier": "2019::SmallOffice::Restroom_Electric", "radiant_fraction": 0.5, "latent_fraction": 0.0, "type": "ElectricEquipmentAbridged", "watts_per_area": 2.906253, "lost_fraction": 0.0, "schedule": "OfficeSmall BLDG_EQUIP_SCH_2013"}, "setpoint": {"heating_schedule": "OfficeSmall HTGSETP_SCH_NO_OPTIMUM", "type": "SetpointAbridged", "cooling_schedule": "OfficeSmall CLGSETP_SCH_NO_OPTIMUM", "identifier": "2019::SmallOffice::Restroom_Setpoint"}, "ventilation": {"flow_per_area": 0.00030479999999999998, "type": "VentilationAbridged", "identifier": "2019::SmallOffice::Restroom_Ventilation"}, "type": "ProgramTypeAbridged"}], "construction_sets": [{"identifier": "2019::ClimateZone1::SteelFramed", "air_boundary_construction": null, "shade_construction": null, "roof_ceiling_set": {"ground_construction": null, "interior_construction": null, "exterior_construction": "Typical IEAD Roof - Highly Reflective-R21", "type": "RoofCeilingConstructionSetAbridged"}, "wall_set": {"ground_construction": "Typical Insulated Basement Mass Wall", "interior_construction": null, "exterior_construction": "Typical Insulated Steel Framed Exterior Wall-R9", "type": "WallConstructionSetAbridged"}, "door_set": {"overhead_construction": "Typical Overhead Door-R4", "interior_glass_construction": null, "exterior_glass_construction": "U 0.65 SHGC 0.25 Dbl Ref-C-H Clr 6mm/6mm Air", "type": "DoorConstructionSetAbridged", "interior_construction": null, "exterior_construction": "Typical Insulated Metal Door-R3"}, "floor_set": {"ground_construction": "Typical Insulated Carpeted 8in Slab Floor", "interior_construction": null, "exterior_construction": "Typical Insulated Steel Framed Exterior Floor-R3", "type": "FloorConstructionSetAbridged"}, "type": "ConstructionSetAbridged", "aperture_set": {"skylight_construction": "U 0.7 SHGC 0.3 Simple Glazing Skylight", "type": "ApertureConstructionSetAbridged", "interior_construction": null, "operable_construction": "U 0.5 SHGC 0.23 Simple Glazing Window", "window_construction": "U 0.5 SHGC 0.23 Simple Glazing Window"}}]}, "type": "ModelProperties", "uwg": {"grass_coverage_fraction": 0.0, "type": "ModelUWGProperties", "traffic": {"type": "TrafficParameter"}}}} \ No newline at end of file diff --git a/tests/model_extend_test.py b/tests/model_extend_test.py new file mode 100644 index 0000000..3fb729f --- /dev/null +++ b/tests/model_extend_test.py @@ -0,0 +1,80 @@ +"""Test the Model to_vis_set method.""" +from ladybug_display.geometry3d import DisplayMesh3D, DisplayLineSegment3D, \ + DisplayText3D +from ladybug_display.visualization import VisualizationSet, \ + ContextGeometry, AnalysisGeometry, VisualizationData +from dragonfly.model import Model +from honeybee_display.attr import RoomAttribute, FaceAttribute + + +def test_default_to_vis_set(): + """Test the default output of Model.to_vis_set().""" + model_json = './tests/json/model_with_doors_skylights.dfjson' + parsed_model = Model.from_dfjson(model_json) + vis_set = parsed_model.to_vis_set() + + assert isinstance(vis_set, VisualizationSet) + assert len(vis_set) == 10 + for geo_obj in vis_set[:-1]: + assert isinstance(geo_obj, ContextGeometry) + assert isinstance(geo_obj[0], DisplayMesh3D) + assert isinstance(vis_set[-1], ContextGeometry) + assert vis_set[-1].display_name == 'Wireframe' + assert isinstance(vis_set[-1][0], DisplayLineSegment3D) + + vis_set = parsed_model.to_vis_set(include_wireframe=False) + assert len(vis_set) == 9 + for geo_obj in vis_set: + assert isinstance(geo_obj, ContextGeometry) + assert isinstance(geo_obj[0], DisplayMesh3D) + + vis_set = parsed_model.to_vis_set(color_by='none') + assert len(vis_set) == 1 + for geo_obj in vis_set: + assert isinstance(geo_obj, ContextGeometry) + assert isinstance(geo_obj[0], DisplayLineSegment3D) + + vis_set = parsed_model.to_vis_set( + color_by='boundary_condition', include_wireframe=False) + assert len(vis_set) == 5 + for geo_obj in vis_set: + assert isinstance(geo_obj, ContextGeometry) + assert isinstance(geo_obj[0], DisplayMesh3D) + + +def test_room_attr_to_vis_set(): + """Test the room attribute argument of Model.to_vis_set().""" + model_json = './tests/json/model_with_doors_skylights.dfjson' + parsed_model = Model.from_dfjson(model_json) + attr_color = RoomAttribute( + name='Floor Area', attrs=['floor_area'], text=False, color=True) + vis_set = parsed_model.to_vis_set(color_by='none', room_attrs=[attr_color]) + + assert isinstance(vis_set[0], AnalysisGeometry) + assert isinstance(vis_set[0][0], VisualizationData) + assert len(vis_set[0][0].values) == 15 + attr_txt = RoomAttribute( + name='Floor Area', attrs=['floor_area'], text=True, color=False) + vis_set = parsed_model.to_vis_set(color_by='none', room_attrs=[attr_txt]) + assert isinstance(vis_set[0], ContextGeometry) + assert len(vis_set[0]) == 15 + for item in vis_set[0]: + assert isinstance(item, DisplayText3D) + + +def test_face_attr_to_vis_set(): + """Test the face attribute argument of Model.to_vis_set().""" + model_json = './tests/json/model_with_doors_skylights.dfjson' + parsed_model = Model.from_dfjson(model_json) + attr_color = FaceAttribute(name='Area', attrs=['area'], color=True, text=False) + vis_set = parsed_model.to_vis_set(color_by='None', face_attrs=[attr_color]) + assert isinstance(vis_set[0], AnalysisGeometry) + assert isinstance(vis_set[0][0], VisualizationData) + assert len(vis_set[0][0].values) == 324 + + attr_txt = FaceAttribute(name='Area', attrs=['area'], color=False, text=True) + vis_set = parsed_model.to_vis_set(color_by='None', face_attrs=[attr_txt]) + assert isinstance(vis_set[0], ContextGeometry) + assert len(vis_set[0]) == 324 + for item in vis_set[0]: + assert isinstance(item, DisplayText3D)