def example_save(): """"This function demonstrates different loading options of TEASER""" # In example e4_save we saved two TEASER projects using *.teaserXML and # Python package pickle. This example shows how to import these # information into your python environment again. # To load data from *.teaserXML we can use a simple API function. So # first we need to instantiate our API (similar to example # e1_generate_archetype). The XML file is called # `ArchetypeExample.teaserXML` and saved in the default path. You need to # run e4 first before you can load this example file. from teaser.project import Project prj = Project() load_xml = os.path.join(utilities.get_default_path(), 'ArchetypeExample.teaserXML') prj.load_project(path=load_xml) prj = Project() prj.load_project( utilities.get_full_path("examples/examplefiles/new.teaserXML")) prj.save_project(file_name="new", path=None) # To reload data from a pickle file, we do not need to instantiate an # API, as pickle will automatically instantiate all classes as they have # been saved. The saved file from example e4 is called ´teaser_pickle.p´ import pickle load_pickle = os.path.join(utilities.get_default_path(), 'teaser_pickle.p') pickle_prj = pickle.load(open(load_pickle, "rb")) # The last option to import data into TEASER is using a CityGML file. The # import of CityGML underlies some limitations e.g. concerning data # given in the file and the way the buildings are modeled. prj_gml = Project() load_gml = utilities.get_full_path( os.path.join('examples', 'examplefiles', 'CityGMLSample.gml')) prj_gml.load_citygml(path=load_gml)
def example_load(): """"This function demonstrates different loading options of TEASER""" # In example e4_save we saved two TEASER projects using *.teaserjson and # Python package pickle. This example shows how to import these # information into your python environment again. # To load data from *.teaserjson we can use a simple API function. So # first we need to instantiate our API (similar to example # e1_generate_archetype). The json file is called # `ArchetypeExample.teaserjson` and saved in the default path. You need to # run e4 first before you can load this example file. from teaser.project import Project prj = Project() load_json = os.path.join(utilities.get_default_path(), "ArchetypeExample.json") prj.load_project(path=load_json) prj = Project() prj.load_project( utilities.get_full_path("examples/examplefiles/unitTest.json")) prj.save_project(file_name="unitTest", path=None) # To reload data from a pickle file, we do not need to instantiate an # API, as pickle will automatically instantiate all classes as they have # been saved. The saved file from example e4 is called ´teaser_pickle.p´ import pickle load_pickle = os.path.join(utilities.get_default_path(), "teaser_pickle.p") pickle_prj = pickle.load(open(load_pickle, "rb")) print(pickle_prj)
def example_type_building(): """"First thing we need to do is to import our Project API module""" from teaser.project import Project """We instantiate the Project class. The parameter load_data = True indicates that we load the XML data bases into our Project. This can take a few sec.""" prj = Project(load_data=True) prj.name = "ArchetypeBuildings_Ref" """The five functions starting with type_bldg giving us the opportunity to create the specific type building (e.g. type_bldg_residential). The function automatically calculates all the necessary parameter. If not specified different it uses vdi calculation method.""" prj.type_bldg_residential(name="ResidentialBuilding", year_of_construction=1988, number_of_floors=2, height_of_floors=3.5, net_leased_area=100, with_ahu=True, residential_layout=1, neighbour_buildings=1, attic=1, cellar=1, construction_type="heavy", dormer=1) prj.type_bldg_office(name="Office1", year_of_construction=1988, number_of_floors=2, height_of_floors=3.5, net_leased_area=100, office_layout=1, window_layout=1, with_ahu=True, construction_type="heavy") ''' We need to set the projects calculation method. The library we want to use is AixLib, we are using a two element model and want an extra resistance for the windows. To export the parameters to a Modelica record, we use the export_aixlib function. path = None indicates, that we want to store the records in TEASER'S Output folder ''' prj.used_library_calc = 'AixLib' prj.number_of_elements_calc = 2 prj.merge_windows_calc = False prj.calc_all_buildings() ''' Export the Modelica Record. If you have a Dymola License you can export the model with a central AHU (MultizoneEquipped) (only default for office and institute buildings) ''' prj.export_aixlib(building_model="MultizoneEquipped", zone_model="ThermalZoneEquipped", corG=True, internal_id=None, path=None) ''' For OpenModelica you need to exclude the centralAHU (because it is using state machines). Therefore use the building_model "Multizone" ''' #prj.export_aixlib(building_model="Multizone", # zone_model="ThermalZoneEquipped", # corG=True, # internal_id=None, # path=None) '''Or we use Annex60 method (e.g with four elements). Which exports one Model per zone''' #prj.used_library_calc = 'Annex60' #prj.number_of_elements_calc = 4 #prj.merge_windows_calc = False #prj.calc_all_buildings() #prj.export_annex() """Now we retrofit all buildings in the year 2015 (EnEV2014). \ That includes new insulation layer and new windows. The name is changed \ to Retrofit""" prj.name = "ArchetypeBuildings_Retrofit" prj.retrofit_all_buildings(2015) prj.calc_all_buildings() '''You could also change the exports here as seen above''' prj.export_aixlib(building_model="MultizoneEquipped", zone_model="ThermalZoneEquipped", corG=True, internal_id=None, path=None) prj.save_project("Retrofit_Building", path=None) '''Save the human readable output txt''' prj.export_parameters_txt(path=None) ''' Save the human readable output txt ''' prj.save_citygml(path=None)
def example_create_building(): ''' Instantiate a Project class (with load_data set to true), instantiate a Building class, with the project as a parent. This automatically adds the specific building and all its future changes to the project. ''' prj = Project(load_data=True) bldg = Building(parent=prj) '''Set some building parameters''' bldg.name = "SuperExampleBuilding" bldg.street_name = "Awesome Avenue 42" bldg.city = "46325 Fantastic Town" bldg.year_of_construction = 1988 bldg.number_of_floors = 1 bldg.height_of_floors = 3.5 '''Instantiate a ThermalZone class, with building as parent and set some parameters of the thermal zone''' tz = ThermalZone(parent=bldg) tz.name = "Living Room" tz.area = 140.0 tz.volume = tz.area * bldg.number_of_floors * bldg.height_of_floors tz.infiltration_rate = 0.5 '''Instantiate UseConditions18599 class with thermal zone as parent, and load the use conditions for the usage 'Living' ''' tz.use_conditions = BoundaryConditions(parent=tz) tz.use_conditions.load_use_conditions("Living") '''Define two elements representing a pitched roof and define Layers and Materials explicitly''' roof_south = Rooftop(parent=tz) roof_south.name = "Roof_South" roof_north = Rooftop(parent=tz) roof_north.name = "Roof_North" '''Set area, orientation and tilt of South Roof''' roof_south.area = 75.0 roof_south.orientation = 180.0 roof_south.tilt = 55.0 '''Set coefficient of heat transfer''' roof_south.inner_convection = 1.7 roof_south.outer_convection = 5.0 roof_south.inner_radiation = 20.0 roof_south.outer_radiation = 5.0 '''Set layer and material''' layer_1s = Layer(parent=roof_south, id=0) # id indicates the order of # layer from inside to outside layer_1s.thickness = 0.15 material_1_2 = Material(layer_1s) material_1_2.name = "Insulation" material_1_2.density = 120.0 material_1_2.heat_capac = 0.04 material_1_2.thermal_conduc = 1.0 layer_2s = Layer(parent=roof_south, id=1) layer_2s.thickness = 0.15 material_1_1 = Material(layer_2s) material_1_1.name = "Tile" material_1_1.density = 1400.0 material_1_1.heat_capac = 0.6 material_1_1.thermal_conduc = 2.5 '''Set area, orientation and tilt of North Roof''' roof_north.area = 75.0 roof_north.orientation = 0.0 roof_north.tilt = 55.0 '''Set coefficient of heat transfer''' roof_north.inner_convection = 1.7 roof_north.outer_convection = 5.0 roof_north.inner_radiation = 20.0 roof_north.outer_radiation = 5.0 '''Set layer and material''' layer_1n = Layer(parent=roof_north, id=0) layer_1n.thickness = 0.15 material_1_2 = Material(layer_1n) material_1_2.name = "Insulation" material_1_2.density = 120.0 material_1_2.heat_capac = 0.04 material_1_2.thermal_conduc = 1.0 layer_2n = Layer(parent=roof_north, id=1) layer_2n.thickness = 0.15 layer_2n.position = 1 material_1_1 = Material(layer_2n) material_1_1.name = "Tile" material_1_1.density = 1400.0 material_1_1.heat_capac = 0.6 material_1_1.thermal_conduc = 2.5 '''We save information of the Outer and Inner walls as well as Windows in dicts, the key is the name, while the value is a list (if applicable) [year of construciton, construction type, area, tilt, orientation] ''' out_wall_dict = {"Outer Wall 1": [bldg.year_of_construction, 'heavy', 10.0, 90.0, 0.0], "Outer Wall 2": [bldg.year_of_construction, 'heavy', 14.0, 90.0, 90.0], "Outer Wall 3": [bldg.year_of_construction, 'heavy', 10.0, 90.0, 180.0], "Outer Wall 4": [bldg.year_of_construction, 'heavy', 14.0, 90.0, 270.0]} in_wall_dict = {"Inner Wall 1": [bldg.year_of_construction, 'light', 10.0], "Inner Wall 2": [bldg.year_of_construction, 'heavy', 14.0], "Inner Wall 3": [bldg.year_of_construction, 'light', 10.0]} win_dict = {"Window 1": [bldg.year_of_construction, 5.0, 90.0, 90.0], "Window 2": [bldg.year_of_construction, 8.0, 90.0, 180.0], "Window 3": [bldg.year_of_construction, 5.0, 90.0, 270.0]} for key, value in out_wall_dict.items(): '''instantiate OuterWall class''' out_wall = OuterWall(parent = tz) out_wall.name = key '''load typical construction, based on year of construction and construction type''' out_wall.load_type_element(year=value[0], construction=value[1]) out_wall.area = value[2] out_wall.tilt = value[3] out_wall.orientation = value[4] for key, value in in_wall_dict.items(): '''instantiate InnerWall class''' in_wall = InnerWall(parent = tz) in_wall.name = key '''load typical construction, based on year of construction and construction type''' in_wall.load_type_element(year=value[0], construction=value[1]) in_wall.area = value[2] for key, value in win_dict.items(): '''instantiate Window class''' win = Window(parent = tz) win.name = key win.area = value[1] win.tilt = value[2] win.orientation = value[3] ''' We know the exact properties of the window, thus we set them instead of loading a typical construction ''' win.inner_convection = 1.7 win.inner_radiation = 5.0 win.outer_convection = 20.0 win.outer_radiation = 5.0 win.g_value = 0.789 win.a_conv = 0.03 win.shading_g_total = 1.0 win.shading_max_irr = 180.0 '''Instantiate a Layer class, with window as parent, set attributes''' win_layer = Layer(parent = win) win_layer.id = 1 win_layer.thickness = 0.024 '''Instantiate a Material class, with window layer as parent, set attributes''' win_material = Material(win_layer) win_material.name = "GlasWindow" win_material.thermal_conduc = 0.067 win_material.transmittance = 0.9 '''For a GroundFloor we are using the load_type_element function, which needs the year of construction and the construction type ('heavy' or 'light') ''' ground = GroundFloor(parent=tz) ground.name = "Ground floor" ground.load_type_element(bldg.year_of_construction, 'heavy') ground.area = 140.0 ''' We calculate the RC Values according to AixLib procedure ''' prj.used_library_calc = 'AixLib' prj.number_of_elements_calc = 2 prj.merge_windows_calc = False prj.calc_all_buildings() ''' Export the Modelica Record ''' prj.export_aixlib(building_model="MultizoneEquipped", zone_model="ThermalZoneEquipped", corG=True, internal_id=None, path=None) '''Or we use Annex60 method with for elements''' #prj.calc_all_buildings(number_of_elements=4, # merge_windows=False, # used_library='Annex60') #prj.export_annex() ''' Save new TEASER XML and cityGML ''' prj.save_project("ExampleProject") prj.save_citygml("ExampleCityGML")
def from_scratch( number_of_elements, save=False, path=utilities.get_default_path()): """This function creates the test room from scratch. Notes: The standard defines an solar absorption coefficient for interior surfaces of 0.6. We do not consider this, but we could by multiplying the solar radiation after the window by 0.6. Parameters ---------- number_of_elements: int Number of elements of model path: str (optional) Path where Project should be stored as .teaserXML save: bool (optional) True if Project should be stored as .teaserXML at path Returns ------- prj: Project Project that contains the building with the test room """ prj = Project(load_data=True) prj.name = "ASHRAE140Verification" bldg = Building(parent=prj) bldg.name = "TestBuilding" tz = ThermalZone(parent=bldg) tz.name = "TestRoom900" tz.area = 8.0 * 6.0 tz.volume = tz.area * 2.7 tz.infiltration_rate = 0.41 tz.use_conditions = BoundaryConditions(parent=tz) roof = Rooftop(parent=tz) roof.name = "Roof" roof.area = 8.0 * 6.0 roof.orientation = -1.0 roof.tilt = 0.0 roof.inner_convection = 1 roof.outer_convection = 24.67 roof.inner_radiation = 5.13 roof.outer_radiation = 4.63 layer_r1 = Layer(parent=roof, id=0) layer_r1.thickness = 0.01 material_r1 = Material(layer_r1) material_r1.name = "Plasterboard" material_r1.density = 950.0 material_r1.heat_capac = 840.0 / 1000 material_r1.thermal_conduc = 0.16 material_r1.ir_emissivity = 0.9 layer_r2 = Layer(parent=roof, id=1) layer_r2.thickness = 0.1118 material_r2 = Material(layer_r2) material_r2.name = "Fiberglass" material_r2.density = 12 material_r2.heat_capac = 840 / 1000 material_r2.thermal_conduc = 0.04 layer_r3 = Layer(parent=roof, id=2) layer_r3.thickness = 0.019 material_r3 = Material(layer_r3) material_r3.name = "Roofdeck" material_r3.density = 530 material_r3.heat_capac = 900 / 1000 material_r3.thermal_conduc = 0.14 material_r3.solar_absorp = 0.6 material_r3.ir_emissivity = 0.9 out_wall_north = OuterWall(parent=tz) out_wall_north.name = "OuterWallNorth" out_wall_north.area = 8.0 * 2.7 out_wall_north.orientation = 0.0 out_wall_north.tilt = 90.0 out_wall_north.inner_convection = 3.16 out_wall_north.outer_convection = 24.67 out_wall_north.inner_radiation = 5.13 out_wall_north.outer_radiation = 4.63 layer_own1 = Layer(parent=out_wall_north, id=0) layer_own1.thickness = 0.1 material_own1 = Material(layer_own1) material_own1.name = "Concrete" material_own1.density = 1400.0 material_own1.heat_capac = 1000 / 1000 material_own1.thermal_conduc = 0.51 material_own1.ir_emissivity = 0.9 layer_own2 = Layer(parent=out_wall_north, id=1) layer_own2.thickness = 0.062 material_own2 = Material(layer_own2) material_own2.name = "FoamInsulation" material_own2.density = 10 material_own2.heat_capac = 1400 / 1000 material_own2.thermal_conduc = 0.04 layer_own3 = Layer(parent=out_wall_north, id=2) layer_own3.thickness = 0.009 material_own3 = Material(layer_own3) material_own3.name = "WoodSiding" material_own3.density = 530 material_own3.heat_capac = 900 / 1000 material_own3.thermal_conduc = 0.14 material_own3.solar_absorp = 0.6 material_own3.ir_emissivity = 0.9 out_wall_east = OuterWall(parent=tz) out_wall_east.name = "OuterWallEast" out_wall_east.area = 6.0 * 2.7 out_wall_east.orientation = 90.0 out_wall_east.tilt = 90.0 out_wall_east.inner_convection = 3.16 out_wall_east.outer_convection = 24.67 out_wall_east.inner_radiation = 5.13 out_wall_east.outer_radiation = 4.63 layer_owe1 = Layer(parent=out_wall_east, id=0) layer_owe1.thickness = 0.1 material_owe1 = Material(layer_owe1) material_owe1.name = "Concrete" material_owe1.density = 1400.0 material_owe1.heat_capac = 1000 / 1000 material_owe1.thermal_conduc = 0.51 material_owe1.ir_emissivity = 0.9 layer_owe2 = Layer(parent=out_wall_east, id=1) layer_owe2.thickness = 0.062 material_owe2 = Material(layer_owe2) material_owe2.name = "FoamInsulation" material_owe2.density = 10 material_owe2.heat_capac = 1400 / 1000 material_owe2.thermal_conduc = 0.04 layer_owe3 = Layer(parent=out_wall_east, id=2) layer_owe3.thickness = 0.009 material_owe3 = Material(layer_owe3) material_owe3.name = "WoodSiding" material_owe3.density = 530 material_owe3.heat_capac = 900 / 1000 material_owe3.thermal_conduc = 0.14 material_owe3.solar_absorp = 0.6 material_owe3.ir_emissivity = 0.9 out_wall_south = OuterWall(parent=tz) out_wall_south.name = "OuterWallSouth" out_wall_south.area = (8.0 * 2.7) - 2 * (3 * 2) # minus two windows out_wall_south.orientation = 180.0 out_wall_south.tilt = 90.0 out_wall_south.inner_convection = 3.16 out_wall_south.outer_convection = 24.67 out_wall_south.inner_radiation = 5.13 out_wall_south.outer_radiation = 4.63 layer_ows1 = Layer(parent=out_wall_south, id=0) layer_ows1.thickness = 0.1 material_ows1 = Material(layer_ows1) material_ows1.name = "Concrete" material_ows1.density = 1400.0 material_ows1.heat_capac = 1000.0 / 1000 material_ows1.thermal_conduc = 0.51 material_ows1.ir_emissivity = 0.9 layer_ows2 = Layer(parent=out_wall_south, id=1) layer_ows2.thickness = 0.062 material_ows2 = Material(layer_ows2) material_ows2.name = "FoamInsulation" material_ows2.density = 10 material_ows2.heat_capac = 1400 / 1000 material_ows2.thermal_conduc = 0.04 layer_ows3 = Layer(parent=out_wall_south, id=2) layer_ows3.thickness = 0.009 material_ows3 = Material(layer_ows3) material_ows3.name = "WoodSiding" material_ows3.density = 530 material_ows3.heat_capac = 900 / 1000 material_ows3.thermal_conduc = 0.14 material_ows3.solar_absorp = 0.6 material_ows3.ir_emissivity = 0.9 out_wall_west = OuterWall(parent=tz) out_wall_west.name = "OuterWallWest" out_wall_west.area = 6 * 2.7 out_wall_west.orientation = 270.0 out_wall_west.tilt = 90.0 out_wall_west.inner_convection = 3.16 out_wall_west.outer_convection = 24.67 out_wall_west.inner_radiation = 5.13 out_wall_west.outer_radiation = 4.63 layer_oww1 = Layer(parent=out_wall_west, id=0) layer_oww1.thickness = 0.1 material_oww1 = Material(layer_oww1) material_oww1.name = "Concrete" material_oww1.density = 1400.0 material_oww1.heat_capac = 1000.0 / 1000 material_oww1.thermal_conduc = 0.51 material_oww1.ir_emissivity = 0.9 layer_oww2 = Layer(parent=out_wall_west, id=1) layer_oww2.thickness = 0.062 material_oww2 = Material(layer_oww2) material_oww2.name = "FoamInsulation" material_oww2.density = 10 material_oww2.heat_capac = 1400 / 1000 material_oww2.thermal_conduc = 0.04 layer_oww3 = Layer(parent=out_wall_west, id=2) layer_oww3.thickness = 0.009 material_oww3 = Material(layer_oww3) material_oww3.name = "WoodSiding" material_oww3.density = 530 material_oww3.heat_capac = 900 / 1000 material_oww3.thermal_conduc = 0.14 material_oww3.solar_absorp = 0.6 material_oww3.ir_emissivity = 0.9 in_wall_floor = Floor(parent=tz) in_wall_floor.name = "InnerWallFloor" in_wall_floor.area = 6 * 8 in_wall_floor.orientation = -2.0 in_wall_floor.tilt = 0.0 in_wall_floor.inner_convection = 4.13 in_wall_floor.inner_radiation = 5.13 layer_iwf1 = Layer(parent=in_wall_floor, id=0) layer_iwf1.thickness = 0.025 material_iwf1 = Material(layer_iwf1) material_iwf1.name = "Concrete" material_iwf1.density = 1400 material_iwf1.heat_capac = 1000 / 1000 material_iwf1.thermal_conduc = 1.13 material_iwf1.ir_emissivity = 0.9 layer_iwf2 = Layer(parent=in_wall_floor, id=1) layer_iwf2.thickness = 1.007 material_iwf2 = Material(layer_iwf2) material_iwf2.name = "Insulation" material_iwf2.density = 0.000000000001 # 0.0001, as small as possible material_iwf2.heat_capac = 0.000000000001 # 0.0001, as small as possible material_iwf2.thermal_conduc = 0.04 win_1 = Window(parent=tz) win_1.name = "WindowSouthLeft" win_1.area = 3 * 2 win_1.tilt = 90.0 win_1.orientation = 180.0 win_1.inner_convection = 3.16 win_1.inner_radiation = 5.13 win_1.outer_convection = 16.37 win_1.outer_radiation = 4.63 win_1.g_value = 0.789 win_1.a_conv = 0.03 # for the given U-value extracted from VDI 6007-2/-3 win_1_layer = Layer(parent=win_1) win_1_layer.id = 1 win_1_layer.thickness = 0.024 win_1_material = Material(win_1_layer) win_1_material.name = "GlasWindow" win_1_material.thermal_conduc = 0.15 win_1_material.transmittance = 0.907 win_1_material.ir_emissivity = 0.9 win_2 = Window(parent=tz) win_2.name = "WindowSouthRight" win_2.area = 3 * 2 win_2.tilt = 90.0 win_2.orientation = 180.0 win_2.inner_convection = 3.16 win_2.inner_radiation = 5.13 win_2.outer_convection = 16.37 win_2.outer_radiation = 4.63 win_2.g_value = 0.789 win_2.a_conv = 0.03 # for the given U-value extracted from VDI 6007-2/-3 win_2_layer = Layer(parent=win_2) win_2_layer.id = 1 win_2_layer.thickness = 0.024 win_2_material = Material(win_2_layer) win_2_material.name = "GlasWindow" win_2_material.thermal_conduc = 0.15 win_2_material.transmittance = 0.907 win_2_material.ir_emissivity = 0.9 # This is a dummy ground floor to export three and four elements models. # Please set values for floor plate in three element and four element # models to default. if number_of_elements >= 3: out_wall_gf = GroundFloor(parent=tz) out_wall_gf.name = "ExtWallGroundFloor" out_wall_gf.area = 6 * 8 out_wall_gf.orientation = -2.0 out_wall_gf.tilt = 0.0 out_wall_gf.inner_convection = 4.13 out_wall_gf.inner_radiation = 5.13 layer_ofgw1 = Layer(parent=out_wall_gf, id=0) layer_ofgw1.thickness = 1.003 material_ofgw1 = Material(layer_ofgw1) material_ofgw1.name = "Insulation" material_ofgw1.density = 0.0001 # as small as possible material_ofgw1.heat_capac = 0.0001 # as small as possible material_ofgw1.thermal_conduc = 0.04 if save: prj.save_project(file_name='ASHRAE140_900', path=path) return prj
def example_type_building(): """"First thing we need to do is to import our Project API module""" from teaser.project import Project """We instantiate the Project class. The parameter load_data = True indicates that we load the XML data bases into our Project. This can take a few sec.""" prj = Project(load_data=True) prj.name = "ArchetypeBuildings" """The five functions starting with type_bldg giving us the opportunity to create the specific type building (e.g. type_bldg_residential). The function automatically calculates all the necessary parameter. If not specified different it uses vdi calculation method.""" prj.type_bldg_residential(name="ResidentialBuilding", year_of_construction=1988, number_of_floors=2, height_of_floors=3.5, net_leased_area=100, with_ahu=True, residential_layout=1, neighbour_buildings=1, attic=1, cellar=1, construction_type="heavy", dormer=1) prj.type_bldg_office(name="Office1", year_of_construction=1988, number_of_floors=2, height_of_floors=3.5, net_leased_area=100, office_layout=1, window_layout=1, with_ahu=True, construction_type="heavy") """We need to set the projects calculation method. The library we want to use is AixLib, we are using a two element model and want an extra resistance for the windows. To export the parameters to a Modelica record, we use the export_aixlib function. path = None indicates, that we want to store the records in \ TEASER'S Output folder""" prj.used_library_calc = 'AixLib' prj.number_of_elements_calc = 2 prj.merge_windows_calc = False prj.export_aixlib(building_model="MultizoneEquipped", zone_model="ThermalZoneEquipped", corG=True, internal_id=None, path=None) """or we could also use the Annex60 models""" #prj.used_library_calc = "Annex60" #prj.export_annex(number_of_elements=2, # merge_windows=False, # internal_id=None, # path=None) """Now we retrofit all buildings in the year 2015 (EnEV2014). \ That includes new insulation layer and new windows. The name is changed \ to Retrofit""" prj.name = "Project_Retrofit" prj.retrofit_all_buildings(2015) prj.calc_all_buildings(number_of_elements=2, merge_windows=False, used_library='AixLib') prj.export_aixlib(building_model="MultizoneEquipped", zone_model="ThermalZoneEquipped", corG=True, internal_id=None, path=None) prj.save_project("Retrofit_Building", path=None) '''Save the human readable output txt''' prj.export_parameters_txt(path=None) ''' Save the human readable output txt ''' prj.save_citygml(path=None)