From 6e79541816298c705747c50cf8cee4a6e4da847a Mon Sep 17 00:00:00 2001 From: Koa Wells Date: Mon, 17 Jun 2024 19:08:52 -0400 Subject: [PATCH 01/42] Delete all __pycache__ files --- .../__pycache__/__init__.cpython-39.pyc | Bin 173 -> 0 bytes .../construction_helper.cpython-39.pyc | Bin 2135 -> 0 bytes .../__pycache__/eilat_catalog.cpython-39.pyc | Bin 6726 -> 0 bytes .../__pycache__/nrcan_catalog.cpython-39.pyc | Bin 6781 -> 0 bytes .../__pycache__/nrel_catalog.cpython-39.pyc | Bin 6860 -> 0 bytes .../__pycache__/__init__.cpython-39.pyc | Bin 172 -> 0 bytes .../__pycache__/__init__.cpython-39.pyc | Bin 185 -> 0 bytes .../__pycache__/archetype.cpython-39.pyc | Bin 4545 -> 0 bytes .../__pycache__/construction.cpython-39.pyc | Bin 2547 -> 0 bytes .../__pycache__/content.cpython-39.pyc | Bin 1935 -> 0 bytes .../__pycache__/layer.cpython-39.pyc | Bin 1836 -> 0 bytes .../__pycache__/material.cpython-39.pyc | Bin 3470 -> 0 bytes .../__pycache__/window.cpython-39.pyc | Bin 2248 -> 0 bytes .../__pycache__/__init__.cpython-39.pyc | Bin 187 -> 0 bytes .../__pycache__/archetype.cpython-39.pyc | Bin 1686 -> 0 bytes .../__pycache__/content.cpython-39.pyc | Bin 2056 -> 0 bytes .../distribution_system.cpython-39.pyc | Bin 5257 -> 0 bytes .../electrical_storage_system.cpython-39.pyc | Bin 3593 -> 0 bytes .../__pycache__/emission_system.cpython-39.pyc | Bin 1960 -> 0 bytes .../energy_storage_system.cpython-39.pyc | Bin 2526 -> 0 bytes .../generation_system.cpython-39.pyc | Bin 3319 -> 0 bytes .../non_pv_generation_system.cpython-39.pyc | Bin 10304 -> 0 bytes .../performance_curves.cpython-39.pyc | Bin 2748 -> 0 bytes .../pv_generation_system.cpython-39.pyc | Bin 5487 -> 0 bytes .../__pycache__/system.cpython-39.pyc | Bin 3195 -> 0 bytes .../thermal_storage_system.cpython-39.pyc | Bin 3810 -> 0 bytes .../usages/__pycache__/__init__.cpython-39.pyc | Bin 179 -> 0 bytes .../__pycache__/appliances.cpython-39.pyc | Bin 2500 -> 0 bytes .../usages/__pycache__/content.cpython-39.pyc | Bin 1407 -> 0 bytes .../domestic_hot_water.cpython-39.pyc | Bin 2393 -> 0 bytes .../usages/__pycache__/lighting.cpython-39.pyc | Bin 2484 -> 0 bytes .../usages/__pycache__/occupancy.cpython-39.pyc | Bin 2778 -> 0 bytes .../usages/__pycache__/schedule.cpython-39.pyc | Bin 2779 -> 0 bytes .../__pycache__/thermal_control.cpython-39.pyc | Bin 3518 -> 0 bytes .../usages/__pycache__/usage.cpython-39.pyc | Bin 4346 -> 0 bytes .../__pycache__/__init__.cpython-39.pyc | Bin 175 -> 0 bytes .../montreal_custom_catalog.cpython-39.pyc | Bin 7618 -> 0 bytes ...treal_future_system_catalogue.cpython-39.pyc | Bin 14479 -> 0 bytes ...america_energy_system_catalog.cpython-39.pyc | Bin 13483 -> 0 bytes .../usage/__pycache__/__init__.cpython-39.pyc | Bin 166 -> 0 bytes .../__pycache__/comnet_catalog.cpython-39.pyc | Bin 7270 -> 0 bytes .../__pycache__/eilat_catalog.cpython-39.pyc | Bin 7229 -> 0 bytes .../__pycache__/nrcan_catalog.cpython-39.pyc | Bin 7551 -> 0 bytes .../__pycache__/usage_helper.cpython-39.pyc | Bin 4232 -> 0 bytes .../__pycache__/__init__.cpython-39.pyc | Bin 174 -> 0 bytes .../attributes/__pycache__/plane.cpython-39.pyc | Bin 2425 -> 0 bytes .../attributes/__pycache__/point.cpython-39.pyc | Bin 1321 -> 0 bytes .../__pycache__/polygon.cpython-39.pyc | Bin 11134 -> 0 bytes .../__pycache__/polyhedron.cpython-39.pyc | Bin 6422 -> 0 bytes .../__pycache__/schedule.cpython-39.pyc | Bin 3886 -> 0 bytes .../__pycache__/__init__.cpython-39.pyc | Bin 179 -> 0 bytes .../__pycache__/appliances.cpython-39.pyc | Bin 3032 -> 0 bytes .../__pycache__/construction.cpython-39.pyc | Bin 3899 -> 0 bytes .../domestic_hot_water.cpython-39.pyc | Bin 2779 -> 0 bytes .../__pycache__/household.cpython-39.pyc | Bin 1180 -> 0 bytes .../__pycache__/internal_gain.cpython-39.pyc | Bin 3650 -> 0 bytes .../__pycache__/internal_zone.cpython-39.pyc | Bin 4668 -> 0 bytes .../__pycache__/layer.cpython-39.pyc | Bin 5254 -> 0 bytes .../__pycache__/lighting.cpython-39.pyc | Bin 3008 -> 0 bytes .../__pycache__/occupancy.cpython-39.pyc | Bin 3365 -> 0 bytes .../__pycache__/surface.cpython-39.pyc | Bin 11125 -> 0 bytes .../thermal_archetype.cpython-39.pyc | Bin 4095 -> 0 bytes .../__pycache__/thermal_boundary.cpython-39.pyc | Bin 9464 -> 0 bytes .../__pycache__/thermal_control.cpython-39.pyc | Bin 4876 -> 0 bytes .../__pycache__/thermal_opening.cpython-39.pyc | Bin 5647 -> 0 bytes .../__pycache__/thermal_zone.cpython-39.pyc | Bin 16178 -> 0 bytes .../__pycache__/usage.cpython-39.pyc | Bin 7264 -> 0 bytes .../__pycache__/__init__.cpython-39.pyc | Bin 178 -> 0 bytes .../__pycache__/control_system.cpython-39.pyc | Bin 1091 -> 0 bytes .../distribution_system.cpython-39.pyc | Bin 5572 -> 0 bytes .../electrical_storage_system.cpython-39.pyc | Bin 3258 -> 0 bytes .../__pycache__/emission_system.cpython-39.pyc | Bin 1898 -> 0 bytes .../energy_storage_system.cpython-39.pyc | Bin 3379 -> 0 bytes .../__pycache__/energy_system.cpython-39.pyc | Bin 4489 -> 0 bytes .../generation_system.cpython-39.pyc | Bin 4182 -> 0 bytes .../generic_distribution_system.cpython-39.pyc | Bin 3365 -> 0 bytes .../generic_emission_system.cpython-39.pyc | Bin 1265 -> 0 bytes .../generic_energy_system.cpython-39.pyc | Bin 3940 -> 0 bytes .../generic_generation_system.cpython-39.pyc | Bin 10538 -> 0 bytes .../generic_storage_system.cpython-39.pyc | Bin 2321 -> 0 bytes .../non_pv_generation_system.cpython-39.pyc | Bin 12455 -> 0 bytes .../performance_curve.cpython-39.pyc | Bin 4023 -> 0 bytes .../pv_generation_system.cpython-39.pyc | Bin 6052 -> 0 bytes .../thermal_storage_system.cpython-39.pyc | Bin 2858 -> 0 bytes .../__pycache__/__init__.cpython-39.pyc | Bin 172 -> 0 bytes .../greenery/__pycache__/plant.cpython-39.pyc | Bin 2975 -> 0 bytes .../greenery/__pycache__/soil.cpython-39.pyc | Bin 3753 -> 0 bytes .../__pycache__/vegetation.cpython-39.pyc | Bin 2439 -> 0 bytes .../iot/__pycache__/__init__.cpython-39.pyc | Bin 167 -> 0 bytes .../iot/__pycache__/sensor.cpython-39.pyc | Bin 2244 -> 0 bytes .../__pycache__/sensor_measure.cpython-39.pyc | Bin 1471 -> 0 bytes .../iot/__pycache__/sensor_type.cpython-39.pyc | Bin 855 -> 0 bytes .../iot/__pycache__/station.cpython-39.pyc | Bin 1501 -> 0 bytes .../__pycache__/__init__.cpython-39.pyc | Bin 166 -> 0 bytes .../__pycache__/energy_ade.cpython-39.pyc | Bin 11315 -> 0 bytes .../__pycache__/idf.cpython-39.pyc | Bin 24517 -> 0 bytes .../insel/__pycache__/__init__.cpython-39.pyc | Bin 172 -> 0 bytes .../insel_monthly_energy_balance.cpython-39.pyc | Bin 9241 -> 0 bytes .../formats/__pycache__/__init__.cpython-39.pyc | Bin 158 -> 0 bytes .../formats/__pycache__/obj.cpython-39.pyc | Bin 3270 -> 0 bytes ...implified_radiosity_algorithm.cpython-39.pyc | Bin 4277 -> 0 bytes .../formats/__pycache__/stl.cpython-39.pyc | Bin 821 -> 0 bytes .../__pycache__/triangular.cpython-39.pyc | Bin 1449 -> 0 bytes .../data/__pycache__/__init__.cpython-39.pyc | Bin 155 -> 0 bytes ...lkis_function_to_hub_function.cpython-39.pyc | Bin 5750 -> 0 bytes ...ilat_function_to_hub_function.cpython-39.pyc | Bin 1195 -> 0 bytes .../hft_function_to_hub_function.cpython-39.pyc | Bin 1524 -> 0 bytes ...o_eilat_construction_function.cpython-39.pyc | Bin 1295 -> 0 bytes ...ontreal_custom_costs_function.cpython-39.pyc | Bin 2745 -> 0 bytes ...o_nrcan_construction_function.cpython-39.pyc | Bin 2919 -> 0 bytes ...to_nrel_construction_function.cpython-39.pyc | Bin 2955 -> 0 bytes .../hub_usage_to_comnet_usage.cpython-39.pyc | Bin 3146 -> 0 bytes .../hub_usage_to_eilat_usage.cpython-39.pyc | Bin 1203 -> 0 bytes .../hub_usage_to_hft_usage.cpython-39.pyc | Bin 2926 -> 0 bytes .../hub_usage_to_nrcan_usage.cpython-39.pyc | Bin 3080 -> 0 bytes ...treal_custom_fuel_to_hub_fuel.cpython-39.pyc | Bin 1182 -> 0 bytes ...ype_to_hub_energy_demand_type.cpython-39.pyc | Bin 1332 -> 0 bytes ...real_function_to_hub_function.cpython-39.pyc | Bin 9126 -> 0 bytes ..._hub_energy_generation_system.cpython-39.pyc | Bin 1440 -> 0 bytes ..._hub_energy_generation_system.cpython-39.pyc | Bin 2531 -> 0 bytes ...erica_custom_fuel_to_hub_fuel.cpython-39.pyc | Bin 1266 -> 0 bytes ...ype_to_hub_energy_demand_type.cpython-39.pyc | Bin 1349 -> 0 bytes ...storage_system_to_hub_storage.cpython-39.pyc | Bin 1288 -> 0 bytes ..._hub_energy_generation_system.cpython-39.pyc | Bin 1537 -> 0 bytes ...luto_function_to_hub_function.cpython-39.pyc | Bin 3298 -> 0 bytes .../__pycache__/__init__.cpython-39.pyc | Bin 167 -> 0 bytes .../loads_calculation.cpython-39.pyc | Bin 4801 -> 0 bytes .../__pycache__/__init__.cpython-39.pyc | Bin 163 -> 0 bytes .../eilat_physics_parameters.cpython-39.pyc | Bin 4268 -> 0 bytes .../nrcan_physics_parameters.cpython-39.pyc | Bin 4147 -> 0 bytes .../nrel_physics_parameters.cpython-39.pyc | Bin 4228 -> 0 bytes .../helpers/__pycache__/__init__.cpython-39.pyc | Bin 171 -> 0 bytes .../construction_helper.cpython-39.pyc | Bin 2921 -> 0 bytes .../__pycache__/__init__.cpython-39.pyc | Bin 165 -> 0 bytes ...stom_energy_system_parameters.cpython-39.pyc | Bin 5364 -> 0 bytes ...ure_energy_systems_parameters.cpython-39.pyc | Bin 6733 -> 0 bytes ...stom_energy_system_parameters.cpython-39.pyc | Bin 5659 -> 0 bytes .../__pycache__/__init__.cpython-39.pyc | Bin 159 -> 0 bytes .../geometry/__pycache__/citygml.cpython-39.pyc | Bin 5781 -> 0 bytes .../geometry/__pycache__/geojson.cpython-39.pyc | Bin 8355 -> 0 bytes .../geometry/__pycache__/obj.cpython-39.pyc | Bin 2576 -> 0 bytes .../__pycache__/__init__.cpython-39.pyc | Bin 175 -> 0 bytes .../__pycache__/citygml_base.cpython-39.pyc | Bin 1484 -> 0 bytes .../__pycache__/citygml_lod1.cpython-39.pyc | Bin 3040 -> 0 bytes .../__pycache__/citygml_lod2.cpython-39.pyc | Bin 3319 -> 0 bytes .../helpers/__pycache__/__init__.cpython-39.pyc | Bin 167 -> 0 bytes .../__pycache__/geometry_helper.cpython-39.pyc | Bin 3648 -> 0 bytes .../results/__pycache__/__init__.cpython-39.pyc | Bin 158 -> 0 bytes .../__pycache__/energy_plus.cpython-39.pyc | Bin 3320 -> 0 bytes .../energy_plus_single_building.cpython-39.pyc | Bin 3379 -> 0 bytes .../energy_plus_workflow.cpython-39.pyc | Bin 3325 -> 0 bytes .../ep_multiple_buildings.cpython-39.pyc | Bin 3727 -> 0 bytes ...insel_monthly_energry_balance.cpython-39.pyc | Bin 3885 -> 0 bytes ...implified_radiosity_algorithm.cpython-39.pyc | Bin 2307 -> 0 bytes .../usage/__pycache__/__init__.cpython-39.pyc | Bin 156 -> 0 bytes .../comnet_usage_parameters.cpython-39.pyc | Bin 7097 -> 0 bytes .../eilat_usage_parameters.cpython-39.pyc | Bin 7082 -> 0 bytes .../nrcan_usage_parameters.cpython-39.pyc | Bin 6130 -> 0 bytes .../weather/__pycache__/__init__.cpython-39.pyc | Bin 158 -> 0 bytes .../epw_weather_parameters.cpython-39.pyc | Bin 5643 -> 0 bytes .../helpers/__pycache__/__init__.cpython-39.pyc | Bin 166 -> 0 bytes .../helpers/__pycache__/weather.cpython-39.pyc | Bin 3284 -> 0 bytes 162 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 hub/catalog_factories/construction/__pycache__/__init__.cpython-39.pyc delete mode 100644 hub/catalog_factories/construction/__pycache__/construction_helper.cpython-39.pyc delete mode 100644 hub/catalog_factories/construction/__pycache__/eilat_catalog.cpython-39.pyc delete mode 100644 hub/catalog_factories/construction/__pycache__/nrcan_catalog.cpython-39.pyc delete mode 100644 hub/catalog_factories/construction/__pycache__/nrel_catalog.cpython-39.pyc delete mode 100644 hub/catalog_factories/data_models/__pycache__/__init__.cpython-39.pyc delete mode 100644 hub/catalog_factories/data_models/construction/__pycache__/__init__.cpython-39.pyc delete mode 100644 hub/catalog_factories/data_models/construction/__pycache__/archetype.cpython-39.pyc delete mode 100644 hub/catalog_factories/data_models/construction/__pycache__/construction.cpython-39.pyc delete mode 100644 hub/catalog_factories/data_models/construction/__pycache__/content.cpython-39.pyc delete mode 100644 hub/catalog_factories/data_models/construction/__pycache__/layer.cpython-39.pyc delete mode 100644 hub/catalog_factories/data_models/construction/__pycache__/material.cpython-39.pyc delete mode 100644 hub/catalog_factories/data_models/construction/__pycache__/window.cpython-39.pyc delete mode 100644 hub/catalog_factories/data_models/energy_systems/__pycache__/__init__.cpython-39.pyc delete mode 100644 hub/catalog_factories/data_models/energy_systems/__pycache__/archetype.cpython-39.pyc delete mode 100644 hub/catalog_factories/data_models/energy_systems/__pycache__/content.cpython-39.pyc delete mode 100644 hub/catalog_factories/data_models/energy_systems/__pycache__/distribution_system.cpython-39.pyc delete mode 100644 hub/catalog_factories/data_models/energy_systems/__pycache__/electrical_storage_system.cpython-39.pyc delete mode 100644 hub/catalog_factories/data_models/energy_systems/__pycache__/emission_system.cpython-39.pyc delete mode 100644 hub/catalog_factories/data_models/energy_systems/__pycache__/energy_storage_system.cpython-39.pyc delete mode 100644 hub/catalog_factories/data_models/energy_systems/__pycache__/generation_system.cpython-39.pyc delete mode 100644 hub/catalog_factories/data_models/energy_systems/__pycache__/non_pv_generation_system.cpython-39.pyc delete mode 100644 hub/catalog_factories/data_models/energy_systems/__pycache__/performance_curves.cpython-39.pyc delete mode 100644 hub/catalog_factories/data_models/energy_systems/__pycache__/pv_generation_system.cpython-39.pyc delete mode 100644 hub/catalog_factories/data_models/energy_systems/__pycache__/system.cpython-39.pyc delete mode 100644 hub/catalog_factories/data_models/energy_systems/__pycache__/thermal_storage_system.cpython-39.pyc delete mode 100644 hub/catalog_factories/data_models/usages/__pycache__/__init__.cpython-39.pyc delete mode 100644 hub/catalog_factories/data_models/usages/__pycache__/appliances.cpython-39.pyc delete mode 100644 hub/catalog_factories/data_models/usages/__pycache__/content.cpython-39.pyc delete mode 100644 hub/catalog_factories/data_models/usages/__pycache__/domestic_hot_water.cpython-39.pyc delete mode 100644 hub/catalog_factories/data_models/usages/__pycache__/lighting.cpython-39.pyc delete mode 100644 hub/catalog_factories/data_models/usages/__pycache__/occupancy.cpython-39.pyc delete mode 100644 hub/catalog_factories/data_models/usages/__pycache__/schedule.cpython-39.pyc delete mode 100644 hub/catalog_factories/data_models/usages/__pycache__/thermal_control.cpython-39.pyc delete mode 100644 hub/catalog_factories/data_models/usages/__pycache__/usage.cpython-39.pyc delete mode 100644 hub/catalog_factories/energy_systems/__pycache__/__init__.cpython-39.pyc delete mode 100644 hub/catalog_factories/energy_systems/__pycache__/montreal_custom_catalog.cpython-39.pyc delete mode 100644 hub/catalog_factories/energy_systems/__pycache__/montreal_future_system_catalogue.cpython-39.pyc delete mode 100644 hub/catalog_factories/energy_systems/__pycache__/north_america_energy_system_catalog.cpython-39.pyc delete mode 100644 hub/catalog_factories/usage/__pycache__/__init__.cpython-39.pyc delete mode 100644 hub/catalog_factories/usage/__pycache__/comnet_catalog.cpython-39.pyc delete mode 100644 hub/catalog_factories/usage/__pycache__/eilat_catalog.cpython-39.pyc delete mode 100644 hub/catalog_factories/usage/__pycache__/nrcan_catalog.cpython-39.pyc delete mode 100644 hub/catalog_factories/usage/__pycache__/usage_helper.cpython-39.pyc delete mode 100644 hub/city_model_structure/attributes/__pycache__/__init__.cpython-39.pyc delete mode 100644 hub/city_model_structure/attributes/__pycache__/plane.cpython-39.pyc delete mode 100644 hub/city_model_structure/attributes/__pycache__/point.cpython-39.pyc delete mode 100644 hub/city_model_structure/attributes/__pycache__/polygon.cpython-39.pyc delete mode 100644 hub/city_model_structure/attributes/__pycache__/polyhedron.cpython-39.pyc delete mode 100644 hub/city_model_structure/attributes/__pycache__/schedule.cpython-39.pyc delete mode 100644 hub/city_model_structure/building_demand/__pycache__/__init__.cpython-39.pyc delete mode 100644 hub/city_model_structure/building_demand/__pycache__/appliances.cpython-39.pyc delete mode 100644 hub/city_model_structure/building_demand/__pycache__/construction.cpython-39.pyc delete mode 100644 hub/city_model_structure/building_demand/__pycache__/domestic_hot_water.cpython-39.pyc delete mode 100644 hub/city_model_structure/building_demand/__pycache__/household.cpython-39.pyc delete mode 100644 hub/city_model_structure/building_demand/__pycache__/internal_gain.cpython-39.pyc delete mode 100644 hub/city_model_structure/building_demand/__pycache__/internal_zone.cpython-39.pyc delete mode 100644 hub/city_model_structure/building_demand/__pycache__/layer.cpython-39.pyc delete mode 100644 hub/city_model_structure/building_demand/__pycache__/lighting.cpython-39.pyc delete mode 100644 hub/city_model_structure/building_demand/__pycache__/occupancy.cpython-39.pyc delete mode 100644 hub/city_model_structure/building_demand/__pycache__/surface.cpython-39.pyc delete mode 100644 hub/city_model_structure/building_demand/__pycache__/thermal_archetype.cpython-39.pyc delete mode 100644 hub/city_model_structure/building_demand/__pycache__/thermal_boundary.cpython-39.pyc delete mode 100644 hub/city_model_structure/building_demand/__pycache__/thermal_control.cpython-39.pyc delete mode 100644 hub/city_model_structure/building_demand/__pycache__/thermal_opening.cpython-39.pyc delete mode 100644 hub/city_model_structure/building_demand/__pycache__/thermal_zone.cpython-39.pyc delete mode 100644 hub/city_model_structure/building_demand/__pycache__/usage.cpython-39.pyc delete mode 100644 hub/city_model_structure/energy_systems/__pycache__/__init__.cpython-39.pyc delete mode 100644 hub/city_model_structure/energy_systems/__pycache__/control_system.cpython-39.pyc delete mode 100644 hub/city_model_structure/energy_systems/__pycache__/distribution_system.cpython-39.pyc delete mode 100644 hub/city_model_structure/energy_systems/__pycache__/electrical_storage_system.cpython-39.pyc delete mode 100644 hub/city_model_structure/energy_systems/__pycache__/emission_system.cpython-39.pyc delete mode 100644 hub/city_model_structure/energy_systems/__pycache__/energy_storage_system.cpython-39.pyc delete mode 100644 hub/city_model_structure/energy_systems/__pycache__/energy_system.cpython-39.pyc delete mode 100644 hub/city_model_structure/energy_systems/__pycache__/generation_system.cpython-39.pyc delete mode 100644 hub/city_model_structure/energy_systems/__pycache__/generic_distribution_system.cpython-39.pyc delete mode 100644 hub/city_model_structure/energy_systems/__pycache__/generic_emission_system.cpython-39.pyc delete mode 100644 hub/city_model_structure/energy_systems/__pycache__/generic_energy_system.cpython-39.pyc delete mode 100644 hub/city_model_structure/energy_systems/__pycache__/generic_generation_system.cpython-39.pyc delete mode 100644 hub/city_model_structure/energy_systems/__pycache__/generic_storage_system.cpython-39.pyc delete mode 100644 hub/city_model_structure/energy_systems/__pycache__/non_pv_generation_system.cpython-39.pyc delete mode 100644 hub/city_model_structure/energy_systems/__pycache__/performance_curve.cpython-39.pyc delete mode 100644 hub/city_model_structure/energy_systems/__pycache__/pv_generation_system.cpython-39.pyc delete mode 100644 hub/city_model_structure/energy_systems/__pycache__/thermal_storage_system.cpython-39.pyc delete mode 100644 hub/city_model_structure/greenery/__pycache__/__init__.cpython-39.pyc delete mode 100644 hub/city_model_structure/greenery/__pycache__/plant.cpython-39.pyc delete mode 100644 hub/city_model_structure/greenery/__pycache__/soil.cpython-39.pyc delete mode 100644 hub/city_model_structure/greenery/__pycache__/vegetation.cpython-39.pyc delete mode 100644 hub/city_model_structure/iot/__pycache__/__init__.cpython-39.pyc delete mode 100644 hub/city_model_structure/iot/__pycache__/sensor.cpython-39.pyc delete mode 100644 hub/city_model_structure/iot/__pycache__/sensor_measure.cpython-39.pyc delete mode 100644 hub/city_model_structure/iot/__pycache__/sensor_type.cpython-39.pyc delete mode 100644 hub/city_model_structure/iot/__pycache__/station.cpython-39.pyc delete mode 100644 hub/exports/building_energy/__pycache__/__init__.cpython-39.pyc delete mode 100644 hub/exports/building_energy/__pycache__/energy_ade.cpython-39.pyc delete mode 100644 hub/exports/building_energy/__pycache__/idf.cpython-39.pyc delete mode 100644 hub/exports/building_energy/insel/__pycache__/__init__.cpython-39.pyc delete mode 100644 hub/exports/building_energy/insel/__pycache__/insel_monthly_energy_balance.cpython-39.pyc delete mode 100644 hub/exports/formats/__pycache__/__init__.cpython-39.pyc delete mode 100644 hub/exports/formats/__pycache__/obj.cpython-39.pyc delete mode 100644 hub/exports/formats/__pycache__/simplified_radiosity_algorithm.cpython-39.pyc delete mode 100644 hub/exports/formats/__pycache__/stl.cpython-39.pyc delete mode 100644 hub/exports/formats/__pycache__/triangular.cpython-39.pyc delete mode 100644 hub/helpers/data/__pycache__/__init__.cpython-39.pyc delete mode 100644 hub/helpers/data/__pycache__/alkis_function_to_hub_function.cpython-39.pyc delete mode 100644 hub/helpers/data/__pycache__/eilat_function_to_hub_function.cpython-39.pyc delete mode 100644 hub/helpers/data/__pycache__/hft_function_to_hub_function.cpython-39.pyc delete mode 100644 hub/helpers/data/__pycache__/hub_function_to_eilat_construction_function.cpython-39.pyc delete mode 100644 hub/helpers/data/__pycache__/hub_function_to_montreal_custom_costs_function.cpython-39.pyc delete mode 100644 hub/helpers/data/__pycache__/hub_function_to_nrcan_construction_function.cpython-39.pyc delete mode 100644 hub/helpers/data/__pycache__/hub_function_to_nrel_construction_function.cpython-39.pyc delete mode 100644 hub/helpers/data/__pycache__/hub_usage_to_comnet_usage.cpython-39.pyc delete mode 100644 hub/helpers/data/__pycache__/hub_usage_to_eilat_usage.cpython-39.pyc delete mode 100644 hub/helpers/data/__pycache__/hub_usage_to_hft_usage.cpython-39.pyc delete mode 100644 hub/helpers/data/__pycache__/hub_usage_to_nrcan_usage.cpython-39.pyc delete mode 100644 hub/helpers/data/__pycache__/montreal_custom_fuel_to_hub_fuel.cpython-39.pyc delete mode 100644 hub/helpers/data/__pycache__/montreal_demand_type_to_hub_energy_demand_type.cpython-39.pyc delete mode 100644 hub/helpers/data/__pycache__/montreal_function_to_hub_function.cpython-39.pyc delete mode 100644 hub/helpers/data/__pycache__/montreal_generation_system_to_hub_energy_generation_system.cpython-39.pyc delete mode 100644 hub/helpers/data/__pycache__/montreal_system_to_hub_energy_generation_system.cpython-39.pyc delete mode 100644 hub/helpers/data/__pycache__/north_america_custom_fuel_to_hub_fuel.cpython-39.pyc delete mode 100644 hub/helpers/data/__pycache__/north_america_demand_type_to_hub_energy_demand_type.cpython-39.pyc delete mode 100644 hub/helpers/data/__pycache__/north_america_storage_system_to_hub_storage.cpython-39.pyc delete mode 100644 hub/helpers/data/__pycache__/north_america_system_to_hub_energy_generation_system.cpython-39.pyc delete mode 100644 hub/helpers/data/__pycache__/pluto_function_to_hub_function.cpython-39.pyc delete mode 100644 hub/helpers/peak_calculation/__pycache__/__init__.cpython-39.pyc delete mode 100644 hub/helpers/peak_calculation/__pycache__/loads_calculation.cpython-39.pyc delete mode 100644 hub/imports/construction/__pycache__/__init__.cpython-39.pyc delete mode 100644 hub/imports/construction/__pycache__/eilat_physics_parameters.cpython-39.pyc delete mode 100644 hub/imports/construction/__pycache__/nrcan_physics_parameters.cpython-39.pyc delete mode 100644 hub/imports/construction/__pycache__/nrel_physics_parameters.cpython-39.pyc delete mode 100644 hub/imports/construction/helpers/__pycache__/__init__.cpython-39.pyc delete mode 100644 hub/imports/construction/helpers/__pycache__/construction_helper.cpython-39.pyc delete mode 100644 hub/imports/energy_systems/__pycache__/__init__.cpython-39.pyc delete mode 100644 hub/imports/energy_systems/__pycache__/montreal_custom_energy_system_parameters.cpython-39.pyc delete mode 100644 hub/imports/energy_systems/__pycache__/montreal_future_energy_systems_parameters.cpython-39.pyc delete mode 100644 hub/imports/energy_systems/__pycache__/north_america_custom_energy_system_parameters.cpython-39.pyc delete mode 100644 hub/imports/geometry/__pycache__/__init__.cpython-39.pyc delete mode 100644 hub/imports/geometry/__pycache__/citygml.cpython-39.pyc delete mode 100644 hub/imports/geometry/__pycache__/geojson.cpython-39.pyc delete mode 100644 hub/imports/geometry/__pycache__/obj.cpython-39.pyc delete mode 100644 hub/imports/geometry/citygml_classes/__pycache__/__init__.cpython-39.pyc delete mode 100644 hub/imports/geometry/citygml_classes/__pycache__/citygml_base.cpython-39.pyc delete mode 100644 hub/imports/geometry/citygml_classes/__pycache__/citygml_lod1.cpython-39.pyc delete mode 100644 hub/imports/geometry/citygml_classes/__pycache__/citygml_lod2.cpython-39.pyc delete mode 100644 hub/imports/geometry/helpers/__pycache__/__init__.cpython-39.pyc delete mode 100644 hub/imports/geometry/helpers/__pycache__/geometry_helper.cpython-39.pyc delete mode 100644 hub/imports/results/__pycache__/__init__.cpython-39.pyc delete mode 100644 hub/imports/results/__pycache__/energy_plus.cpython-39.pyc delete mode 100644 hub/imports/results/__pycache__/energy_plus_single_building.cpython-39.pyc delete mode 100644 hub/imports/results/__pycache__/energy_plus_workflow.cpython-39.pyc delete mode 100644 hub/imports/results/__pycache__/ep_multiple_buildings.cpython-39.pyc delete mode 100644 hub/imports/results/__pycache__/insel_monthly_energry_balance.cpython-39.pyc delete mode 100644 hub/imports/results/__pycache__/simplified_radiosity_algorithm.cpython-39.pyc delete mode 100644 hub/imports/usage/__pycache__/__init__.cpython-39.pyc delete mode 100644 hub/imports/usage/__pycache__/comnet_usage_parameters.cpython-39.pyc delete mode 100644 hub/imports/usage/__pycache__/eilat_usage_parameters.cpython-39.pyc delete mode 100644 hub/imports/usage/__pycache__/nrcan_usage_parameters.cpython-39.pyc delete mode 100644 hub/imports/weather/__pycache__/__init__.cpython-39.pyc delete mode 100644 hub/imports/weather/__pycache__/epw_weather_parameters.cpython-39.pyc delete mode 100644 hub/imports/weather/helpers/__pycache__/__init__.cpython-39.pyc delete mode 100644 hub/imports/weather/helpers/__pycache__/weather.cpython-39.pyc diff --git a/hub/catalog_factories/construction/__pycache__/__init__.cpython-39.pyc b/hub/catalog_factories/construction/__pycache__/__init__.cpython-39.pyc deleted file mode 100644 index f0315105087f16d63b42e02e1a9b489cd841a856..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 173 zcmYe~<>g`k0>Nq9Qb6=$5P=LBfgA@QE@lA|DGb33nv8xc8Hzx{2;x_evsFxJacWU< zOlfXWett1KIT%h#3HDbS_c= diff --git a/hub/catalog_factories/construction/__pycache__/construction_helper.cpython-39.pyc b/hub/catalog_factories/construction/__pycache__/construction_helper.cpython-39.pyc deleted file mode 100644 index e15c98a7f4b66726ffb5ed0a99b1d314a62722c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2135 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 MRz~+=*|Vwr7x@|gV*mgE diff --git a/hub/catalog_factories/construction/__pycache__/nrcan_catalog.cpython-39.pyc b/hub/catalog_factories/construction/__pycache__/nrcan_catalog.cpython-39.pyc deleted file mode 100644 index ec96c428048c42d3742dbe00b2a441b0f36ee8e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6781 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 NSy&lgpJmTE^}h=A{1gBH diff --git a/hub/catalog_factories/construction/__pycache__/nrel_catalog.cpython-39.pyc b/hub/catalog_factories/construction/__pycache__/nrel_catalog.cpython-39.pyc deleted file mode 100644 index ebcb3532c5f8d009e8f2b493b2154ec58efc3120..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6860 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 diff --git a/hub/catalog_factories/data_models/__pycache__/__init__.cpython-39.pyc b/hub/catalog_factories/data_models/__pycache__/__init__.cpython-39.pyc deleted file mode 100644 index c3aa860b803311fdfab92b5b6fbca7ed93d3d8f8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 172 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 JmfN5W^KbH%W#s?> diff --git a/hub/catalog_factories/data_models/construction/__pycache__/content.cpython-39.pyc b/hub/catalog_factories/data_models/construction/__pycache__/content.cpython-39.pyc deleted file mode 100644 index 606b5b679ac59b6928d42a6491072b87c9b72730..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1935 zcma)6-HO{r6rPb}Th^}kFQoMEVhW|L198Llri4-woU#;_#WWOxaTpZMtgS`XI5RTA zMtimU429k$m-_;}E%Y&T+qdXd&lyXy9d=>IoTD={XO6$~8+JMYfpz%DU*gXOA^+lL zbGfj224p?~CdiPS5J81=O@wph45@HmlCC%Z8!m&sN=>HcQ5LI|MPU{uYRn>)W-`r! zmxC9t*kg7YM=~`Mq+bOb$LF!sPuc0o;1rI2=sf|hG<%$cnbcr#w$Sl-lCgho*zuF& zV+MZ_DJ|lV^?&)T&&FEKXTd$eFQnF7s?J$AIN+OET=i) zBzJ(*+y(CB9&lF>uuRXoUa`YN9Zh7mm`PLYaqzfKktqT`#W=@dVhW$Xi<AnQo)- zj7-jpVB=+H`(b5>dP^7s^OB zc1;j+a$%#i{1(E@*z+V|Ylm5!vTP!&Dz+M3sxkOCRO55&?TYQ)!wS%r)q7(4rp8of{ti4IqPPuD8!o=u zz;jsPsV&|U%hxrQvh?mig57c}5*&EnZ6MjNkd*eeaG*bE$=1yy5XR&Zy6%F!Ag_-u zot(a>x%1xnKt51P-Ufo^G^Uqsj&spje$mH1u7)7X6ce$XkD*=^!SlK`yRI#uq8ZL+ zG8IK9Q+%y?#tBwJ+Xow6&$_1%K-LJZaA6GTBiwG6ZPDT!t~mb@?mmWJC#uvr>+a$} zNW-b*9Hto#k9mUfF6VFOVN%|JO`#&rH4cr!pJ_FdI$NwTVV`I$PL08`==4LB*1)V} uyBsG7>Y7i1`P6g$rbB}*^4l7<&bp5N48C@Ao2|nCX$ALZRJUE~`Tqkh+rn@F diff --git a/hub/catalog_factories/data_models/construction/__pycache__/layer.cpython-39.pyc b/hub/catalog_factories/data_models/construction/__pycache__/layer.cpython-39.pyc deleted file mode 100644 index 18e0d1f5a6c06393e4036459d7b4c1269d941c0c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1836 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 diff --git a/hub/catalog_factories/data_models/energy_systems/__pycache__/content.cpython-39.pyc b/hub/catalog_factories/data_models/energy_systems/__pycache__/content.cpython-39.pyc deleted file mode 100644 index b1756708c3a736bb739ad7fcc94ce0863a717b50..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2056 zcma)7&2HO95Z)yziKZmmap3+J-2y#S1)>H{Q4~Q@Bv68&s4ECH0u+Rb1;brSG$@kZ zr2)M=WhF*=4Z96}hBt z6Xce#3%LdIj&KUu2DvRdg}fuWV)u%;j@T3X@N5eMB6*Ovz(b7J^1j2+Ta=j}dRoJN z=tGL?g|Y!O0MefU%V6(_Ow(b{%G=yi{#2%mMC#n;x=5AIJA5J` zd0rYoK=NHK0-Zvn=Ec6($Sp0y)7;s(+bXZR?TwpmckALcQ9FR@Up{y|eyOF>lSPGj3<<;7^pgcR!hFz9pQad!z=S}3mB|h)j@`t z*nomT`UI$gvR6SV?cEW_QH^6=227sMgJcG|xh+H%Vz~iTez>;6*H*sV!1;NF^G3}( zqW-Q%y;-mSj~g5AM%*86+Sx$<^#<}UD&)85Zehm=;n#}7{04*xxq#+ABhSbm2Ny<0 z-_p!@YrG@xC?)5PpcxJ5g_+?rHkO|ba9&iCm!&ZifseiHsYUKQttUXwEJ`wOdPyQ9 zk$2M=TEEh~wpK-q#p*ii!I8K8RqMT9Q};meTOeKhqZk%-=svZLmzyxw)B$d{+aYgp4o95-0B7&RuUn(k=^4Xe zuY*G;@@A6r+~GK)<{`=*&d=vwSe}4c5&N90Hh$esRGdhaE>^Ix1r<&#wTlb^szYRJ wY=u;e4xCcB(;oq|sbxA%gKm?(qfl$uGt|fMEH*dU%IzOlaDPJeVgOk7f9Ue`YybcN diff --git a/hub/catalog_factories/data_models/energy_systems/__pycache__/distribution_system.cpython-39.pyc b/hub/catalog_factories/data_models/energy_systems/__pycache__/distribution_system.cpython-39.pyc deleted file mode 100644 index c88c8cf725c80754cee58772677fd8b63104e2f9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5257 zcmb_g&2!tv6$e1@3;M7u*>Y^l$tI~2GvhFxB!^Vvan+GjPaRdGMs?Dmq`|=4B?THF zm|f5+Y33B2+Eb66$)P>^-{@b^Gp;@L+?gD5sPo$e0f98A%1y!9)x*BU?t5?FzV~}_ z78WcG&*#sdGiycD{wZIwPXR9*XyOq%sx>sKQ^V7Jqha`kM!`25rY^?{UePZ#N{TkU zvR`Rbbd8y`_^sZkKGbN5mQOWW{?=$%w6d?&s{IvR)2!_-1%L@1uMzqj>!@*&xAo2)Ass9#go4c(T@_&V8nxVM9$PwMy32b_H9IU(cL zX3!gOw|yLvzrP?K-~0FzvKe%n0jI7*Hn+dnByAq_d)6KgI;gj`K9;F;cQ4KBab1K!?{a(a#Gz-Cv7y7h3icR`(iFeVkH7D*2%uZ7$sjg-3}HY zLcY~`{5JXRzhGyrR)~s^yU;!|cVLUC{JTMqed+L;9<9VC+YbZov{`I83@>i`t`PVl z9*LG7GMLtp7K}%la^37x#mfeo_y;AN*6vTUJT+IDF)XZ!FK&+a-ti;8xLV~$pA(eL%VfsHHClV{lHEPBVz zUJ4t|CHj6(9pbyTJaOJWW=?2(fe=h!zjo>?W6?x(&6Z>B zfh}T3OBt7KHukh+s5Tdwf_bf|dZw3^QEP5Itdv{M(e3U3uG)Jur%Y-#msM;zN3Ycx zYAsD`^+Mxs;>dq^y19P%STHUQ`#ukX@NjR?Ja)K04jSU{xc@}8aqzNRP7@|`nK+~f zXYu)p!(>}^@?d3rb8N?YZxB^%+wHocZLdm~yMj(Dl=SJ}@a9(L^VqfP$(K!p)%20H zY|4X6AVyk8`Qh*bcsn5vS(sb_m#UF<&fss|bpnraLN!#=xr`MrbdCfOTSb|MzlGPx zaOuzRSICQ^m4;VyM04o{g}R#xrQC%nRLiB9=^D{B7CEqdF6cU&ZTPv_z^~ zIZ~Z@=mn+QPNkEcOjo4bUw7P1X)Y&SeQPiz@i^2Clzx$vhMxv%BO zE$6(p#IN2u;&zeI+MF@6$volqW&9%~|NQ4?NX)N+aX%yQ?Hqw$-TQ*#|0y*%&G>sZ z_7S&5!ed5yh=nrmx126H3HVdugal!c_z3HA{8`}jeHSg2rTr0(4_JZ2PK~M(kvy3*5+d|^ZF3>BECk)hO$humBo+qyM!8A6E zqZQ)((ku;cf^n45Fz=q9$(A643##X*hc!NuG3J=1qAPMMgh?H@6?~b1$*G!`XQ{ac z2Fs{f%Q?tc#%Wx1K~>#pRTJ3p({!D{{;8VFv(&r=hM!UM-8?m?P~L=sMSLuCg2EMl z1R-$+)%!ZXK@D0sRqtD<8@i|{z5#0P=!*LpHOE{%n%}|P z0UEEN`+w}aG+j63?f5*|u~FP{28`D%{tkwQaXF#zAb(d5ti_;$WJ)A*Fvc-Q!}W;} zn5mT{UXZvz0fFiKe}MddH2lSR-zKSO#sWwmN5k7P(v!Hh0=(d4I?o)aX=`WU^3}UP zOg@?!35PdkM-Es`#%nI48JBlm8Bu{^Wj%%3xI`^nCT1?vSFISMdzArHe3a26D$D<3 z;1W$A)_Y*~(NtNi6)G<)y7{uC8!wGnv}x$(#Lv+2``&zME)FMZ@^L*gaT#jW-Q=mQ z$|^}#2DXh-TGm&6)U|drZ`)t@9dFDj+cpiFw#|uDqXGznqX-8VumqPuffr;~mYp)C z40y3UWfc`0RoWn97gd7Dl89H(NfQbQzSgno}{X{=uBTHDtazei#A?=vB~_vm0gs< dr22Vwi7NNw!+Ib~QXz{svvS3l*XNB&;YUsRj(7k7 diff --git a/hub/catalog_factories/data_models/energy_systems/__pycache__/electrical_storage_system.cpython-39.pyc b/hub/catalog_factories/data_models/energy_systems/__pycache__/electrical_storage_system.cpython-39.pyc deleted file mode 100644 index 595b03c15dd945d0bdee36787557d79d96ce705a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3593 zcma)9&2Jk;6yLSiA93s?P12U~rJ-sG25PES;t)YqFl_`1R@A6zm7Gy zUF4PF(n=K<{sIng%%1^&#$Gvb=fnZ=-mKTL6Fc%+^Za(c{C@A-tWqgi@cgp`=F^w3Q&uDJ|;7xuyo zAUWy*482KqnGl>jVL=-%AR6ClDtVhc`#0#(s@m~dqM+SG3yGRsTpNEDhcEgkV1(7Q z!2%g>gQl;(v0Ap#{zB6cIiBPB*VZe$nFqeWi-s=%zrag|F9N^F%Z6V7zQUIbUjlxa zuNZz2_$z$X@MXTn*I!%B${WkEnoD5UYw`6*BkN6w9o@WHA|y5V(5yql*L|intTx=r z7%=1uFtRZ8*FZw+mGzrFum{O!2;y{=Gkky0=4LQ3N`8uq(_3ge9weNOPWVi<5fvj}?>xD%(c7j}Cg z?aCkEiZvR@ju$YWidM^WJrTJ5c!eIZ5InC>UrIlO3t$@;-SC9U7UiCHPnd$qb*hCw zHev3sR$>RIRcsmJ5hDbkfX;9forSVzR=4hwoM=7v25GL_Slcq(2=1$0@Lxn9_h z%f8fFX#6=(#;a3Mt)^$jKrNrgv^oXS+7v{mcDz8Tix#Hz)cW^Dee>X{7D^xVI!em$ zV5g4?=?vpfADr}#%ot_^iom4ugg)SqAE?2t4^ms1ya2BwryE%|089 z$o|Heq#K`-jqpUM4)Zq-&EZWYz=pvl98q3yZ04%A!k;;{6~=>lcSPPpZW+k?Fmwip zm5)B21?Hj)%?a!I2-eWA5_m&2z89W&y$dxUbI%=*b8WD4!VjCrMBf6VzzA6l&r_#0$tX2x&}Fgp7>T@+AvX8x?0k zxe5!lF(@-FbTJU;1k^AxB%TL|hQUkDf)^1X)=5;CfLWLY<{B(~J`b3S8Dvf{UmCGY z6oJIUq(g>@6b-QlIrTC_V5c(Gr>?`ogE84RX8F{)OgE?CTN8qtS-g^r;Zuf`!Lp5N7()#oRn6ironmn9j!#pob!+)GG5Mf~Ijgq8qT#7(?{Q zETc@REEAA0|1H5Vc^S>jZOqIt@Ee+hb{2*M16qZ49!3EMGz@KM7uwJ)v=@2i*Rp5- z2n_}_3fbr#)0LPG4lG7O37T-BWCl$2qbs|^4#t(8t_)y9wH&22n|M6BI<*KyN!cb? zwiTA7D6Q5et48Z-@TS$8?0Ie3{Z0J?0Nr3Y2o`Qfm5zxY$(^qBZO%=ndvsNYw`*HZ+V$o8t=Khg;4n_1mzj zOu5EZ7Gptw1f*y?4)hYX_1{t@W0wlEhQd>gs-tehcl;RoBlvq^{wbaHMzyits5aRf ljb0OvrAbXw7%=AMF+q*UC}>>#B2m%<>~%E$zjKP^?Ej7****XO diff --git a/hub/catalog_factories/data_models/energy_systems/__pycache__/emission_system.cpython-39.pyc b/hub/catalog_factories/data_models/energy_systems/__pycache__/emission_system.cpython-39.pyc deleted file mode 100644 index f86ffdd9c985d4f5995a620eeb329181bb70702b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1960 zcma)7-HIDG6xRIMo*l0@2?-4)+oFq7>ijq%DZN-qNpY8@scTG@Kyh7!GSYgrjAtB4 z4%l(8vX9Xh*w^SQ^lol@(`P6YdX7By+Gbf+MrY0(X^uX9=f}L!hzX3JK75e>R0#PS zU)DzeFE3%5Pe2ILCr3nh!apa%|LFHU5ge0dIQa_}MBkuIbNtW_bEuT1mf8-*YWz zR7mtkA)9R-Y)hIOTHE~&K|^+E=?tcG)cKJ zVDBanvDHA`huMZ{_Cd_OIbme(gY@PBNPixJ3}&2K<=GXlx;(%}Nm(nVu9omtNvEC-u_oT4NAw0RDH_ zJ{Y_)Qk%hKr1RVkdeh{T>rok4GdP{Rb+b$^cES^zYbDJ!{6-wlI>%cudU_I#KT?XKpm&!x(dpioHpc`0l1o4uS;DkhBKmX-(PiXsi0sQ1GR%h2aOT)!cl&I-ezb-8y5l$Qf~kS2 zT&9WEJF?8J0Jl46GBvQ~{fuY|@e=dETBX|F%?~=Z# zl~A^lt!UVsT|)aB&No;USfwHU{)?)!{Vm=$K4}KsZns&-O2>?644NJGhe?Y1E@ST| zJS|shjEOv9Ok+1FBES!~u~Wyx7H)kPwyc45HG;@Awu2p*?vFC^!XU2s-sW_Bx^VUT U%MY&dR7Bq{aDIm_UA2YL|B^WFHvj+t diff --git a/hub/catalog_factories/data_models/energy_systems/__pycache__/energy_storage_system.cpython-39.pyc b/hub/catalog_factories/data_models/energy_systems/__pycache__/energy_storage_system.cpython-39.pyc deleted file mode 100644 index aa6aba54b606ad16578871b4937335935ffb8f66..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2526 zcma)8-EP}96qaPgaTL4F&lX@m7}%m%V65@F78tN#7@B!OkS#NUrX2>)1ILK8qd*e9 zL%M)nU#)qWyv80wx4Y^q>}ETpY)4M*q6~O^cz8&j@BAsORtp>)KfQV--jp5ZAG0V9 z9~Vz?ss~88({{Maz1U5>w&yxW4li;4%Hh87UYFV>zH;W&%Yz-)ae~8CKyOIShDwWs zgiNzo_Q-``n)C$jF&)X2D7zh;o&NAE*&`=WC{iVmJLV$QQ8yB>Pfm_bPf+xv@d&8| zvKKQgAZW_|5Tf3NCVyX($B!OAAx)Wv5_rT&^YB@d^gs^!!70c~5o+Az0>~K?f|F+~ zy*y_?lvy<(Up)<{#~UHT+qobp(GZ;vv;?(JPNNvl{47(&;+H}TauB~{AVvf=U!WQT zh)CZkHIkXq{H<@$iB8?kN(bLJL&F!x%+;4D6;9hlcYEALw{BZEyKP^r@D*OZa$dXb zGV-guV)<3%*LYz03i9i`YWX$fYy6Jo1LW`W4a=|dO}=&Iw5#01fPIi{=fOHdoUAAE zkd3~$9}qH)V!ktt=E1qrz>HI4rWC5RLd>1nFuaGeiBsK2GIqxfb;cf2cU(g1jeVr0 z@d{F(J7|R4s;^}0ROJuRh~px`7{oMXiO6a+Vd- zsgzLEW>&qN`AWpyc2Kx6C|p>byKm#I>#D`ut{u38F#b)N`<)j`fa(kqkWzO}hv5Z- zWRhd5b1^u#bCT}V7%U+Ys>87WazLtM(!V#PdG6mVC(v_oqd&|lltyW!Dcv-Vv~}v0 z-TZI#>4KOwrUyc-z}YaonKm3IHe=_~x_tByLr2Jw&}8Bz5^*cq2Z4@G_fZZ}+Ox8{ z3noLaU0A~(>yVt>#bxG2{3HBTChksow6n;%h%dLRg2%M;m&;vD25(U<|w<43jU-V@9pb71nWv}b#q z0kQ-HK|M{r%n?m$<{iLH@hyx{4L1%7z!pZR*eRETx>ewx*iVQ3!eSW`EeVf8^DhB| zVGFjG7?jntq&JGkGt<1$y+uBs)2{n19QB&%t0spj%>rtAGKL-bDy4r8SUlNTrIgE% zQrN&ZvPvIhUw|IMma*(ZLrj^0NntSI2jeQ(F~oc-3dFQWC?PRw_H$TqeIGmWe?i4_ sgVjaT>bL4Xe2izZ5<3sUG*&AvTy0;n?YHu6j^jJi=#}Zyex+LaA662HivR!s diff --git a/hub/catalog_factories/data_models/energy_systems/__pycache__/generation_system.cpython-39.pyc b/hub/catalog_factories/data_models/energy_systems/__pycache__/generation_system.cpython-39.pyc deleted file mode 100644 index 868a79fad47afd2381533bb3248ca2d43a3cc425..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3319 zcmbtW+iu%N5G5(|B@EYL$;{{JAs7mfb9=dBz@-ahq6M?S$hzkNGC#}kihm_j|2NY3>5d?$w;!N-a8I* z$b@9C!9C;vF6+^vhCf}j?MyaqI2`rjTAYb+c|Qt4ZLxhWrC_gkaDp2!MWY6!qx0YX zN$#lYafJs#7$qi9ILtl$rdc;)bJtZ-oPQmlWpH*iHQ_$$;9Z#-5~r^|!&QlHT$au{ zv~Bju<6xUS{R=WuYwPH3L+I_CxFvGJJk{H#%!|AzoN6ESb^-askH{C1FAFP~FCkwM z)r2o2UlW%S-a`JeSV{N_@>j&wUv;r6uAQ2=LltM%l9_dJJ(;PA8{+1v*1jYRjE{|Y z<@q!KQvAca7Gp0cG-i@hio7-(np%DjSQsvD2LP-nMiY^ zJW_L1K$;&Fkrsr8AoNzf7+ZE4ezq&(yd7{~#ueK~_j>7|X8SzoA8{w@g9KcD)JIV? z=*f7^78x&$_fhe6n@-jp*eZ3}L{Klqrjp)KT%Kt(6NOerU-g{2@=V*ch04|!>pIim z1{&lqx4G4Mtt6;U--j@aI(q}>n1eq~2-P|6A13cOH*Gp-2(DBef!UfGLUkrel0;RV zS?-R{*60o5l5M+z8`<_cDpr?}XhuPw{f0MZeoZ~zn0(=2t(ZQ<)0=p;fXqlcL2sSu z!v`1v45K5OgoP`TnJtj$oM4L`c_ELIsk#nW{O}`K!N0^7DY=Qm*l-2Ie?`Hg6^5&G zz+7<=NOgVq@KZ?S&-0)tPlN6R6%}W=O@#b2!vt4x_yxWbP-}CbXzS&$C>bK{XI0`N-Vh13EMG)i4IBsdjM;WNM=b&a5E=N4`Eo|U! z=&}m_Ez%6DDEKm?abr&7EQ2nh5Ir|D(7(B?x(wAd6l`Zu-I+&~DIFKYbux9_H1*jL zgg$!Z5oOdJJ=ZiovHmO39TUR!py zH59zaobA@!*{1M@_mXDywiN~ljoR1S`R;UZfL*JQCh7$(;Z7})t$b>n{EFIdfG5YM z8-*-7cGZGA1r>~Gc~}H1(Se4bdbKe0sG99%3~_JH5LtAST0gu$XOo?zDV%HM2L~54 z#g9`{q?MSBTg(5j#UeNpV_aTljO!?%d*h@?eLiQ56yK+h#IY3X2gr zR=5sb5;+W7@YxbvaV-k57f%-cFhyt#Kbu2%ZfQN=qNjeD+7}f9+r}18ZLjYUU$yO@ z`rI2!inc96$F|`XYKTic2zwHu0o);6RKS4|p=t$G9DuS2D1v}22X~3g>VCpeLjtnG z6@1kLBqiN6u><~XS%z*E7r!ewzfw%TYt?ITA3r19M}4}bAVBJDagHB4kRz^uB^#R% z(B&WKUfBK?8$VuTlMDH*={GV>zcF!T+VrQxbC(*RA|5~c&zmjC87LAsvcw`2#ig%O Vr+iI!14T92ELHWYzG5KF{R1n!a2@~v diff --git a/hub/catalog_factories/data_models/energy_systems/__pycache__/non_pv_generation_system.cpython-39.pyc b/hub/catalog_factories/data_models/energy_systems/__pycache__/non_pv_generation_system.cpython-39.pyc deleted file mode 100644 index 711df024b43bbddd45dde497756f7f443eabbbef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10304 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 E|CmfXg8%>k diff --git a/hub/catalog_factories/data_models/energy_systems/__pycache__/performance_curves.cpython-39.pyc b/hub/catalog_factories/data_models/energy_systems/__pycache__/performance_curves.cpython-39.pyc deleted file mode 100644 index 8262bcadcd851135988144c25e84d4c1a0ca3828..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2748 zcma)8PmkL~6t^93lJ#y{T2PUoDkFr*CT*jtJs_>vr6`mNX(>^+mC$Y~YvLJay>dKe z#@?>2aB7cy0))8t$QR(i$MBUCUjcF8y>b3{H>p%det9$V=DnHU`)Ar}IR-p`x*zag znuhT=4ysQL1`iFxRG$LFj3a}Y%nHqkb!3^wV}sS0{n}vmE9XgiEI{;!FnPlZ5>BhTOk*{{iWX$P7?m<0F$(o23!#fz|3P3oX0b)1NF*8p<>6fQSpYtOS#BJe0J_CYfY)NR z*T#{}H<-;fUK_8>qdM?)*3f(d_$J%bd=q$wZE1d!ZL=2abJ!Jd&(-4EfJWhr9)EA7kPsFjI4CxW?21YEElFt*H&P z#tblLKIz!Smg}J%H_2jNyzep|^N7(XaRI-8jzSI+@!Y&BTCOL!?+0E0L7+Mtg{^q# z7fwaV^)))2ii+*3hBt<6!8!ju?e7ksD=yVAok$^);UM!)sGQ6~L=8{Uk$z{<>iX0J z*9Tk;8N{zUftU!@5TkdTxn=08VZ21Myr$~KSUPgNT4Er=EE1E;0_WZC{SK8B5N|Bn^{b9t)RuRP}bxyE#~4n)2>WJ~Qh(+TvrL=nKyw zSp>3%;UrjC%Vi+b^`mUCEPFM!Q5op_l>OF{KUOdSgm- zyAHjQT*2WckPqQim_tS@zquL>%Q%0xc*y_IXUWJ8?~Qw;|HFU;k^V#PDv?SL!h}yC zQYoC418CY+t1B?=t=pi|I1aO_4su)DWZiX3gs+({t@@?^0VAv<@;xM&oE3zy9eoaO ziBLWNY!#u^?0-k3e!mbWVW1LBon_$w;LZe8cZLW;HYMOx5=-H6r3h8zxP6X+k+)yW zz&>6D@eWzVq>Pr*D|;mbZwVbt^tG^T!9s5VOJiN&EbsA-aHJRDsMgFyMVa*iefv3H z$8CxzjF5Op7!r=eznmDyRjnlq;QYqhZn+H$Uo37}&u^_dzpC)UJu#yYK3yuhX%0(o2kMiC!#cEnOap27Y9K@k?1yv=ZSi5AzjlQ&>L? z%QEfq_g}M-f3gbCg?&#tTiA*s=*eb$?1}I9qABE)$;X%Bx_aXhOt8 zu}HFY2bb4Dq;guFy}GpFhYMa<-2l=wZM#{wOy>%`4S1XQFHr_Q2_%Z(dHfVB5*SA3 X>D6_ri{_W*!S}HtDlD&dbG!CGMaJW4 diff --git a/hub/catalog_factories/data_models/energy_systems/__pycache__/pv_generation_system.cpython-39.pyc b/hub/catalog_factories/data_models/energy_systems/__pycache__/pv_generation_system.cpython-39.pyc deleted file mode 100644 index fdc491e22509057d5fc06a7cce2fca0fb9dc580e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5487 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 RTRcq-X7T_Vea9GdnZq*6TKbXZhFP z#h-OT{=m-oV?yUPG<6FICoRG$Hv$?OErTLo3QD2bGBs}o< zwJN-_K^oQc93{lQ8wuI&v5lTeM94fhaf7(cl06|qH()A>rP~%v>1lgo{mx^y%+!z#szyM{T)|IpLKCj zGaN0t?F|oZdM>;d*1|{v%Ts`%R@jCs1ZNN3r~?Nug}tWCdq?;F1j;L+_uZb5z*HX~MBfcO+%W!37ajErFoLuw*vjCvRpRHKlU=YAHxH&-rYPr@c}80n z@D*M?Ai!6EpW?RWtH4k5n&ziOS=epL>n|vu;b#s^SUU~#vwTj^*I>S`XXp8Xo}J-~ z{Okc~oq0}7(wYUkpU)P5$gO(>R{!#4o3Wuc6lO2HVl{A;g4s0>TypdvUx8MFroIM} zkZ0s29ne8(U=FN7dCC)JdJ}i6u|5WbT?oEG?U6cbVB!M zKTJa>hI8G-kJ=76yXI3VvNNNTLc#qsY}7MTiC{Og3-@4j{c9}gpA!22}8ZIc$ekU={N;fdsoIG+guU>L=x$HZm{$zTPh@8+SZ#_qyQ5| zE3id^Bj~XPl~s7nYbwvcpZst{K0OFhIt!a`!zYjL%0fAQ6JYryhixh~?qssH!*hV17s7 zKGfbN@B1+E<%#mkRX{TmZ2BVLI2LxxZMXbEuZ{bj~)v+wRZjDScU|bQrk`W79?G+YE1P_wD==v(0c@ z;w|bg9q;a&g+FggG+$#zZ^|sU+Z7R%KS}HyV%1AB!{<6%Nle39a*45Co<(vF35H6E zAxEOeH_Ca!!^_^PIB0iQwXD2u$|_hqgU;SgA6H=YPtepgAjB}KNp0O`4V&5}LyzF- z;m-iR`nUPUoaBWmadZ`u zRl5>HNYcyIp_On59Sc^iOsxcopHy0Z5|Ke&nb%OB2m(0oFn3*oL5It)3v))3N|hP19wLs|7!Zl^D>j#F4%nbjJFpYbn0 Cz74tn diff --git a/hub/catalog_factories/data_models/usages/__pycache__/__init__.cpython-39.pyc b/hub/catalog_factories/data_models/usages/__pycache__/__init__.cpython-39.pyc deleted file mode 100644 index 27f39124ebf5866b9c6d84564147b45254453976..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 179 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 diff --git a/hub/catalog_factories/data_models/usages/__pycache__/lighting.cpython-39.pyc b/hub/catalog_factories/data_models/usages/__pycache__/lighting.cpython-39.pyc deleted file mode 100644 index ca7753f527c1cffbd956b1cce5349159aceffada..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2484 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 diff --git a/hub/catalog_factories/data_models/usages/__pycache__/thermal_control.cpython-39.pyc b/hub/catalog_factories/data_models/usages/__pycache__/thermal_control.cpython-39.pyc deleted file mode 100644 index 8298ec64597f524673ce1a198e95e758641bf18f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3518 zcmcgvPmkL~6rZsjJDcv`wouwFbc9r?L24+AxU8V6l)?&WwOY}xgwj-l>zO1Djwc;Y zD#c1q?FBvnrykm4zW`^%iO=9GC%yt)cr$Sl=g+Pd32-zoLLz=WT8*$Uw%_3Z7Bx*%CQt( z9w-1Am*ij&MiGZU1*|1cN!u*Qo~X4aYds-_;`iWeV{Wy;ulxZrpsJOXPU29+nR6H> zs*1DngP_CNAmV|>i&qJ5?!icY1Hw@QgX%1X8#c3;{Sq}CUg9ouxYx3-g1TN|<}&Z4 z^8z=@OGufm8Dwn$DY{#Hm>>|4a=iO!w z81r(r`EYDH(6zQ)daXjp{1OQwKS^LY@Ids*rRNrmI*jBNkP#jsibfVtJhFjWBL}EG zDgkvyF3=J~@J@VGb+aq9$NiXgxUa&vO%twYUxcyBcIMWe_`&y+y@3$X{NC%d^UM#Z z|I7~~|4A5yYDkmZfJp}EBKJ9TiQf#ZdYO~(sFl5Y$|<*ttj!_EJC}H7yJsD7x5&oG zKRZLVyToh;zD4p9==@Jw-*28ITqeyyPYR)$$HSoG%U&KNNwYI}Vn!aQwB-j%$dD&Z z2BAxP5JV9?tb;je=21-ZD6aK~S((x>4i%+a+Rp1hkmusbFTFDFDz(Y(BZwteay5`~ zfb~Q9rRRDWuW?~ALS5q%>385@gdA{1a-9(H31W0Y7;l9!XQTzm!k^}vRK%QwF{y(D z;XpemA^YQZ?vo=8!uD1qd}W|2mimQnvD8u+^^M78eY*kVeHe-MY2>Ci7X(}F2j`TH zu9Qu?&A%p^4o7)K6YUoT!Jq`7n=mGV-B=K;=z;n~=M-sXuG~xi19O$NB&%f7zIeMJ z(@JA4Mb9}U`*CV42nSNkEkv}m^XVeTLIq_5vJpv!iQ>I8>}c5OV0$?1bMgfd@yDXo zGOJ78`e;&q9vd87cI`ABYy&Eb9&G@QU{*N z&?!vX=s8sOF1n8%Uwm$j@M}D>UR!U_8;sG@3ZPKyyLOJ+bLcHVp$F(XIqJ-zUop)W zx`QtC23-&O2Yci&>y;bg=cQ2zIt4r3t?S;yw3X055+w)=108z49Hv{j%TKz_s+$s> zr&m;vM|qKWoL(zBvq`}-Z2a`Hm1jFlHJ?uk6BkI*Ni{E|!UDL=b_!O@QipTq`u#qS zS+=1BoyjS+i%V@^Q>CQN=u)S^s%uJFV{6<7P1$8@Q`<@tH`-}3PgiwN;$nfg3g9t} zkEly?yS`v-7&;|k5igesO~SInTGi~rB4Tblp`Lc zOazq5ci@#-xi1Ce12vSo_+}+jvlnEQHbBzRM60Tx6Mg=IOs4#qlCC>;EqU?*kTQ1c z@}`B~^Je3E*}~%?_1>eZCvU)i=Bi;IQoA{gd2jX!v{CTYV7_%`EmW=0Le<7CRBd8} b@liF~RcFh}pN} diff --git a/hub/catalog_factories/data_models/usages/__pycache__/usage.cpython-39.pyc b/hub/catalog_factories/data_models/usages/__pycache__/usage.cpython-39.pyc deleted file mode 100644 index f87b079c4a55aae1a1fec4a321b0efd5fb184881..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4346 zcmbtXO^@3|7`7e9ah&XTce~qdVFW@VNKM=H0!u+#ZP6CAEKA!JkZ!SzXEy7V9j9Zb zC{{S2_QHSY0WL^AaODT^7r6P#iC=)kiT53U#G4N_5{_m(?k+EHJOP<+ zMfUuz?Q`l_Wbcy)d!)nte$P1K{yDQl04d{Szwfv%gIfqga~6?~c)&fs*~y-HKKDbm zYiFZ1ZOix@m`e>gE+2OtzY7iHZm;J$R@Y_$^z;KH;&eOEu6|+L{T?6#=qx@uW8AY` zpcZo9g(u7Re2)d8W8e3~uW%tY4qd!d=4HG&6UZW6639Y|Eavkp(-na% zrO0xQtkN}stgw~yReA|}67X3`-&@PyTc;c1y-O*wo+Fp(ra(4Q@%zD*p_Qr4mYvWVeyLj3?&cR27#FzlmValnUvzH>828kYo?WJFJ3moL}4cA6(tt0 znKV@xFbK`>QDco-tOm?Ija9*|I-*t`F#>_#3e2 z{~qt{oE!&?2Pb`x`+j(GG=Lr9UTU|&$yxt9QBsd#o?3S3bB6^d6nu#3fnB@sF`jsO zYxV}QZkkTl2~G17o-S6Bp~>UFXi?~+nZ0}n2C8uu_IcL^V-Zr(pfQxr#eqk6 zKvjh7voP^wB=Wl~ZQ@o7bSD{cha4gZ9xMpC02(r{!eFmtz6Lk3A4&Blc9C=gN`NAj zv?%eMO&oSka{IH%2?dZIxI_@Zbe5;CZ-p683?uw4tnkzdEZ3oX3rfavDcR9nVgH{h zDpW8<`a*5z8GyTmwQMKbKB7_ZEpx8xaN4>G#!t{G;gY=DH@p_QQ$i-BeL*w}v)FF}@M(el zM#8=@nec#f62G4l&m9xe1SeE5%IS3TSS?_%$HiHcw*dIEKsnWUKI5ERcXO_p=LD*! zKI91K_otK0k_&-?vsjwN@d^On6gZ~dEt|;}js$SLu#H8yG_>v{`cWC;m=b*?=6VQj zE&F(qX3yf5N1j=3pFxtAMkn#zA%7bNY$(F5#bxozxZgmo7L?R)%(;E{#Q5lLN8x6Y z*|@(Qppv4=YWmaV^!JZmkJeJz6=!Q)!8{BT7Sn`m7IU?} zi|x8;KJ8m>id0NUS#8tg1jdi`9`_+qh69f09G4(j5=)HBBDPFjX&K&3b`SqNi7kw^ zfQ69y@)AD5{p6UqCCjd03)jwZafJno8Fumd5YT{o$Cq5qlkfIQQq17SF{Q;VDczo>;$=i0NZY%L9zss#aI(a{4R%2Pg`k0>Nq9Qb6=$5P=LBfgA@QE@lA|DGb33nv8xc8Hzx{2;x_WvsFxJacWU< zOlfXWettm!#$v$Hd2H=4F<|$LkeT-r}&y%}*)KNwovn_8Ev70MLssDgXcg diff --git a/hub/catalog_factories/energy_systems/__pycache__/montreal_custom_catalog.cpython-39.pyc b/hub/catalog_factories/energy_systems/__pycache__/montreal_custom_catalog.cpython-39.pyc deleted file mode 100644 index 17e1be9410148ff08df63dddfb03bc4a7891f37c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7618 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 diff --git a/hub/catalog_factories/energy_systems/__pycache__/montreal_future_system_catalogue.cpython-39.pyc b/hub/catalog_factories/energy_systems/__pycache__/montreal_future_system_catalogue.cpython-39.pyc deleted file mode 100644 index e4231be753582e3c136ea6b436d6f53bf022f8bc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14479 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 diff --git a/hub/catalog_factories/usage/__pycache__/comnet_catalog.cpython-39.pyc b/hub/catalog_factories/usage/__pycache__/comnet_catalog.cpython-39.pyc deleted file mode 100644 index 0be06d77e10e041d3764bf8da717b8bf192a24a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7270 zcmcgxU2Gg#R<6J9uCD%ZyWRdv;-r!t?Z$(~%4A@*m@t}*lZgWvC&Ui3TO`y}`j*@6 zRCl#+l|6B*8YG-SyNK1!KC?*9YK1iWj06unARZBKyj=+i310ln15%ik_|C2BA3Fhs z7u>3I?>+aN`+M#=-@W!K6-&Y2yMHg(A6!+Gf1|?WpMk*$WIraZ&R$+~=}ped@-F`c5UF#@Yoa!N9v3(B2}Q<3?6Q0+`PQ!-x&YMp6kTIS85 z-kEV`WWE?QIK*cSYbUn<;cNT)wd>dIwXoX^ zIct0N+U&VD-xd?YcN=6>I9Ne1tPE3F}~6Y?$XB;^eBSW_Oep4I08Z`^trs#SnOXOPp46Iw z$acH6&%L-Ec2jnf#ya_@qwo>F=mChYz>*Y4W2&Pwjp;8G$MAE^_?gObEdRoA@>!|C zOq2?&#w=EPp*kj;W@T1EuE?rv3VIeRVqfc`lJ04?BK>ogjn$UBob9jO47?};yQyIW z!@qAKQ^mK2FZy%T#7Y7qKd&6AiQ=lVq-7;7QI7SO3it+cIho7Hg(GFx9B48v4s@AX z14E{zK~ARSK`K`n6lA$NFl9P5D7KV=l_Zw95LG$;>wNoi3TRG2cT z;+v9OV^K-U;MQa*mzAbvDW8?IvEnoRE0wRZQZgr{=aTt`l4y`!OwzoL{5j+oke-ic zky}j8CFjv|KB+7!46``O4K5_p45e}3kY0-ClBL8*a!Gz9U6s-olRAxbu#_yZsb?BS z@VBf8`T1n&NIlcW0@^4fW>OrrQIl<4iWeE&8pB>@BbmlJ4DBkRZVXg&PuJl>V z*JCc({pn4gAHe(C@JM#*l5C+zF&FdhYpdY)ym&{<4J*cTmHdXweUFWo#NBQOz9@|u zk;p{Gic-XKM+~7gcf>nc$D_q_BSeSx)4)g1-2*uF_JJ=h|Ibp~LoDdV;#?*&T>44% z`LlIHrQzm}lql+;v7rL(UNqTKBWo$G7&bF=ikr2eH)CH^KfS$m`{Aa$b>IEu_U$cE z|Mc$0qpjPLv3Yy#{>H6Mq4&ZsMD^pXNA5bweRgweYg2AM&(r4TwqZUoCqv)_Dn$Ok z3-@AjW72qKaQc=oB0ty`25p%$^M-|W>LaF{3oW)YGg^)D4mkA@ zb1XPD;-yn|W-*v7NKP!8)0kk7wWlYz*^=cYV2GUZ&_-MwET^2UuB;rNI=Aa}d{Nv9 z_j%+p4+jt=au0ovJ2PW*8lCHjDU5lOLmP3$Y{zfzc-?l>3tX?wT`IJEF?oPpI>62a zmc@8?CyZTrn#V^#Opiwaq!YE{!-@5#L+`e{cGsz;vv)@vae1^W;~j9@*i_!dh)7A; zBazXHo{?x|&7RWZH8PPxHXJ@pC2PD9Vk%BSiL@c066f1*m|>K<5jXZb04QF(&wWvU zUG8gze}eX3{odN@<44em9`AQ}7{-qu9AZIvCj)KKmPyX`gOkhgs(5FmP- z?SEFi(mRBWW3uhobuXfW=&wK&wThpmTAHbz`e}w*Qw`J^l9CikT1~C$jZDW>%lMh# zYw}nA#wavSl}xm3Xs3CpG-;Oq%P1OJU0uj@%D*ylX4Y2PqNM+6milvRGTLM)YGpVL zV7@%}v5?&+x&GlFZBGTC1W*5jnzk|kWC9>k0f;Eo0Ej5n2S%bvc=L-vF2RlAnZ~c} z*)f3BZjNb32;)CF07%O37Gm?bnBv2X2}Pkze31>(0;GGgKo*&(N4Re+;Ktfe7@+M>wLJqf)K5t4 zgu>EE5oB5A*D2A2wsKA6WE_(|A|-cFC#)MmJBo4SdmsJ+<^RB^^uK%N*hug(3=)w9 zA1gP45dJ#)5Sd{E%Zt1Wb?0j4LB<-0D{dUZ%h3&H0+N(64uukDh&mYd$0cY;DsWba zHW@=0A)+t8gieIkW5SXH^Pe~UKxpky6h1zT{pjv}VNiw0aT!N+j8qtHxKI8bX_}ii zw;nybb@K-zzxil`(!%=vdv_^gv`N-Pzuo-~9A7>TX?FbAp~q=Sg|UAB(LCqgsSwzB;^{F}OfWKnO^`FNae%NPnww&&9LWg;Y z+Gx4l42b+DwOSu8?!@Zo6qa*Q?D1IWKq;a)(mk{7{0iFmV|>v)5Cx7jb>bFMO*-(h znpdq~<#UEwN9~+?PBr1$$uZMcm-1Joo~0oWXmjef!GBlnUs*fta^GM(r_7vgs|2m2 z)4c(w%T#INaJuA3e{vnJSKHNN<2aXS$9Zz2Oot0Key-wXo4QaPE}$@U0o~gBO0+)d z0N_dud^vo1eA3|}l`b~Ml^pF97nCD7^e4ZBd)0U0V5B=OGu$WP(8{dHtS{k!cZ=l6 z;eg@vz%8-z1UHv)E37)f#m!L4;(AZq;}Y}>84qr7#4|JAG^?zD4~THR>c#*vxc6kwMD6Z&i1!eAI|612ZOyyAn_BgQ$67-K0|~QMF9>OPel=*LTS0opHK~f z75;}rTq2(n@rXPn(j?L*@&S=&M0}9tsyx%9|?hk6SP5;FafI`#@y$C0!eHZHT^`;!9OgN-fge(B0xzlBt2ZCs5m1+of8*49 z69p*xq7niED_KItTz07Ya zdnWL<`WG;{ztoP@KS8)44AlQF5{zYj<-S5P<{~Xaj zvfJHB1Kn88P1wno7_Z0$;TJ%Y*4-}ipWo&@>oIleUM@wDbO3s}19Vd`xn#zqQ^dUdX2?=eOQk z@%4uQ`BL?N81fKFN`UKp@2z`2^L8O$%bbf7h(w)R>4gGgU-Y^dG7A%nd#|ya7Yec%jIsbq{tcpCRS4H1k6GZMbhF1EAC>+^;(lv+PzcF zVN*TR!|Eor9P~IqxH<$#VEJaiHo%pWATn~uF-P0S+;Z`ud`nI|2XKIm4CMQ(dtTJW z*i$&D>Z-r~zn=f&tD;jbn+pEk{H0*UHx%VRsWSejqw*e7_;1LV(omSnG+%9~_-1^q zooQs$gr+yLvMtxnYl^D0jYdJX=)T!5Hj1*G^-Jw?qb$ogztWy+Ov!TIuePTf)3R*% zGws>NtSlG&T6?ZBC(EWk-(F}e$a2wNY%evIWVz&DX)iaHWx4EMZLc&|WVzyBYhQ0z zs`7!trdaief%pd$lUULC$f%1r{!8rCvyCtW$xbF{GRnq>yFoS zJE4oxZRU0&Z{KtInsw)cdv`#3XZ0rXfLq^$yvxmvpnJ-_)Fa!`+_6TN;||T# z>$FfV+-)|GyI?v+rMelk-7xZ++d=e@)$Pm`!33ry#trG9Up6pc;JJQeL!1> zLQxjBUB4@(X2G)WwT`(Hc|j*3H)*cpe;HKXLkjO9a~0^6($JXN$S{p%o+=I9%`*L` zD$BCmQ@xQ(Yk6j%mS82afTQV&xIqvkJ zt)}mUA*f9a;}8B`MWKSUffW8NS|TNevM(!VYOL6*tZ8XYiMw5;XQ+6=g7B_*FyYH=;99!?|8)RbkVUz4py z+Bz3kSz$?uW{HQHXIOK89yE*&O0A~!7ba?p@jNShlKEWaYpfX0OYZr2p{B$dc$ea& zoI&{t%8U3eM{_7G#aH5GjGT+hOA5m(&a(Zh@iaqiG&Z1i8fNgXtN{Lnc;!sJ)W;(F$j3%p81_+>eO!;07~C7fS*A0Y#y$+nGh^jh z@aOtgJU1Lc?nXRMa~w+4uolee@QR$-jc6HjQ{o%L_Br&T_g{(4^Q+NHT#764R6HBk z;;Zqs_T+li# zuEIht$aF5K#Pd|5a3ONizl6{A&Z@I2%=>QB?M6=1cYEgcch@(p^%KYQg|QvAcHQV+ zB#aF|EfpU|d^_Tj+?(EY`3an`1#e^}?#L3EFydm~zPtx^*NG0qTuL9URFZ2pcO5p` z5PRSAT~QnnLXonJ1SN}U4+%nR9*EbPLA&Ed_HgU$5Fx^Q?7KF+@(Db4Y{hh6?Ju&m)?VSgETavK5wQ+Z6b5~@#!Kb3~{@w$7oA@5C@9pi%qvts~`s_ZG zC*q_AoPdSMojCrn8*)QdoNm|cFkYnQEKv-auMA7C3O#iFeWA-En|;y7&J2liEpoGG zU$liYL*j^WYDi0$Jcr4o;c;Tq#>gY-=`m_5pOdH|6s3WV*f6U`G0{xfHZnQ8G(sISP_1a{; z;wnpnyL}Kuwlw9D1&Ha2&xs)y&Zzh^Z(+BT|I`N5tzdSYep>5Ib_)KqgLf%v~|_ zb-phZ{t*2?zqhgW=mBKHN5^d*1ks~=r`S;5PJvta=-~LVOeu!2_nl@GaL>G|43%|Oq(Hc3mkNwV}mdO_D_)WuY$^m{#Pq%Yl+V%gDZ7=@&pX zvAyt_#*BS!NjWb+Q-GfIF?wM@2VyA2kp7tW%WsLmc#-!Zc1$Jj+yJ^{|-k6DG5@xl4 zv>2CL>RFD^!{_SJ>v0umr-(6qeAPI6OL+*CqvLmmi`$X)7P!KHxrqxK{XRlEvSO7k zNIOE~kL$V&^L!p>%jb|?5NN;n2C|;MzP7&pr7q0yz(r7$F3t!)@wzT6D)SY}mXJ;88^I0=GP_8jg{%d% z_VFU=T&$kqBC&`|X$^X_to%qj(y^Y*1+iUF)VU}itE>DS`e;I1y(zLXOi3S*WZy%Z zFmL%@7$IJE-~9sh|3XrF-;3GHz`&7zr-@PMAx<|YQ#_b%p;ns3d zKx^aQf*hy)6#Dkv2lqt=QuS&6CqywB?xZ+mho3e|$-0x6*)WqDEv``=l+&ez!jxQz zLS+DM#gy$ni8ws1%jA;zYt(%P3MQ&Uh-RlqgIo||SBitjwkSh^HycI{k3Ab-fPNn372#8GkDs=0(oqBTKG3mi{$-=)ND#Ev&tA1H$KUWOFL1|i;&N! zv?`k((u|Zg&1S}=3n_J$)rOpjca76qVsg(j+1yX_baU!G!d2h0XxBrFu1pqT{Lmr* z3TT5HP5KVxb@l_ia>#oR07+mu)<}_MA8SbjwAL(obxFD<*T(+>S+D#dUUz)zZxiMT zXC|*lLk}vQophe>^S=cDPI8eV_bf&%JAjWX$V7pSyI*%f5mr4sqbdS2op zK0{Q(OMI3x5)^qjV!Zu?dY=D619lw_91UnW^bs_L%f@>HLjQymzK=|SnG%dD0p#RV(ywiFLI2v`TU3tOu7GqJ{0=)4A- z%E+63HKu1tt@k%loj!0Q3-EUECTY38+s0ilv?$8bo0Vm)VK>@q7Iby;{gPzdR=`h5 zzv;ft0%&|4osjzFuH}VR(D6@^$x#xCHxmC`PgHsxa|ZzUHa?un(%B20rU0^Z z@y1{VlOGqlljQKBom=M#6GFL zvp={`|35nf3_+Vy*W_mKXDDA@cpj%l*Mr}pEu_^b*`Ru4t4xnnp8ojvhDn|wYwfYk%+|RT#^{){o2>A5g8*Wv4*!0XjP$}#2>DQHt z=9G}7Xz!X-qRuxW%YA~VA6i~#Ts?Q{*)c6S$9zTB4?cCdFmHF5`(%srfWr}z%5ZAt zKd0>BFq3Gj&;p8-BmV~)QavFpG1cDu#Fh;i>nh&9cj`sDWs&mOwlHnG9ngC<$|c)A zI(GcDC2!j-XxcXah{mO}ka3>hpwiz{_79Yi>lmAwoFvVUQ#>Z`8_K|}>KVhS)GKw< zH1o2p{tEwR;v=65e017{y~$xj4iD_i38mi^a{z9u2lAmjTt)B!Ac0|vd`c39AuR!A zE5x5(C`Z@L0fm#Qh<9GhBjF)-!}Y_}#IjdM_hXpT6|Sm);|i2e8$b7Ec@}y^V=CUMwUz zl9R*>4E?Jmxl~xhKBiKm|GW&?2vhJsqKuUHMd~e#TZ!GgOa4~gsq`GYv}WMBKt3H@ H&NKfDZP5_m diff --git a/hub/catalog_factories/usage/__pycache__/nrcan_catalog.cpython-39.pyc b/hub/catalog_factories/usage/__pycache__/nrcan_catalog.cpython-39.pyc deleted file mode 100644 index f31ba86cc6f3d5b0c30e06062e00f1fba2fe0fe2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7551 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 BY9Rms diff --git a/hub/catalog_factories/usage/__pycache__/usage_helper.cpython-39.pyc b/hub/catalog_factories/usage/__pycache__/usage_helper.cpython-39.pyc deleted file mode 100644 index bd22447d8eaf4d4c60a27e3342bcba87cb3dd85b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4232 zcma)9&2QUA7AN&V$+D8zPHZP}KE_VtSZ!n^ZrW{&ViA>+EdjD5h*I4U0SKBimY7nc zG9-ga2(X6+d)wP$PyPpTS@hJy9{11Su|4%#6ewz-Mc4XlDnBmZ@13>najUO%Zjd<@PfTYP}$u z1D%*q)X)u;qJ7J>RpS+L2r3w_R7!>j6V#^qp-QQa`pjv&H+Fieg#&MEYUU@HJ(uIX zL{ZnAn#Nku-(_e#1+o9ja~$Dh9!QE|UXGK*izJ8uk^)JC%zl(;1$O_0R$n_2z^9IPxP7L%~hX;Mmi}ir`e(<~na=XLc zJfkO09w+5H7x{P6@?G#b%|U=15KiGVp2HbDkF)p^zKpNn1-yut@YUn2ybjhiyo^`C zbA#N&tN8jG?pt1d59}NGrf=T|dkx?6?M<+6<2%0nfZQWn`0g=}5ng|jfT-LU*}(UF zKhu1R*MYk!^4Ar&)%%!|^m2ExU z?09o^O>_IIsSUij(o0wG_h9P|*IHdddzS5}4w8t|w{(;3LCb)U>78Ywvhn2ju4)dK zB|=}pX+Q^TucJ|4F7Bmwn+35|snb5d@X~M^ z;O(Z9OAfO|a-_P3^ZMXxJQ$`V*L+>J3@hjU{7LsYgLVw^0B`6p;! zHQgf^$)%9z33z^lU^K|`F99-b_KwZn$c{mP*RzE9BJpl7PK?)Gw7%8q6*!G?Qi=-Tkgc!E$8V4Cy_ zc+dr=p!RWei3QA`zTc)-83JL!TP>i#q62!3IWL3qC-@O6TC}ILo|9|f`f zRZ}|#ic1bRBS&%jFG6PHt}!Ebw$>%sHOM4^lW53dZp32PJ3-|HNN+$&KAnNO1x;@& zNNU0{T!;zq1$c+7JUP$GgzwY=X53%p89BnR(3AX}A|W^H;~nOx6TC22ADGHXu!CVA zzANfwgo}sgxp;Trj2wJEBL|M&gFO-)FJ^~%ua5F&ShyC1 z-Qhe7lt5KAXUws3VUC*BGoj3!E^C>hRxCX8QmuALV#eG-saOll zbgSHM`k=7etguc&Y6sqBm^K5_61)B~Yw-YPUur7Fl2qBNDLy2%_xC3tdL7H$+9fb!CPYQfFc8PMAdyUWx%Q}>u+Hxs(a)D|c&Zab8|&zcXJVz;G;V&8Zg2bBe} zzXO%#6Nv;L`TI@C_^scC6g>YBgcUx+3sH~I{xueOhV9__YwTxXEixWMe@l$VjPXg`k0>Nq9Qb6=$5P=LBfgA@QE@lA|DGb33nv8xc8Hzx{2;x_;vsFxJacWU< zOlfXWettgzq~^pImlTyImy{Nz#w3=M m6lErrmZTQP#K&jmWtPOp>lIYq;;;cKEX_%^16lSNh#3H=*Dme= diff --git a/hub/city_model_structure/attributes/__pycache__/plane.cpython-39.pyc b/hub/city_model_structure/attributes/__pycache__/plane.cpython-39.pyc deleted file mode 100644 index 411aab13f0a75d0886fa44c7d1201671c689e3c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2425 zcma)8&u<$=6rR~%c5Ek2XrP3mYLGb8kVa8@0HRX0bx?&Ukws~ROsdspXOe8S-rdfw zOKrJanjig}a>~EJ1->`CPV2y-vzq5OJ8x#+eDA$)94s!j7~0A& zzsWxvjQvG}*PD&O4fK2qLb3sqTv{<7S_6xdZpZe(QI>R`@qv4rNmqKuOnT3(fhX;| ztlJpu!JNJ8?zai9(g+3fh-aB}H@)DZMT3-0t7OtE(HEkf|0| z;-FBv)l0Lnjt-9s@yAQCwYjw=dTA1-T1J8Beeq3C9O`tGwfZ`JsKNr1QfbkT;y{b9 z(9Fa z=Ci2<2`?cnBW=mBE8p!pWy4Pac9cL#Qaudfa=}-RMnMs!NxAH&S(fHeq3X%5T{^jn z4@$3I?283?B|6Z zg~dp#y`U%%s!^fxy^M~#k&Vly??*{g`2Kl1Qxk%5&peYQgT%(n0HO1=!bVBR$*gXq zQ#Y7+P^RpmIsN1+;1lAuDunqOQjmZU83o-;ZCBfE3zG-tRhMfD|4XhH@M8{LiA5Sx zfvutE6a?l?I+cgj#&77=wKHB-0E_RRtc&rwm^_&GEXg(!iR2E(Gxz9-dYJ@8JZK{SA^*>OA~NS zE^a;%AB$UKh~5NZM|>_e=Rv%Db6wn87rk|{(={`@nlk3Z2nyxNKWJS?gEpBa98ILl zc9;?^C7`Xm>za%xc~J8Gl7}UiX97?*XWn(OL;e;7^IE)m-s6|>Eb&=V&rCy;No0yf zp`~u(@*|WfH|PWTfKNM;vkUA6f9hbhU9FS$ z`Fag$#tQb84okN{B&Y605E%%>oqT2B+KKWaNJ1s{Rq=yTiJ*WSMvtMHViG|j%{x

UtIAuK7sGvy!W_jSD6n zQcO}^E+nI&(xje^#fq$b_KVav>p#PHa&tqv4*2Cd|ABC&ZA43+PfEuZKg{}G^fd>=PXT+cLoU#6k&>m_ogndvlBx)^K1 z+0i#lZ|vWH|o{Qk-x6V-u=BjGSVg2 zMkq!`&wd$^S4P)WHa7ZHatA>n4H>JP8S=9(Ez8fPljKQ$&Wv0TA;}A)j+rrvRQ}MQ z_;~0sUnL%JmVE&9=!kp0zCKd$J$NOWV4xuqcoK_9#8+sN$c{)v=L%ioNmq154}3k5 z0wEhsCy=q&$p~p_;W@Jwc05|U!rNX(AlCO|iI<21-H-zxUE^kpa_#FcfgjtCn#9Wd zq}g0^UL(_kAO15Q4W}=xGs}O_Dja&eYu1MoyV? zKvfNwOe^2TK{anuN>!;GrMEr002?p1Lp6g{h+~MYmbblxYPw)7(P^k;@em3p)l zY)`=u_#$#1A-=@>=;e18@iKDJyLgFD@iP88MEv(FB%=4x59lH~+lF|ujNapmWSKyR z;>GU)=7{CI_7iN0P}Z@MOL8pTYbndNUQ1L-SV_v=ee$g4xe^j~wqjhiBA&q}ao}MNtn42|mrC-C~oEg{e z1S%(+Yd19=2uss!2vxvKRl01_RTZCc-t4Rb)ae%IH*ifDT+~hQHok{5ytvzT;y-7P z`l+9(k`l#YvLJ5zcxhP!pRk{lP7-yyO2eH0h%j(2t%{n}AAsY5Xr-(NU!U diff --git a/hub/city_model_structure/attributes/__pycache__/polygon.cpython-39.pyc b/hub/city_model_structure/attributes/__pycache__/polygon.cpython-39.pyc deleted file mode 100644 index 0a6154fdb7100106992af567df0ec4d35d6470a7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11134 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 Ykmj#s!oNxYk|7mbz@5+^Uo-l@0G7e^zW@LL diff --git a/hub/city_model_structure/attributes/__pycache__/schedule.cpython-39.pyc b/hub/city_model_structure/attributes/__pycache__/schedule.cpython-39.pyc deleted file mode 100644 index 0e4387128c5a43cbff4d94b101a35f3e30de2441..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3886 zcmb_f&2Jk;6rWkI*Xxa)k2d{CDKG~_WYL-siiDz4wMwfBDOgdX3go6N+nsT|Wk1~6 z-4vT}YPoSiNSrvpG5-KJF8mpLLgK_3i32Czo3%G~>{MyRS~EK{@9oTczxOqE>UE32 zv-IPy{GT~O{=~`nQ-aA&XmJxdPTGW1uKBc0;a&2zpwun}dRwRDF5x;aKPSBWOlz09 zwnG|5`Wt*??YLdRQ(v$k!k4wPefu+Zm2G*h2x9@GkGTjFuj2{1!M5&hZ^6?0%{AyF z$*%fNBBZq$_4?A=>n7~?L$`AGvr<51~|Z_%p4hiuxv3l znlRUQ;uscOz^iz0tU=p^HgvZGVuRB`4~RmqslKFoUG-(v8=SytwAH9&CEMd!*-rXB zkyY${$4^C^SvGePCttMe#0!KSC!&|lV&5hmr zv5@g@8ptS0cDMU(*O9@{-QwMD`bag`OZqmrx$xltnYu|T#jcYi;B09k;@x-{3e8?W zGi}=oy~MVcP+vTUP-E;jSQ^3A9C4lu*CqJ+fINoiOo?1h=+D|O2$)&}XtcrSfHq@y zMZ!ihFppnh4ogFCA2f4(zmMZ5sQ|(#9vMKxqX0;IA`}urk*j?+qyW{z4F+1Og;t{^ zF$yw0P0;|@Uz0UhQ3&SU0y1bGM`2?FI$~JVqJz0YQIEG8G&Azur?f=}QO<$iqPA%C z!L@14(E5{dwxUpAIvL5^pb|HkDWQ&^zXjA7y^$D$dLbWDT(yc6cyL_!?0J|RKw?a( zJd?oa8C9N3l>y#S0_}_&;7H7#Bb{IzO)V>ds7l5|P1a%KtgM{*7@YDPkgh?gHjP>yER(oBxE1yvs-;6JD{#V0#EksY4^WOFW(x&oIqhWBu>Kq%QsBG_sduN5 z8W(Md)sbW^xq^aSzz)Oc$k`-%+DFiaQk@c;AEvRv{K3#(tRtgfLoqy9b;7*?VdOw2z-c!PJPug`$53e!8Tl&btmY^efi=TnP1J2x zNL7pMcBjy_GB{IMpdg=YgcrJQ?kf|nTi~IP*qHWTi91Rq@+`x=2GkY``;u<^)wF3a zokLuU-h^pl0qAl>Iq*Wry$bs%Rfgh@g8!)yUn&MLL-!Q;S5c#x_!kxBQ&dSsz&QQ| z`TxVeQ2NFAE0Jg6e;EY*0)>4^{GXnHzbc^<1~?_`V4%Km0To8Qn`HzM<~RYx~g*H4N)R;m}cV-p);wjn^lck&@NVVYMC&`cLnBV yK0p4xT-B-CrD4cb+!1fsnE~b73-@w4l>~UuED196dJe!1ym6|Vs$MbaV(CA?glhi) diff --git a/hub/city_model_structure/building_demand/__pycache__/__init__.cpython-39.pyc b/hub/city_model_structure/building_demand/__pycache__/__init__.cpython-39.pyc deleted file mode 100644 index a86a713dd2c933d79c93a28e9fb2d72cb17f3a97..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 179 zcmYe~<>g`k0>Nq9Qb6=$5P=LBfgA@QE@lA|DGb33nv8xc8Hzx{2;x_SvsFxJacWU< zOlfXWettgzq~^pImlTyImy{Nz#w3+y r=A>lirN^hF<|gK)#KgyE=4F<|$LkeT-r}$UsxHk*wFBAs8HgDGqLwhi diff --git a/hub/city_model_structure/building_demand/__pycache__/appliances.cpython-39.pyc b/hub/city_model_structure/building_demand/__pycache__/appliances.cpython-39.pyc deleted file mode 100644 index 021d6c359ed830e0943ca07ad465f8179586cbc7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3032 zcmbW3&u`;I6vsV|91Y3h+U1iph&x6RRmh91$7lrSy4ilQh`E{HT6teSB@QK z>`IAxYySpLTsZb0;EKeb;VWGD7dY|WByrNz-EQk>CNrL|XWskFn;&dp!8PDn`t=X~ z`!QoLt|GJ>-&(_yzGmiXN@_^Cim)|w%p^Vd>yCdUc;V00@g`_({ z$RzzHjuZ<|L?YB$kO`wrfSk!myTnaiIyc&uC<~igqH%~Xx(QmLa zfz}x7S`cZr6wq~agQ{A?(k8poQ^;A=ol>6S?7WN3(X&5Q;S{edNkqCHp}-E}S9 z7(?o+_|2%Tt;WKM=Mym95(Vky!#M6xFzDDO&HdCeMiZRL2nFV2Ms9-;^nKG#d9=n zg!j=D-mA(x()}c-TkOeAXtgs%XmLSpqV=~#`#g`{;VyX_vT$oCCR>}?abKZfBdqUE zVV#lPk?F@d(?S<+LaMzeLi!F^{rV0_zs-^6$Bcf%S;D^W_XPdy2FO2+Zx=u7?=FbM z!=f;T=kg)iIpfM;b&7E=xSlTdeu^6~T(116n zVQf_Di+DyxtSdY(b3Hs>;fe+2s^|TZvT)Q=@jM>;o+t4f&77W$;Xq6J5(8|w0pV7j z*-9jEb<~@V#N{DzLS+dvTqF`lpW31HUWKQd#5){r80raR4zWs3#Uu|a7IB^H|KD>g zqQ7j_EAkP1nAu6c2bY1NT{vv^1a1$FqMJhl&SkierioCEG4i32XiJfine$?Z=X1OX NC_Jexdy!O2{{yBlyUPFo diff --git a/hub/city_model_structure/building_demand/__pycache__/construction.cpython-39.pyc b/hub/city_model_structure/building_demand/__pycache__/construction.cpython-39.pyc deleted file mode 100644 index e0aac978651156096bdaa39c807775cde4e0e01f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3899 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 diff --git a/hub/city_model_structure/building_demand/__pycache__/household.cpython-39.pyc b/hub/city_model_structure/building_demand/__pycache__/household.cpython-39.pyc deleted file mode 100644 index 37e5502a3481b9ddf682dc880e566f5c4d2101e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1180 zcma)6!D`z;5M9ZNt%xK|0xcz{x%vIu44sBtIkR(Hn}C= z(0@ojpvNBi8M^i_dg`p4I8N$97j~GL9gW_5vyxa}4;Zbjuixc2m$6?qSX?y<4rrTa zWF+geE|ZRQubFhO+`c1gC#>leKj<(x)P+%F9ZN{GEMgU$^xk}gT{wzDl^R9fJE_t< z8bu1*aMbM`QR+o&kE}-6jYY07=;&;M(b+hMpEt0-x4#b^orW4^B%t&5LkG@K7g^9l zeXhcs4y8iqMX^A5uTvx93zaK)9bX7kQ;-TyF&YZQ2r^sLO6Ele;a%faD1wj}JXmw$ zdz4m;sItB*oqkQavUbh-o?4NfT)AdfPQOlmT{bGeA$^i$wOpOcF?|{U%p(Y6VGLzL zXW@O;C;3^2w%H^j*(KvMOK+x*&T-Q%w|H74Lxo(Ac&2m~tMbW0DimmLoYFHY9^Ejk zQ=i|TI_<%!QD_E5f?DT;-Xt6gOl}o4gK;seb{ORoPLoqHH#rtzUZ5Hbizt>+dd8(n zL@Ed4yBW8#N$GPQrBTlLhDGg>VNTtdZqK>4?h5|mYWY@NEyhcBUNM{=k}LpSmBWlC z=n>3lLaf9E;eaTGe5_!Oqk5u^iqNKQI?by@(?P2yT1=G;Gt;23+Wa0ooj-(Sm4 zoshp!n0-nhJc2jghDMSukyKhf4Xmyel)5E~a>=)Ya<@#$E|In@zap~y(&|=Z<&d1+6*^CV1^4u!ufypRQvOnv1X9z6bu-Di8AtHM}8?}=1l;+=R(@36hygFP7fy!`;$ zNVEICfEAoh)E{WCcbc$2FWB~j?QPbHLO0UV6Rh*i(+=zDDD683I(nhp1SX}@Y&Z3M zU%^)bOKUY`Ju{$#sNI{41(A*t^~jy9)^>&SH)u{;R#tu%dQq6!dtRKhXjVIPPZe6= z;{5DW2H_FBah(#PNS6X(mZaU1v}EZO>DsESD$-Wf6YDOJ^aqs{S$$={q}`gTy;zbp zkcg2+I48#~Nyp%p)iU6gK|vF^3R@4gMZh?fjl`(Ert=%QLj<@Be!8TPBuy;U0Y*X4023uKuHUx%S4r8+e%=JYa z!=MYy~X0A z5z3=Eo!k9ER^woYmvG)hR^ZGMLM!=aczc%C_5`~Raa+*}b_lO9j4T_5E6_P7FARUf zhu{pxc2&YA8ZcxnX2_|T+ZnC5!}g<4;TZ)ZKyfqIq8eAzsGebE)U1M-*|@@8=*8$; zQW-YqRK{7?%-}3M*w3S26NGarX-f5a0=<_Mq5x#@xi#D|dmsLn&V8Xpz|Mr9s-0Pd z_u-tEzyPE6g{2#?PgXX#OZw||nEC+T*oKBwYV?|n{;-JAad^%X4HEnD(_nj^>YVEn zKN87=>MH0_NcHW)$p09XA9MfV9QTFr8#?3ZB4=E~+&M2zO+_b_ji`;ux6p1pbJOV3 z7$BId-qt&Ni@Y+854_qum!W`MtRE<^4%gIk!jDFr@9J;yP7 zZ;r7`z?;wom-*vG@mgrpn_|_NRYdu_V1~K@<-ZnF&hoOr%uA67lQG#tCc*&=)8H7& zSWK;n7bwU;st;42vC}A>8P+1~DKjp`z@YPF`}3swd~U`ss9s*=v87y>F!$BcaC6RA zIb^Yykh*hBvry}sH2a&``AVAo-%OwL?Irv7^*uDd$g}Uk#9(T8YaL6cPy~we%;8vg zK@AW6I_JNn!XM96IhT>kxn6^xX0^VK`bsAQjghW5u)+MFRbrLEACl2|#+;+^($jc= zHHMTfVS~q5qaHI^%H%67gf#wLzzh+80ZonCcCBX7t*T9(Ykc2xY-(26Z&fvxBUuG1 zC#b(hn&S4^Cs1j&i>l1FNT60bP7@WkClN4G7Ii98HmiL#BJ67{7h^2$?CKh=m;MC+ CR$C1K diff --git a/hub/city_model_structure/building_demand/__pycache__/internal_zone.cpython-39.pyc b/hub/city_model_structure/building_demand/__pycache__/internal_zone.cpython-39.pyc deleted file mode 100644 index fb878f5ebee7ea03fdd1adb65f40dad051d3bf1a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4668 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 diff --git a/hub/city_model_structure/building_demand/__pycache__/lighting.cpython-39.pyc b/hub/city_model_structure/building_demand/__pycache__/lighting.cpython-39.pyc deleted file mode 100644 index 12d9e8dab06bc4151f92fd2cd7d98706c0ab7819..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3008 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 diff --git a/hub/city_model_structure/building_demand/__pycache__/thermal_archetype.cpython-39.pyc b/hub/city_model_structure/building_demand/__pycache__/thermal_archetype.cpython-39.pyc deleted file mode 100644 index 732d6d0109da5676e258c30ee9dc55c22f0c3501..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4095 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®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 DwA3$v diff --git a/hub/city_model_structure/building_demand/__pycache__/usage.cpython-39.pyc b/hub/city_model_structure/building_demand/__pycache__/usage.cpython-39.pyc deleted file mode 100644 index ce6984eb48a8db5870450d888a90932fb13f88e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7264 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 diff --git a/hub/city_model_structure/energy_systems/__pycache__/control_system.cpython-39.pyc b/hub/city_model_structure/energy_systems/__pycache__/control_system.cpython-39.pyc deleted file mode 100644 index 9d08df8dbd47948cfd7b4e047cd385896f42908d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1091 zcmZuw&1%~~5MIf$t%?}h9zuKDYYs6XxtUT@+z<+>F*Si8T$YV?;wZ?HGP?@M-Ju{Kt~-@9iJ(VUZ^Vs#Nmf(U&2g zVNsRQ7>g@N3=> z2~D$c)+Fqc8yJnvVqbZ2OZlpG&*A{uDp2ivcIU+%=v;MG=h0GKA}DNngxs<+ailEX zM%>Qw*Ta)cYE9n6d(zqJv=lZZ(RNRY-7-Np)$~S7FYXBfZmS4Wm$3AjKtp!1WZ0(U z-(QD=>8S?P(`t@IVW#6cxs*76AWTm$t8*twYHC4?f=p;rpqG#b*oXlHnZ;aJ{O!;ptJDMA-L&`0?aw9GJ!~o~VVAik5&gGl~1cH?h zI3Y~)ne(A-igr70;MHXdHi7-_C21>MoyF@-TsE9I$dqG`)vc_lzV#f{9#QQt4qUs* zv$#r$a?WpLR>20ikwdrRV?bq_woCX2CWaJxL-K%fL@$L{&E*_~Xd+>ELO&1bTS8n{ zGJA-0g-}Hz1a@udu*9MSG_@<&bTkne6w}l+&Ap8R*;tit! diff --git a/hub/city_model_structure/energy_systems/__pycache__/distribution_system.cpython-39.pyc b/hub/city_model_structure/energy_systems/__pycache__/distribution_system.cpython-39.pyc deleted file mode 100644 index 54356ab79dede4a0e3f93cd37f534e476c4de1df..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5572 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 Q<_9cJ6#heEmaF;y0nIEwDF6Tf diff --git a/hub/city_model_structure/energy_systems/__pycache__/emission_system.cpython-39.pyc b/hub/city_model_structure/energy_systems/__pycache__/emission_system.cpython-39.pyc deleted file mode 100644 index 77b78e11e4e74424597cc57abfb95c3514b5315e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1898 zcmb7FTW{Mo6sBa^R+P(b*oGAyKw2g4|#icF$Fw;fUe z?B=ccGyWUHeuZB5FZQ%^Xh(`O&uA%-;<=Fg&UX%_aDP8w*nWQfT0Lnq_BRQ)TMLD! z*!3qkNH$?dOghrNX3~A*P8``fVLh+>3ys0EG}b!KGp=XasFbIEP^rQ7b-GnlnVGbPD0?nRfbXr4HHQPx$BMa4>zY73gW1LY|xHcov<9kgn3Ar|0D>+oRabR;OtLWn@ZF)7AdV zV$oBzsvfaa^ov>L3lV3r5n`X>>EOVe4nFfw*U9ML`2B|rBE*tGi?7&)4SxO&^2Yg* zGE|}};lzMd4L~8ZY`_s^oSj+S!U3Wb@Nz7}wy}ecVihzDeu%OrN7k8tb_ZVL6OlU7X#+ zzJmIegnd~PMpd$nD!MNlsq$#$7tP7@kM58}_IIG?K}}Bs>Hmp2AXs}eSSlJm-b3Bj z4XU@~QzT8gFh6YJOdqYs{ooRpw9%Y*7tGn9k1oLT_@;z*w^1c ao}-=%ALH8!oA#^x@0VDgkh{HVp8qe|puraa diff --git a/hub/city_model_structure/energy_systems/__pycache__/energy_storage_system.cpython-39.pyc b/hub/city_model_structure/energy_systems/__pycache__/energy_storage_system.cpython-39.pyc deleted file mode 100644 index 2abd5948de5d0d5ec7480c678b77f8e4c6b79074..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3379 zcmcImSx+NJ5T5ac8SDj?J#ws~jX1Wc7=5VUV zNcQr!{2AW!3-UAOHBb2qc}i7}JvJ~Ph&E$&xvQ&>s;`c2QLj4|em}l`t-9FziTJ{TPX~x|XzM!MB4#w_sblmMqHBsU=IQ@TS-;%5ukAs|*%x%W|HE3J!)$#}SAF z#q?0eDrm5seI0{vW9IroYp2ux_9a_q&pcO!T4C>dslwRnc?!1Jv)%SH9NKJbAdP^n z`yy80G^73yyo1A-{dvZoY&_Xy%_wvuke*=8r_Y=00HQ(PX+w0R@StWS6|jy_O0wr7 zJlYq)G;s|`xovl{yx|JmT`GnnF?jm}R9bxW!&OR{`w zy|KF$RXLiIm5eLPIaxK5s;Z)7KI6*LkqbsLujWxw%eb_Qx*lCk$0b1_u1kNO2{ zO>FvOB+@#ucuEly>=z6z8d@^6EG<0WZmm_46&?@!iYpU%oB~hDq;5JGfkv1t@Bsbm z^H2l|Wq}9>J&eWyC`guh7zJJ^eC~?AaJ_hlGyF(vr8$V$i_Yw%q?O-0v!I6B{Ue)O zdoQ#Cy*CITisHTY&^;6oj3ZC)9S-(QqrJulWAqQqd3zH*4OBW~QvmrmU;4wO%DESM zG3QGJ3mt6PmFzcqlmmQYvg8uH1hIj)f}IoV$bdKc1^vX>u8J8U$f6!gl{49kY14x! zV85;^AM*)3SNN-+u+{ibL4e)g%;GIjh+?>fOTY^c%-ER?R6c+zj6p0Vb!3yfmwojP zj%)J2RT+JhXVv8;u9;3t@S}bfK6K`ZZNkUK04a=Z?7VFoTd;^HofTjK|B~{t@CWLG ztw4@r*v7`)&?$|~DU%vX_Fo5f8PCWCyEfjzp-JK$OX-rR*EmCdW=5Ei_GcNTLVTB znI`+Ju2%zgpY+WG>;Ve4r;6S%%0AD$MkSF_f3_xG2izPfl9$@G*&V){YBb7?w%N(I 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 diff --git a/hub/city_model_structure/energy_systems/__pycache__/generic_distribution_system.cpython-39.pyc b/hub/city_model_structure/energy_systems/__pycache__/generic_distribution_system.cpython-39.pyc deleted file mode 100644 index 4dd5b6b210d104c11b9a25a4ef52d97534228273..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3365 zcmcgu-EJH;6rP#=o6IJqO$rEskclWXQkqsRSD`{dn<^qomx!noEen=2_HHJfzuGei zyUJa2#}mLC~FFYk|3Csy|$0%%sJore2&?|f@8qbT6isfhtZ!n znS4qx*?^|rfsPw3W6R(sw@wXiy|G#*FYOsC<@65_I$I(X(sK#^b$f(+Dv{oPns`x2 zR8J)$AY633(8CpHZ+G)M@__7kt_YQY(N|oAiP!OjTqiqQyF0M-WbG03kt7d%mI&!I zqPQo$?m#rz|Y z2=b+W#H8qhG2{gp$fWd0jGNYi(WVV|sCdm~jtlNhJtI_pg=Jv?4o1u3W~;<4UOF{e zWl`Z}UO6@1n60X)9@cnuG^_9$x3$C;Hb~}1vkG^3T}$S~97yIzvkG6}x3t6&4oKb_ z%_{shzoR8}Q3uK5aK@J)GIz8022t6Zh{m1{M*p5eNTHOtK2r*IxaNfCIJTfQps8i( zxN&08yax6ORVW~@(jZ2X z(2n;L?fB7g_G$4R2&TvOeUWdRrw4*1)Q^-B>def_O8A{KL(YM*e;qc~+b@)ms+|Th zijwwj&plu=7!XFa57K?zTrcU-0O;dWAaUxVo$Z|0G^es^cXPT=8#;$CJ`id3g` z0kP7D%&ZQ6{pCX3*M_fMz#XyIxL09tVjOC0`_CXm7{-Jkz@#IifPBw9xk`@l$gC16 zI&fqF>oEC2?_HMy+zHnS9?!6=*Un6dVU;!P5URXGtFtmHz6&FTTa0S|!(!uctE;!+ zR(NoXO&gBtPE1W06Nq8;xAn*Ou48=6Bn!w9^HVY9K~v6y_A^V`@RwEehI5`sjKl}f z298`C;fvfQUI=NVD}^8p;VUo26GO-dV&E=Ih6rQQn2GS>Ma3VF&Frrh<9+eP8=-$u zO_5_$@Q=M~%G>DNE$pW0Bk#c4>e!nrg8s7x4QXAJ8;I8-$$=m-iTT#d;jy|NdBXqYXmk2506!m*8dN@rd&kqW-((41W(84T#*^S{3~V*i^Zk%&|lCL z8C+#z8S&H=oZR1jxP2K>7;8LA@zshF|?J zKy6AaJu~_9HVB@N0lOl9@|uI0W#Xc6E;F19`z471Yw^s0*C(`pJ2JA`zgHa9i8rnh zy05i$7`ln~ui{T(D#x4tOu*j-!H;8Knk(~o%L!Q^D9s#-7p4^MVKkek^mWSofuu$$ zk6cP+9p24sI81Q$OM1E-XH_Kvq1b-)yc}^8KNjS^6{kY3{`r_#u5!DBFJn62o)U diff --git a/hub/city_model_structure/energy_systems/__pycache__/generic_emission_system.cpython-39.pyc b/hub/city_model_structure/energy_systems/__pycache__/generic_emission_system.cpython-39.pyc deleted file mode 100644 index 985830ab7629b2ceac35e6d5ba5b9cbc27ca2132..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1265 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 diff --git a/hub/city_model_structure/energy_systems/__pycache__/generic_storage_system.cpython-39.pyc b/hub/city_model_structure/energy_systems/__pycache__/generic_storage_system.cpython-39.pyc deleted file mode 100644 index 57fc0ebc8cffdca47a3ee3bdc54ee39fb9f20a72..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2321 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 Gy8j1$9bVr6 diff --git a/hub/city_model_structure/energy_systems/__pycache__/performance_curve.cpython-39.pyc b/hub/city_model_structure/energy_systems/__pycache__/performance_curve.cpython-39.pyc deleted file mode 100644 index e33db28d611d0b84db6527155dbfd5c31a87a7b7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4023 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 diff --git a/hub/city_model_structure/energy_systems/__pycache__/thermal_storage_system.cpython-39.pyc b/hub/city_model_structure/energy_systems/__pycache__/thermal_storage_system.cpython-39.pyc deleted file mode 100644 index ae8aa5c07838c4489c6af441206f7f48f5912dac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2858 zcmb_eTW=#Z6!uIe$#j~qH$cE@!CDYfkv6Kj5)a{`g|MoCZdEm`ghG(zj-6!6T!KAQ zk!;^uXLyA)R#iWX)p++YSX>lgFRS!*xH6MQS?E` zQ>na8GM=blI7;d77j$QP=OOJRv7aaraN2o%*r7v}WMl6@CCAcFVN*y&4}y>@`Xq@p z4^Lz&>1W{yS8_^)q)%0F#FYx@7@1m8$@Iv-ytw6aco%qKB?a~j)X;6(%d0vYOO?Bf1#yrvme<)y z5@wMEVkFT`fCv#@oxjZ@{!wa1U0x+0B zn60vgs-+v*AXm;=#yzi788>FT^0G-lZnNkpdjz<$6 z_z;c-R5Tfw<(W*g;G{uJ{p=|4X#@eI&}@{pl?1KgHXVcsPtDSWrRwmM+Qi{TIot#) zuN4ox1++#JliKv|N_7f8-|!$GG^DW`We}573!DKm4w&AaGV^x#zbiE6ibwQ>hnZZ| zYG2)gCogQ(fKOgE`~T2Rp|$QqpQ-kerg*Ys3dmXp-t{(kA^MQC*Pvenzz1^?*PvhU zT?75YCG@YS!&<;!Lp|=`u~i==A;XmbG`ElIaE^8jtq5>U6n#Gz*i!D@5-G0)m)|N&dSVk5eT5lwr5*3W#^GG)ttOVf7;*@dK96Db$wH(XjQyDLaJExtOe8*IrpV;(SfLry ziOFDjP0JJ#ya_XfMOdM;D10ez&I+L~!w`Pt7R*1Z{_Ku@02nE)8AtN4(mI=o~NtAm* YA)}fpTJFaMil1UBHD%Os8&;$8H*q!LhyVZp diff --git a/hub/city_model_structure/greenery/__pycache__/__init__.cpython-39.pyc b/hub/city_model_structure/greenery/__pycache__/__init__.cpython-39.pyc deleted file mode 100644 index fa613ace03d42688f9136480d00475622a07101b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 172 zcmYe~<>g`k0>Nq9Qb6=$5P=LBfgA@QE@lA|DGb33nv8xc8Hzx{2;x_uvsFxJacWU< zOlfXWettgzq~^pImlTyImy{Nz#-tae krskyvNLuz?2kLM z4%qTt^9)?|1@Z!1aLHrrEmyn(SDZ6z$7?6HJl32&^W&LszH{cBVH+DI14`wOKl#O) zVf=%QY{^060II5i;6}^fCbxVuuv(Uhdd|-UcFQ)6LxbBqe`WCeTdS4l&Z$u?^#6iC zl}>yX#w3V%-xsCRlNUdcr{u_UMW_U5FS!U~uj2{XAV-HMN6__I?HR~OlBYh4g)B9r z-avZY^O*d7P3q6;b<&JNHS-9r1(!YS-sG5m=AW>@q4n9_DIq3!Jgiw z7Y`=0MBpiv_B^J67kUBnsfwe3#h^%`z)~!91+3vlb*jXhzEH7bu@{BO8U;uBP0=U> zOtun!C$Tj!XAEU)9!W)a%m7K}WNmDM zfsCTKeKK&*nGD8Wt=i}PGhJPvgTieRcyQTwWrazA-NP? z5o-sS#n|y97V9p+hUb&}D9{*FfJtfUvLD091m|{2+;q^@2Y?w^P`|lA7+=R1$b<`F z4G;CEr%2ywh@tp1~72m$pBuz7n!a0GFxS%%PN~y7mzUxNlVB;XS@^PJs3F3Ak306 zU3o=(FXxOkj*t)*(m+k7ff}7keY(u8))zs(4+B4BAb*&Wx+EO02>-`9_z=U%OeP^N z>oJVOi2m0uX?|ZPkZC-)f{@*o&|hA3mR%TVXU;NqkXzXUULj5zWLG@Pm$%Lm^dK0X z`GV;5GYj@-eBu0}`@o$y7NAXvlN81?kjJ@XGIU(s!5oBM$bl(n`Ee512a1HMD@jh*&i3T(NAKr2Ty^9}@J*a}(1YxzcT7Hkv|PI@ iCD$e?xrRKa$Z(mvkR`?EDLY?b!c~}z>_XWr=l%!wAj50` diff --git a/hub/city_model_structure/greenery/__pycache__/soil.cpython-39.pyc b/hub/city_model_structure/greenery/__pycache__/soil.cpython-39.pyc deleted file mode 100644 index d5ed8adaffbd09d2ef50c53a7bd01280c64651df..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3753 zcmb7H>2BLb5GEz+qA$r;oC{r`?jfYH4W}pqBM4k5tJ? z`{qrJG=<;on5V+OClc3-mxvy2JjQlSm!@snQNe>R?jfKo@E)9z0&Fi&oP7LuC(`hJr8`I6%=0pzQ{_7 zF9L6}1;v+uUt~*)H-TSfD~ewLzRW6$Uj%-Yttoy9_;t3S_+{WX**(Rt@RiFl+ZxYu z>^^&-Bo$r($-{WY9)VXLM+SOiP&NrsuCZN9N|@LS32l+jz^K8H-vSBsP@`Iy0jh^t zpqbDBnhkS6jW7>17Z!l#!y?c^SOQuMO`s*F0X3NhU)N8n3sH`GR+~pA1;;g89+xtz zP$v2m?9aM(;PjlJA1$gSh!2UgRW*|xZbP)#w8gC;TBkvai?-!b>s796F_`MpHRW2!@BULdE2(B z<2ivde;4R)NbX)lhB89w#s=jn6D;6LY=H_+CJnGQOaIEW`fIba|1_oY+i7&a*2ES> z$-l2_2aUIq3)$$lh3^NA)4tuZM0<2QWuw(SSHlLUf}t6AsSE@-9qip`3eG()`V9#Y zy3^@LMXF3nDdeDGuFIpgG0m1JP z^oLqG5FFrm2LzBgUQ?}Ab%FQcS{DdKDLW+hak>oT5e$iYwEUo?;NXENq3lgU83)BY zJeZHfLnLVW1ez6?Zo`PtEGsnQGgCr(ISC1(k0kFWaXj+NZu^Hxgcq)F1!@TlW+1Ft z0LviwA^~ti0lXdlDRCZ5;~ZTXg!rzx+kQ3&W9}}D6%c%xz*rt*9G#vL-r+R7_!1M$ zVhHm4-FMA-hQz3yX~cD<#OUCPAuXmkwg_E{N+OI8HzuT5&3krUZD)ilfw<4r1vph#MgIIRSBK#TjWm zCCKAjRvgzsa#P@-X&cr-y!TiK=eQrc#hDR`{b3^k{E2dZy3&(Ump7BT#N{fzCMUkf zvEjT)UXbRo1DdJPJrJ;jMpdOz{MC64f~~3pyowLR7^Rlb+>v`9VUV6M^OFI-{yrlvDECWdjv+VT{T~O6&hLY5h?L^kJZJjh$)y zMSwBO_|eBHI;`MEhr#E{IVoQHAHF%6^i67w?{v*asO@7Uw+cCdwGhV0BPZ2W?1-?f zpcL9??4RIY74VCc{s!IYNK&Ab`8K8E0lXU(JHqd95%g7;BCt6SSbzmqIDr*JV2&1; z1qJ3Afp=D5G(>sH1NaXn2(H|KQ=Dpiu(86VC7%N+>PEJ>lF`jVnqiFg8M?qzPO2G! WO^ce$`c_nYG1T`ZZdWETivIz^m!b^- diff --git a/hub/city_model_structure/greenery/__pycache__/vegetation.cpython-39.pyc b/hub/city_model_structure/greenery/__pycache__/vegetation.cpython-39.pyc deleted file mode 100644 index 82f4a9e80639c362e44ea571d96391b86334718a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2439 zcmb7G&2A$_5S|&&Unc*_?xJv^kyd~uV(n(R5FwP67ey5enm`7zz& zNVam@965911@ZuJMdC5$%86ItL{;0K8ABFATV2!LRa5=VSJl;K>+695ZTrVx_|L9k z{Em}mYr*6Qx;g~GjnLpGw-Ph8Ld(Q)D`};6XzQ_^IH?=Drg3a=hr8DXci&i{$GyJM z_Q$`1gWwx66a_2dJR@n&$B78~y=UK&eR2{XTTuR;!sK0>1W>$=CVDwGCcY!OJG!(za{D5$j@O&(Idzd`DYs@?D6=y|NLB z>4SifMqr|ZDFsWB1F#nj#}@Q1boCL4EAz^rkP#r^yFgl37Rc6B3#5HzgLJq7dzq(g zw{&R6Qcx?(mjfc358@72~~w0 zN5xo*!B7g32{{>DRteh~O#m{Dv$&uXw@_;!4AZTC)7_fI&cZS>(Q4jsj9s$`#|?P9 z&>T%41L1@mi-OcU68u`dekcXN$_@!2jI*I$Ynu{1+?Wz^=#QR>9h|O%*n_SxXofr8 zY(PV|cZBtE1*;C+TM+>i4>ptcP#{A!o-(N4e;+gpSoa&SYKusN1~Y6pt}+jc)jab| z$SrHmTOW9e~=+f#RzM;_U|F*>0!pEi8OkH7G3uip3IcZWymo`u&(CbB#wS&m&6ZF1RcGk<3Rz z786~H^oc56B?`E|b^1vBXQAULku-@%T;h!>5m6)Ibn5AvhIbIwHT4jLZ`v*2x6Hu9 zZZAEz^qOT#eB-q3%lF_}y2WG!#Z&JTegNgab6e@}EJ}X|3=q3?sL2X6dr!tTQlL;`U?ntFAe|z diff --git a/hub/city_model_structure/iot/__pycache__/__init__.cpython-39.pyc b/hub/city_model_structure/iot/__pycache__/__init__.cpython-39.pyc deleted file mode 100644 index 148740e4012df921765d4b0434affc888e2c9eb5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 167 zcmYe~<>g`k0>Nq9Qb6=$5P=LBfgA@QE@lA|DGb33nv8xc8Hzx{2;!HIvsFxJacWU< zOlfXWettgzq~^pImlTyImy{Nz#$*CD e#K&jmWtPOp>lIYq;;;d#D9uT=1KIK!h#3G(r7P?J diff --git a/hub/city_model_structure/iot/__pycache__/sensor.cpython-39.pyc b/hub/city_model_structure/iot/__pycache__/sensor.cpython-39.pyc deleted file mode 100644 index 97f0a1ff9c4d2412769ba30162c612a0d0fad0c8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2244 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 WcF{9gW1jDXeJvd-q%TIRqyGiKJl+Wa diff --git a/hub/city_model_structure/iot/__pycache__/station.cpython-39.pyc b/hub/city_model_structure/iot/__pycache__/station.cpython-39.pyc deleted file mode 100644 index 7458aa74ea2798122ff49af4593387944c6ee2a5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1501 zcma)6&2HQ_5GEz9cCFY>f~Gz6QUW;?TOdN<_GARDflcfLH4Gz0fkNGakVRT%Ac-4_ zYOo96;%DfohxX`WE_r}FhR|D2eTAGdLrIHmn?t$a@K?iczWHX;ot=n4yZh@~@uyG7 zU%1$8utyG{*I$7VBq4$dub>Hq(J#ExPkc&_hzP{!nuyVBFA0QqMy6r&20n<+Y-*LR zSgA!*$ms0!@sI2QJ64&jY6-JvLRMB?C~5ZD@zLoqY<(R+1gi~uP^4CxXr>oSqw-73 z-rcahhkJW$rmIXFp;9(`@_fc}qnkx^YV-@4SvVBZu%kv5g@nO^Ya>@IcN?bEaX##o z+Gr~evcX%NrP1F2nw(5&8=e6|Z8BVMwg46f(Cb4mk^m1R@dQnLvEw+PNgzie6yt01 znkFI4Ct}OZ$8sbmITg`wRNNBV*8!YwIj(lwanIB0lZdf_v#dz#8rCO=8D?Q zpx2*)xuREulPeD_%?Vgf5Xb;Mnfk5Im1xJj)aR;@?S$7Zsv1s$S{4^cRCfu2Yi0z# zZitz{@c#SR{``kpntI-pMr%7iU1pc5DSMXd`DJtNdZz3W+zVOo+L|V_jgfN&AM}pn z#S)(7s#2EoI|w-hLud%U)tx@nc({;JJnS3J*MWWxi!1U1h}45(FkB?VI#tkUe+WA-Yo*}~{wlz?5U zog2_b7nL^7{l1Y9V6_kT-5Mx1sE9T|=j{mXH#gLbVb2lSnJv8HDe)EY7CQ%l~d`CjWyhJtqb?%l)5yV9dP<@fMMt0 z3j~S0lW?^=B&a*Wy671ApKzb9;X16H_<;UGSGlV4f#yD2?(!P*PhAE6Jm5wiK8kzX zi~7qA;I{|hgW$cB!)b&{tkP0)-bNf%3;#(l-{$;flNSBSm~){s&JF%CwiA%VLK?d? zyZHWXG)RuQiw0|D!(g5b*5@|#8r43bfgg=L8f`%zd(@pyM+TK(Zh>jg`k0>Nq9Qb6=$5P=LBfgA@QE@lA|DGb33nv8xc8Hzx{2;!HwvsFxJacWU< zOlfXWett6J0@ e@tJv*k$}4gJ diff --git a/hub/exports/building_energy/__pycache__/energy_ade.cpython-39.pyc b/hub/exports/building_energy/__pycache__/energy_ade.cpython-39.pyc deleted file mode 100644 index a21918845eedce4b51b2e040327f33aff824100f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11315 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 WFZbka9G&75!A35R9j09#*Z&jyDfr+3 diff --git a/hub/exports/building_energy/__pycache__/idf.cpython-39.pyc b/hub/exports/building_energy/__pycache__/idf.cpython-39.pyc deleted file mode 100644 index 6286a2fd7b6087e086883af38d355102cd2a4815..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24517 zcmcJ132({TlU%&4E|NFnXi@m*>5dJQF`?ouv|DI6jH+j?f7sbs* z{M^?7RLBacu!>Z|Rv6c4C9)N@qG9I6DzUA&6_<3RlGsW{LgCO>%1TR4ypq|mW6!oNB$aUUKwAe*W^(JhDDEejc!<^N&}G zbw_8WYTJ9dw6R&w|NQ&;3+FFf$WPU(Yc;J(#r)LF@>G69*LJrvOS)Ee*6Mhu9G$<6 z_g5VMqPJ?}mv`%UiFO)SYr0lS&p)~ar? za?7bZ`N_(yBC6+6auvmjT9@+MEHu8=D%9O-{?5NeU8+^`my5TG6;;fy)XFm5j5 z=PpD-AtwYp2w4#owxTLx#Z=UatC*EgaVx13R!SwUv`SeSmA0}fWA&)4)vJ0i*S%K1 z>a%jH-x^RkYfueXLu$|(Rzub?HEfNjW7cssVvVZf)(JIgom3~RQ|hF3TAi})Q>U#n z>OSj!b;io8`>nGoZ=F+Ttq0UO>p|zC^26!@z>g@VA5jmLqShEvkE(|OKdMdxKBn#i zd|aIY99Q?3;?@&LomU?Ld{R9EctNqw$JC>MPpOXrKCK=Dd`3ME_;EE3_^e{BPpI>y zj5VQ}>SOAux5CyZ)zj*kw?fu)&hzTy>e;tKZ-%WGkp6_4ko1e{lj=DbiOv*9B+MSyHcjF`_K>nYUurr_~MhD)N`rw<#Of zf_hCAaa~b2)f%p=N+}1|YieC>;CfwcsuHd*tFn3>*H=_UZQ*LEs;c4o8MUo;aJ`|l za&diC)zvPp-==P<+ql~54Yh~sYpS8X9oM3|0P5cdHmdc;iA+8}<5T}yslG?52bLn& zN?lr=o1dOrxa`HO#f2FwF+X?t%1XiNTU@y^vpn z)f%Hg9}26>vy)RZ6Vo#*lXLSk(~T2_E0gTpL{Osr=#>9xX?byJW_jh6iRGEu`I)Je z$%UyI>-Z&~zZG`%dU4H}cIw4a#Zgwz)Z#*6WqEaKWo~i7N?qm0%uUWW`h(QO!s6A* zLZNZIm9f0IID2j8GP=Y%jnlI;3o~d!?(XRDx$AQa(~H+zl?!tim6^-)lNP?he6E$f z>ZsE0)^crkW3zETM`dndc5dEp5?@%DySy+vzjz(*m}#70foqt8IgBnkaQOL9Vd~1v z^y)lDZSs|gD~qek^RF~=t<0&#t4o-iMsF(zubQz2gWHu?mS*PXuFkC#8i~c~6N~HX zUTRhs*XpHOwUL>u?&TMDw{AMx0u#ncP~ENVx>jns5kOxJ4bjYO^bL=A6EfS0S{o|jzNbzCOW z*BwPaw^n%l4vIIJc;KqDVahlDycM5aY<$B*@K>DsGNE)jCQj~rSZ$W89~inq)DV>s3dZR{bxwq$2L&L9%&|3Xg8$4qEagT z7Hfsd$EVHL9IK8ulhdJBAK6be!v~{H^lLxeOqWlfMp%Ef8H$CRfGMR-&Y#dU=`&a}Qid)X_1Y_zazWU-=Odmt0H85Yh?Pz zRz-)#B3@+tyq5~39(@881blsVYU0MK>uC4J?iTQ|eq(8GZL_Gid~wCSvAKIwe!lc{ zBWS~Rs*c{+yMgZ>-`?{w&s9opeXX{&{lW$s{{#F&4Tw+ct58YYcHuCw+89P>#=LQ_3hody$umVpG4E`tab1; z+?np#b&QzRXP1<+`9Lbj{d(8EvwgdLuQ`rZ#&znb#^Lf}XkgvzsXDiDt=**D=JneF z%dmxCcv*XL;T3yf_3EXWWiM^dE`!a0KOrAHc4cm1b#b-eCGEupdvSIa1*Yc;Q_C|e zGv0t*FX|1aZU;l@dP8c`Nku&FO2A*37@ z)Q<>>pR7k!_|5QVNemGcc|D|`K~9u+U{|qs!H(ovOiEwDGq5E;CxOxmIZ2d`p>(QM zIxeMe;aS=*9ak*UtdM{tC)$>J{EZtFh6kpvqbFbph=Nl)-^UKc8Zb>^TzXclH+TF@m ziZm(~$ZnQ0DMr$nAJ)NWD#iiq3 z(tr0@L_f{;a?+mLZtxIo=(8wQ!_Pej5CXzysD2brM$#;4FZSj^;BeWgX)Ww!AhFDH-f}o zkZ5>WQ^Dpk;Kk*}&$H{h5R(p#8dxuMb6tAFuGgf_XVC*U2M_|g;C~FibK#zFV@SrU zyL1=tAm3>5j>m9=k%2gakvW4=gWAcF;i#-fIC>a|sEh-|0*phna~wG6Sl4H8(U%FX z5X=#@mRG|O2Rr(ILCGh)jbg6YNh0igj-4Ml)Oo*X*Nk(i>cLND{D+Y+ybln4##fB+ zE6U__vDYKI&j=_x6sAIDd}ld+M5(9zQcsa9>1`=X5h~7BaK*Qm(<=OSEF7vn)p|WeEs{S(Th|)&4FmQvgjKg*tgbm@X(^@W z@o`>yWwW&Qx)kk!{H@5GZgGK2PQyUML~mi+S%ZOQ&AtLY;0*;0PTq8DdRtob1`0LU zLF~?~p=%|#bQ1zXN9Ndo{s>>1DFutZi)A}dWlXO`_Qf8wMoz zJ0;f;_zkATJ>bhP620f^idYbP&U8+JhuInOoTpJfOxQ8aU zux_n;r|$l=I+pNyg70j=mS-J@Y~RsV>jS-$cmI0OR8YY z_W0=c{usW`C0h@Htr9_dM65KcL?7pGh;G8GHsc*>Ue0byx1!sKO zj4=^A>(5kTLGPi}F47|w@O?x0$!Cb!Befs?oNx4KV=9F5Qz+$yZAh!}4sJp%Ri6R) z6DIBlXgu5b?IP(Hp^8hL_Rt+=z%bSs;`&(6p-I+nvH81FA}8023+MLdSpQ{K_)da0 z&HWYLie8-$X7+CV`wEI4F|{YdjR(J#&s*bM27kRsB=Hl9dk%&t!;k=toOuR|Y>adV zEf!k#7eenwyX4J|eAK}*N|~C{Crx)>jPA!(d_Pgga{eZl`hy#h{iL**+)t?lOmDGr z3i+e^nPytddFf{6LG|BR{7 zwP{wglCveJqUwX$iYgoWSUgb58SGI$-# zxgqyaRHw{4OhExQtH_@wqA}=a2@xJf!l#j+3!lfcLHswygt92_{#mWBarlEj%D^f7 zguHGcQ4iIro<(3C$8r`Bm5RI@gJnHNn>*y-ILHX(1Iu>wd(MlLn-C(2Lv~HpfpTwx z5LMz`Bj-+B2lB=6|7H}5Tkgq_yLld;$p2UHYeumcCKvQ~*mRILB9CRpQu-W9X)<5^Ac3r84R?@5*<_f11ypjORO=h zGHF=cp(#3MOYPQVxMHy!;gpD)9DWePo(Vq{Zk&)IKdN*W2aDs?{K*hoNMLx44lEjS zFvRbIGrb+bV3JEgf}j<|244b9!eSV+Q*brJ?6krl+ZmMr%z`7u>>lu-nB6P%oi@X$ zhw&O?BtgGJrDri}R(z_qwNJ$T2QmFa#!K!synVt$HW{IgR%IbIn{rQoougCGMTbU4GO8r zj0bdeA19G6ict6rD2if7@bB9^NIzXwx@MB=P-`ZC5jQ|}tQ%0_LORFsSDe2nNMU3@ zPBJLN_N$_=$MmR*?Zr+ z;za1Z2yAAd1K5MjeKYYM2#W7*wVAp{o1gdF{5;waNffH2U!UYh(P8$39|l|zQk1m; z*8FJ2C#yCu)<1$$#tiX3Q$Gseib#$eSa2ki?t2HPAmXrN1qOrssL zL&FNuG)C2@QyJBlAm@k6Faf|s5Z1Fui_6jE(Te_V6qY*5{FFdm_D8!}d7xov*Noo2g` zZGgWWZNv|?apsOTS`y1U;hpE?yJ-!Kh>Vi#kWo?#vUFPg)6RNvw^F~#MI3gb_akP( z?_J!jyCnsQgmxrBQ$b!tOfbV1yD+rWw&>7HM_4P^!0Q9wp@YjczGp9U%YhS2R8DU| zWLn?%U|dTlffMG<39($cdKo#^3ApK?T1gkNkheV+u6~U*zKh`R5Rk*dm}m_1fz<+D zGs*ya`b9jo`rBPFFSS|m+X((4!50V)2o6!ifKWu|>z^l4JcFXfU^YTaLxhI249LM) z`DuNCJtEQ<9tlUnDOevMPJmD-R5XsY$fUE?E=nOEq>L_<^0$#_VX=|PAExbBEZD#_ z;=QqC18=%)!Sy&K;{g9rlf3e{2pCxDkRmM*S6NTRDXU9qT7(VO1d=UQNtC9$Kc2|r)9TISA!Aq{rLg<1k<&-hU(q3y{E|#kHRLxn31-At3FesJUs1zFzK5Sno)<1=> z)jthj4MX8pwcA}&Z|lE@N0{q2?j5&HAWGX(Ya&s+{@N|brHlvJF#R76tN|7kAJSi?>Qd`{6 zCKY=dQ5s|Mg@%cbtU-mS=NtEtFz}&y;aMg#Sgl<=o~pt2bhpPo!B}VfM(l!97YCbN z2-HduCC~V++~qk8y%}+F8a!^z5rP}q;ce{+>zoYBSi+^>QX4jExHze5fzOeTV!|k09GQZBA_+uKw2-@TjG=z{$!mz)%LjoXh5T6DOItuKBfp<57&H51 zr&FMNUd{#ccCRwQ+})$h=!%1YGYa-At-+U0K$mOJ=7=rfh&JO9ZNwwmCPGjDOAMX< zB?6M8{^tZF+dvN>(RpdojLfi=DVDTPmzu`kL({CkjJ&_Zsim`oe9J6|87zY)9whdS z#_<*{b`yHn1d}33!!p6NppmNJ*aS5W!&9UT*t;IO5)2Et?&Dpt2v&${rIOsR#p3O9m{u;~zE5f$l+Tc;?75%0)`;=pJGXb6Tz zq2y2iO8{f(kSEs01Z!E^m_lO^#G+IjIo!=F>X03XMVej_IE930ygnCFsgH=abbBKxSn;}ojr_J z#-Sc`|8EkjjM&C_6$X6J57~)Rkw5Nmp9l52(1)ZhSdd(4^lX+A&I(3 z??4T(JD?O}*+i=ZN~OT)4EjW2X9o)eIx+m#e?qp(FY~12hI75R+1=re_d$w!H;`9)?;33RS>q)||%hWRUDcsx)j|y9mRg zz1zqX#4r6{2>vU8bz(^Zi)f8HggI7!i=E8_XMhYuCH>z3#nOA5i} z0Zjz1PW>A!P5jZnNpJ{h5aGGBG(X3P`hr26%pt^qZIeBx9b9n8>JOT>&8zfpvEAP$ z_#J}ZB{(Ga8zHFO*B>LQJcxoJAc_fZ5_G{@3AM3<34sy)QHM~}ZlMclx`ZN{AUh;k zqKPMvynq%m=h7d!^i)x?=ghKEg`U@Le~gVFU#U5Ebs;r!rEFAAXphSF|41!a__1QP~T!<;i94nj3vE6g)n5djxf7TybTK?d~xY*ehgN_+lGa_G&z9B;5~Q-upUx%@AL+YLJ$){i|As*PB%m?zI%t8k?d$lyIS4WPybdg(FC^>wUoufZA)E@1w0$rWzM>$TAjP}n&*{OpN zJqx(X)+$`ZoK%j{ufXv(3aU+UAK{MEp?4y${;=$DNK5)Wa5z%Vs4&7Nmv&xYTJlH4 zM3;q8>IE+7*kol|jB)!EN{97#BDWv*3*5`QV&xo48@~o(8ko29&dyC3v@(Ttdr^CTOoZ7Z5(4rB$bkb5yp`tUK|65yW?H?P)PiImV#nk9xb2f$bn0{e6oD1 zBL_+ha!z;Tz_Wv#`#N$E{#ia#zP}>}@@qNYm4ndG^4V6-ImP(o2kH-&9}Ip@WYgQX~bhU+`@`trDZMDeMu|`+5YPo?lkI`c+~Zw$<6U=8blsirx_h$g?n2ky$J%#0*MK1* zY&`Bqza#or{F%h8z7uhOpgpg6_6xWpR)vxN3H0n~cs>1oR^c}~fElHA&oBHqEoZ=( z3rIiPPM1GXo=`b8pa#{DF$eoO!*}EyyCY}hj-2B`4gxK?S@09(PXazC#@9=T>>1tX zra_bYyyTAV_ceRUFEsngFXEe{`ZaZ8zxSQ!&TCCT_oZg`;9|3fJx3nyKmmjMG-ZF{ zV6v6}y>fr4K85S_oARB^fmm>|s6hYNJ{)W-rmZ#)K9{E#8*2mh7c*xAhK*{To7ToN zQhIK^b@G7AO~{bH#AM^-VLHh}zPJSsn|cgK6jZQDd9#Ky2yWw`fILKdsL5P(*sR&y zmB)VnQW16*7v+(yZ-}g+yK%Y}j&5OE+6y!(thyKru{};thF(;#gt zu6LH0%>5E_YoZel6=`j$@SV9O1h)Sq+x`;4kF(WLU+D-O%q{O3wlws4!{~T+H zGWi5k=LvQR{w~2A1pf}e8)}*P+Hn-^m~6!R2mUEIsEx~|r7C!*){N7}ruX{LL;dS~ z#or+Kp9FtQ@Eri&h+v=y+oDkT^1o5jHd$f_J9ls4u#&FFZ?l14A^493|A7UEealB{ zC~1h*zrg2TCip{wuMzwj!3PBYo8X%S4+B8EmoPVf=eTDAeYUBOv^LH4m?E37`@&!c z%MYaUn@KBdL>+b_ma)tJBR>771Q!9YFSsixM&i<}7)|@oXpPO7lWO%CAF3-m zx4eY8!!CZt5_m~Jp5c&~uAjmi{s2_q{yY+)EVUMRYvo5f4r~Y9hJgDFeu?m?T$!c} z-~Pvrn-61=9BQ*Hw<{!2FZN*szZe1x`VRdMBJVUx#|~*{p9)W%C4Jtu~`)u3qe~7&8|pn%2>?mMF-#wH#?zm5Cg2o3hSV2<@_Db z3fo;7Wq_Sw!5(Pste4(cfU-h8#f$3QstIDu#RRTUK2+02T;~v3gfQdSdu?S2y8|pAZQFHczh%GORIhW$d zJjC}{xd*8S;Sq>pTU`j->f+`8a_&S3?#l(F2cWDDLinohETHTV%H|l3Q65JAG30;O zP6KdaXL@IX?>QI=f|;-h0vacovX=#C!cj$4aDQwQ+T_mix|N0H8v(62^~Z6?j_XgM zpp~J49VQTvm3{zYBco}h+axZ{WwwfMz*Emw#JK7W2gdZ`O{#c23#qDv324Rz(hVEZ z{QzE!_Fu0D^c{o_=A@aH?`|UN=j@MR=?1_3nU=ZU)zMq ztIZUWhWYvp(^rE-5rUAQi+s*X#~tTk#G@io@c;-DIDE=!Xc5q!4l=$z7b#~Y z-p17IF*Om94mT!AYzMo~L1fsdMip43ma(WcTrixui^E#aPnXu$cj-m-(|nd zp=OI)Fud7Egr70KKsaw;egYNKtBqJ2Y~H5&i-_M;pzdMXYS%1JCh$80kLLqb;6KlV4L`d*JiEhd*60BS!Bg{r4Kh}21_XT8Fo`k

}SlN3qothz#OFV)TNSxGbE;i!anr*-I?cSnqc@aiP$!zvw0XD&ASVMdBJS`FsH3 zXjN5`op6ih=#P_kFXG|VRa?3PNyzKvOIo-3`|vJ9d?R`sbFCRVYxtQ+#A|qto?^G~ z!n8L4yBALY!HEbqFbAhLv}wffN>YYC&nCL*K|jenL}Z0D4#Df>sYVVq0*h79}?KQBL6KVjl z&?oo%QTjE!En7a->=#RsZ{{5vUeGw)Af%rrc!uEP1kVzDf?$H+lLXx3rWwSmUm$pq z;3C22h<{^DwW!%TW+3_;4%Rz zTF)^h-6q56AlR39dq|8LMc$W4rYopQ*C`bpL#lLWlTd^EQRFj1!nnSnHbJ2o+RZyK6^eblGdk7Ih)O`{LyX$rN2^A2{wbz@8enDCSAdM{ z{g0XdPY8Ynz<29fLr37Xl?;NOlYUgTmMHn|8TPOvoV)5^4LG6=_jfr`!*~-!+$vf*HY2Wa-~W0<=$Y3EWncsJoqk0u{^`vJhk?+!+1~TzS3; zH`1+e-zjYP;F;yra0q)yu{YGePs=^_U-<2x1=kwt*!mM}+R&dSqvy!#6@pcQYXsK; za8ebg;qXF`!=v9Ld!ux2Hvh<841am!0+sXs2Ym??3!eXPmcS$6S2`AyBYKLJiB5-w zv70<@Poe>A*jw$b8c$rdZ5)Vb?*RGzCrR5@wKdz;e~L=_=L!A?!T%!oPXyl}_(g(W zCJ@ui6a4az0aydAXobLBE8AmaN0u(I!V=4#CXkh7m3jY%;ExD?jNtnTeuQ9*;BkVF z5qdicDUNv?5}amoP^wniEgnLNPDXaq?m+IB!vZ zo{th&5fp|4bCN5oGX*Bn*Jq}2LKBmzl`E^ul1j`j&q+>Ua%FXysYC&~8S7nHoR>!f z*jR)^b8T}>t<7fxh1IK9yR!6OXRjv+&hqU&+}crEGXbVr^f(&T^lJpW1aA<02Z5OH z-(%{1f*&OiSHw>;^>YNjK=4ZhUncl90*V#J6y7%8{~`0fM(|An@yEbA6f!=Vr=$jN zY30(iZfNRLn$nsUsdAAiVt5DE%fc_lG1@T(@N?N8$ZU|t?)e{SJ#DADYs6$@@Hb=0 zV1sbt8?jU?4f65-|8J}p;@pRs)2SiEVrTG6rcMH$z^@NK<_@JsQpr>{bu4v%Du+}L z{)ch{sbS=0Q@yD~Dwc|-ZsW-So;;j-5_f6MZ-O7e;Wt;1_L6kpR!TQz_q$~d2;9br z?-b#@V>lgkeAB6bF}venU6^K`gqQTQJopg(JQJk&7|TnH4=5FZqvpIttYqT|F_y#K z9d|r%8_9Vh-qUxj61Zc*eYao}9}i@Gdd>_w@MDgeIWP5`;S|($LT(>GEJY6kH{Ae6 F{~xz9qA>sf diff --git a/hub/exports/building_energy/insel/__pycache__/__init__.cpython-39.pyc b/hub/exports/building_energy/insel/__pycache__/__init__.cpython-39.pyc deleted file mode 100644 index e57d6fa29f28cbd90ee0e3dcc238cbfa8a0dab57..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 172 zcmYe~<>g`k0>Nq9Qb6=$5P=LBfgA@QE@lA|DGb33nv8xc8Hzx{2;x_uvsFxJacWU< zOlfXWett6I~= kdBv$YG4b)4d6^~g@p=W7w>WHa^HWN5Qtd!ieFkC%06y|9?*IS* diff --git a/hub/exports/building_energy/insel/__pycache__/insel_monthly_energy_balance.cpython-39.pyc b/hub/exports/building_energy/insel/__pycache__/insel_monthly_energy_balance.cpython-39.pyc deleted file mode 100644 index bbaf23f09690df159392522bccd8ef379152d346..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9241 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 diff --git a/hub/exports/formats/__pycache__/__init__.cpython-39.pyc b/hub/exports/formats/__pycache__/__init__.cpython-39.pyc deleted file mode 100644 index df68a86ee423a63097d461e7ca87fbdaa833034a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 158 zcmYe~<>g`k0>Nq9Qb6=$5P=LBfgA@QE@lA|DGb33nv8xc8Hzx{2;!HsvsFxJacWU< zOlfXWettPO2Tq@XtWZ006N(C@%m2 diff --git a/hub/exports/formats/__pycache__/obj.cpython-39.pyc b/hub/exports/formats/__pycache__/obj.cpython-39.pyc deleted file mode 100644 index 4967b77d9ad3cf6cf47215b25ce60899389d35a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3270 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 z zvf9E)0W>jtDxQ^78QIZ*msU6cYB5of>&UB_s7fNkvru5Hz*Qz`;=Ck30VylU4KhG* zD=Y0`A6YJb`r7?GKLZw#cec~g zYRf;J`cE_74u^3Te9bx7lXDQ;QjglCrDpW2D%BdRB)%i}p(F7TuY!9VKfedr&r#AC zga9*FWIC!Dpf%JMBq(24Rs&e-s&7jArDZHrSCe?_{A zsXooR_!WAT_5jz^INDQJB5@re|4CdMHgH3L7o;19<7;dH>y`J|aU4G-d+e(lY`TGH znF1R!Tze*>vNDs2AIllN$NE3K1_$FILVAzV>%VQPbk2{@=vA3Lr_%ThtEM^laf`I3 F{|8%AaZ3OI diff --git a/hub/exports/formats/__pycache__/stl.cpython-39.pyc b/hub/exports/formats/__pycache__/stl.cpython-39.pyc deleted file mode 100644 index a6f0e629b4bc90d26065653a97206b417776c5d2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 821 zcmYjQF>4z!6qfE3+r8Q?ZI@0(Ll+M@g1dzh0&WNe6HJ{#ISfKM$@T@^$&qxV4%rgO z)U{)G|AEe>KSOJ${)J9`vM(V5J-zqo?$f95-SJ*8K`>r?|0#Z8g#Lu$@gPtf!nAK8 z2$Ug#MWk>UWf4ZlNW_BNB0*$y6KAp5nV^2F{soUF^6OF?M>)+4x1vSmG@Up_XWEq9 zC6n=oFLalVidV~&NqN5bvnPtN^P{0hxt8Q zn)Bo@+yV8mPfkt2t9h-s$piFw#7$u-Bobv9{D}n4;yW}0mqdKq$;cfdC=0$2AAj{v_b51m^Old@KqP?n?49=1u+#bC1XBe zL1(Q(-ev5f=Bn9gGbVJ-*oMsa8hN=?3a}o~Zo|`%Jqsb&6)GFP)D9-`207^y^AdpU n4QNgqy=kL2bq_r?LF(p>N93Dh0=e(J-^x6IUt@a$X?NrQ?m^ks diff --git a/hub/exports/formats/__pycache__/triangular.cpython-39.pyc b/hub/exports/formats/__pycache__/triangular.cpython-39.pyc deleted file mode 100644 index 8d0588144ea351f9f8f0a0fae711207441be9b5c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1449 zcmZuxPjBNy6rZujcH*YH-7G8;Tt;Y-2+~HSdt0s0itMUlRZ2vQfGB9>dM1gD?eUIn zN-F1+UJ(~QK+A2v1>$4O4RPWtaN>=fY%5@__vZP{ynny<>|l4-N3cHnP4mwQLVuc< z+slTRXF$ae7)KMtF}D(&S`!N!*-q?~ObAAYh!gHyBJQlMiNoC!H1MiFz{nRr=2De3 zpkY)l=}gI#mMTg`v7k{_N_wiIAe&c7py*7hG$`qZ@+_uO(V|QS{>k|HH}nxbib9bU z0;JEl$jWFI3H5{?9gdGc^?0}s94sCsK`E3!lKE0a^F>L2e@zee4-V)^W}#F(3h3y? zmm@k?vdaCjlCcO&IOIan!zxM=0b2>KmAIhuMxjzUoNslhRI(J$!mYPq82Eodk!XN5 z83*M8b`J_N)rCfXd%eN(eb5Rt!GNd5@x9M{dgFbV zFLj5pD2qzQjMJhSd+ctWi~FZYgZtP#0>4`~X_n!+X{pe9^z%%r@xp04p=}1J}%f3CfuE znVHcF&|td9*sCf?HYXlqT!xIPdtlSVyOo2PAJrrRe@tX*DVpiP#P&U9bjJf%eE_@m iOif92*5YbvYv61y{hvqOdD>?5iJ85|EpdCeXa572r-A1H diff --git a/hub/helpers/data/__pycache__/__init__.cpython-39.pyc b/hub/helpers/data/__pycache__/__init__.cpython-39.pyc deleted file mode 100644 index 6431e0ad62059483d5538e2ee2a633da77a7d079..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 155 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 Yv3FZ6E4|QG{`1D*vAG~Eluq^k2Mb=>LI3~& diff --git a/hub/helpers/data/__pycache__/eilat_function_to_hub_function.cpython-39.pyc b/hub/helpers/data/__pycache__/eilat_function_to_hub_function.cpython-39.pyc deleted file mode 100644 index c4cd43f1c00732608f1bc4c51939a43db9725d40..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1195 zcmah}&1xGl5SDh=KUpWG4YZV=1f@`i)`a9{N=dNY#NZ^xNlLpI#AYSO8+KQ&qz%|j zPsua%lo!Yg^a1(^J?^!=^c8w29j)yo&_69R%#3D6qi;s*FD%sIEb0<-o}wUB-Tcefb^Iuwa7L#{|H zSQ>FM5R$aQ$k$|$Ciynef(+B6Yu(-NHs6rvq!R`_Q5>W;#9kJk;d#6X1VXaVCyiFGL5`(JM{ZY&6CP;TWL%Oi)FH`^ zNR%I)a?QzRbm~h!A&iql86NpkhGb-%YVozxMlerY3w-xG+!O5vhTmQeC>ua(1sF#j z2Iwq?J)2p~zCfPC3%tmjOUw$ac;TF5uf$3KTseD`gY#;J&4JiXkLJo`#U=m2js%gf z6u1Q#4xTR~n~EAh>LD5{>qfnQsJK-9G?qf>es>%UeHqW1r1~%wQ{vIcxG`V*eQt(_&WDF;LBZ`> zuZ_l8nbI%`HKljWeapZQcFgy4^7!xQ*5*-FoE0V4sZ4$Y(Eyo)SOnn=ofydQi z$QIW`4>`HHZ*HznQ`O1)54m2&vIN1>l$FCUWff2}_a^oM=n5VrLdD6Ge-wQau?xck zH&6VSQ<}MyP9Ge|iLmz6xX{&1RNR;*yt+LY0lr3D_r1`7lv41)$E5DeQ{?fp$ K%-}kuW&0OEa7eoV diff --git a/hub/helpers/data/__pycache__/hft_function_to_hub_function.cpython-39.pyc b/hub/helpers/data/__pycache__/hft_function_to_hub_function.cpython-39.pyc deleted file mode 100644 index 6d72189eb262175b55ea471a67531f0e97a0b7d3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1524 zcmaJ>&2HO95MEN$A7wdpf+9g%6x;R^6^#%$$i*lM3lc36rG6k$NFxYXFx-_zgXF5a zOB7PmQ~V4)*(iS=t~Qs z-*e;cDu8hckWWESG(*&&W^5#;i42q!W|o1vh!&`IiKz9?oE51#L5*Ve8-&}PC{z(o z0}(Na6Hc?3;RP4Cw@`SIrQ1!cI9_INZftup>U@WvVJ`|yA8d zy=XoM37MY7fnvgL^VM2J=Sziuy~4-OkB@Piry&ShX33%0p-h=ez9e0?ssVyEFgTQdyoKj72QAk5|61?=sZ`Vtg|W(KfjQe#%2 zCM{f|nZ=5%M6LG*Ez;7Z_0E`;X&Jbx=qJF(*)<(L?`3cH#^$Mw|CcNr#(|U&6dHF* z$@N1(8z4_XD0E=}Oh5r(0g8YUpbV%0ssI~M0~`SA)OcTii^w5GP@_3$)OAfT8EtzJ z#G6MlO3(9l21yjJ@sekfZH|&GhECma>EaUji*;qmO4E4_6{e0;czr|A>uWe zw0pxLY&o528*&W?y54s>?zB&aXJ>BP(Fa~@+;#R=jnMu5Szj62k}O_aA@LD3^e?}C zGM`E&{-lB_q%#6)fFv}QsnZjzx z@a^|+-6y+LC-}#owsyl1kKwR*l8c;{o%k3uZQq{7U`rDODs8^Fx8&RS0bEI7A`KEo zh_(sY{kcFtAmsZjh_83bgisz5B66a1WhFQ;t=8JgQ;AQ(d8eptd3j|bucQW$6%ZA} zDpZb4W9w~{#OL7CA3|T6%U$D|Fzr$Wsgk;U?b6j7pQu9o_UwPXN>{$#mHtgmw#e=kam<|%_ZCyLP%c?i`|0F8u}ReoY2i#t~CeB%~knG!*1C zR-~7nkkd5Ef<(te$dG9g#8IMEI`&S({$Z>3iL8*O3`CR&ST(qav^+LEzQ*k=*TPi*mfrcO#inIWP zB6|RWg%?5#QVB1Z5+lL|Ia2b3DJ99kCYAelNm~GVT(}%C|0g^e?FZJ*4i7e4Fq79{ z1nOeo(c!r3a)-M&sOyQG$aC)-<~g3f@vd>Vzze`)(Y)MEPqrsSb>h0E30`u?(lj)B z=Mw^{|B#wxKTIkKLY5?OCcuDbI_%muLltHww?^lfW3T`gteaVnJFo_sW$p^mJVyZ3 z-R~~7MItk0SV&J&8FCq&jofIJl?uiUv@rAS`eCD1-|sXkO_SR_=+v8Lu6EGgYjh6U zpN(IubShN{*W1S1uC({eJmu5=8Qx;!B_ce%MQQ=y{SK;|$47}!$#L3OajcJ9!=T4h ze&NQAF2g=?z@Yr-?IRy>e|jH!5?F~?Ur=g%O2;2HtQRQ#lCp3TDNxGe zfKv6uUSAxj7(~!R#5qoZN&cT_tlvhjOGcQ2Ga&N3@ nITMaWIx&Tb%go*Rl>O(*&OUUNDZU>=|6r+4>=)`4p1Xemu&ZoW diff --git a/hub/helpers/data/__pycache__/hub_function_to_montreal_custom_costs_function.cpython-39.pyc b/hub/helpers/data/__pycache__/hub_function_to_montreal_custom_costs_function.cpython-39.pyc deleted file mode 100644 index 67a9783645f3db40e40be4996527a6e7ffc64bd8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2745 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 diff --git a/hub/helpers/data/__pycache__/hub_function_to_nrel_construction_function.cpython-39.pyc b/hub/helpers/data/__pycache__/hub_function_to_nrel_construction_function.cpython-39.pyc deleted file mode 100644 index 2f78d51756f02febd3ff76fcee60b7539e393a8e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2955 zcmc&$TXWmS6$VI(7m$)=DYl$6P0=)NqahX$hMSv;1kdrKM-l2s z($Ac^`c#3r3vc!|0FlllB9lrYPb(EkmZsISnk)?@QYEz~5~=-IIolu=U)tX&{t4a(f#0j`JC~`1Oqs3A{r)hUBvr?Mo(OvMgwALMm%D*5` z$sTjO`qY5A3vc!gKqQ^Xkh=N$u}4*&y{NwIAiP25CU%n(X$l zxZhtUCrE7?CE)!!Gpmusp`xmw`CJ}np!`4bsH$TbJXt-QUcjrvoBb8ITzV)I84#QV z1UCU|0->Zp*GUzyL27_avH{o{J3+rC zX5AL}dx3utzP&Bzec|Cd0^b$*p1=cvU4ieDU9fg2@B<;aBk)6k9|`OZXaWtKEVi=NVjfYj|6PhmD;5gWZl?oa{oVUI&;_-Jc8DXuzfcZ&UWYPYY ztUAsk*7gh^^$a^en#p#3WDiUO_caTdr+Da$e1q*+BQrqH%UYguvK~e~>>=O4nyYz% z1*X{U5DkVe3SV{leWZh$-NRbXLN@XPPYaM^vyN|Rrin`hwrLqXG_qD~$JD%mvEmfn z8F@kJS*MRY1N*_!h-=s=5RrJNY|C{_zS?TE?K*z2GSV>7SDpr1Eu%Nm%jsLLhb)j` zUmrS-$zFS&$0sNlVt?qI7#`d94c)POSG1LpjqVwqkAhS7hN*q!Kx7UWOb6`5Q0fT{tOx7GazKa5=!Jab;unRtcG9DV53Crr5XR!8F=5?3{!SifG z9V|$X2Y>ERv$cW2AW4=5A81}v1+t7>%oEJo{>U{vi1OG7*zIy@9+NAg;|qI6-$Mff zyf=Ed?>Ig7=8I}C(NQ48KpS}))c)2tBcvZ=-|+77{9hT_>yMzwFB#YvI)P!b9q|t@ ztFN1y?}NvpGfIVa*$E}n>N%c;c#_$cagXQ0be5&O4#nXTXsuPwYeNzLz%vYc*|<$) z_ePMMQ`S6jyknjQ);fVqm(6u^O+FVeyXL!&7x>Rs>nsH@)7DsPaBA6_5B>Pisum$_V7FNsF+|@>b!;RhJTT@3S@3Jk} zZO44-K=XLbTX6QH0fH^d6dMBPiy1wp^t3=*HeRi-c@}G9vbs)OK9yN5i;|0{5*@+` z_V4@p(fJ6zDA{>2rD>XzBqteuo`si!fAvtQ!p+slt6bd{=Nv4FT27i8=P^h~8TZ%P5D_#GBXFlUM#ad&h`XAI?S=s;q diff --git a/hub/helpers/data/__pycache__/hub_usage_to_comnet_usage.cpython-39.pyc b/hub/helpers/data/__pycache__/hub_usage_to_comnet_usage.cpython-39.pyc deleted file mode 100644 index 4a67fa4e964242be70d56de6f33bc4c8c270fe6b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3146 zcmc&$+jiT=6$LM%c#&jVvLxHF6~wLED2*xC=~YcqLm)_E88-upSuBqsNb-G9D+CguW;%wk)2~ zBtL6gGdmn z#1p*fXMjLBt{_xZQaP@XDyh8{j_biv&>;0cSI81+ysdv%IbJ5q2voD!9Of@aEEaB3 zMuHQw2W?Tr%w?FySHdKYBR@?cF|J^{#lyxkyfWVOTTq$sszNG2SOTnZtaDuA*x3H(g0o~%fRcT3A{mCz;%ur9B*>m!OhVcV(9rz=TKjxfI$qjIJ$vW^e zjz1wA7=KP~0w0o1V3%wG_sBNz5yzjBTNpnkw}D@fJHVfjkAOcXcY(hk_kh17JHTI& zkAc4?B5H5)9%X za+1?*lH_SHy9Tl!(m-@FpPd%Yu!10N;4+B5SCSxB)$Wa)F1*a=5{oi^1IlIG+xQKCWY^Cg4xY3!$AJ}oy&xHT5;Ex0MV zlYreYJb5~D1*tnwVg(ep*p%5KF>MPmmM53`amqF+bGZeUlxN8lieCqprt_5g^c$vQ z;8Ps`*(OBoAPP@Il!bVJ`-xz7_qRoDoCQV4Rvfjb7_KU5#fGCA15NSzlCEk;-q0L5 zO0lkwG*^9}*RsvSi)ppz*{Y*>k|o)$4pqg*P#p}v&%AB+`>G5vqvuIIT{Tq4wIx?I zjbg>oB~9~6fnrrxdg@4DkSm&G50nMfmd%mvmX@vbRa@~Kcdo=z4AteH*hj^hWom4< z#cani9e1H*SyK;e2~sVkHGsG_pDVVbx<|#1CLNgY%!D%LEF!E(wmkG?7>CvCu!+S$GYtikuB2*3b7(r2>LLf* z=E(Id*aTs3s7M;Nl_gs#I#-FiSO@1>w2=oL;j!_xhLRx-lmbE0b^JrIoVF2V)$&+? zi;gq06dPVXRovo1xi$02;@+{1ZKZFk0|nMAJ+E(?z2g4Ê@hKsH=vL)pH*0Yf+ zKlL2Ne$L{5WoElSLXtl)u{1PYMJv|%k2lZ0tVxaoi+N>~0-drFN}|;>ZCzzSF4mOi zEDoAEPvs3HhjCC^i~_LqxhPuC0sVdkz=Z z9Luy_=W@4|IRh&Vsb~$3bVG7bzr~hrauY07c1I{w7YTHc$cBz%h52pdqR*T#1|Ck1 zb0M&Xb763;Wod3mBiCfgp0lGVs~W4aHJrAmZ0SISK>`w#FE83n{_QM#j zc;4@GKbp@hdmc%~o=5v^x8@m5kihJ`s54b`2<8=wxNXcV%FO8CO`CvbrCx7J)e7hC zHmC+(v5E9|CuKc!(bJ}xA7^Q?JZBZH3m#=nKVSQyt%~NCrRiU@NT;mxtuL?F{tFLI BiSqye diff --git a/hub/helpers/data/__pycache__/hub_usage_to_eilat_usage.cpython-39.pyc b/hub/helpers/data/__pycache__/hub_usage_to_eilat_usage.cpython-39.pyc deleted file mode 100644 index 750e7d877b8400291a113ec21cf04e431b39b8be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1203 zcmZuw&2AGh5Vm(WKivXF6(Dgy_`rc62o>BSgc>EGt(2xwno1B=vfQ=XY_+=%wzpCO zoakfl0(}LJ+&FXdfeR-d0k|;UG_(@6$B~I;##AgcNhQw{ zK@O!NAI3s8NOz;(1=I8T8X%nV z1mc7WTXHg0@zL0jFK6W0+Oy}RC9_B>9y8MF3|iz!$$S#_l{^-aflV$H>BFUpY|Biu zI;GJ;%yW7Mv9F>_JEfY+T6~i4vwY zI7ApOTMQ?=qPAcaWi#j)a}4Nl576g6V88>w5)b0idqm3|xw7@_@<8agAe|+%l}%|x zLPR=A2p04PG?|+jg1qMQcpYunn|G4$qLf0U7`9w;KCV4>*`4Y**xp8KgGti=?sF75-mYS>e$<$UUjkDNLdebp-4FGv%d_Moo?p?)ueGyZ` zwycE7RrVjrj_88qG6?U{v7->r9z#6{*${@9u^<=kEX{VCU>Wg{mFCEd^eXO9e>i-4!Tt>|R diff --git a/hub/helpers/data/__pycache__/hub_usage_to_hft_usage.cpython-39.pyc b/hub/helpers/data/__pycache__/hub_usage_to_hft_usage.cpython-39.pyc deleted file mode 100644 index eaf1214cca316b2b2129f36449b50176efad2ccb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2926 zcmc&$%XZtw83ss-B0)*EC0nv{u~D~atR#{hr&l#ejern|BU~5&v?3j!GY95CB78tX z#iglOcNITIU%;=>W%~p@-OaYEK0p`ks^1JqNlv^kBz&Czn}25h+h8VKT~#DJfBDCM z=)YGa>7QJ<`qUvj!J9t-Q0Z8rGOZ=@q*jw;X;MFK$Wl+Db=r6((Z+YR<0V@2rR}Bi z?@(8|@u-N?X_&=Pu1-=~CXsrQX6m?nu9kUt8mUF9_D_mRQ2asn8+Avu;!!lsBeYB! zO^f&>jJ2PVpY1*ZVve08ETT-&)3fs|J{=e8Utg<_A3c7o>gjZpW;6~}-SBkv zG)v1fWss#WqEUfP8f9v)j1!pBD+^4WMYB1PP14;9&Q7zmh@OlVv+a&TKClcqx%Dsf2vqc33Bi@>o=Dn9MfvczVi9KAgnKxjIhEJeu8@lnHA3Ds?A4 zIYG^<;gqT&oy5~PFS3yDoY{Il8mDQZej68KH6N$nMj2~Iv>a94x2|-jWii*7-Alsf zDP~Bsb1^B5io$F(REXFYAG@^W;rP^jY&Xj(;#wc;r)5fLcoXK8k+JgZM1hBIZFPIur3 z%-H@dtB;C^bv(m2yM_~(n#DGJ)9G0T+1G5-IwE~{=o@U^9$JC5-zV?5`}?L2HK$9ou5CJ|A9z||x(-|MZOyVsrNCBgqiYWBg}7pA zUe8!aitY}*pt5Xb-}DUP2lGh=hGPc86Yq$v4P1+_w&?8)Tt8S$vTT`Oc^b6ZMt7)J z!`B9$X@eua-gjM#z4N9_4$YuX{Jwi=cK);HV1?Un05T&!0_PZff29|s-?M41K}NC z*faJ$vuD71qf7Q(x6AH-U+pbA3S11dp{F7Dx4#~m`T_9`?loHymcy{DJEQ{^e>ba{?nBjkSA6wxju| zU$$wx!i0gT2SXHUfCL6eWYfmBLjM+WvCo}wdIUSizff4izHr2>RcUT$!@%W}J>^?d zH!WUeYuIfEd}vSec+T6NVVOM>Tb3yf9OsJ}U8Z!kK${m{V_)-Z)**Cp*EoMIvql~z zC$FXK0B7QV9ewZFFvn-_Svkqlw0Jf+AC1FoGQSh#&u|^7-Y7ZaYBVfDPLPrx&7?>P zj^IkzJv(PDLhy+$2)WKr+?N2U)|CHGe}9|3`@=iL?!v-tnek73nN5FiW#HEaab;+t z@ltxh4={Q532qmv+KUR6p8=OK74%*;)t>stKM8qT&iWXfnH+eiE3nXF%H`OvA?G!K z)SSKl7Gp0p9bAbJ-Dx<92w@5#)twRT6+(VjhRM8VnGl+e2+3@|RO>8Dk+Q!S!Dal~ ZEXKZVDc1VDGW|;)=A2&;8_VnU{{ggQOTPdB diff --git a/hub/helpers/data/__pycache__/hub_usage_to_nrcan_usage.cpython-39.pyc b/hub/helpers/data/__pycache__/hub_usage_to_nrcan_usage.cpython-39.pyc deleted file mode 100644 index 2c88afaf048be08a7d7c2a4caa8fc1ca615d55a2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3080 zcmc&$*?QZ?6$Te^muyS6JR1d3Mt#d_DbPq^2+Oo~wpTx(a8u~$;1sEwLi1Y9`4AMPO z9hfReU+z2sLdxUF%Y(GlO-|3!@MMyU|9B@pee(3F*iB+TNlEC5UD@i2Cuvfgw#+nn z8TdICNsx+zB8;HSpvWOQ4Q2~MI!$)YX3aP!V{!kj%NgaM_(3`{JXvAFMBzo$5F(1!9 zZiylmE}RszwZ+tryetEQU&3L_hmB`=yLhwjG0TOQB~k)H4`793mE#J>8pk>*W3|Dt z$+5+;O)8*wNENtBR)A}y2E0bllAQ zHh_=GP2di>1>7Z@z$YAkLAEe{N^S$cBzJ(nBzJ+oBKLs5Cij8AArFARB@cnWBaeW4 zLLE22DnT*P56ra>0+B=#cl2w6wM_+(r&j*pS! zV2)G!@!I3iRgna`cW8%{_I{4Kk*4_ z>&Q#RC@JETU^fcFtU!I-KVS5{;{atBdb`ISbU02DGHVY}DABIQkT!csIt}xLDTGRV z#cW7o5fz<7P}52N8jBMzie{B~*PCr>UR)e|eqN;PaE!tTijNxyN&4q(lAO}!0hFA( z=$ia}koqBRhK00_eVU|s#>|VoadU7sjlC=^rVyL(Q%`XNL4Pry1Rjnb*EF~q>sw}! z;wGB1Gd(6@!7$r$QZLS!R33+Og=QO4ktb6~eT6%0q2+ANhMnvlJMq}hY~2c?@FYY$ z&ttv)2U_v-fVM5!R(i7TD3VGyY(*cavfGz5MLl$f#>kfGx;9cB<$YSyG7ip{m7Z%U zw(Lr#WH}l{(T$-p82*@e$LRN!F4***EA=!*S8T_U9L3OS$JQiOb>|FpRg-(lNLx-j zs$>o1<*d~;MwT zKd@w3UnFir(R(8}=a4oI3~Qgc0Ywc@&y#EOeE6Qh^qOrNmSbO>)>#m+Q;+n+`5Q#1jE#7?#|Uo0ngusc zT;3AQr#q)-wBfqAzjN2U&N_fM0HItf{X~ENoISXzui07ZxLu;PG{DUq|6dcs8X4Zi z)G&A>ykwu$((DWLJEAxUa&}RR7k=gBy}778@%7*Me7ls&*qrtmFn7;E!HBjl_I`(X zRt5;Q*`q7fz2Mc+s=>ptHw|2uwp@4K&0^ef-MPiqrF6rb7M{OPt;C@6xLIfxjsq10OtY2C(HNJD5V)+I1(cP7o2%}$(|MH1_& z{SIDw7JBeY_!Yd3M^AnQLGaBcX$w|od5`yJ-kUeS_hzHzWgo%%{N)?_!~5m_V?uEB#4=oJW5HND=mhkpYxPxK?eC@A^UsXtpl=3+DXha#X;I;Jkv=(;j%&6t!^7k zPwQ*IA=_#iX)gUhjK(rK8ffzMf~>EtuaiJzv5+i@NYLC3$dMHJ$nQ#V%wr8s#wBUx zNeV@^at)~^pUez$DC(EC9U+D08}U3_J&ydJa6QzCEx*1zP&R;|H6#KX`~cv zj4_-&Uskq71wiT^FpZ8ekOSm0eD0ng>M;Z*IGvgsx<`=;7kLT*$s|tnI9!lCSv2I7 z8lTeX8v}WX(sy~3&O8-LnTRQsOZLp_ND9DLkBw(j$y;E&R+sISw8cqVj1>w*tJrg^ z6$cmAT3N1u!`y)`)Cbdc)!~6C9c5aX%FJXIE^X5ONQ&5-jxyC})6$i{9WY<}ona zbDur3chaym1+u2FE5_#p%Vx*av$j7cYia(@{##E~fO`R^MY6 z8ByHaBfSeq|GY^LXD^M=X0|G|Qg$|}^99r8gTQ76&DEMHmcEQb6V5=zrZZ{F7xk@3 zt)fs&+fLkG87ynpqf}PXQu?tcsd-E|YQMkM`|qjM;PH??c3my(N>~39!i&)e(S_hO zy7iRf^_QR-A*aF;yAWhUN0UBmk2)kj{oKs^SbKna$2-qb>pp_WC7ZpUz}y7jPNNl)8k{_T@wTA*Da8Sn;qDQ_59NsrJmd-cl>j!PYMFN9iY!+``zP z^+2@;=6}HS!1Ztx_Tm6H*?w0)g`9f|Y7G{xtOIzA#wVoq|HgA~{F9C1z3^|4wtCwD diff --git a/hub/helpers/data/__pycache__/montreal_function_to_hub_function.cpython-39.pyc b/hub/helpers/data/__pycache__/montreal_function_to_hub_function.cpython-39.pyc deleted file mode 100644 index 1b30646682525d385c57c399afed6a990418f5a6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9126 zcmeI2TW@1m702z2XC{;Bz4QhYOrfO%?cj6wsSs+EI1{UO9Bij$qLGf$*waas#Dn8J z%uocP{Q$hvXQX}wBwqLmNIY1)@x(`fC;q>6yk^{?D$huh(cWjDwb%Nu>t6e`$-$FP zu2uB&r@#Jd^ylAID*xbR`R9UO-qkpJQ`4xjUl~EUELIy$ItwE7$MkEWCJyKB4C$;acvnKnn` zY5m6e(Xp($aXu6DbbNn7n4V0oKcICd)5&c7?xCYyKRj6br~Iqz95OHe)b#SM#@UZF zjVt?Ag=}S1-M=te8D03SvR@lt9A6sMKCg~0jxK#x`?R`$d30F;Tb;k^LD^cwWH{MA z|IlCVzr9xf-(jmC9v_^YiSw{3_5Q>9qm@c!L(j86Ua3@Om5-|$D;gIxYKw7E&r1s$ zbRU-G?0H%<0*}&HNas!qX7nT&uX|H*3W4?zo7B%yx-6oec&LA zJ#H&|(6AdG)-PzhxbzMdwj$3HK4`q74;ja1&A=9TS>p%xvc}$*G#m>a26TTq2L7`4 znDPz}^3XkoZnxV2A3nNo@L~_|j_LB~#TV#2U)F#RJ#Hhi=x`s14RUUq?}72kf)AVF z0gD_u4^ObYCRh_go<95?d}7Bta@gTI(dAe!=lk$5cwfecA3C}{-p-4?_{*Nlc--M} z9nkQJCj%Wkec$nUhfWRhB(6N!_a|#&&eLPoge+sp`nwr=(a%rmIgHr zrq>T^m&Z1@3;o~L;OR8@JTH&xX3qz?_O(CJ0~UIbb-k<|-)ZpSgXb0u-*dcIMPu#q zj>|i~A`1?~dEIBHI~FnVIJzzHxXsJ_>^qL@rv_Zkdx&FG53IrGe8a~8+kFBb9_;>( z2Kgp`PKV#?%ys%6wjk&A?)dEc8r|R3K-TM*wGX%7G2JfY!F4{K(3YR_* z&-Yx`aq8N0e%B9=ul>19b6Moj!4p2GKl-FsEY~*s%eY_@N1kpAYxs!QGB#%joy#3zMYx`qk5M2S)=y{8k{@w z_UOL9KdR&P1@9Y6GVq}90q>~#`<2gce^M!aII8HIaAoJs+xl$VuLX@pW4{(Qnz`0_ z7}y-{*K%#_*HYU}8iCe%oNJE5T%2i?X-<+T(mKf{m4*Sb33Jkf9wd=)(i}>jfDq&$ zNQ-u}Fw}0+XuuP|lSbtXe$os?j|B=&tT_vVSd=D|JPC!91@NS1PZFo1$0-`KI25N4 zpacOHnpB!2mC6WqZO+SeB>pgEotoY>jkS(!H;|K}+d4H%H{Axx}@?3h;C}vhTgiywzjA5Q8=8yB5-iM8WCg(7Fgr_MVvv(EZVDn6TCDPz2$y!o zB|p(i8W!6Gk7O12O|l$Y#?ve@jX?$-jjJepNj zrD@c}Lc`IntO^pVt|qgh1V!a*m>@(ThhZ#=@};%vN(gC|iV|l;Oms;p7-S^0-DadL zs7ftI)VV5L{8?x*k8|-Sa#9Fo#8l`|7SU!m1XE!KM+FVCor~0}I%X|Hu&_KYNzfF< zsx)e1ZP)-a3-L>6c%5Q%QdVqYCo#zIrNoI6=}N=YII%X#Q(35DG#s*{uqhYviyBKf zJBf~;)-nzXx*|IxsW!B06{47kN0HPVh8f5K_Qz$lFKol+sO%CtDRbFRb|R}oWlGw^ z5KB~y%z3HT>LFuSeqn=k8&#mzVI#()gxV7txrj1RLaWI%wKHY?L;$6QM70^|q$Fw< zmNh7Otk^~g^(K$t%yVkePF86C24ξLI$u(j^-r<59welV+AL^F3^^8)w8&WbLZ| zV66_e&GINJdx9L3&4wvEwN@6y6K8Zwl?<{0XEU={<&o8MVw9MCHNC6IHbqieB8yn4 zx1MF8dVrL4!4kEkOud>o3 zJ8^Q9*hch5r5zsYY>{pZsk}o-}S$z*2%Zr)>vR1un zFz}c!YRT9v$HZy&tEb7@B(R$zu$~iJWvU$uvuWo&V6D3qS@T`(lW17yiJPFs&9Y-~ zj+9MNqL|YyDMeTb6uqeyBdL)3mlw=-yD7iQmmHE7RWh@RPr57@nuVq#A~YdWjXG@D zOlEa1h@lQMyXLj^ZQYFG%oDN@sim5%q~ww4iFN5Du&f!H5Tqrs6A@-~MP-D!Nv71& zz_Dnn2MQsyI!t41jshx5_XV~o+1d^1@H+3xRBE-VR0|<4Z=dF(+X!FLLpHGP6mVMA z8L%WOGmA&M=V@ z2sHHs)^X0MjPY725|1FYo5%FSIHLv>22o^*X7vr`MSLvIR*gwaUybb+(={cYXwhk# ziiskl_^AJAR&7M(hTO8kU8i z$!;2|&Lgu&>5>+;1n_gT=qeMBE)8Ovf~@NiEq0<6VeBuvP1El8jGiw}?6%ne+^$=-PhtaOIqbuO{Q8dsMl6{5TVn_`qQJF8kIrUwq z-BgD`v)!bM0Q`1C$x}SCyDzdDP$$Hm94V<1LTKNC$|jKs?b|~~QBq2YW`Ux`DyNZ& zU&mbtItyrw;8&|w1f&Z~tZRuMdS<<`y!FZ(s_YU$toVo4bHpi3^$;{#rqr~wmS384 ztIWu(m0IxaOFOl^OQU23FJ1aN62CHqM-5^w9Om4<-!kqpb#lB8EK{M~7k2xop0U4y z&5`x+sQe0*8Z4n2b+hBO+J|gNuq3iCUd>vo{bNa!6Q?60PTjc{0kWxYBxXIdTY6-- zjF3f9TA_hdu`bU7 zH6KOR6Y`K6vp7Wd?WF!gmhBeP6$DyB<;ynNub4nl#PECfN<23q)j*2$F?>5`PP55IkTN4h3OkIHjIHL9zKM;}>Qs~;j|k(9Nf z=o&EuJ8L>@+O=C!b8zj=`Gv#Tcz(6t8nicCJHz&RXTI9r+1wip`#0xTK3MO!wtIVn z)_iTJw^MAl)`zXl`IFt&W_zz&^tQIz8?E_sgW>wlX0hJs?X-%1Yq;L-%wH+@3ftK1 zws+bBTpzZ3JM-5|mSV8o+buq54~0LJ*jB%Nqa~KsX0g@lZO*T3_WIrSuqQJvZuf?* z&ivVp-p>2jC`&f$~gyVOP}o(}Ue!e>f;Qy^T`gnpC%Ui|%@- zGhf^2b-VhV5PrV2wb$tsgI522c_9nr#$JD22v4<8^AO-AEZh|sRK=h(+%7g0nfYsv zy7Co%JTqv??#=c7&0?^z-RpJcPwn>G-KF=d157JQCtv>gUVG!cud-@&yEoWv4`uj^ z-JS(ux4kjk>$i#_d67BK58697I;~=Bz1!~G6d;Max@_>;-cI}dR)5eQ-kjIA3CN|c znD)B!waxY6`XZ`VZ}eL&W!vOmd{6^la!#S&>kQjp*0uUUum2u-ov$s0^Ga)TZ;^`H z)_T7?zgmor7QZ08_eFJHI~yP0{-QFyuHRGr`{u?wxAxA))3aOWC)3Gfc5CO(nXSek0!g7p{@4_}Zm>t|YS^Q$L@Lwzzvq>S&2k+PK-kYx$#nI`}tSFx07h-?o zS9aCfU>ixI$7Y6nEjq$8LyECpo?BPa!r-XW^{;OZx`?c!y#}b~t#YAf_r=Msw zUwbHfPyeU;Oruh{bpOq-xBH>cj{a^!-Td_6WLy;UwW28h#zgBUisF~&2gi$@%SADo z92Uj2f!5W#(}}K(*}ZuUsA(wTl4WKi=1no@s>T@?#cH)yTm4O?{CBcawcTr%rm6Pk zFX)cBey6;NuIuka&SnRvv$Of-1!;ce0d2~4W3peRa=!Z0(uJQ9`7?NHm!G@vA8)!3 AGXMYp diff --git a/hub/helpers/data/__pycache__/montreal_generation_system_to_hub_energy_generation_system.cpython-39.pyc b/hub/helpers/data/__pycache__/montreal_generation_system_to_hub_energy_generation_system.cpython-39.pyc deleted file mode 100644 index de2ff300c262769d9eed43629ad1667a602ea9db..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1440 zcmbVM&2Aev5GGfvm9&W)w15w}@lc>u(Fj3&GlIbKT9AY))1oSMq|4l2~L~z--7x zW|GT9s6#U9ha(6bbY6mou9Pft zKUDHs#0ECGP$W!JR+Xn&`au{$y6Fd|#ENi1&Q)^3luAf$4|NtY+Z;NIw~0G3^Z$az z(P?b`!{Nf>2u%M3PM`<_mJY{JjXS({iy~Llg~#2`nAf>?>wdyfgEs)lW_hqhtG~nL ztb%PS2gOCN!tCE$tAS5;DF2`zL;8P^lQ?BsLy{Onz1v~u4X^-Ae-F-}YYgUq)xcb^ zI+(}tXYV7T4UV7%=d|rb-i1t3p`ylRp)wYW$cv?fz-nKlfWJ!O#O$b-YSjwgZP;J6 z=7JfL7mFOwsKrK<-tl-i>P^blardluJnl|T%0@64j%;kdH|hn`$uJmBf1~~0X>Zb< zjwj{Qa4?>Z-;GDp?l34@gI;$^!}GUc`GoSVN|$%IbhSt??~vMq?!KttaCWYR(z9Zr zq%^Z|8PAzoY(%4HpxU*GG`Gh%Gi(ORsMJmGg-q8%r$$n^Lf1lnyx+-}Ws}k*OAMvY zEXd!0Lyn7gzb~uTU!jN2HfbA|o)QK)ctorvw<6Yq$wzc;sl%(EK?8*Jg&}4x$URh5 z_;8)-klg%Ut=m}H*F-(B&LX&Wwu#cezxy24+5v~W)tj&B=04RaNCFVc*g{ZR`joC; z8JIt%^nJn7%}#?-E@MiSMYU|^N&;VIS-Lir`WAu@>a8lbMJrpRZALf2HL+W3`VOw5 zZBOk(tlS4aJM%UD9e4<|VVTioV-qS{yO^?1X?6F%{;F)gUYGvH@}TW=;Woaj{R2HR BqZ$AJ diff --git a/hub/helpers/data/__pycache__/montreal_system_to_hub_energy_generation_system.cpython-39.pyc b/hub/helpers/data/__pycache__/montreal_system_to_hub_energy_generation_system.cpython-39.pyc deleted file mode 100644 index b3f4e009f273aca9b53d3074fcb8607c6180506e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2531 zcmb7G%~In=5SCt)Ss>xV0wg+U5GBetZ zmCb2+hCS^I@B(>&Jch10<&s-2Ii*LEu_+7&xn`{S>F%$;?wJ;upRZW(y#MA8`lf7I zf0@DfQ-HxLH1!#D)M{DOrjBp-9mle*exc>s)|N#J)V;8%``T&EQ0K_1&P4yh_R0qL zG#3GpoGH{7H1Zkh2#NMYpd}+dQUj$~A8CPlQ5&&<$?gDk%|9`M`FiE3vGEgHM7!K$ zfnxBsLs_7Chcmf?cDEY4F!ikV6nap;=o8Ikr7psOCIbT@jTn#m_6~irdHPp6nveCrW{&X9Kk1W8Oc2R)?mV&}r+; zzN0z$n)xqGXl_0?L+!T%j{~lW93a9a0xl^xv4?298bin~BL`RDdMZmzw=3?euCz1gHJtP26hb*Xc zm?FzGrw597Dn7rbg~?zaXzYh^V|{YY7NanY-^i0I$Z6of`;mj!!*?=W*BIuTY7IXd z+dpRNNBqZ)y~x*mF=f0RabFvZ`HeF0x3^ez119k(BD&JG*9XuCaa4JUBVnZLaOqliBUfwI*&H?=_M~m=5dR;L=W9 z#r)2tCFkJs{I6SIIX#AGsne(rhhCpH240WIeqMgmDb&BLF+VihDAD8;YD`)uahA1M z3k>^kRwwbOPUh>iaFCQS=5U!{{I0pUKZVY6Tzl&8A7CptHnq&uh9;_ZQj|=?HFcwO znDUX9jv~Cgvd+w9Z^uud${@7GG}1kWMr@_iE19Yl^xN<0xN6H;5SHfqBqcHH=3$sr zMzWv4SUJ#H#d!JtK8zIXLyZO20@7y~Cl!pd4;6Ty!}yno`1wi+V=6q1Xatx&jx-?Lwf%XWRg0Cy9Y`cZ>$Bv!OR*UjOm`gr_nAUn(+-q>IP5IC& hDdkhi?A4q!Ut_84BvVQG+YI`5hJ9teINZ`g;eX&3DJcK| diff --git a/hub/helpers/data/__pycache__/north_america_custom_fuel_to_hub_fuel.cpython-39.pyc b/hub/helpers/data/__pycache__/north_america_custom_fuel_to_hub_fuel.cpython-39.pyc deleted file mode 100644 index bc03122bc17c2eb90ddb45c344d2b0e701722e0a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1266 zcmah|-HIDG6qaVjKWk^(5Sq}t=rRtC3CW!)VYd@^yTmnSy`imf5%NfD&oVP|jx;Iu zrdQd=$P4Ui^f3gv%2i*XQ0URj{*@M@;T+Dd^v!o9vAf$LxL%!|sgD66pS*K>h3M>| zm`A82nGs24kkLE{2qk$qizqoDGL+FdkWIE=sGx4A>;iu;)iz7?HhIRu1VGBxzNnvH z7yWzJKaof>PQ1RoB6Rjp%wtrF%qWr_NIDB;Aj5Mqi&R53W%Pl{hHRck@9C^1TS#@= zJsfMWtNmO-nuxeGR_EWBDm&IclnZZczv(a!*@6-oOR55Pf(d3dTa}C2PBLK(7A82j z>*Z|^EJiV3qq5|bq68?Rq#wd}gh!Gfj9}agx7|Y667Z0vFs`dIl zWUAM2VPcgF5B8_7I~)z;IpU%wiPt1>PXf1^V@GB8 z*BjU7JS|eo`Ir8m+o(toQT+biKKcyN{j1guT()h@cObJP0(eS=S$kmmOB=aApDjqyey z2L)2ax$AJAYguOAzQg&OQe>Bz7UxnYoWmFX-1ZtYl8uv&{8n%mgSW8x!GQ+|9#9vh zVzy1Au-yu1740?QD@?fiIF0_Qo?RbbpRuB_#TJ5fQs1Ry3joOGbjoPe$D3axl-Na>P9BgON zq|4LxGxi7i8+?XedEyt4khq>{H$lL|I=WZa*Vp!$bFRa7cM}BTyPF$v8Y1+&pKK4v zp#w1UIXI4{h+`h)xCjD-Q4vlfjE)fxd31|-^g5WfcyNKbtyK#nlpM*-N>wr~g&~FF zt6Y#PrOBx(trjdNrZQF(Bx9E4YEHN)Sjma4mQZgMS*$LJD21L^|5!>c#z#Mp$7Coo zQ5pf!fQ!<~D=G9o86J;^kb2g80v;}VoHHwQlB#8;<$PhuZ+GPBlc&!}s>)1hE*VMt z=P8+MwOS@)t*%98VUY_>#xiF$T*LC0!U}Sjzhqjh0S;Ul z?qw|b19(HD%=_&T!Q=qUd;w0NDF$u>j;A3HczBDZk!XoFkKSP3;_ch$HJ-*i24*|% z%aPJ{aaaf~Gj>!nHUYvW>ST4sWA#K%d zyD+oD#V7s4$zXKs;`Hon=!3nZv(x^?WRTL6vkCqFaMC|_JN;olotzKS!Q@A`L-|9O zRd?7$M&ws_NWTwA|NJT4pS>_bo7t++O4-@C$`(u)_ad7aG+1LIU-~i*jW{bkzmzou z(}pzady-m3VFztma(kt>tXzjuSxQT(zuMHV3P;WFul4hH5UuxcP#3$l7Ivk}e<|Ws zsTFBM@Csdf?(zC75RZ^!VToM`vf-sp?>9&7lbc`bc^B(PuvzbV=P@_#1BhI*+4~91 zO#lwH*I&QOS8R?LLDvF1B~VJKODJvr3Lt(&>CY>c-><}!a+Oi4KlB(nORYc@Te-*| zr9Xn?7S0;62dh1}9Wc`Y*TGTPi340`yKVg`@qPHyp)#;om$~f@A;y diff --git a/hub/helpers/data/__pycache__/north_america_storage_system_to_hub_storage.cpython-39.pyc b/hub/helpers/data/__pycache__/north_america_storage_system_to_hub_storage.cpython-39.pyc deleted file mode 100644 index b50b01083d44ad6015df96b30df09721a27ca6cf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1288 zcmb7E&2AGh5Vm(W={A6bkl@PPApArK5Qhj*AylQJL=kBPiXvI=+9X>x>oE2rB`qiV z7`#AVgQq}y<-{v+fpIqdLFIxak37FS{=QkuOP3mq)~o$}{XJmphgZ(7kd!sr_9h9% z2261kWPB0?jI&8Nh&bC|Dpb)SQ_+`TP*XvlHEYE+&RAnT*EpI%e`cMYKq8&Y%m~I> zIv8p4Ntc=&?84pX_g=h%yReleI=7lmn@Z;{eV=M?`ci8JZ)Co=D-o>MT3Bgo z$#HrskyKr2AdACvw{Qk+8+vI*Ij>D_W%fxs4bQSq67?J?a)-hsVhU3q)S8?G{ay7Z z0m-_FmuFW*${KBZi-cwaPGAR$4?-2F@Q@86UDI_HedVgA>W9%6K3GvJ1a(~A?izIC zXA_NSBKy>*9O(-3ZS%6&tw>nf=T92o+jppCcEc{Q2WMbh?1JZn_&Uc8B$>39G81C; zWcf3V4C~Ogmq{q@*d9;$0TY2@)LYPz4W8APeOU4o>OM>l?Zc%NW zO?{Z6nH%OFA0aD%gsl(~)z}GV1SK6?Thmz?3z6oj6T;ugdR|yi|2=>BA27F$OEh^| zN9_vC&q3$mTR>N*!vWj#fbsbqLK$E~J8)wSr${W!?W$B8_CGK5CdV2jqpz?4s1mEB zmW|WgtE5}c6syl4{m(57Ksv*?@iPU}rEkHWYX@P)NmM^8g}l}KuhD^^?dPg*B)XUmnP dsa!p=p?|U#x&Qi989%OCf9mmHup7l!!ao~6aEJf^ diff --git a/hub/helpers/data/__pycache__/north_america_system_to_hub_energy_generation_system.cpython-39.pyc b/hub/helpers/data/__pycache__/north_america_system_to_hub_energy_generation_system.cpython-39.pyc deleted file mode 100644 index 3079abd149774f307f942f2960428412370a0188..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1537 zcmb7E-EP}96eeZ)CvGwf!#Wh`fN@uyhuJ7vU?_~OsOuR{Fvk({vlWH`f)QC;fh>B5 zR0=!oRr45qfxN~ZL$|xyBWzbYlpG~Pb5k0mcz$?%^nD*Cc6OQs$FCO`s_7H*mosjU z3K}nPn(uItWI`mBUQ8FBM<`iTCO#!YA}i9rB+`HHO{&s6BCTrr6(yuONEFOg>}X}I zTCh-95$hS7D`DA8VNBRaC(PvG=27s=E7oSCC{&42xZ9H|vC->DL6?n&!3bSXJCAYI zz}m5}3YvYrTtPIOTlVJ_d-C|nQ`Xl>s6j@8^#_N2HUph5n*r!E6%@roTv^3>@wouCW|(<`X#yZ( zOPADHlu7@u`Zoee#-Uqp4+Ose`g`0cGNA~zC+VajJz2RV6JJ$TP5K|GtjgM@|DI0j zvW`$Uvi4Ymo%a?BqEHlAAM4%pv_OAY0$qgGKR20s0SijRkIV*rW;L6qr_3cIV;`}@ z!dMuCCqv}59B$vh*~gg+#F8_*nI1l`X9f4Zq#x>U39m|mU3=qJef3Fg}Ba~)fOt?X-=#ww$#Rm&=&Rax!j!QNn3Jk0KK8HG;x0#;Wv^NosMUlG_w4F8S$-RX%@V5aE;w6@b=70v}L zHUc(NDj|t>&1_3qtt~p__PTxyl-xM@eKk|J?EC7UKEz z*6*M7kDsKi&UL{S&1#^K)8r$)IL+jGso~}=Idf{D>mN{Bj184#cCOeBK)JhHl-A0uN$Vog@xxU#L%2ksM+pS|m^vc^wE>(3nn#^w5rFDm~5Nm;}g diff --git a/hub/helpers/data/__pycache__/pluto_function_to_hub_function.cpython-39.pyc b/hub/helpers/data/__pycache__/pluto_function_to_hub_function.cpython-39.pyc deleted file mode 100644 index 77acccdbba5d1da0ac03cf5a26fa7c8fcd91a813..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3298 zcmeH~U2ofD6vu5ReM|R_5P~a9fJ70i`m!-rA+*$XY$s0a*fCk6N>&!TYo;_Vj&sp6 z1k&~axZ-MGU|)a>F1Z+=0pD_g_zGO{bK7)fl&zBx;sRIy=jEK=Ip^_XM}FG7c(EjK zUH$I+@YlBm;g@`J`YJHFgT^1wghE#c#ZVfGyOJb`!fv5k6a`%f3t{oG5EdUv-I-AG zgr%9u&)_9>&`$^PsFw_)vAi3HlVK!p$BFC=CuuBiPezAsneoo#-pRb=IqF^cx@-;l z(P$hoGQ((;4z>qTvLRc#V_{lfUZEw|^*$RdYr^*bf-Vfw%qTP ze&gnZMn7*)UqvQ&(D*}|Na%{}mlTTKLMVlW$3nLl%|x?d@rfADgtL!}kHqd=ILB_y zXYU;DNac7#TCp*?H=P`OSdw3{VRC=i8;`;IB88_{KK=AKw9nHX>N3(FRt2tukkCor!bUf`Bu)Rtpn5ps{i|E1&I&1&V%6k@fo_o)8<@f#~ zJFW4e{blpB*6?rH&ih_mGH zscX8($eB%KAQyRE$t1=k#w5lh#w5lh#w5msui~%bui~%b zui~%bui~$gv&#L{RuN1MrUp}ksln7>YA`hzi#!&L1!G~eu+@pHW2>*z6IaL9z}CRl zfNNlDum+o08=H;I#%7b>CcjO7n_M=G1LMFrFb@0bz&J1tj05AqG*=M$n{Z8PHp$h5 zYr-|*ns80l;KI3ZE}Tm~7tV!q;aoTu&Ly8)Mw^-BD)cJS5qs;JsD|p9^%Oo-| zw6fJQ0)^o0f>m~PZ5mhdTCV8?d8({LrB>N@%Z*mH==qN3*2`{9Yh{-l*JRiUJjJkW zE4$)pirr98Sr#=yuidk_S4Y!{PNrf-y@1H9hTmCpo##@u!B#zT9 zXTQJGOLmV>6yq(9Fh`1pdpQ>N(%#lye$ol1C!K&X*vWi(Z$Fz4g28Bz2Epb0JN<3` z)s~9l|9}6H9r#B0;o#lBKb@|Ry7&X>d_&yc8jlfRBfjm{`5J&(-~-D8PHm_2y^C5wI@ z(ctjO8#wCiMnRC3g5cg`k0>Nq9Qb6=$5P=LBfgA@QE@lA|DGb33nv8xc8Hzx{2;!HIvsFxJacWU< zOlfXWettS9-D*T|(|TdRf(B!v(ZRwTz(tIC2dNJ=P}tagUfGRs|R zb}3W@^-#pWq3C1t=)cg%{)N8HOCS1_pU?uS`pu9_EooU+P#{ap*}0sVojK<_m!UU3 z?Pz%Z_K$zlU*6NSf5}GvG0}K}l6(L{wYo-iYJ_^*Ff?6jn{`Xqo@vyi)=Q0AUmJCs z8v9z!?*0?(&W0EI-Ox*eICA5L8^#_@+(yjZ4)eZpPZ&m`rt3x2_2W21-PzyW{M>!$ zZU;V#5{B9qWl;&9yCu<_wTRV$B!OAb~ob4 zk2wuIcjM{ahTG(Ex8v;cxW)VwgOqW1HwZoM{yvTpFFa!@bJxQ&kF%ajnS02CV~_K| z?MSB8_K4|;pDn!Vd(O8wqPF8pntw(T`x3oOtLu=OLG`*x4QjsB>K3!9MeUc`*LuBx zdVv;Iy+}*6jPVk6=oH>%TA|Z;J9LKL!F!6%(z|$9=p3ELdzw}u=>;*nEybD>b#KLS z-N{bZ54|M8fN$hBE9u6`_1?Y7bFF4vz6G}Ikw=kxQ|J0KDpbF)Q0%_e(l)g(jxP%RLQ7ALmid*z z-|d?h#b|NZW1;86zK$NNZ(J1n7W!?JLRCtqxU5yRkF*QfTf|C>7p1=4FSSa!G5hrM z(;3XuT4fYR%`-;xtiHXZU6lLfeeIR8!*%SgHYMiL6UN(KNRH!fL_Hp`L|Ey0hY8b9 znJ7HldvUn4DWMO4eD5egM7Nu8b8_MZiRM{V| z*~gu1uR|HsXD63c;2n@6bRZT;lci*mYaT<%FF-WI(kg*yQT9i~G`7WRKj0jiNC7B`UzHImGJ+z?+%sEd#{_o~)JysK?CS;8x5imCOjJ+k?9XMgM958|$DJb$`= zKsMHQ*EeL>LYu+3qX6bhynqwgXab*SaoBA$u@Xd$AcVpswg_H~BF)-8#J2ZlFCf(gGh}! z`kZcE8qi$HT2%To?2>V#{&Gu==}-Eb5{lB_V^lKzwRHFi7aFu$@Ha{a+F#Lv-_ZNU zHx|5!d0Oe4@VQ3s6S!#C&Ad5FT;O;VDRb7Mf~n$N;|!J;t+}vA)iH1>HkaTM4>CKD zHk*(JkK1soLxWL$Vq_|aZYhsLvDju_M26v+B(RE3j5&M-3)Tu;I$EVZzAV46oH0(C zPEOfUHaSyUk(QQC%N)oVRm0zt zLU|u#DDdG@Zx?vR_&o)lP0MXn3H&*>aC?EjX_c|OLi#c3&y+1ZLIt*9NMELG;m7c6 zrm_V@*uJy{6V{-AW5N;)Sc1$Tjo$BWvV@!wDsj7+S9rTgT*;mP6g%VZg4FCQRM$s< z&V57)>dk6N0ejV?{>V%KNk-&U=u`+Gu*9$Gj4qk->MJbf`H>9ef zi2Gg=q~~Hjw`PNTSUirz+|??hKF8~H!T=j$$uKz8f0AibdC1X*N6@G*j4@;%pP0u^ zyFsTdbJ^^i$^q1;GXV}@IuYCMOII+)F`C}OQIk~=Y5(#kqZ@KY!}@Q*H1sO!mSKHY zunc`hpOO9Fm8^>1`}ws#;`(olIR@#1M{by+G3JK%25xv$`{GlToS3Ms0Xj%7TXqUS z-ou6Go`xELhYOR@w_9Z@sUt5lcu#@iTBO{zd%8Gu-DdCC*THV6I{XzNwQ_@>{#IRy zDp#1}@;b-wf{2;HHGm{t-tc@T?l!~t7^!H$)$#zrAdR)2zc}0z^PjCB9PATWCkHRc zZx6Sh?h8xZk*0v3Hj^1@5Q}1SaE(HODw7*woy1)(7RNv`+WsI4;J*@${|KaBz8aZ; z!kmP{XjGx)PneO+feb=`g9LP0H}vI8$Lzgxt(wQ@@6=}G#W<3CC&D459n)?o>lH#y zyIwdPDH1|spAarHQc+1#oYQZ!^dzP#jZ;yN*D%OsKFl9VBB9AYlH?Ofu1=$B5=dNL z!>3RZnfjGg`k0>Nq9Qb6=$5P=LBfgA@QE@lA|DGb33nv8xc8Hzx{2;!HAvsFxJacWU< zOlfXWettqJUupN!NB-#5ERijV9_E6D~PgQKm?F zhFVt}swldCfS||&c!A#Jrq59HA$l>lxymc_BJFpEqE_o4z!Erf=FFTkKj+MM&iJiX z!@%$JZ@%F_Z5zf9)L8yi(D($O?4t;co)Ma%6`MU1btSe&m0rapo*mmGr{`$eiK`>G z=W4nd*GBbTUDIyd7_IbHG+m3EqgJnF8lM?qJ#0KT!p5=HYlqfDqq8!BtkJj|#eTLs zn93-SyT0&8JmW%o(P*5C%*zJc3(`bpViIIgns|N^dLti0B0u(`q@N13s3YY4DB+<8 zj;D1t9`4@x()-Z69|b&-9MtbZo@7x!;^LNf|FhluV13lRjuIjtVijC8cGB@wLG1Vo^x7h8DpZRfmaL*62R7}yk z_J;w-hT~5~FyPsA%)x6eOQ7xC_orM?$DK%@nJ*$P(cV}d_*)*2xd>?5<=?^)Zh^}U zIDpZ!LbF#1n_(ripPM~9bi(R$qv!By=!UiD#FQ8?VKceZ|!6)BEk(;@}jNC$LX4Z>JZVv4e;yIy#sm%wSs&ZHmWmC1m z!ssvxIg1h|afW;ZLKrIIu&J0 z9`}{4r&@nyrtb~0j=BE(<<70WM-ooGHyMdE&GvSu!N3=zxf98~!DL^5h0n`9c*ep7 z_Bh=SHZCp*8!v81cRW=!hK)rTW9R8?swfPzivQ7juRr{5IX=M6Tl{LEn)vhq{|iKJ z42_wY;qo7wLu+Q?fGc;5$N!jB^2*T8oMU5HJv7Db%zaS{E%55ZKLJEM-7b2mebJcN zM;CJAMFXa?!C8Uc=7~LX{%9mOY$Iz;zcUT`Ydxg9uE(8@t(wMH(D{{-Sl5lLeQeCC z(6^dbbLYe|4M?nEU5%Lwj?31c{`2W}Xu}1ZqepNf&-;RB6OqUQMPP96S(FW4#gx-S z_27Wf0l`R?>T&y%C=R3KfZWpa;PhmTqhJ1J&i1ZKZ{SOyk~c}7B4 zsyurBvOqa{+0>q2-f9hEuPC}jv;FC+e0=S6k|_uBr2R7(smBpc&fVA}r-tl<&W5PN zyuw1E+@Js#RWB!!s#dO9kT0nZ;Fzpr(Pb%oae2*)Zsh`~4scS+;X!qcPADAzZ)C^o2fjVB_)HcB1x3b^uTC=9!5 zHt=to8>WTQGA~$7eG8jE*_8&UCVG#4{)QX*vfjWZo%0_-m4i>;%)f$w_ah9Sm@_-K z;rZdr$(^D3!U`?$s#ztkhLwvzWKhlpRAX^)QkhH;lKe=;(dMGVOVSKJJW0Y%O}PlV z6oJ&{vcVamPn3qrk>fbZR0XH6DnPx$IL#7)$#um$(B5%XD-nU8u({vrfr88+x+v6I z(YsiKR2!wSPW?k&dd(Ubus_P=OC}eWq4g#{Ngicb4YLMIUNb$i<}co0%~!lVpu1N7 z$j2Av%yDJ_R+tpA%p6ku0^p+5aEn^UHPm)!&a49i;A;+@JI1%>L!Nx8Z+qjZR6?JnsQhjx?Rjc(hbP`eOAv_ zpuLgTht0gfnt6?=UmF-vAGT&I`3h!hV78TE8+Ds%@gJ0{Xssq)P-~#pP_Lt2N4C;%%aL6ZIDAE!5{wpUd4B+j--}gtLB^(=I8D)Gm{RJv>jl{MHn- zhx4;$-W*=Qh>NH%p}vgz3hHw)&&&U@;df5?S@z~?Cf z8*s`1)%*O!C;_QnkJb+K1i;^%BNChE;{2^q5vQhN`GSeuAG^M7* z;|zHzJEZ&*0fd-xDl!`*)azQD` z>r_1(M8T7UO8|YDLMt~(*$6PJHp;CDE+d)w$a<8EgjrG^)x@MBW#EU@YRNGVkVgl4 z(`sF&NNt(FFH=FSGU0EwVY)WGS#P$+QnBmlgKut!61QeN0grXjOMCEyU3bwXwiASgm*kskQk& z7hNwS870jhMZBU95l%~yoc%uwUv=Kr(mLLe z4njy|pI6_6j%UI-UOV?Xb;@BWQ(#Or7#pSG1P;P*PVDK#kLNuuV__OFCN{BtaTSGX z!bP(vz-w`kh8n8{ZF6bslzR&b-hvWbA~cd?*LK6HU9ikX-7C|94-TBp9 zD_CAkfdJjNmeqb#0Kx?l8t8|h?1oE^#UlN?N!{}|$(j8xWR}+fET9*qeqQNQeVr*( W?RH_}k11o2Ybb2D2LD<7EB^-`MH?9a diff --git a/hub/imports/construction/__pycache__/nrcan_physics_parameters.cpython-39.pyc b/hub/imports/construction/__pycache__/nrcan_physics_parameters.cpython-39.pyc deleted file mode 100644 index 4f79b7673f4a7403ec4280cf0c976bcf7902d292..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4147 zcma)9-HzMF6(%YEi7V}oY;V?%ldu8YMu@XD+!P25BZ#|>(<1I-Vb^HFt})X)OMX&n=bK9%DLNAJbGZeL2+W}01^K<6R;mn+KzH=sS zw*v#u*WZ1|UR*Ma|ESLL(?I77e4>Yf8j(RwYGr0*qHbi?un{#(MYA(|=tPcgJDEH5 zB2Ty7%pW$Rrfz##FkFdNblcBb!*85(huw*p1z;DX-vvi_PxDWtz|kdYi8km8+VPzf1fp`je%V{C&s`%GWqS&d+AdPw5Fn;0wA7lR->wa*_heK zTT|m@08QDTtUzw-)SfwiHu9UcQMM;Pn1*__93{J{`ObI&58p!Ow?=N=Fv`^vW9CBM z+SHvorsY9HUbQtFamv#;ymm5T2g-M?* z_9ic?HIt%8miNwA)SCRS+2l(#n=5~ptE5r~If}C}6LK}p0nvG!X*U&e1F=DY;hFHR z&y^+fwwm6ayY_sae!WkA5u;Iau_FGS<~}D}du~;%snKR!e(f>wk75K&yq(<6r%ZN4_dIv6amEqmatMr#mwA=dZpvVpGDNE zRdi+*0Q+T=t^Q1a_-QF#Q8eFz)KBpV1>J@fm_GD(-3*luKl&LRzGmZz^04|*mc3Bo zE=~$?3PmD-nFAHHOw=lrAJYiNdVa{+AHAaGp}qxvOo0(?Ws@N zs8?srX%nFALw<9xhI&oa{NE_o(Ob{A(Aq$219b;=2lWNi7f@eBeG&B~)R$0iqTZak zFW;H^rzTAB2Y|LsR`CBVwelAx|4g-K!890L#>f@a@1nkn`aRU|Pc6(vpvTdeUbqk&_>?zm_~ESs|Dpbj%cz)yQ$cQ+fz!S+5C6Jc?C3 zmzUCz?vMX#1a{#B8rJ9*^m^uy#Dsgy`F3@ zTdCj*2&AoYJg&mKY(2w@if8k6xS2}w1Xq?Nn`J*up5#mb!t2yndU-*H08rVf_r{q> zMHwTXksdN(p|;t=PpQhRk5sQMMl3;soajx<4N)LxCGmkM_^6tAp%!+Ic$A9tAY#Y2IN4^m27RSohZorPnMY<2l3ToZ%IEcSS>av@s8D zX9$2$a_(@Wi#5wKSs%tC^NL!e0B+@_)~fVKb>h*Qu9svxnh zSK;PesPA)pVh@F3`G6ZAAw!imfTwCz;iaW%DxlOH2t4x{)jaU)&{Ox0ul*cgor|lu zb=>PVRWhkUHX$+~WLVHK^hsokkf-A~n~!*e&>|s(uVc0R7bs*47FDJRE^YmSYWU=8 zQ%f6FNXk_dbqfhlss*wKeO2wb6&@GfY MZO@1GEZ)Zd0q(Txng9R* diff --git a/hub/imports/construction/__pycache__/nrel_physics_parameters.cpython-39.pyc b/hub/imports/construction/__pycache__/nrel_physics_parameters.cpython-39.pyc deleted file mode 100644 index 69de5f7e4d28ef8f6ebc0819a52c5f195f998e62..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4228 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 A82|tP diff --git a/hub/imports/energy_systems/__pycache__/__init__.cpython-39.pyc b/hub/imports/energy_systems/__pycache__/__init__.cpython-39.pyc deleted file mode 100644 index 3f5dca6179fae93b82f585ca3ae941ce1c560480..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 165 zcmYe~<>g`k0>Nq9Qb6=$5P=LBfgA@QE@lA|DGb33nv8xc8Hzx{2;!HQvsFxJacWU< zOlfXWettMKA diff --git a/hub/imports/energy_systems/__pycache__/montreal_custom_energy_system_parameters.cpython-39.pyc b/hub/imports/energy_systems/__pycache__/montreal_custom_energy_system_parameters.cpython-39.pyc deleted file mode 100644 index b0a194d0689fe8c2b001829d7dc308406299b23c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5364 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 V0sRAd78WqnDlnA_BKgU``hUK!HsAmN diff --git a/hub/imports/energy_systems/__pycache__/north_america_custom_energy_system_parameters.cpython-39.pyc b/hub/imports/energy_systems/__pycache__/north_america_custom_energy_system_parameters.cpython-39.pyc deleted file mode 100644 index 2467f58ff4cd7a3be66d587512ad275f495dffa1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5659 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 diff --git a/hub/imports/geometry/__pycache__/geojson.cpython-39.pyc b/hub/imports/geometry/__pycache__/geojson.cpython-39.pyc deleted file mode 100644 index 8010f6face80ef278ad167708cac2483ddbfad57..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8355 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 a=Kpe&@~=<*|1PyQNe**7AEBe6U;8gNA+Hnw diff --git a/hub/imports/geometry/citygml_classes/__pycache__/__init__.cpython-39.pyc b/hub/imports/geometry/citygml_classes/__pycache__/__init__.cpython-39.pyc deleted file mode 100644 index e0369454f6ada269429c15b12629a7b02aff68af..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 175 zcmYe~<>g`k0>Nq9Qb6=$5P=LBfgA@QE@lA|DGb33nv8xc8Hzx{2;x_WvsFxJacWU< zOlfXWettA5-a n$vKI|#i_+H@$s2?nI-Y@dIgoYIBatBQ%ZAE?LfAD24V&P+VC$+ diff --git a/hub/imports/geometry/citygml_classes/__pycache__/citygml_base.cpython-39.pyc b/hub/imports/geometry/citygml_classes/__pycache__/citygml_base.cpython-39.pyc deleted file mode 100644 index 2d0cf012b2c357f719bc255d5a0106f02ea29604..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1484 zcmb_c&5qMZ5N`h@@i-X}0|#~`q(nmB3(IqO4>{LUuE3^QZsN1k7jO6>Kh7j9 zsNNxer3jZzGr))ZczAkDR}TjF>D0&%T}6x&T`n=3%`N}B=12FBj(DOMQlrXJp1k}c z;WN}#8K0tl3&bhW3Xl)0EGMSJ%2H{B6`wU1Sm?oQdsk@G7M{v&wSi3I?=&*&dv);a zc_LlByGYlKhQCn&Y~+!SzVb*fUj^rE6hcdds&&pjd80OTR9khLIHEXGdriDYajd#c z9IGDbykB>BG+zB4bH0;bXq+wPfSCowC(A};Q-UPjHG-pSgl_k^i%no2N~ga-2In&BP+|9X==9KSYzW?U7hwH==>n zSCeLEMXAx6@eFhU7MEj5=9v|_Xp92pM?N7p4a#L536U)_E5voj%F$!q>ekNqgDv1+ zv$%PhS=tnQU~g%TzPGwVV{<+P%gYoE$+exSxyKe^vEvRm*yeCr)X^4qK-q>!>oSoo zKsGE1<(7+o5Q!+U>?672jG_D9NXMHe+PKKQJyfBCY-;3L{-7oD1ancX*HUa7& bok(;BX|8`(v5p>Zct3F-GR`t#rx*MUOq6Zq diff --git a/hub/imports/geometry/citygml_classes/__pycache__/citygml_lod1.cpython-39.pyc b/hub/imports/geometry/citygml_classes/__pycache__/citygml_lod1.cpython-39.pyc deleted file mode 100644 index 3236c7a9b62756c2aef52c1c92cb273e06326103..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3040 zcmbtWUvJb#5Z|?ZcRuF=^nes-DQ=;Zs9=Q@RVqS=a-e_|qKLFAwNhD*cXKhaZ;xF& z?VZ9)6N%@(^qD-~7w8A*$M9>P`rNllh0d&f;nE~jRehSh+1YlSyJ3&HaoQI$bF&TZcDYD-CI@cZ%Y>HTZg>Ds9F@sD%5uq_ zmF0U++-vS)9Pyswz&&KVm&NNbmp9$Th2=#Medf(UE2MiZ2{SI8j_40$+}+6BUq|lz z-2A-T5xq!A7Kd)<{^O3@l_Kvu%The$Q3ivIOLrlU6R>O{&tPlGhi+F3WGcMwSe6PY zGJYo-@8(6J^E-H)%+li6LS@hcp7gl{$yDXIyP@LHZLH*SJ&ZKFERsPNcEPoipILR( zGBBL@6tFZH^-XRugPA*IoBFjEWSugL)pl&Z4swkf$N@QKv!@(?bh1Eeq@8CfACx-=pqqcEdH z6>Z!g5Nqi5Am!;AINFAZy7}`-=jQ6yic7Vcr&5S)b$JkNgfgvQQmY&Jnx-;{)ap2b zR&m>jFx=}WV5Qd|6s;i5lPnIRTyFAHsGio_7@nCh-`Nqq!OMz+aIx(n8B z(Jc}fTjZs=MV=bF*t5`V*??)YwW6kSh=sxqg18rFLExVZ4*H;I25}kG17KAdC2H0v zEX9*`IR#sdD2$Y876hfwS|FCkp*aJj>d+AC&^jHS+GkXC@Sz52q~>5Dqg!;7$Tk=P zChgJ{!VE3B1QHlSNd}T_`XfXnM3T8wG|{^&B8gdX0@+9C;&F(ZMLke@>{#X2%Bb8#B)mW&zcJ>OhUN*stPGtntpg;ytrQR;M{3qj?1sm364VD!){{c!{ zEM(y<#yuX&$8oP)H2Oj<#wr`uE@m)cWJ)~HZ}$aMRTZpDkp@spVXA*#@>Fc{07`Wh z=<&&6NKwO^E2w&tkP;)TaBd~Ae} z0`P^Q`iC7p4`Y7-;hoa_YS8C8MF3gM16>UKmiBZB;y(eC@4~c?fm9nBVi>e;&iv(A zE&boB4ciAXJCHn>KstHQ+ef8NnKrDkFZ}Jdg#UkqPF{r5-;UJhFr!4uz>sXe9(w!C zE9-t0T8D*ZVc&&oo*ZUXfUVbvS7ais|YCig=QYFCneuNt~xO#k9bs3NKlkT9!c_vsHt(0d&lu5@#&U zI?{uG|0>+*UUi#$Hju5{BD&J?Kl# KvRhRD%)bGz-sXb< diff --git a/hub/imports/geometry/citygml_classes/__pycache__/citygml_lod2.cpython-39.pyc b/hub/imports/geometry/citygml_classes/__pycache__/citygml_lod2.cpython-39.pyc deleted file mode 100644 index 1d503b9c63f5f8bca43295a45b3d42d245b38762..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3319 zcmZ`*OK&5`5$>KDzDAT*(khCy@n#1}fS7hn>?(i{izL`A*N_d!vS8(54-^cj>6SG1 zJgAzSt$RUUP24k){@x+M|F$|?M=&Mwwj*p(x zDD?cWpHllI2vL6#WM@t&FJ$N>CytO=KM0*CPCph-5DgNQIoX+XPGu6wOpTl%&JwMm z*=PY7+G(bSel}FnK0J8wiSv%L7x*$xC8Q68jI-b*km{+kw|lS$)la*RQ76iIC+ufZ z*}Y^iQo-q2=KTA{*?GLPsd(Np!h6DRRC7($@L#L3+*&PNUPPRMD zFtw6n=Ts|HlypxkU6iOKlh6EWwyxi|{|Aq=4lkBUH$CsC63vy}@_g^ha3B>ljl-cj z>HE~#I7q_LDQ2Ou^FOm}q-PK$b2+dy1b59Z*$EI8=F6sQ$(pc4?IpY9Ze2E}xIu10 z-xMvaZ$Y-jl9p}AZLzH7CCDq{o|fBRGK;y(zwLV?!=UMH+UZs&yVGAi8u=WR;5olwY8`%p$FBJy6Nc9O2paThjj1*7LW4fi zWYAplKY&3%*xD~zw5!7;3`DU?;)la93rb2BD>F@Rs4is3D(YUUZCAXA3@gtT?XvBY zU2%Uu$v%h%p^R`TrFc)NMBNyL>4&LW!PeEbSnBRUqd)$6F?{UHhaN- z_n(P5Ud>p>bDZgtPpsdvc++B;F?yHd;&ApUJ8yr=V&gFzZ|VzV=GHd5=10b)HmR4^ z)=1p8&b3`$+h%!v8${Bp{bte-X5N4&|CK|U>EE0*^X6Q8bJEIN5yjKl@F)aceR(`O-O@G9+u&;QCPA3eO6e| z;d=iH*l1p-;)vCaB z?^T*~cuXcmeHvrjHNV4-6ig_NXukXtg5VPqXyRD_UW6I&zu@W(QJa{ezNpX94|MkzwZt{i z*k%(e-dOA*`-zpCqV~C={v?`{T5f@r>yvt3`-+KHUjK^y)tuDMRbIP7`x*?*_?3YI zeqAE~O&Xb%H^AIxR?ER6^we|kMc98d!HK2)q5;_V0=)D!9HwXja;btu74}{b%f9*; z*Q+pLGhTj{s`N#G5R(Q;Jg)sPBYLoJxYOaPgTb9fQ4cXuFi_;NVttSxsYtyOl|&xt zG1EgOqvS$*$W$^<_s@6hJt)eeigk+U6%n$;L-g;orj&XM{dz&SiG6u-Ka#FZ=F|1u zwO4YvtlOHYz&^sXw58MQ6yP>(evCDKj*`BCifFTexU$6`7#kpqr3qt$GEF{yv_P2G zFTz5!p{O~FoNY7^Enhtk#{PIohj~Ybb@dPi>H$@^;y1b5+P~&pRLX z!?LI0c_Q&WPe0GalFn|BiJm1wKTp6Z>t}&qs&vrNyCY;2IY7~#isdqg@MRccvR96} zM<)8Uqw7j7jU~`C+cksREfo50psb;o23KUckI3~D-{J`<*DaHcZk23w{l#Qs);>nQ zsR)kZCwGoJ)A?sQo5-6grZ?p=4WXIISrWXj^6u_2vR``PJRu`w?%mSI(>wC^{~gxP qaNUlFnM}JC!RdPI1J3zKdy9NjG=DaQ=@<02r$i2`*+z84-~1M?$aYKs diff --git a/hub/imports/geometry/helpers/__pycache__/__init__.cpython-39.pyc b/hub/imports/geometry/helpers/__pycache__/__init__.cpython-39.pyc deleted file mode 100644 index 8db72b36e70359c865ae1b06088d0970175f9191..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 167 zcmYe~<>g`k0>Nq9Qb6=$5P=LBfgA@QE@lA|DGb33nv8xc8Hzx{2;!HIvsFxJacWU< zOlfXWettDi%d601w)2EFuF^wfiNDUd^tJ+_Db3%%_%z3A9mkxTn~vrCzzgQ7qw%-fkaGjC>o z^LuZeg5~7~!|#uO`g{29GGkv+WBO;KaUUhyf(Tigg*>!k-sa|OwJr0t+YY{VZ1>%^ z%h?VKozQ*3Lif~ad!e<*n%?j)FwoeMX2l%roJ4$2DsOXl?l`z z8>Giq8$wJ}6ZD1XaO`yQvrwTUY@=k?A#!$v`@YUjc+SpvjypfMPN2mC*7#R2D8w&R zkYtCc>We@O(kRj57@*^_P)#p&{XnbextXvv2vpE7$7WmN^XD64v?0bDqN<2itM#}X zsiYpN1Y|3B`X}2KFhvjY60WE-rL^V z|1^^-+aLB-n(F=CQKuKEenpgQzc)NECF&1SrL+BRMb`b2tS=RQsb~#G#i~yIaxuR= zj$0y#ak@f{R<{4yQ7Ha}JDGXJHMmy!RPk2ox8^0P`JG zG&=$*wFy7JwNJRV&zzi}b5NB78hd=toO4@A#Ec9?tbA4+s+72zfsjdej%T|>;F5e_ za{(T?p&kunVP|sCbPFpP6b+hRPA=TTI0dn7Y)36ZV8UW2r9hO>qN+w6M7?RCDzcCn zzqIo4R(a!9kY1fJ0}U-teA^~7WDC9u)({jSKe2Mlc&??boSz~_ud`oU*Vs9M z^wwoDA`YsrB92NzU5D$wF$!&S`DJq#vG;o>*QB} zo8eT~1iBB|<5j@M3B=qww>W!RH=MG@@0qiIk{nA_;$p5w5M0x!AY#qJLWmHtBfN1+ zR}d(oap4*h^AIdYW{oPcyiZ52Lokp0XoZh&&K-JY_{<^60WaBc8ynH!2YA4rFm+S& zBkRl#t#i&1TM$*?NQg4dH4|&Dv2}K0X*^ctoKp+X+&-~$mfKS!;C9+Q^KvV9&aEE< z!l(D}Qc$GIEBoHWe$Gx@tl`0?4Vy0Z;jA-b_de{pWcQ>--_UuTpwV@9wG+CQ6ed?DOuDBk|fpQ zK#EQfcZQVfgyL>Xd_W8SRNQG8$GRXcT~Ijuf6Q)9nQhh;y)+1Nqpa{UjciF3?lTo> zS-5!JyV69s;wq}K^be$dCS~H6&wN(c!9mt+Oq@C%^n$`gpMSUDQCZt;zt&4tG)@y8 z#1*9rhhR`|V&Qfpk`7 zWQqR}a+SXgIleyUFjEFQ1m@&NVe2vl`W+hd&YW2}0wz7gnW)+bujXOCqwOQ-%&lAq zK~*!j0>evWy_|VtVg<8qz@>8Jf=?Wk(03i~23Jhr7FMzjjf>V7)C01681+Ty!U=0< zb;KeLCxM%So~faixe+kN+(?yp(Q_|UfMhtSXjvv)=1#V%K_y>bc5KdeOcJjtA`|V# zA72ugQlu=44q_>g=3Nq2%rZ&9Zmrg&A5arMBYPMS3xMVwGA>hz$1YpEZR zW|m5-30)T@y8^-L!cgcozrsBfho0Ztb5!|8+COZr6m{RH{L1%>hVS>&a0u`4izVMj zWQePtn(v2cht!!4bksq(=%t~_7St*>V2-MYf$AEGTO__q;w}l=?bHd(Stz0#k6b|| zqeld(m2L4xqbzF+7B_|3w=8bPHfxGr5%nGk!m@CaVITiT5!B`Slt+BiT1EZ+@^JTv P116($ygIL2a54KoKhnDy diff --git a/hub/imports/results/__pycache__/__init__.cpython-39.pyc b/hub/imports/results/__pycache__/__init__.cpython-39.pyc deleted file mode 100644 index b836a7234bd6c7eec27a75243325e722053b940c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 158 zcmYe~<>g`k0>Nq9Qb6=$5P=LBfgA@QE@lA|DGb33nv8xc8Hzx{2;!HsvsFxJacWU< zOlfXWettPO2Tq@XtWZ006TMC_VrH diff --git a/hub/imports/results/__pycache__/energy_plus.cpython-39.pyc b/hub/imports/results/__pycache__/energy_plus.cpython-39.pyc deleted file mode 100644 index a6322ff395aaafde760fb79e4174001d4f93de6f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3320 zcmZ`*&2QYs6`$evuJ%(}$+4Oi1d0INq7fXYNDILzV#sdfLQw=eZk&Y@g5r#{RJr78 zNXn7GJ;{e$+WJ_aDIgsK^w49^J@wGPV6N$h;f(7ZP!SF5yH;?2%`@5eW9KHiVx zx7$quzt%Y6e;*L?6)KBA9h7%L(rsuM84*UA7SV||(kS-zNFV9&Z$!q#9GR8Pn%Ekl zWa5k(l)Oin$*dQISr^)<$@C{=Xy*aLdE`!#I2%W2E|0l5I&%;F$d3cwe6si8 znfs=@69yb$(0jyqoP~!W7n|;z?`}POyyYH=B%e0-L~_i744jM$_leIrb07Qh@qsVg6txXeYVQX1>l=YT ze=SI&$UjJgpTWp`VFYizpTwyjo$`#k_oGu^@N<`O_o)aWqzK(9f;M2H73gN%|G?6c zA(h6SpN)5+(}r-kB)|2eoTmZ07k~3T`59O_8By35jZxSKjp;AQ$lxY3nE8TS(2>O~ zW`oUU4y=1aHXo{0-iz||{8rO-OVyo%?go*creF(jfcl4h4P*->?Lkw}f_S9RpoM`U zDBT@u()5BbJCjZCz)!h1g^3JxX~6a#N<(=XbH|rN;F){%>#fcGrzscdem)UNlI`!E z1!G@Ks@+NV$N7Pha57CqmhKCl<`Mjt2gSpjH>PLO@w_k&GtXPW6b)zywdncE^-MQv zL;$C5{<{S|2Sm+Gf+r&x%LcgF7$S249+N?QSVrH>)N<>zemv+&-qLiFGW0tagURVn@ zTiL!S>;;>nY=0}91zSVeo)wL2TcN>tU(Z^sIctM-K)N73kbYr;Z!lXf+L=?disjod z*I$rX`{dt+!Io|lh|`P{T7~Qb@(+OQDP$j!C;$8i zXvu)*LZ>8Nev7=M>A&s(`QY<0NMXPk?e9t|q>*Qbzl8d7IFJGhC}9!80u4R6WU7mCMA@@$%C-eDM(B`X~Wrqodr zd!=96V--D>w+`|!!gceiD2z}1n5CluAaFrEpvHU>Lp?J7*=P`yt9jGfW8>#HEo+cu zxxP2;t5LPiH_Xyh(WO;pB@NgxJ{n}W3tpW^nOJSD^C+#dS7I@b3b$5TuJfqutEGLO zM`do;!<6%E*YQiWfq~0z_c~%}=*&YYT@hi~Ea9%c=6%l!BUh!LLPNB5+N6%A(dzle zvJF~4J?hZbcSUpNegk~Vv;*xxwXZGo2lS41{^Lc`{GMEHkf;eMp(qml6P)6L9Ft=p zy_fWp&u6rt$J(EPO#h+*b?V?V3hf6-vE~(->4ko2T@m3FNIg2xs{zHW-G)!hv6D59 zoA;o2nXdGuxo#-EHP=n0x97U0^iHW~-OFAb?KZi>d@yqV9;rMkZso!LwMUImd9Z)& zQDape>|cA-sFer%=vl7EL=royGgzrSYRtI@wc4Y`oO@8KJ!;Ik2esOx#+-Xl1J8-W zY@k5r{8RY0;}>6q!Pw2l+{F*GdvNCFDUuml%DOJE1J4ujJD`o{Zb<_!(u5*F6=qZL zEEn;nyPL#ZS|Kk&Q5t7{_o_QrHsB5b<-~V9u!)>Xj`9vBYKfM2VXbKyVPCY}}Q2eT9`9tss z7aP0*Efl^5ybimv1J-l{8e(>!ke8uQo3vLy`Z`_LdjDil#&v}2LY|BWyLkBNL zII8Etwal9&EC-tRWXtnTazCm(w&$@V@I29iL1in=fX9Og&&CN;YcJjb`$D!VZ{#Y0 z7p*QxiYA~K-7z%U{JF9Zm&7JmrHvQCC_E^)7fDR6!>w*(%%dq>{P0GM_gwE(U3AMO vUR?yh{Tot>vlKr<>K)mb+r&>Hpc?Q0B`BSH<(z+o-&U2SVFNj8u&(;I&yAF$ diff --git a/hub/imports/results/__pycache__/energy_plus_single_building.cpython-39.pyc b/hub/imports/results/__pycache__/energy_plus_single_building.cpython-39.pyc deleted file mode 100644 index afb0019d9562f95f9d8a19d583ee0a535c578d37..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3379 zcmZ`*OK%*<5$>MH?(A}3B$t%MDDfD%cn@C4ieVdq5LlrIQwB{DB4x=7+JoUvlRNb6 z%(AD4GU?e9b?_w!j{)KUd_t9l+>I^hnwx2x)#>YDDZ zugh&V>jZxHzWIjzYmty2P?-JcAbbQZUWd*j1L9Fn3+PxIXcWhKppT7#p~gmF4ouJ) zL1kRk2qj}{P^08y;+bCM74a%(+Mw^PAXmY~+gORZR z^1XfU?!9~VY7`D5?)k30y7qL{KHyO@sc-SAmod+N>V}7VF1KTp`aF|9 z8Wykjhi>`WFbV>9FXFC%nYa7^-ug5OV>dWvg4qv)W0$j2+hg`K?t@G2+Y|gM&d?VpvhM7;F>@vuxh@UZ&wXhqORY3~PdFa3*PpH4-+dM{9`7b&9z|kz>tr}` z`8eN>cz2ZSspgL-5f||;XK@n1e|9pQ2?XxMDspEp54}G*k(T55p)VW*KX=O%NRl4ue>Wt1(x<9AZjIO41FVfnTF4bVZe@`1;ecFW9g4TxCfi|C-VCzm7 z(x$M|M!IktzV!n#Z65t2HN3go1iUmcs_MDQnx_2)|4dN`Q`KC)D-xQ~8Bi6I6?X!!c+%VtB3A$ybc@d)?(A$k>rb9Nb#|UO zpFG=G+wR?xcV;s#O2i})&b}XHc`hxOMv1bHqs%U=BQ>?X<1#XQ~ z#E}J7Xp1;9t?Xo2j3dV_XPT=xa{W@KFXPD7&0?DDJDY|7Ost{fY}mf?m?>JND9>J`^gI9(TKl#xdq2p7By>b!7*AEiaC+z4vGjCbBmg@ zw4hX2)SRUSrNW}-EG;M%7By#SK?y8JR#r2dep$ESw-$1LII_iv*?70xdna~+7qQZ0 zS#IO)Y`={7S3oZ>?Ti#`Bn`!p%FTVwM8d=S_GT0^r8%{bKKei-H*(!(ugmeY$Xao> zV&FCxNDax4SFl?~d)1E>D{(A~WUI)&EF1aHQE4F2$ySkxnMwY_i^eP#{?Hjk!g-06 zq@svC@8z8`KVydlP&mS30E^^ruawF9KQ@lFlx!a`;bat{N?mDw`ebuwUFvZ%md596 z51;l-UPYu;e4(rBW4TIdI8e5PCMnZLRYlT zf9rbQfEcpp^vxTSIP<&Nt72t^F*pv?dCoZU61V~!*>Ier#0@eFZ@|p55euO9;h2e0 zqK z1gb}@qp>`8j#YiE7MWx9CYNSWP`X1QFPLk4DbT;bJ+$u)$<-=xmYCUj@BR4Z&By!k z`R#U-!0)f#fPFI{h}(BQ{4S=#1E! z*czc^;*1)Ud_+Psv|f_XI@d~lZ@Py(&8N*>o*uD4fH7p;ed03~x{v+jXy4~1)pbc1P1-kC{ z->|i0NTspsi!uDS!5i+#r+%EXY$rhT;%|N??}3()5ruQn@LXP!k`PoWfbC zeIHq&4SVj${+8O|-8j#lrTn)Carz=aU-b{i8njJlSr58`7Q`ck20hFHKIqO+lcpC$ z;#4-heLrK~6l2z<0VjDN4P|M}4c`)u*X#A8%{zNfGsd&Me8SUI?CqWgW1ml|gUI&A z`Mzq=WSVl3?QxdnG5nWz!ka?K-is>cjp?a$JTFQj;dvNlWU9cW!>J!s2?3AVwkU$li&w2J;3to4^< z);|7MVT4O-1iZ8{s=@-?>g-0*QMelwuJei>w*c8v$c{qVfLxyqimpNq5E-@y1iW?u z{Q;mm3f)y`NBLbTdJ4T#`RxHR1Y}nsdkWc5$kk$5Ay+HpG9Z5s$euzjBl7s~&w!E) zc+Pc7lK#)gE1Lb|77!0UpFt~-Y?gN<<90r6CM#{f1Sv2rxh!O3X(K?2MarF`o+ zkERo#uu-R0DPI}Ki^=gK^JVCwUI#{f6mMV$tW1UtX{1w@a7<5WLw2Mkhou9~lsIbQsI*Ia zth{IP=6)W8&|*GGATLAq0l)xWhc9?)Cb*-zg@o<9)NH8M3JG;E4Y{|L9aAV=f~$nO>X z{Hqx)=#lm(Ak}X)pimubMxnipRBK+6nO^7@)+OOiffS?z%^Hy8+8TU&jvUcAYTkt; z4s|6j&1FN$t+{L}xjmOHC3i|$bT4|fw>5H!@u27ByQH!xzm)~YR~9uxWx?^4Ma@-N zaC~J^vsM-yqorTZiDY(IM{uLEs5$2rlxmBbb8bPYwx~Jh7L;m>nsaVJ2`tA>Sp%GX z(RAUrmGCGSyJE~-{9?QNr*57hsiCIKZx_G0ZvD-5OFD3oE))?eH+MJ_IZy7mJ88m{ z=FCCj*Z=~#BDC*t+0Jml@wUiDeYY~;E+0q>$&Fjst)ktIGQ~&yU6eX?-c^aL2S9Pg z_M@kdWv9-;%Jkzfov=(qfj3Tt_W~uOtUmx=QooM?0TvOFhdc()eua-s7RkZA3ct3S~p_tXk!dz`|YZuryjA01NmX zPUQh;vkmBo*@1-aL&7#`uYUA(x~}#9*VL;9lu$lrYi~&3(&Nt1#)1iF_dKZEyh$47 zK>MC-dERmE$EAh0U{2Y}1kiafVPc$yYU}w2pkD}9g^iTOvF_?Z%dnJksAFif`3t2T zE=k+-!Zd(MY%CGuXute;twX7|F=p`;szI!XvC#ESRHdu7mt$!rR~AuFghNn?$na~V jUX+cwj{gMkYR)%>D4o0IVt=yE**4O_J`OKXT diff --git a/hub/imports/results/__pycache__/ep_multiple_buildings.cpython-39.pyc b/hub/imports/results/__pycache__/ep_multiple_buildings.cpython-39.pyc deleted file mode 100644 index f39e2667ad57398759e024730ad3695998491065..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3727 zcmc&%&2JmI6(?s#(n#^wI{T40=`Oq77Ey}`skdkg!w90h#tec_PvpSZpTVbhF zf<7xO_bLXVq-S@klzc|~l3#vK{PHuSQ}eBLQm@1|C8W08mpo*>sIR)=KI45ZcJ|qp z8@hdu*VfyMzhyVsO5kyL4Qk6i@2g-t;9`!geAZrpu1_1cKt_Vy3|+-VZ6O-$i(sd# z*w?Sv?5){Zwh;BbNce%v7FufyY)3@#pw<@AF836GJ{N4=<=kg$Zhv>n6-;8QA=1_z zFCX6U++vs)g`v9@30HyUb`Zj-dr@Dy;S;VnYlcr;!H3M}?4bx?N)fODzSMw)W-pzc z_usI!q)rp7?W!*PkHc)ZBfoLOn9EfU;nR-+jXO}}Cm=ZKP&gL@&*eGkn7-*-@NcDi z4(CyU{kD^9Exo(#FqZe?Pz8gK|0)hbKj`mB4-Ywiu#O5ApvWl@BRV1u85tl!5llu` z>qb&?yg=(ZW@5o{ZYP#Tss-?h2=uYz_QKreL&=5QjC&%A)Mk6%>$;+s zorc`(##_1sy+I_D+!S1bsdAGKoL*+Lvy~g&80;su;{^RcIS$$>Ef9p3>F|>a*4oI2 zc(};?DM7`Cf{T~`0TGY`LlH$s^cg)gjisSdSxU=<5psd=qdD#=MLiZ-5xLk*e5Q5NNV$8Ae9&O2Dh)H<#^m>)A+`q zW3Pux7kW%FCD$?J_`K)#ec6}~BhL-xZK&i^A6N6JV#k*Y>lgI^cH?gS|F@G1Q52rP zlLDhhOrv-YMX_h%189C9%9+iAb>(wiu&xRW(;o6MRJ4c8q#oj9lwdT_m*y!iF^1OS z(gqveoZCPqXFwFJwHF729*};qk!ygl&o>Gus2c*37D+69*ti6A+x)!VSjmq7)+A9j zjMvAL4E5zJ*!Zp|^9!fhZm%piR~K4y_f;2GaAJKcgk&QEq(w+GXIF6X=KuH&lbaA8 z0cJuLP0V7`>>+Z)+HBQ-0~<8jE>FdaG?7+9|+Ry5#!foM_zK93+rCKiTE zVtVpPQdwZ>h@!vaY-spf|##WiTxO9DM9xt@jI0P>d;#cB{MXFCYf%+tA2406tf zXkvpB{bHwvwREKR3veCe0r5Tx%@9|LL^BRdPhL`aAO^L$uZm!TJfJwPpy`PY|s&L$H2=XssE7bws9f zoya~rxdoRqMC&XNY~_g7Ss>WT5v{X8u$3cPXMtb~kiB`|hP+rE{;tO0Y4w2`x(qmj zX@=O^XR*Wp!k*Nf8M-}t8j0US#(TOS4Q4edtF$E>++;-AFl4k=Y#_o#WTtg3uhEv7{U3=uDV#$=jH~n_4ot z!ZHCgB^foY)gLCzR&gu2k2pfg~R29q){ z7#z{3Fi;}dk*h+bM z2JYRBE)NHAHOFrh{Pb|1=x-0b&Ef|zQ}W*Fx8So#Dz~p>QppA;)uK=Q1m4#=&oeNw W=hMaA#!IC{!>!5~9iz4}ZT=6+vClXF diff --git a/hub/imports/results/__pycache__/insel_monthly_energry_balance.cpython-39.pyc b/hub/imports/results/__pycache__/insel_monthly_energry_balance.cpython-39.pyc deleted file mode 100644 index 790ad3beeff288edfee631916a02302c6f5341e5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3885 zcmaJ^UvJyU5#J>#iIQbmRuo^HQ3W5|-SZnVp%P znVlIrv$G|F-xptg>HVcn$iL-c`ln;@DMq}8hf7+-rLGpx7R6f+w4UD5X$mu1hQj4~ zd5uugE3`~Xt`paAb5DtzJJMQ3SKB0w{NS%(Rk|6*USRd2kavPZ%L_fWe`xJGffKg9 z(&on6ed}ZEmf!Y3hS^Qm3%S4Nd+dsJ>-xqmfPT7k3D1aG9|sQiSZOutA2NTx!>zx6 zV=Z4=Uba@FupKeicdXU*yQ|hdiw6DD28+60n*-^3%(_1CgTQ0GXzBWZgFEwvw<8vD z@6+~p^HSR>J%`4m*`UJMaCoOJSJS_Vk$wiKM_?S%(p=ioUCq^>l9u7+QZpRUR^H9K z1;7ff=@#)e-4cv4BNmlGZm0HGSLV2uT4Q**WLY9pC1RH?+kh@iulgPVY}n7US{KXr!&}9!&lnJJDG+%>KJzBd|Nr69YV13{!;%? zn6~YQKDX_fRNBCUXn8vP@U2E#8gFP*Nu2$pmL`Te`gfS@lM%(xIN>nD5k1yURP?&~ zZ}s1QJJPv+Y$W;#9T|zSMjn1O%JE#116^J^@I=Equik|dGRkw)g&U7FP+lDsl6+EF zByRDM&c5Qsbag~|sXJ3AZmCX2CU}`gRAR1@gZu8xc$U!PvfSZf{}DZ*6wb*Y7w1W^6J zX?r3U_XD4c9CN~btoDM);h^W9IJLd9wY6#AxO4BWy>-X_{NAngO_6u{VDC1HVj&HJ zXu$geZtwX)8g!!2@f;3?MWG!#*?8PuR>Xo;HiJgv|&U7!`ML~C@J4wv2$Yj0rsO581g zw~Rd%cVEMn3F(q9T_evl#FUCaM4^shJfp+!652(&SR`HDB?H1XT)K}ei--XUD@yEH1|J<~0ZN_fxWJ;N)YoI8>_(T6)b z+NeC5b?K;rF^5rA^i@RmjnO>TwPe0Kk5zeeDyb!>eojWUgMR>41MK^wdNP;P!0%Kt zyGWAyBB_%E5f4cH90Bdz!M_gvmgvW)L6@%+72#43$-nsu|H@1L&*;I$Ou`Q#q57Hx z+^dO%DyTofIGY%dQk{}wDkD9CeuKL!sj_n(e7#M=s|Mj`o@s|y()&8`kyRzoMShEeEQ%<*H-wVcpGm5kVrQMzMp1^y!s<(qdrYj?b_v3f z+w1FJ*lQ~fHtiK#?O+$6BKttX6zi>=dk3@YB9REZLgG*2T{oirp3FA-{xItR`}nf((r%P&ONLD#5WI!5qQ}9b^aD zL@{Y6c3J`peyrLUc2TY>S)Y>yh)P)OCkm4_K4Z)^$w8W$-NB<_s2j*WlcYt}Hz{G3 zB>2B@%%hXT;d?;EvXdscvI+rHGhZxdXVLTwt+$6ly19v74ehv;VcYmT!1atW_J zTADZ46sA#P4NdNH?x-&=*c`SQL1ro&xEVZ+g a_9iuic{M%WC$bxkrDjInl$TSh>Hh<07dI6E diff --git a/hub/imports/results/__pycache__/simplified_radiosity_algorithm.cpython-39.pyc b/hub/imports/results/__pycache__/simplified_radiosity_algorithm.cpython-39.pyc deleted file mode 100644 index 85680212d88d7bcf9cec8729219c39e91a6c3478..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2307 zcma)7OK%%D5GHq5tJV4yw@sQy4@8TgP}>MbatL4;K@7)nQaFxbIdvmAAl6GtT6MLQ zNy?~%RS$KpIrLn#aE`h4Clvh|y!MoHZ#i|il5C}ipcFV7&XAnp%r~>q!a|5(eD$Yc z2W5o*wu{-}!s0$mwFZQt24a{wDQ-B$zuWa3gi*KD@UhjnX}KFT0*tm0^H}L6Vx?23 zQDIIURsH@Sa79>8y1g`MCY+JIh$TWLdO+6GmXL{VcfJ zm#buZYj+z&cWNs@g(SDqNOKu(h~7XZt+pnAy&<<(Zr>&wB8!D&Nkld__clmNiheKL zm7>FA4NAr(+3F{0%4Jv7w)z@wmwfm{NTK=tczU=NN8wxW8SPZDS$HBc-A)JJMQNX_ z*otR|1B?4G6#>Fg14FDJMh%xa%zcR(-Z&nO67wMzW%JoZ9L~dV9);o6kdVjSo{*Z< z_tuHzs-J2F!r10xIy_)(_BLRuA&?yBh@#v93S7rd)Ny`=%>3ruKxgi21R8HhbgAQm z&a=KT@0HsrGw|z`JsljNtmYwI8EA|~E=I#Ey28q*ICp<`4$yPJz{vf{&BF2j3R(dP zyeQZi&QT>JT0f|Xz8<=V>T8L?r>bLI#e2qY^9bT@yfjf7;^{-eA+y7)JEC|a9P0Ho zX(lNrP0`O-H8dp}13FAdk0QlsFVbz}Wl@)#GDJkAC%kcqCK()~_SkrX(_6um;i7{oI0EsJXGh1r*evT8ch*j>kYs;ct)ZrUACEA z1cDqN`}jI`Fu{v>c=JPOsZCGEHr~@Q2aE+s0S;Sv77P#2i&Y7E+V4n}N63EKAf9B<7kOaDP=I0)86&I}RCK}> zNiuQ-Rm+mBMO0rlqZov`%?Z>x1iL3P+bc*SZJ47h<|NXDCCw(6R<4sSzop_Rg;R|8 zcvf5_vf_#^G=;)c(!4N|D6%6m{tZd=#DyqL&(-S73opPm3qjcV{&CgganbB%?hsiz z0Gp8>KW)4tKEIZn6dk5eu1c=^GFv4XxKT*n;nnxjZ2OK)a~-C-0;C0rez7>hIo8kt zZlGVBW3N7jur0+{bMx`R`u={MK6?6WkM2LE-#**ktb@*}tr+}c0roMm*O_q57HllK zy?Zxd{SQnuy!$~s@=PXiySA1J2)4Qh%=Cu07NKvg&pXviatZ!TNx|np%fRw;w*II% zvTfQdOj1mb1~g&P9x_WUuBjF}N@>@&V`wc zF3q?<)&$e5OgOcZFjJoJjm6>->0r{E8Vds+$@ArZGvSZpdILOCp94YV5PLYppWpz` z!whGBffIsk_{IOo(@xd54amNPQs}i1S=NVcO3gf_$NeasXv&l_5mPEZ1=I45CAKfl z5Q`USKTr!Wl@BDqo*RUPtQyL@ATfR~%2=f2yj@&|o>^=2v;7G_*wTX0+mIZR}Sz;c;5XNpr@P! diff --git a/hub/imports/usage/__pycache__/__init__.cpython-39.pyc b/hub/imports/usage/__pycache__/__init__.cpython-39.pyc deleted file mode 100644 index 146165821b2d7f32b3b28c6fbfa863f2bee35733..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 156 zcmYe~<>g`k0>Nq9Qb6=$5P=LBfgA@QE@lA|DGb33nv8xc8Hzx{2;!HcvsFxJacWU< zOlfXWettWHa^HWN5Qtd!Se+FU(09KbLKL7v# diff --git a/hub/imports/usage/__pycache__/comnet_usage_parameters.cpython-39.pyc b/hub/imports/usage/__pycache__/comnet_usage_parameters.cpython-39.pyc deleted file mode 100644 index ca7436f3c53363d904db7e567c67646b5bcfab70..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7097 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 diff --git a/hub/imports/usage/__pycache__/nrcan_usage_parameters.cpython-39.pyc b/hub/imports/usage/__pycache__/nrcan_usage_parameters.cpython-39.pyc deleted file mode 100644 index efa05c03e2261fccfc958f63c01177358f86fb99..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6130 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 H*iZitBmeBX diff --git a/hub/imports/weather/__pycache__/__init__.cpython-39.pyc b/hub/imports/weather/__pycache__/__init__.cpython-39.pyc deleted file mode 100644 index 21a79cd8c06f7843c8d8d769946c4e5005438acc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 158 zcmYe~<>g`k0>Nq9Qb6=$5P=LBfgA@QE@lA|DGb33nv8xc8Hzx{2;!HsvsFxJacWU< zOlfXWett-Ni6|TZ diff --git a/hub/imports/weather/__pycache__/epw_weather_parameters.cpython-39.pyc b/hub/imports/weather/__pycache__/epw_weather_parameters.cpython-39.pyc deleted file mode 100644 index dbbb01ba0968c607685aa24c2fdc6a443baf0f43..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5643 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 diff --git a/hub/imports/weather/helpers/__pycache__/__init__.cpython-39.pyc b/hub/imports/weather/helpers/__pycache__/__init__.cpython-39.pyc deleted file mode 100644 index 2aea33725b39ca441751618d0c13079160be46d6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 166 zcmYe~<>g`k0>Nq9Qb6=$5P=LBfgA@QE@lA|DGb33nv8xc8Hzx{2;!HwvsFxJacWU< zOlfXWettWHa^HWN5Qtd#Nd@JIIV8HE0>2IDOSgPYKUbs!8i5W`G!a04fAt)V6Fl&fn9 zBRAd1U~~tu6w@CgroW>#vP`R^VmkaiEH899m2ECan>!sY3iaCUACYTh$F{f^aNxEX z_oUslxwt`g?$mZbv}}}t`hr|@sDw3DzjG|?R$G!kyiY3SN`+K?&+-McDXDJVuacJV z!%m?l{72l9Fv(!Qn(a_Q?)qLpog*$e*>sMm;61`P*%S6dDuhisO383fm2O(24;vOO zoPhmk*HU!6Dd*jU9{d0ZN8lEuT+&D}4V*A|be3irmSwqL<{LUsvpg$2M(^N82KWg! znebUQ#V$QYjU1Z>cg@7vHwLci%@zn5^2Bmz5Wu+iZd=MuaHCY>9v7|SjuQsghQ2j| zWrMo3=XGpp81({a6mzY+&XF?dI;M6g;J?R*mH860svNmSm zXXqqmzI_ohc_{o2A9vSk>Gsy1>SkSrQnsj&#!`808T_=Z{PcfklFfg2kAWy**YB60n_H0l(pV`kUB6y7@7A}^6{;p(kJQWp>Zc<7 zM2}KWF-C{E2t#$zdkrWegxukh1P8}Nau=#Gm7(CIDSVeu_n{4tIWu8IRTklUB#dNH@Z~(-q zj^B+_mgI5f)vcY^w|C+#j4pr(>gY98ZH+#`pg!Y!F;l zf0Ng74$tAqXByU@>Dnaj%@2#S@!Xm-k(`93Ip|3w{|bzXB*PFztq*5JUr(ZXtDlb2 zOouq87ZJWMEU^|bHM9|b5SbNA?9$_ zuzaMk!U9rA=;zcqGaAEu9`-Lp7?5!k%0<&`#@UO*B*QfQi4ME!}V02XNM zg?SX^qAa_-2s#o!NktP+vHCX4EP%bBtuLYkV?T`wfU(&zj9I?JNLQWSXApH^s4?4; z3C4uV5_{p}XV2_^!2RST55tqRB1BEBe;pkBi+5G~^9X&9H%?ws3g1vfEpIj0cmDFj zpZ#m&WLk+Diu_g)m2oE;kfJVB%!EqASnJqvDzLrcq)@vxuABo?vq{^6du?vZ#wE1pr#Ju{mX6z)P^ zkfgTn0Z#(b71}eIoNN#T8S%!$Gu@N)r&cIg(H~ zqzRWn#SashG;Ig!)==28kGMx1-%>8})V-1MCJh})u8!^vgi%S0XRBBsMIz|ktarEt zH&E;J^Gch9-htX6=o*3S~EOkp&Wo#^7xzYMvkOvBhD6OJWz`dDK1Wr|o`8a2q9$f59 zGcK5>>$A{N{G@3fhSV9(WKEO#mT3ye5EM@a61-%&T(*5CR2qn{De^5vKD8#{6oiC| zrWyqV2%saa;pd+JWTrG+n1+5O(Jto1i=Zo1+6@xvOHhZ6VaDL9RKGKjN7QJg=O e36+V-SI#pg&V6_AliyR>ocKr2<^ZFYQ=b5PQN8>C From 915170e60f6fbb36e39ae1bdb0eb4831370f3191 Mon Sep 17 00:00:00 2001 From: guille Date: Thu, 27 Jun 2024 16:22:57 +0200 Subject: [PATCH 02/42] Bugfix: now surfaces has associated thermal boundaries after construction factory --- hub/city_model_structure/building_demand/surface.py | 2 +- hub/imports/construction_factory.py | 2 ++ tests/test_exports.py | 2 +- tests/test_geometry_factory.py | 2 +- 4 files changed, 5 insertions(+), 3 deletions(-) diff --git a/hub/city_model_structure/building_demand/surface.py b/hub/city_model_structure/building_demand/surface.py index 2cd42755..ab27ffe8 100644 --- a/hub/city_model_structure/building_demand/surface.py +++ b/hub/city_model_structure/building_demand/surface.py @@ -42,7 +42,7 @@ class Surface: self._short_wave_reflectance = None self._long_wave_emittance = None self._inverse = None - self._associated_thermal_boundaries = [] + self._associated_thermal_boundaries = None self._vegetation = None self._percentage_shared = None self._solar_collectors_area_reduction_factor = None diff --git a/hub/imports/construction_factory.py b/hub/imports/construction_factory.py index 38019b66..dcf8b054 100644 --- a/hub/imports/construction_factory.py +++ b/hub/imports/construction_factory.py @@ -54,3 +54,5 @@ class ConstructionFactory: :return: None """ getattr(self, self._handler, lambda: None)() + for building in self._city.buildings: + _ = building.thermal_zones_from_internal_zones # ensure internal zones initialization diff --git a/tests/test_exports.py b/tests/test_exports.py index 8f5204a9..ab3943f7 100644 --- a/tests/test_exports.py +++ b/tests/test_exports.py @@ -144,6 +144,6 @@ class TestExports(TestCase): UsageFactory('nrcan', city).enrich() WeatherFactory('epw', city).enrich() try: - EnergyBuildingsExportsFactory('idf', city, self._output_path).export() + EnergyBuildingsExportsFactory('idf', city, self._output_path, target_buildings=[1]).export() except Exception: self.fail("Idf ExportsFactory raised ExceptionType unexpectedly!") diff --git a/tests/test_geometry_factory.py b/tests/test_geometry_factory.py index 3b5bd8f8..d436851c 100644 --- a/tests/test_geometry_factory.py +++ b/tests/test_geometry_factory.py @@ -93,7 +93,7 @@ class TestGeometryFactory(TestCase): self.assertIsNone(surface.short_wave_reflectance, 'surface short_wave_reflectance is not none') self.assertIsNone(surface.long_wave_emittance, 'surface long_wave_emittance is not none') self.assertIsNotNone(surface.inverse, 'surface inverse is none') - self.assertEqual(len(surface.associated_thermal_boundaries), 0, 'associated_thermal_boundaries are assigned') + self.assertIsNone(surface.associated_thermal_boundaries, 'associated_thermal_boundaries are assigned') self.assertIsNone(surface.vegetation, 'surface vegetation is not none') # citygml_classes From 982bcab0453b9eea20d3f0161a8ccea6374ebdd0 Mon Sep 17 00:00:00 2001 From: guille Date: Thu, 27 Jun 2024 16:35:24 +0200 Subject: [PATCH 03/42] IDFL Add objects without archetype as shadow objects instead --- hub/exports/building_energy/idf.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hub/exports/building_energy/idf.py b/hub/exports/building_energy/idf.py index cf1646e3..514f6ae4 100644 --- a/hub/exports/building_energy/idf.py +++ b/hub/exports/building_energy/idf.py @@ -513,11 +513,11 @@ class Idf: self._lod = self._city.level_of_detail.geometry for building in self._city.buildings: for internal_zone in building.internal_zones: - if internal_zone.thermal_zones_from_internal_zones is None: + if internal_zone.thermal_zones_from_internal_zones is None or len(thermal_zone.thermal_boundaries) == 0: + self._add_shading(building) # if the building has not archetype use it as shadow object continue for thermal_zone in internal_zone.thermal_zones_from_internal_zones: for thermal_boundary in thermal_zone.thermal_boundaries: - self._add_construction(thermal_boundary) if thermal_boundary.parent_surface.vegetation is not None: self._add_vegetation_material(thermal_boundary.parent_surface.vegetation) From 6dbff12ff9476b1e47dda6bd8ca4dc4f2b8d7211 Mon Sep 17 00:00:00 2001 From: Guille Gutierrez Date: Thu, 27 Jun 2024 10:35:47 -0400 Subject: [PATCH 04/42] Update hub/version.py --- hub/version.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hub/version.py b/hub/version.py index 37957c03..20664dd2 100644 --- a/hub/version.py +++ b/hub/version.py @@ -1,4 +1,4 @@ """ Hub version number """ -__version__ = '0.2.0.4' +__version__ = '0.2.0.5' From 15e43a0f352cafba9ac86027237844002c4ab89a Mon Sep 17 00:00:00 2001 From: s_ranjbar Date: Thu, 27 Jun 2024 15:18:26 -0400 Subject: [PATCH 05/42] fix: energy system catalogue and importers are modified --- .../energy_systems/emission_system.py | 2 +- .../non_pv_generation_system.py | 52 +- .../energy_systems/performance_curves.py | 8 +- .../energy_systems/thermal_storage_system.py | 14 +- .../energy_systems/montreal_custom_catalog.py | 9 +- .../montreal_future_system_catalogue.py | 40 +- hub/city_model_structure/building.py | 102 +++- .../building_demand/surface.py | 36 +- hub/city_model_structure/city_object.py | 29 +- .../energy_systems/emission_system.py | 2 +- .../energy_systems/generation_system.py | 22 +- .../non_pv_generation_system.py | 106 +++- .../energy_systems/performance_curve.py | 17 +- .../energy_systems/pv_generation_system.py | 36 ++ .../energy_systems/thermal_storage_system.py | 51 ++ .../montreal_future_systems.xml | 474 ++++++++++++++---- .../formats/simplified_radiosity_algorithm.py | 6 +- hub/helpers/constants.py | 5 +- ...ontreal_custom_energy_system_parameters.py | 6 +- ...ntreal_future_energy_systems_parameters.py | 23 +- hub/imports/results/ep_multiple_buildings.py | 9 +- .../results/simplified_radiosity_algorithm.py | 2 +- hub/imports/weather/epw_weather_parameters.py | 16 +- hub/imports/weather/helpers/weather.py | 32 +- tests/test_systems_catalog.py | 8 +- tests/test_systems_factory.py | 5 +- 26 files changed, 876 insertions(+), 236 deletions(-) diff --git a/hub/catalog_factories/data_models/energy_systems/emission_system.py b/hub/catalog_factories/data_models/energy_systems/emission_system.py index 538954d3..a8ac91b6 100644 --- a/hub/catalog_factories/data_models/energy_systems/emission_system.py +++ b/hub/catalog_factories/data_models/energy_systems/emission_system.py @@ -10,7 +10,7 @@ class EmissionSystem: """ Emission system class """ - def __init__(self, system_id, model_name=None, system_type=None, parasitic_energy_consumption=0): + def __init__(self, system_id, model_name=None, system_type=None, parasitic_energy_consumption=None): self._system_id = system_id self._model_name = model_name diff --git a/hub/catalog_factories/data_models/energy_systems/non_pv_generation_system.py b/hub/catalog_factories/data_models/energy_systems/non_pv_generation_system.py index 5b203d01..0844c785 100644 --- a/hub/catalog_factories/data_models/energy_systems/non_pv_generation_system.py +++ b/hub/catalog_factories/data_models/energy_systems/non_pv_generation_system.py @@ -25,9 +25,11 @@ class NonPvGenerationSystem(GenerationSystem): maximum_cooling_supply_temperature=None, minimum_cooling_supply_temperature=None, heat_output_curve=None, heat_fuel_consumption_curve=None, heat_efficiency_curve=None, cooling_output_curve=None, cooling_fuel_consumption_curve=None, cooling_efficiency_curve=None, - distribution_systems=None, energy_storage_systems=None, dual_supply_capability=False): - super().__init__(system_id=system_id, name=name, model_name=model_name, manufacturer=manufacturer, fuel_type=fuel_type, - distribution_systems=distribution_systems, energy_storage_systems=energy_storage_systems) + distribution_systems=None, energy_storage_systems=None, domestic_hot_water=False, + reversible=None, simultaneous_heat_cold=None): + super().__init__(system_id=system_id, name=name, model_name=model_name, manufacturer=manufacturer, + fuel_type=fuel_type, distribution_systems=distribution_systems, + energy_storage_systems=energy_storage_systems) self._system_type = system_type self._nominal_heat_output = nominal_heat_output self._maximum_heat_output = maximum_heat_output @@ -53,7 +55,9 @@ class NonPvGenerationSystem(GenerationSystem): self._cooling_output_curve = cooling_output_curve self._cooling_fuel_consumption_curve = cooling_fuel_consumption_curve self._cooling_efficiency_curve = cooling_efficiency_curve - self._dual_supply_capability = dual_supply_capability + self._domestic_hot_water = domestic_hot_water + self._reversible = reversible + self._simultaneous_heat_cold = simultaneous_heat_cold @property def system_type(self): @@ -256,12 +260,28 @@ class NonPvGenerationSystem(GenerationSystem): return self._cooling_efficiency_curve @property - def dual_supply_capability(self): + def domestic_hot_water(self): """ - Get dual supply capability + Get the ability to produce domestic hot water :return: bool """ - return self._dual_supply_capability + return self._domestic_hot_water + + @property + def reversibility(self): + """ + Get the ability to produce heating and cooling + :return: bool + """ + return self._reversible + + @property + def simultaneous_heat_cold(self): + """ + Get the ability to produce heating and cooling at the same time + :return: bool + """ + return self._simultaneous_heat_cold def to_dictionary(self): """Class content to dictionary""" @@ -269,6 +289,18 @@ class NonPvGenerationSystem(GenerationSystem): self.distribution_systems] if self.distribution_systems is not None else None _energy_storage_systems = [_energy_storage_system.to_dictionary() for _energy_storage_system in self.energy_storage_systems] if self.energy_storage_systems is not None else None + _heat_output_curve = self.heat_output_curve.to_dictionary() if ( + self.heat_output_curve is not None) else None + _heat_fuel_consumption_curve = self.heat_fuel_consumption_curve.to_dictionary() if ( + self.heat_fuel_consumption_curve is not None) else None + _heat_efficiency_curve = self.heat_efficiency_curve.to_dictionary() if ( + self.heat_efficiency_curve is not None) else None + _cooling_output_curve = self.cooling_output_curve.to_dictionary() if ( + self.cooling_output_curve is not None) else None + _cooling_fuel_consumption_curve = self.cooling_fuel_consumption_curve.to_dictionary() if ( + self.cooling_fuel_consumption_curve is not None) else None + _cooling_efficiency_curve = self.cooling_efficiency_curve.to_dictionary() if ( + self.cooling_efficiency_curve is not None) else None content = { 'Energy Generation component': @@ -298,13 +330,15 @@ class NonPvGenerationSystem(GenerationSystem): 'minimum cooling supply temperature [Celsius]': self.minimum_cooling_supply_temperature, 'heat output curve': self.heat_output_curve, 'heat fuel consumption curve': self.heat_fuel_consumption_curve, - 'heat efficiency curve': self.heat_efficiency_curve, + 'heat efficiency curve': _heat_efficiency_curve, 'cooling output curve': self.cooling_output_curve, 'cooling fuel consumption curve': self.cooling_fuel_consumption_curve, 'cooling efficiency curve': self.cooling_efficiency_curve, 'distribution systems connected': _distribution_systems, 'storage systems connected': _energy_storage_systems, - 'dual supply capability': self.dual_supply_capability + 'domestic hot water production capability': self.domestic_hot_water, + 'reversible cycle': self.reversibility, + 'simultaneous heat and cooling production': self.simultaneous_heat_cold } } return content diff --git a/hub/catalog_factories/data_models/energy_systems/performance_curves.py b/hub/catalog_factories/data_models/energy_systems/performance_curves.py index 65cc0878..ff6c22d2 100644 --- a/hub/catalog_factories/data_models/energy_systems/performance_curves.py +++ b/hub/catalog_factories/data_models/energy_systems/performance_curves.py @@ -24,13 +24,13 @@ class PerformanceCurves: def curve_type(self): """ The type of the fit function from the following - Linear =>>> y = a*x + b + Linear =>>> y = a + b*x Exponential =>>> y = a*(b**x) - Polynomial =>>> y = a*(x**2) + b*x + c + Second degree polynomial =>>> y = a + b*x + c*(x**2) Power =>>> y = a*(x**b) - Second degree multivariable =>>> y = a*(x**2) + b*x + c*x*z + d*z + e*(z**2) + f + Bi-Quadratic =>>> y = a + b*x + c*(x**2) + d*z + e*(z**2) + f*x*z - Get the type of function from ['linear', 'exponential', 'polynomial', 'power', 'second degree multivariable'] + Get the type of function from ['linear', 'exponential', 'second degree polynomial', 'power', 'bi-quadratic'] :return: string """ return self._curve_type diff --git a/hub/catalog_factories/data_models/energy_systems/thermal_storage_system.py b/hub/catalog_factories/data_models/energy_systems/thermal_storage_system.py index d3cdf255..ca773e09 100644 --- a/hub/catalog_factories/data_models/energy_systems/thermal_storage_system.py +++ b/hub/catalog_factories/data_models/energy_systems/thermal_storage_system.py @@ -17,7 +17,7 @@ class ThermalStorageSystem(EnergyStorageSystem): def __init__(self, storage_id, type_energy_stored=None, model_name=None, manufacturer=None, storage_type=None, nominal_capacity=None, losses_ratio=None, volume=None, height=None, layers=None, - maximum_operating_temperature=None, storage_medium=None): + maximum_operating_temperature=None, storage_medium=None, heating_coil_capacity=None): super().__init__(storage_id, model_name, manufacturer, nominal_capacity, losses_ratio) self._type_energy_stored = type_energy_stored @@ -27,6 +27,7 @@ class ThermalStorageSystem(EnergyStorageSystem): self._layers = layers self._maximum_operating_temperature = maximum_operating_temperature self._storage_medium = storage_medium + self._heating_coil_capacity = heating_coil_capacity @property def type_energy_stored(self): @@ -84,6 +85,14 @@ class ThermalStorageSystem(EnergyStorageSystem): """ return self._storage_medium + @property + def heating_coil_capacity(self): + """ + Get heating coil capacity in Watts + :return: [material + """ + return self._heating_coil_capacity + def to_dictionary(self): """Class content to dictionary""" _layers = None @@ -110,7 +119,8 @@ class ThermalStorageSystem(EnergyStorageSystem): 'height [m]': self.height, 'layers': _layers, 'maximum operating temperature [Celsius]': self.maximum_operating_temperature, - 'storage_medium': self.storage_medium.to_dictionary() + 'storage_medium': self.storage_medium.to_dictionary(), + 'heating coil capacity [W]': self.heating_coil_capacity } } return content diff --git a/hub/catalog_factories/energy_systems/montreal_custom_catalog.py b/hub/catalog_factories/energy_systems/montreal_custom_catalog.py index bf47d19b..d3e37e36 100644 --- a/hub/catalog_factories/energy_systems/montreal_custom_catalog.py +++ b/hub/catalog_factories/energy_systems/montreal_custom_catalog.py @@ -87,7 +87,7 @@ class MontrealCustomCatalog(Catalog): cooling_efficiency=cooling_efficiency, electricity_efficiency=electricity_efficiency, energy_storage_systems=storage_systems, - dual_supply_capability=False + domestic_hot_water=False ) _equipments.append(generation_system) @@ -111,10 +111,7 @@ class MontrealCustomCatalog(Catalog): distribution_consumption_variable_flow = float( equipment['distribution_consumption_variable_flow']['#text']) / 100 - emission_equipment = -1 - if 'dissipation_id' in equipment: - emission_equipment = equipment['dissipation_id'] - + emission_equipment = equipment['dissipation_id'] _emission_equipments = None for equipment_archetype in self._catalog_emission_equipments: if int(equipment_archetype.id) == int(emission_equipment): @@ -138,7 +135,7 @@ class MontrealCustomCatalog(Catalog): equipment_id = float(equipment['@id']) equipment_type = equipment['@type'] model_name = equipment['name'] - parasitic_consumption = 0 + parasitic_consumption = None if 'parasitic_consumption' in equipment: parasitic_consumption = float(equipment['parasitic_consumption']['#text']) / 100 diff --git a/hub/catalog_factories/energy_systems/montreal_future_system_catalogue.py b/hub/catalog_factories/energy_systems/montreal_future_system_catalogue.py index b6d7f9f5..625e362c 100644 --- a/hub/catalog_factories/energy_systems/montreal_future_system_catalogue.py +++ b/hub/catalog_factories/energy_systems/montreal_future_system_catalogue.py @@ -121,13 +121,26 @@ class MontrealFutureSystemCatalogue(Catalog): parameters = non_pv['cooling_efficiency_curve']['parameters'] coefficients = list(non_pv['cooling_efficiency_curve']['coefficients'].values()) cooling_efficiency_curve = PerformanceCurves(curve_type, dependant_variable, parameters, coefficients) - dual_supply_capability = None - if non_pv['dual_supply_capability'] is not None: - if non_pv['dual_supply_capability'] == 'True': - dual_supply_capability = True + dhw = None + if non_pv['domestic_hot_water'] is not None: + if non_pv['domestic_hot_water'] == 'True': + dhw = True else: - dual_supply_capability = False + dhw = False + reversible = None + if non_pv['reversible'] is not None: + if non_pv['reversible'] == 'True': + reversible = True + else: + reversible = False + + dual_supply = None + if non_pv['simultaneous_heat_cold'] is not None: + if non_pv['simultaneous_heat_cold'] == 'True': + dual_supply = True + else: + dual_supply = False non_pv_component = NonPvGenerationSystem(system_id=system_id, name=name, system_type=system_type, @@ -160,7 +173,9 @@ class MontrealFutureSystemCatalogue(Catalog): cooling_efficiency_curve=cooling_efficiency_curve, distribution_systems=distribution_systems, energy_storage_systems=energy_storage_systems, - dual_supply_capability=dual_supply_capability) + domestic_hot_water=dhw, + reversible=reversible, + simultaneous_heat_cold=dual_supply) generation_components.append(non_pv_component) pv_generation_components = self._archetypes['EnergySystemCatalog']['energy_generation_components'][ 'pv_generation_component'] @@ -187,7 +202,6 @@ class MontrealFutureSystemCatalogue(Catalog): storage_component = pv['energy_storage_systems']['storage_id'] storage_systems = self._search_storage_equipment(self._load_storage_components(), storage_component) energy_storage_systems = storage_systems - pv_component = PvGenerationSystem(system_id=system_id, name=name, system_type=system_type, @@ -248,7 +262,7 @@ class MontrealFutureSystemCatalogue(Catalog): system_id = None model_name = None system_type = None - parasitic_energy_consumption = 0 + parasitic_energy_consumption = None emission_system = EmissionSystem(system_id=system_id, model_name=model_name, system_type=system_type, @@ -284,6 +298,7 @@ class MontrealFutureSystemCatalogue(Catalog): layers = [insulation_layer, tank_layer] nominal_capacity = tes['nominal_capacity'] losses_ratio = tes['losses_ratio'] + heating_coil_capacity = tes['heating_coil_capacity'] storage_component = ThermalStorageSystem(storage_id=storage_id, model_name=model_name, type_energy_stored=type_energy_stored, @@ -295,7 +310,8 @@ class MontrealFutureSystemCatalogue(Catalog): height=height, layers=layers, maximum_operating_temperature=maximum_operating_temperature, - storage_medium=medium) + storage_medium=medium, + heating_coil_capacity=heating_coil_capacity) storage_components.append(storage_component) for template in template_storages: @@ -303,7 +319,7 @@ class MontrealFutureSystemCatalogue(Catalog): storage_type = template['storage_type'] type_energy_stored = template['type_energy_stored'] maximum_operating_temperature = template['maximum_operating_temperature'] - height = template['physical_characteristics']['height'] + height = float(template['physical_characteristics']['height']) materials = self._load_materials() insulation_material_id = template['insulation']['material_id'] insulation_material = self._search_material(materials, insulation_material_id) @@ -322,6 +338,7 @@ class MontrealFutureSystemCatalogue(Catalog): nominal_capacity = template['nominal_capacity'] losses_ratio = template['losses_ratio'] volume = template['physical_characteristics']['volume'] + heating_coil_capacity = template['heating_coil_capacity'] storage_component = ThermalStorageSystem(storage_id=storage_id, model_name=model_name, type_energy_stored=type_energy_stored, @@ -333,7 +350,8 @@ class MontrealFutureSystemCatalogue(Catalog): height=height, layers=layers, maximum_operating_temperature=maximum_operating_temperature, - storage_medium=medium) + storage_medium=medium, + heating_coil_capacity=heating_coil_capacity) storage_components.append(storage_component) return storage_components diff --git a/hub/city_model_structure/building.py b/hub/city_model_structure/building.py index 315f65d9..387a4bf9 100644 --- a/hub/city_model_structure/building.py +++ b/hub/city_model_structure/building.py @@ -90,7 +90,9 @@ class Building(CityObject): self._interior_slabs.append(surface) else: logging.error('Building %s [%s] has an unexpected surface type %s.', self.name, self.aliases, surface.type) - self._heating_consumption_disaggregated = {} + self._domestic_hot_water_peak_load = None + self._fuel_consumption_breakdown = {} + self._pv_generation = {} @property def shell(self) -> Polyhedron: @@ -449,8 +451,8 @@ class Building(CityObject): monthly_values = PeakLoads(self).heating_peak_loads_from_methodology if monthly_values is None: return None - results[cte.MONTH] = monthly_values - results[cte.YEAR] = [max(monthly_values)] + results[cte.MONTH] = [x / cte.WATTS_HOUR_TO_JULES for x in monthly_values] + results[cte.YEAR] = [max(monthly_values) / cte.WATTS_HOUR_TO_JULES] return results @property @@ -466,8 +468,24 @@ class Building(CityObject): monthly_values = PeakLoads(self).cooling_peak_loads_from_methodology if monthly_values is None: return None - results[cte.MONTH] = [x * cte.WATTS_HOUR_TO_JULES for x in monthly_values] - results[cte.YEAR] = [max(monthly_values)] + results[cte.MONTH] = [x / cte.WATTS_HOUR_TO_JULES for x in monthly_values] + results[cte.YEAR] = [max(monthly_values) / cte.WATTS_HOUR_TO_JULES] + return results + + @property + def domestic_hot_water_peak_load(self) -> Union[None, dict]: + """ + Get cooling peak load in W + :return: dict{[float]} + """ + results = {} + monthly_values = None + if cte.HOUR in self.domestic_hot_water_heat_demand: + monthly_values = PeakLoads().peak_loads_from_hourly(self.domestic_hot_water_heat_demand[cte.HOUR]) + if monthly_values is None: + return None + results[cte.MONTH] = [x / cte.WATTS_HOUR_TO_JULES for x in monthly_values] + results[cte.YEAR] = [max(monthly_values) / cte.WATTS_HOUR_TO_JULES] return results @property @@ -825,23 +843,6 @@ class Building(CityObject): self._onsite_electrical_production[_key] = _results return self._onsite_electrical_production - @property - def heating_consumption_disaggregated(self) -> dict: - """ - Get energy consumed for heating from different fuels in J - return: dict - """ - return self._heating_consumption_disaggregated - - @heating_consumption_disaggregated.setter - def heating_consumption_disaggregated(self, value): - """ - Get energy consumed for heating from different fuels in J - return: dict - """ - self._heating_consumption_disaggregated = value - - @property def lower_corner(self): """ @@ -855,3 +856,60 @@ class Building(CityObject): Get building upper corner. """ return [self._max_x, self._max_y, self._max_z] + + @property + def energy_consumption_breakdown(self) -> dict: + """ + Get energy consumption of different sectors + return: dict + """ + fuel_breakdown = {cte.ELECTRICITY: {cte.LIGHTING: self.lighting_electrical_demand[cte.YEAR][0], + cte.APPLIANCES: self.appliances_electrical_demand[cte.YEAR][0]}} + energy_systems = self.energy_systems + for energy_system in energy_systems: + demand_types = energy_system.demand_types + generation_systems = energy_system.generation_systems + for demand_type in demand_types: + for generation_system in generation_systems: + if generation_system.system_type != cte.PHOTOVOLTAIC: + if generation_system.fuel_type not in fuel_breakdown: + fuel_breakdown[generation_system.fuel_type] = {} + if demand_type in generation_system.energy_consumption: + fuel_breakdown[f'{generation_system.fuel_type}'][f'{demand_type}'] = ( + generation_system.energy_consumption)[f'{demand_type}'][cte.YEAR][0] + storage_systems = generation_system.energy_storage_systems + if storage_systems: + for storage_system in storage_systems: + if storage_system.type_energy_stored == 'thermal' and storage_system.heating_coil_energy_consumption: + fuel_breakdown[cte.ELECTRICITY][f'{demand_type}'] += storage_system.heating_coil_energy_consumption[cte.YEAR][0] + #TODO: When simulation models of all energy system archetypes are created, this part can be removed + heating_fuels = [] + dhw_fuels = [] + for energy_system in self.energy_systems: + if cte.HEATING in energy_system.demand_types: + for generation_system in energy_system.generation_systems: + heating_fuels.append(generation_system.fuel_type) + if cte.DOMESTIC_HOT_WATER in energy_system.demand_types: + for generation_system in energy_system.generation_systems: + dhw_fuels.append(generation_system.fuel_type) + for key in fuel_breakdown: + if key == cte.ELECTRICITY and cte.COOLING not in fuel_breakdown[key]: + for energy_system in energy_systems: + if cte.COOLING in energy_system.demand_types and cte.COOLING not in fuel_breakdown[key]: + for generation_system in energy_system.generation_systems: + fuel_breakdown[generation_system.fuel_type][cte.COOLING] = self.cooling_consumption[cte.YEAR][0] + for fuel in heating_fuels: + if cte.HEATING not in fuel_breakdown[fuel]: + for energy_system in energy_systems: + if cte.HEATING in energy_system.demand_types: + for generation_system in energy_system.generation_systems: + fuel_breakdown[generation_system.fuel_type][cte.HEATING] = self.heating_consumption[cte.YEAR][0] + for fuel in dhw_fuels: + if cte.DOMESTIC_HOT_WATER not in fuel_breakdown[fuel]: + for energy_system in energy_systems: + if cte.DOMESTIC_HOT_WATER in energy_system.demand_types: + for generation_system in energy_system.generation_systems: + fuel_breakdown[generation_system.fuel_type][cte.DOMESTIC_HOT_WATER] = self.domestic_hot_water_consumption[cte.YEAR][0] + self._fuel_consumption_breakdown = fuel_breakdown + return self._fuel_consumption_breakdown + diff --git a/hub/city_model_structure/building_demand/surface.py b/hub/city_model_structure/building_demand/surface.py index ab27ffe8..65f90ae3 100644 --- a/hub/city_model_structure/building_demand/surface.py +++ b/hub/city_model_structure/building_demand/surface.py @@ -42,10 +42,12 @@ class Surface: self._short_wave_reflectance = None self._long_wave_emittance = None self._inverse = None - self._associated_thermal_boundaries = None + self._associated_thermal_boundaries = [] self._vegetation = None self._percentage_shared = None self._solar_collectors_area_reduction_factor = None + self._global_irradiance_tilted = {} + self._installed_solar_collector_area = None @property def name(self): @@ -384,3 +386,35 @@ class Surface: :param value: float """ self._solar_collectors_area_reduction_factor = value + + @property + def global_irradiance_tilted(self) -> dict: + """ + Get global irradiance on a tilted surface in J/m2 + :return: dict + """ + return self._global_irradiance_tilted + + @global_irradiance_tilted.setter + def global_irradiance_tilted(self, value): + """ + Set global irradiance on a tilted surface in J/m2 + :param value: dict + """ + self._global_irradiance_tilted = value + + @property + def installed_solar_collector_area(self): + """ + Get installed solar collector area in m2 + :return: dict + """ + return self._installed_solar_collector_area + + @installed_solar_collector_area.setter + def installed_solar_collector_area(self, value): + """ + Set installed solar collector area in m2 + :return: dict + """ + self._installed_solar_collector_area = value \ No newline at end of file diff --git a/hub/city_model_structure/city_object.py b/hub/city_model_structure/city_object.py index c18a4aa0..0d281b65 100644 --- a/hub/city_model_structure/city_object.py +++ b/hub/city_model_structure/city_object.py @@ -41,9 +41,10 @@ class CityObject: self._ground_temperature = {} self._global_horizontal = {} self._diffuse = {} - self._beam = {} + self._direct_normal = {} self._sensors = [] self._neighbours = None + self._beam = {} @property def level_of_detail(self) -> LevelOfDetail: @@ -238,20 +239,20 @@ class CityObject: self._diffuse = value @property - def beam(self) -> dict: + def direct_normal(self) -> dict: """ Get beam radiation surrounding the city object in J/m2 :return: dict{dict{[float]}} """ - return self._beam + return self._direct_normal - @beam.setter - def beam(self, value): + @direct_normal.setter + def direct_normal(self, value): """ Set beam radiation surrounding the city object in J/m2 :param value: dict{dict{[float]}} """ - self._beam = value + self._direct_normal = value @property def lower_corner(self): @@ -302,3 +303,19 @@ class CityObject: Set the list of neighbour_objects and their properties associated to the current city_object """ self._neighbours = value + + @property + def beam(self) -> dict: + """ + Get beam radiation surrounding the city object in J/m2 + :return: dict{dict{[float]}} + """ + return self._beam + + @beam.setter + def beam(self, value): + """ + Set beam radiation surrounding the city object in J/m2 + :param value: dict{dict{[float]}} + """ + self._beam = value diff --git a/hub/city_model_structure/energy_systems/emission_system.py b/hub/city_model_structure/energy_systems/emission_system.py index e8773013..32bf7c17 100644 --- a/hub/city_model_structure/energy_systems/emission_system.py +++ b/hub/city_model_structure/energy_systems/emission_system.py @@ -13,7 +13,7 @@ class EmissionSystem: def __init__(self): self._model_name = None self._type = None - self._parasitic_energy_consumption = 0 + self._parasitic_energy_consumption = None @property def model_name(self): diff --git a/hub/city_model_structure/energy_systems/generation_system.py b/hub/city_model_structure/energy_systems/generation_system.py index 394c2f09..1765c08e 100644 --- a/hub/city_model_structure/energy_systems/generation_system.py +++ b/hub/city_model_structure/energy_systems/generation_system.py @@ -11,7 +11,8 @@ from abc import ABC from typing import Union, List from hub.city_model_structure.energy_systems.distribution_system import DistributionSystem -from hub.city_model_structure.energy_systems.energy_storage_system import EnergyStorageSystem +from hub.city_model_structure.energy_systems.thermal_storage_system import ThermalStorageSystem +from hub.city_model_structure.energy_systems.electrical_storage_system import ElectricalStorageSystem class GenerationSystem(ABC): @@ -26,6 +27,7 @@ class GenerationSystem(ABC): self._fuel_type = None self._distribution_systems = None self._energy_storage_systems = None + self._number_of_units = None @property def system_type(self): @@ -124,7 +126,7 @@ class GenerationSystem(ABC): self._distribution_systems = value @property - def energy_storage_systems(self) -> Union[None, List[EnergyStorageSystem]]: + def energy_storage_systems(self) -> Union[None, List[ThermalStorageSystem], List[ElectricalStorageSystem]]: """ Get energy storage systems connected to this generation system :return: [EnergyStorageSystem] @@ -138,3 +140,19 @@ class GenerationSystem(ABC): :param value: [EnergyStorageSystem] """ self._energy_storage_systems = value + + @property + def number_of_units(self): + """ + Get number of a specific generation unit + :return: int + """ + return self._number_of_units + + @number_of_units.setter + def number_of_units(self, value): + """ + Set number of a specific generation unit + :return: int + """ + self._number_of_units = value diff --git a/hub/city_model_structure/energy_systems/non_pv_generation_system.py b/hub/city_model_structure/energy_systems/non_pv_generation_system.py index fea1d7b2..0eb9ed0e 100644 --- a/hub/city_model_structure/energy_systems/non_pv_generation_system.py +++ b/hub/city_model_structure/energy_systems/non_pv_generation_system.py @@ -42,7 +42,12 @@ class NonPvGenerationSystem(GenerationSystem): self._cooling_output_curve = None self._cooling_fuel_consumption_curve = None self._cooling_efficiency_curve = None - self._dual_supply_capability = None + self._domestic_hot_water = None + self._heat_supply_temperature = None + self._cooling_supply_temperature = None + self._reversible = None + self._simultaneous_heat_cold = None + self._energy_consumption = {} @property def nominal_heat_output(self): @@ -429,21 +434,106 @@ class NonPvGenerationSystem(GenerationSystem): self._cooling_efficiency_curve = value @property - def dual_supply_capability(self): + def domestic_hot_water(self): """ - Get the capability of the generation component for simultaneous heat and cold production + Get the capability of generating domestic hot water :return: bool """ - return self._dual_supply_capability + return self._domestic_hot_water - @dual_supply_capability.setter - def dual_supply_capability(self, value): + @domestic_hot_water.setter + def domestic_hot_water(self, value): """ - Set the capability of the generation component for simultaneous heat and cold production + Set the capability of generating domestic hot water :return: bool """ - self._dual_supply_capability = value + self._domestic_hot_water = value + @property + def heat_supply_temperature(self): + """ + Get the hourly heat supply temperature + :return: list + """ + return self._heat_supply_temperature + + @heat_supply_temperature.setter + def heat_supply_temperature(self, value): + """ + set the hourly heat supply temperature + :param value: + :return: list + """ + self._heat_supply_temperature = value + + @property + def cooling_supply_temperature(self): + """ + Get the hourly cooling supply temperature + :return: list + """ + return self._heat_supply_temperature + + @cooling_supply_temperature.setter + def cooling_supply_temperature(self, value): + """ + set the hourly cooling supply temperature + :param value: + :return: list + """ + self._cooling_supply_temperature = value + + @property + def reversibility(self): + """ + Get the capability of generating both heating and cooling + + :return: bool + """ + return self._reversible + + @reversibility.setter + def reversibility(self, value): + """ + Set the capability of generating domestic hot water + + :return: bool + """ + self._reversible = value + + @property + def simultaneous_heat_cold(self): + """ + Get the capability of generating both heating and cooling at the same time + + :return: bool + """ + return self._simultaneous_heat_cold + + @simultaneous_heat_cold.setter + def simultaneous_heat_cold(self, value): + """ + Set the capability of generating domestic hot water at the same time + + :return: bool + """ + self._simultaneous_heat_cold = value + + @property + def energy_consumption(self) -> dict: + """ + Get energy consumption in W + :return: dict{[float]} + """ + return self._energy_consumption + + @energy_consumption.setter + def energy_consumption(self, value): + """ + Set energy consumption in W + :param value: dict{[float]} + """ + self._energy_consumption = value diff --git a/hub/city_model_structure/energy_systems/performance_curve.py b/hub/city_model_structure/energy_systems/performance_curve.py index e7c72287..df667993 100644 --- a/hub/city_model_structure/energy_systems/performance_curve.py +++ b/hub/city_model_structure/energy_systems/performance_curve.py @@ -24,28 +24,29 @@ class PerformanceCurves: def curve_type(self): """ Get the type of the fit function from the following - Linear =>>> y = a*x + b + Linear =>>> y = a + b*x Exponential =>>> y = a*(b**x) - Polynomial =>>> y = a*(x**2) + b*x + c + Second degree polynomial =>>> y = a + b*x + c*(x**2) Power =>>> y = a*(x**b) - Second degree multivariable =>>> y = a*(x**2) + b*x + c*x*z + d*z + e*(z**2) + f + Bi-Quadratic =>>> y = a + b*x + c*(x**2) + d*z + e*(z**2) + f*x*z - Get the type of function from ['linear', 'exponential', 'polynomial', 'power', 'second degree multivariable'] + Get the type of function from ['linear', 'exponential', 'second degree polynomial', 'power', 'bi-quadratic'] :return: string """ + return self._curve_type @curve_type.setter def curve_type(self, value): """ Set the type of the fit function from the following - Linear =>>> y = a*x + b + Linear =>>> y = a + b*x Exponential =>>> y = a*(b**x) - Polynomial =>>> y = a*(x**2) + b*x + c + Second degree polynomial =>>> y = a + b*x + c*(x**2) Power =>>> y = a*(x**b) - Second degree multivariable =>>> y = a*(x**2) + b*x + c*x*z + d*z + e*(z**2) + f + Bi-Quadratic =>>> y = a + b*x + c*(x**2) + d*z + e*(z**2) + f*x*z - Get the type of function from ['linear', 'exponential', 'polynomial', 'power', 'second degree multivariable'] + Get the type of function from ['linear', 'exponential', 'second degree polynomial', 'power', 'bi-quadratic'] :return: string """ self._curve_type = value diff --git a/hub/city_model_structure/energy_systems/pv_generation_system.py b/hub/city_model_structure/energy_systems/pv_generation_system.py index 13409c7e..ddbc847a 100644 --- a/hub/city_model_structure/energy_systems/pv_generation_system.py +++ b/hub/city_model_structure/energy_systems/pv_generation_system.py @@ -26,6 +26,10 @@ class PvGenerationSystem(GenerationSystem): self._width = None self._height = None self._electricity_power = None + self._tilt_angle = None + self._surface_azimuth = None + self._solar_altitude_angle = None + self._solar_azimuth_angle = None @property def nominal_electricity_output(self): @@ -202,3 +206,35 @@ class PvGenerationSystem(GenerationSystem): :param value: float """ self._electricity_power = value + + @property + def tilt_angle(self): + """ + Get tilt angle of PV system in degrees + :return: float + """ + return self._tilt_angle + + @tilt_angle.setter + def tilt_angle(self, value): + """ + Set PV system tilt angle in degrees + :param value: float + """ + self._tilt_angle = value + + @property + def surface_azimuth(self): + """ + Get surface azimuth angle of PV system in degrees. 0 is North + :return: float + """ + return self._surface_azimuth + + @surface_azimuth.setter + def surface_azimuth(self, value): + """ + Set PV system tilt angle in degrees + :param value: float + """ + self._surface_azimuth = value diff --git a/hub/city_model_structure/energy_systems/thermal_storage_system.py b/hub/city_model_structure/energy_systems/thermal_storage_system.py index 0f7f6a12..fd9b8f81 100644 --- a/hub/city_model_structure/energy_systems/thermal_storage_system.py +++ b/hub/city_model_structure/energy_systems/thermal_storage_system.py @@ -22,6 +22,9 @@ class ThermalStorageSystem(EnergyStorageSystem): self._height = None self._layers = None self._maximum_operating_temperature = None + self._heating_coil_capacity = None + self._temperature = None + self._heating_coil_energy_consumption = None @property def volume(self): @@ -86,3 +89,51 @@ class ThermalStorageSystem(EnergyStorageSystem): :param value: float """ self._maximum_operating_temperature = value + + @property + def heating_coil_capacity(self): + """ + Get heating coil capacity in Watts + :return: float + """ + return self._heating_coil_capacity + + @heating_coil_capacity.setter + def heating_coil_capacity(self, value): + """ + Set heating coil capacity in Watts + :param value: float + """ + self._heating_coil_capacity = value + + @property + def temperature(self) -> dict: + """ + Get fuel consumption in W, m3, or kg + :return: dict{[float]} + """ + return self._temperature + + @temperature.setter + def temperature(self, value): + """ + Set fuel consumption in W, m3, or kg + :param value: dict{[float]} + """ + self._temperature = value + + @property + def heating_coil_energy_consumption(self) -> dict: + """ + Get fuel consumption in W, m3, or kg + :return: dict{[float]} + """ + return self._heating_coil_energy_consumption + + @heating_coil_energy_consumption.setter + def heating_coil_energy_consumption(self, value): + """ + Set fuel consumption in W, m3, or kg + :param value: dict{[float]} + """ + self._heating_coil_energy_consumption = value diff --git a/hub/data/energy_systems/montreal_future_systems.xml b/hub/data/energy_systems/montreal_future_systems.xml index 769f87bd..b51c9488 100644 --- a/hub/data/energy_systems/montreal_future_systems.xml +++ b/hub/data/energy_systems/montreal_future_systems.xml @@ -5,11 +5,11 @@ 1 Water - - - - - + + + + + 981.0 4180.0 0.6 @@ -26,7 +26,7 @@ 4.7 23.5 0.95 - True + False natural gas @@ -50,7 +50,10 @@ - + True + + + False 2 @@ -62,7 +65,7 @@ 6.15 30.8 0.95 - True + False natural gas @@ -86,7 +89,10 @@ - + True + + + False 3 @@ -98,7 +104,7 @@ 8.8 44 0.95 - True + False natural gas @@ -122,7 +128,10 @@ - + True + + + False 4 @@ -134,7 +143,7 @@ 12.3 61.5 0.95 - True + False natural gas @@ -158,7 +167,10 @@ - + True + + + False 5 @@ -170,7 +182,7 @@ 4.0 35.2 0.95 - True + False natural gas @@ -194,7 +206,10 @@ - + True + + + False 6 @@ -206,7 +221,7 @@ 4.0 35.2 0.95 - False + False natural gas @@ -230,7 +245,10 @@ - + True + + + False 7 @@ -242,7 +260,7 @@ 2.5 25.0 0.96 - + False natural gas @@ -266,7 +284,10 @@ - + True + + + False 8 @@ -278,7 +299,7 @@ 3.2 32.0 0.96 - + False natural gas @@ -302,7 +323,10 @@ - + True + + + False 9 @@ -314,7 +338,7 @@ 4.5 45.0 0.95 - True + False natural gas @@ -338,7 +362,10 @@ - + True + + + False 10 @@ -350,7 +377,7 @@ 3.5 35.0 0.95 - True + False natural gas @@ -374,7 +401,10 @@ - + True + + + False 11 @@ -386,7 +416,7 @@ 5.3 53.0 0.95 - True + False natural gas @@ -410,7 +440,10 @@ - + True + + + False 12 @@ -441,10 +474,10 @@ 0 51.7 3.32 - + True Electricity Air - water + Water @@ -460,7 +493,7 @@ - second degree multivariable function + bi-quadratic COP source_temperature supply_temperature @@ -471,7 +504,10 @@ - False + False + + + False 14 @@ -483,10 +519,10 @@ 0 279.3 3.07 - + True Electricity Air - water + Water @@ -502,7 +538,7 @@ - second degree multivariable function + bi-quadratic COP source_temperature supply_temperature @@ -513,7 +549,10 @@ - False + False + + + False 15 @@ -525,10 +564,10 @@ 0 557 3.46 - + True Electricity Air - water + Water @@ -544,7 +583,7 @@ - second degree multivariable function + bi-quadratic COP source_temperature supply_temperature @@ -555,7 +594,10 @@ - False + False + + + False 16 @@ -567,7 +609,7 @@ 0.90 - + False natural gas @@ -593,7 +635,10 @@ 6 - + True + + + False 17 @@ -605,7 +650,7 @@ 0.95 - + False electricity @@ -631,22 +676,25 @@ 6 - + False + + + False 18 - template Air-to-Water heat pump + template Air-to-Water heat pump with storage heat pump - 3 - + 2 + True electricity Air - water + Water @@ -661,19 +709,34 @@ - + + bi-quadratic + COP + source_temperature + supply_temperature + + - + + bi-quadratic + COP + source_temperature + supply_temperature + + 6 - True + True + + + True 19 - template Groundwater-to-Water heat pump + template Groundwater-to-Water heat pump with storage heat pump @@ -681,10 +744,10 @@ 3.5 - + True electricity Ground - water + Water @@ -707,11 +770,14 @@ 6 - True + True + + + True 20 - template Water-to-Water heat pump + template Water-to-Water heat pump with storage heat pump @@ -719,10 +785,10 @@ 3.5 - + True electricity Water - water + Water @@ -745,7 +811,10 @@ 6 - True + True + + + False 21 @@ -757,7 +826,7 @@ 0.90 - + False natural gas @@ -781,7 +850,10 @@ - + True + + + False 22 @@ -793,7 +865,7 @@ 0.95 - + False electricity @@ -817,7 +889,10 @@ - + True + + + False 23 @@ -829,14 +904,14 @@ 3 - + True electricity Air - water + Water - + 4.5 @@ -847,13 +922,28 @@ - + + bi-quadratic + COP + source_temperature + supply_temperature + + - + + bi-quadratic + COP + source_temperature + supply_temperature + + - True + True + + + True 24 @@ -865,10 +955,10 @@ 3.5 - + True electricity Ground - water + Water @@ -889,7 +979,10 @@ - True + True + + + True 25 @@ -901,10 +994,10 @@ 3.5 - + True electricity Water - water + Water @@ -925,7 +1018,10 @@ - True + True + + + True 26 @@ -945,7 +1041,55 @@ 1.0 + False + + 27 + template domestic hot water heat pump + heat pump + + + + + + 3.5 + + electricity + Air + Water + + + + + + + + + + + + + + + + bi-quadratic + COP + source_temperature + supply_temperature + + + + + + + + 7 + + True + + + False + @@ -970,8 +1114,9 @@ 1 sensible - - + + + 2 @@ -995,8 +1140,9 @@ 1 sensible - - + + + 3 @@ -1020,8 +1166,9 @@ 1 sensible - - + + + 4 @@ -1044,8 +1191,9 @@ 1 sensible - - + + + 5 @@ -1069,15 +1217,16 @@ 1 sensible - - + + + 6 template Hot Water Storage Tank thermal - HF 200 - + + 95.0 1 @@ -1088,47 +1237,74 @@ 0 1.5 Steel - + 1 sensible - - + + + + + + 7 + template Hot Water Storage Tank with Heating Coil + thermal + + + 95.0 + + 1 + 90.0 + + + 2 + 0 + 1.5 + Steel + + + + 1 + + sensible + + + 5000 1 Polyurethane - - - - - - - + + + + + + + 0.028 2 Steel - - - - - - - + + + + + + + 18 - + - + @@ -1138,7 +1314,6 @@ heating cooling - domestic_hot_water 21 @@ -1226,13 +1401,75 @@ 26 + + 8 + 4 pipe system with air source heat pump storage and gas boiler + schemas/ASHP+TES+GasBoiler.jpg + + heating + cooling + + + 23 + 16 + + + + 9 + 4 pipe system with air source heat pump storage and electric boiler + schemas/ASHP+TES+GasBoiler.jpg + + heating + cooling + + + 22 + 18 + + + + 10 + Domestic Hot Water Heat Pump with Coiled Storage + schemas/ASHP+TES+GasBoiler.jpg + + domestic_hot_water + + + 27 + + + + 11 + Central Heating System َASHP Gas-Boiler TES + schemas/ASHP+TES+GasBoiler.jpg + + heating + + + 23 + 16 + + + + 12 + Unitary ASHP Cooling System + schemas/ASHP+TES+GasBoiler.jpg + + cooling + + + 23 + + + PV+ASHP+GasBoiler+TES 7 1 + 10 @@ -1306,6 +1543,31 @@ 6 + + PV+4Pipe+DHW + + 7 + 8 + 10 + + + + Central Heating+Unitary Cooling+Unitary DHW + + 10 + 11 + 12 + + + + Central Heating+Unitary Cooling+Unitary DHW+PV + + 7 + 10 + 11 + 12 + + diff --git a/hub/exports/formats/simplified_radiosity_algorithm.py b/hub/exports/formats/simplified_radiosity_algorithm.py index d008a958..25189419 100644 --- a/hub/exports/formats/simplified_radiosity_algorithm.py +++ b/hub/exports/formats/simplified_radiosity_algorithm.py @@ -66,9 +66,9 @@ class SimplifiedRadiosityAlgorithm: else: i = (total_days + day - 1) * 24 + hour - 1 representative_building = self._city.buildings[0] - _diffuse = representative_building.diffuse[cte.HOUR][i] * cte.WATTS_HOUR_TO_JULES - _beam = representative_building.beam[cte.HOUR][i] * cte.WATTS_HOUR_TO_JULES - content += f'{day} {month} {hour} {_diffuse} {_beam}\n' + _global = representative_building.diffuse[cte.HOUR][i] / cte.WATTS_HOUR_TO_JULES + _beam = representative_building.direct_normal[cte.HOUR][i] / cte.WATTS_HOUR_TO_JULES + content += f'{day} {month} {hour} {_global} {_beam}\n' with open(file, 'w', encoding='utf-8') as file: file.write(content) diff --git a/hub/helpers/constants.py b/hub/helpers/constants.py index 23fab290..ad32c835 100644 --- a/hub/helpers/constants.py +++ b/hub/helpers/constants.py @@ -10,11 +10,11 @@ Project Coder Pilar Monsalvete Alvarez de Uribarri pilar.monsalvete@concordia.ca KELVIN = 273.15 WATER_DENSITY = 1000 # kg/m3 WATER_HEAT_CAPACITY = 4182 # J/kgK - +WATER_THERMAL_CONDUCTIVITY = 0.65 # W/mK +NATURAL_GAS_LHV = 36.6e6 # J/m3 AIR_DENSITY = 1.293 # kg/m3 AIR_HEAT_CAPACITY = 1005.2 # J/kgK - # converters HOUR_TO_MINUTES = 60 MINUTES_TO_SECONDS = 60 @@ -292,6 +292,7 @@ WOOD = 'Wood' GAS = 'Gas' DIESEL = 'Diesel' COAL = 'Coal' +BIOMASS = 'Biomass' AIR = 'Air' WATER = 'Water' GEOTHERMAL = 'Geothermal' diff --git a/hub/imports/energy_systems/montreal_custom_energy_system_parameters.py b/hub/imports/energy_systems/montreal_custom_energy_system_parameters.py index 4cdb848a..15833c9b 100644 --- a/hub/imports/energy_systems/montreal_custom_energy_system_parameters.py +++ b/hub/imports/energy_systems/montreal_custom_energy_system_parameters.py @@ -86,7 +86,8 @@ class MontrealCustomEnergySystemParameters: if archetype_generation_system.system_type == 'Photovoltaic': _generation_system = PvGenerationSystem() _type = 'PV system' - _generation_system.system_type = Dictionaries().montreal_generation_system_to_hub_energy_generation_system[_type] + _generation_system.system_type = Dictionaries().montreal_generation_system_to_hub_energy_generation_system[ + _type] _fuel_type = Dictionaries().montreal_custom_fuel_to_hub_fuel[archetype_generation_system.fuel_type] _generation_system.fuel_type = _fuel_type _generation_system.electricity_efficiency = archetype_generation_system.electricity_efficiency @@ -98,7 +99,8 @@ class MontrealCustomEnergySystemParameters: else: _generation_system = NonPvGenerationSystem() _type = archetype_generation_system.system_type - _generation_system.system_type = Dictionaries().montreal_generation_system_to_hub_energy_generation_system[_type] + _generation_system.system_type = Dictionaries().montreal_generation_system_to_hub_energy_generation_system[ + _type] _fuel_type = Dictionaries().montreal_custom_fuel_to_hub_fuel[archetype_generation_system.fuel_type] _generation_system.fuel_type = _fuel_type _generation_system.source_types = archetype_generation_system.source_medium diff --git a/hub/imports/energy_systems/montreal_future_energy_systems_parameters.py b/hub/imports/energy_systems/montreal_future_energy_systems_parameters.py index 542608a0..1bcde834 100644 --- a/hub/imports/energy_systems/montreal_future_energy_systems_parameters.py +++ b/hub/imports/energy_systems/montreal_future_energy_systems_parameters.py @@ -82,8 +82,7 @@ class MontrealFutureEnergySystemParameters: return _generic_energy_systems - @staticmethod - def _create_generation_systems(archetype_system): + def _create_generation_systems(self, archetype_system): _generation_systems = [] archetype_generation_systems = archetype_system.generation_systems if archetype_generation_systems is not None: @@ -107,6 +106,7 @@ class MontrealFutureEnergySystemParameters: _generation_system.cell_temperature_coefficient = archetype_generation_system.cell_temperature_coefficient _generation_system.width = archetype_generation_system.width _generation_system.height = archetype_generation_system.height + _generation_system.tilt_angle = self._city.latitude _generic_storage_system = None if archetype_generation_system.energy_storage_systems is not None: _generic_storage_system = ElectricalStorageSystem() @@ -140,12 +140,13 @@ class MontrealFutureEnergySystemParameters: _generation_system.cooling_output_curve = archetype_generation_system.cooling_output_curve _generation_system.cooling_fuel_consumption_curve = archetype_generation_system.cooling_fuel_consumption_curve _generation_system.cooling_efficiency_curve = archetype_generation_system.cooling_efficiency_curve - _generation_system.dual_supply_capability = archetype_generation_system.dual_supply_capability + _generation_system.domestic_hot_water = archetype_generation_system.domestic_hot_water _generation_system.nominal_electricity_output = archetype_generation_system.nominal_electricity_output _generation_system.source_medium = archetype_generation_system.source_medium _generation_system.heat_efficiency = archetype_generation_system.heat_efficiency _generation_system.cooling_efficiency = archetype_generation_system.cooling_efficiency _generation_system.electricity_efficiency = archetype_generation_system.electricity_efficiency + _generation_system.reversibility = archetype_generation_system.reversibility _generic_storage_system = None if archetype_generation_system.energy_storage_systems is not None: _storage_systems = [] @@ -155,11 +156,19 @@ class MontrealFutureEnergySystemParameters: _generic_storage_system.type_energy_stored = 'electrical' else: _generic_storage_system = ThermalStorageSystem() - _generic_storage_system.type_energy_stored = 'thermal' + _generic_storage_system.type_energy_stored = storage_system.type_energy_stored + _generic_storage_system.height = storage_system.height + _generic_storage_system.layers = storage_system.layers + _generic_storage_system.storage_medium = storage_system.storage_medium + _generic_storage_system.heating_coil_capacity = storage_system.heating_coil_capacity _storage_systems.append(_generic_storage_system) - _generation_system.energy_storage_systems = [_storage_systems] - if archetype_generation_system.dual_supply_capability: - _generation_system.dual_supply_capability = True + _generation_system.energy_storage_systems = _storage_systems + if archetype_generation_system.domestic_hot_water: + _generation_system.domestic_hot_water = True + if archetype_generation_system.reversibility: + _generation_system.reversibility = True + if archetype_generation_system.simultaneous_heat_cold: + _generation_system.simultaneous_heat_cold = True _generation_systems.append(_generation_system) return _generation_systems diff --git a/hub/imports/results/ep_multiple_buildings.py b/hub/imports/results/ep_multiple_buildings.py index 9da12c7a..bd9a2dd3 100644 --- a/hub/imports/results/ep_multiple_buildings.py +++ b/hub/imports/results/ep_multiple_buildings.py @@ -60,9 +60,12 @@ class EnergyPlusMultipleBuildings: for building in self._city.buildings: building.heating_demand[cte.HOUR] = building_energy_demands[f'Building {building.name} Heating Demand (J)'] building.cooling_demand[cte.HOUR] = building_energy_demands[f'Building {building.name} Cooling Demand (J)'] - building.domestic_hot_water_heat_demand[cte.HOUR] = building_energy_demands[f'Building {building.name} DHW Demand (W)'] - building.appliances_electrical_demand[cte.HOUR] = building_energy_demands[f'Building {building.name} Appliances (W)'] - building.lighting_electrical_demand[cte.HOUR] = building_energy_demands[f'Building {building.name} Lighting (W)'] + building.domestic_hot_water_heat_demand[cte.HOUR] = \ + [x * cte.WATTS_HOUR_TO_JULES for x in building_energy_demands[f'Building {building.name} DHW Demand (W)']] + building.appliances_electrical_demand[cte.HOUR] = \ + [x * cte.WATTS_HOUR_TO_JULES for x in building_energy_demands[f'Building {building.name} Appliances (W)']] + building.lighting_electrical_demand[cte.HOUR] = \ + [x * cte.WATTS_HOUR_TO_JULES for x in building_energy_demands[f'Building {building.name} Lighting (W)']] building.heating_demand[cte.MONTH] = MonthlyValues.get_total_month(building.heating_demand[cte.HOUR]) building.cooling_demand[cte.MONTH] = MonthlyValues.get_total_month(building.cooling_demand[cte.HOUR]) building.domestic_hot_water_heat_demand[cte.MONTH] = ( diff --git a/hub/imports/results/simplified_radiosity_algorithm.py b/hub/imports/results/simplified_radiosity_algorithm.py index 57fae8e9..3824e7ce 100644 --- a/hub/imports/results/simplified_radiosity_algorithm.py +++ b/hub/imports/results/simplified_radiosity_algorithm.py @@ -34,7 +34,7 @@ class SimplifiedRadiosityAlgorithm: for key in self._results: _irradiance = {} header_name = key.split(':') - result = [x / cte.WATTS_HOUR_TO_JULES for x in self._results[key]] + result = [x * cte.WATTS_HOUR_TO_JULES for x in self._results[key]] city_object_name = header_name[1] building = self._city.city_object(city_object_name) surface_id = header_name[2] diff --git a/hub/imports/weather/epw_weather_parameters.py b/hub/imports/weather/epw_weather_parameters.py index b4f28291..0c362261 100644 --- a/hub/imports/weather/epw_weather_parameters.py +++ b/hub/imports/weather/epw_weather_parameters.py @@ -110,22 +110,26 @@ class EpwWeatherParameters: # new_value = pd.DataFrame(self._weather_values[['dry_bulb_temperature_c']].to_numpy(), columns=['epw']) # number_invalid_records = new_value[new_value.epw == 99.9].count().epw building.external_temperature[cte.HOUR] = self._weather_values['dry_bulb_temperature_c'] - building.global_horizontal[cte.HOUR] = [x / cte.WATTS_HOUR_TO_JULES + building.global_horizontal[cte.HOUR] = [x * cte.WATTS_HOUR_TO_JULES for x in self._weather_values['global_horizontal_radiation_wh_m2']] - building.diffuse[cte.HOUR] = [x / cte.WATTS_HOUR_TO_JULES + building.diffuse[cte.HOUR] = [x * cte.WATTS_HOUR_TO_JULES for x in self._weather_values['diffuse_horizontal_radiation_wh_m2']] - building.beam[cte.HOUR] = [x / cte.WATTS_HOUR_TO_JULES - for x in self._weather_values['direct_normal_radiation_wh_m2']] + building.direct_normal[cte.HOUR] = [x * cte.WATTS_HOUR_TO_JULES + for x in self._weather_values['direct_normal_radiation_wh_m2']] + building.beam[cte.HOUR] = [building.global_horizontal[cte.HOUR][i] - + building.diffuse[cte.HOUR][i] + for i in range(len(building.global_horizontal[cte.HOUR]))] building.cold_water_temperature[cte.HOUR] = wh().cold_water_temperature(building.external_temperature[cte.HOUR]) + # create the monthly and yearly values out of the hourly for building in self._city.buildings: building.external_temperature[cte.MONTH] = \ MonthlyValues().get_mean_values(building.external_temperature[cte.HOUR]) - building.external_temperature[cte.YEAR] = [sum(building.external_temperature[cte.HOUR]) / 9870] + building.external_temperature[cte.YEAR] = [sum(building.external_temperature[cte.HOUR]) / 8760] building.cold_water_temperature[cte.MONTH] = \ MonthlyValues().get_mean_values(building.cold_water_temperature[cte.HOUR]) - building.cold_water_temperature[cte.YEAR] = [sum(building.cold_water_temperature[cte.HOUR]) / 9870] + building.cold_water_temperature[cte.YEAR] = [sum(building.cold_water_temperature[cte.HOUR]) / 8760] # If the usage has already being imported, the domestic hot water missing values must be calculated here that # the cold water temperature is finally known diff --git a/hub/imports/weather/helpers/weather.py b/hub/imports/weather/helpers/weather.py index 7603cb5b..755f9ad3 100644 --- a/hub/imports/weather/helpers/weather.py +++ b/hub/imports/weather/helpers/weather.py @@ -8,7 +8,7 @@ Project Coder Pilar Monsalvete Alvarez de Uribarri pilar.monsalvete@concordia.ca import logging import math import hub.helpers.constants as cte - +from datetime import datetime, timedelta class Weather: """ @@ -55,25 +55,19 @@ class Weather: # and Craig Christensen, National Renewable Energy Laboratory # ambient temperatures( in °C) # cold water temperatures( in °C) - ambient_temperature_fahrenheit = [] - average_temperature = 0 - maximum_temperature = -1000 - minimum_temperature = 1000 - for temperature in ambient_temperature: - value = temperature * 9 / 5 + 32 - ambient_temperature_fahrenheit.append(value) - average_temperature += value / 8760 - if value > maximum_temperature: - maximum_temperature = value - if value < minimum_temperature: - minimum_temperature = value - delta_temperature = maximum_temperature - minimum_temperature - ratio = 0.4 + 0.01 * (average_temperature - 44) - lag = 35 - 1 * (average_temperature - 44) + t_out_fahrenheit = [1.8 * t_out + 32 for t_out in ambient_temperature] + t_out_average = sum(t_out_fahrenheit) / len(t_out_fahrenheit) + max_difference = max(t_out_fahrenheit) - min(t_out_fahrenheit) + ratio = 0.4 + 0.01 * (t_out_average - 44) + lag = 35 - (t_out_average - 35) + number_of_day = [a for a in range(1, 366)] + day_of_year = [day for day in number_of_day for _ in range(24)] + cold_temperature_fahrenheit = [] cold_temperature = [] - for temperature in ambient_temperature_fahrenheit: - radians = (0.986 * (temperature-15-lag) - 90) * math.pi / 180 - cold_temperature.append((average_temperature + 6 + ratio * (delta_temperature/2) * math.sin(radians) - 32) * 5/9) + for i in range(len(ambient_temperature)): + cold_temperature_fahrenheit.append(t_out_average + 6 + ratio * (max_difference / 2) * + math.sin(math.radians(0.986 * (day_of_year[i] - 15 - lag) - 90))) + cold_temperature.append((cold_temperature_fahrenheit[i] - 32) / 1.8) return cold_temperature def epw_file(self, region_code): diff --git a/tests/test_systems_catalog.py b/tests/test_systems_catalog.py index d41e5c07..612a8fe6 100644 --- a/tests/test_systems_catalog.py +++ b/tests/test_systems_catalog.py @@ -38,12 +38,12 @@ class TestSystemsCatalog(TestCase): catalog = EnergySystemsCatalogFactory('montreal_future').catalog catalog_categories = catalog.names() - archetypes = catalog.names('archetypes') - self.assertEqual(12, len(archetypes['archetypes'])) + archetypes = catalog.names() + self.assertEqual(15, len(archetypes['archetypes'])) systems = catalog.names('systems') - self.assertEqual(7, len(systems['systems'])) + self.assertEqual(12, len(systems['systems'])) generation_equipments = catalog.names('generation_equipments') - self.assertEqual(26, len(generation_equipments['generation_equipments'])) + self.assertEqual(27, len(generation_equipments['generation_equipments'])) with self.assertRaises(ValueError): catalog.names('unknown') diff --git a/tests/test_systems_factory.py b/tests/test_systems_factory.py index c4c086e3..66f600c8 100644 --- a/tests/test_systems_factory.py +++ b/tests/test_systems_factory.py @@ -122,12 +122,13 @@ class TestSystemsFactory(TestCase): for energy_system in building.energy_systems: if cte.HEATING in energy_system.demand_types: _generation_system = cast(NonPvGenerationSystem, energy_system.generation_systems[0]) - _generation_system.heat_power = building.heating_peak_load[cte.YEAR][0] + _generation_system.nominal_heat_output = building.heating_peak_load[cte.YEAR][0] if cte.COOLING in energy_system.demand_types: _generation_system = cast(NonPvGenerationSystem, energy_system.generation_systems[0]) - _generation_system.cooling_power = building.cooling_peak_load[cte.YEAR][0] + _generation_system.nominal_cooling_output = building.cooling_peak_load[cte.YEAR][0] for building in self._city.buildings: + print('test') self.assertLess(0, building.heating_consumption[cte.YEAR][0]) self.assertLess(0, building.cooling_consumption[cte.YEAR][0]) self.assertLess(0, building.domestic_hot_water_consumption[cte.YEAR][0]) From 9adacadc2aa2296af11e051bc10381d73d6e99f9 Mon Sep 17 00:00:00 2001 From: s_ranjbar Date: Thu, 27 Jun 2024 15:33:04 -0400 Subject: [PATCH 06/42] Revert "fix: energy system catalogue and importers are modified" This reverts commit 15e43a0f352cafba9ac86027237844002c4ab89a. --- .../energy_systems/emission_system.py | 2 +- .../non_pv_generation_system.py | 52 +- .../energy_systems/performance_curves.py | 8 +- .../energy_systems/thermal_storage_system.py | 14 +- .../energy_systems/montreal_custom_catalog.py | 9 +- .../montreal_future_system_catalogue.py | 40 +- hub/city_model_structure/building.py | 102 +--- .../building_demand/surface.py | 36 +- hub/city_model_structure/city_object.py | 29 +- .../energy_systems/emission_system.py | 2 +- .../energy_systems/generation_system.py | 22 +- .../non_pv_generation_system.py | 106 +--- .../energy_systems/performance_curve.py | 17 +- .../energy_systems/pv_generation_system.py | 36 -- .../energy_systems/thermal_storage_system.py | 51 -- .../montreal_future_systems.xml | 474 ++++-------------- .../formats/simplified_radiosity_algorithm.py | 6 +- hub/helpers/constants.py | 5 +- ...ontreal_custom_energy_system_parameters.py | 6 +- ...ntreal_future_energy_systems_parameters.py | 23 +- hub/imports/results/ep_multiple_buildings.py | 9 +- .../results/simplified_radiosity_algorithm.py | 2 +- hub/imports/weather/epw_weather_parameters.py | 16 +- hub/imports/weather/helpers/weather.py | 32 +- tests/test_systems_catalog.py | 8 +- tests/test_systems_factory.py | 5 +- 26 files changed, 236 insertions(+), 876 deletions(-) diff --git a/hub/catalog_factories/data_models/energy_systems/emission_system.py b/hub/catalog_factories/data_models/energy_systems/emission_system.py index a8ac91b6..538954d3 100644 --- a/hub/catalog_factories/data_models/energy_systems/emission_system.py +++ b/hub/catalog_factories/data_models/energy_systems/emission_system.py @@ -10,7 +10,7 @@ class EmissionSystem: """ Emission system class """ - def __init__(self, system_id, model_name=None, system_type=None, parasitic_energy_consumption=None): + def __init__(self, system_id, model_name=None, system_type=None, parasitic_energy_consumption=0): self._system_id = system_id self._model_name = model_name diff --git a/hub/catalog_factories/data_models/energy_systems/non_pv_generation_system.py b/hub/catalog_factories/data_models/energy_systems/non_pv_generation_system.py index 0844c785..5b203d01 100644 --- a/hub/catalog_factories/data_models/energy_systems/non_pv_generation_system.py +++ b/hub/catalog_factories/data_models/energy_systems/non_pv_generation_system.py @@ -25,11 +25,9 @@ class NonPvGenerationSystem(GenerationSystem): maximum_cooling_supply_temperature=None, minimum_cooling_supply_temperature=None, heat_output_curve=None, heat_fuel_consumption_curve=None, heat_efficiency_curve=None, cooling_output_curve=None, cooling_fuel_consumption_curve=None, cooling_efficiency_curve=None, - distribution_systems=None, energy_storage_systems=None, domestic_hot_water=False, - reversible=None, simultaneous_heat_cold=None): - super().__init__(system_id=system_id, name=name, model_name=model_name, manufacturer=manufacturer, - fuel_type=fuel_type, distribution_systems=distribution_systems, - energy_storage_systems=energy_storage_systems) + distribution_systems=None, energy_storage_systems=None, dual_supply_capability=False): + super().__init__(system_id=system_id, name=name, model_name=model_name, manufacturer=manufacturer, fuel_type=fuel_type, + distribution_systems=distribution_systems, energy_storage_systems=energy_storage_systems) self._system_type = system_type self._nominal_heat_output = nominal_heat_output self._maximum_heat_output = maximum_heat_output @@ -55,9 +53,7 @@ class NonPvGenerationSystem(GenerationSystem): self._cooling_output_curve = cooling_output_curve self._cooling_fuel_consumption_curve = cooling_fuel_consumption_curve self._cooling_efficiency_curve = cooling_efficiency_curve - self._domestic_hot_water = domestic_hot_water - self._reversible = reversible - self._simultaneous_heat_cold = simultaneous_heat_cold + self._dual_supply_capability = dual_supply_capability @property def system_type(self): @@ -260,28 +256,12 @@ class NonPvGenerationSystem(GenerationSystem): return self._cooling_efficiency_curve @property - def domestic_hot_water(self): + def dual_supply_capability(self): """ - Get the ability to produce domestic hot water + Get dual supply capability :return: bool """ - return self._domestic_hot_water - - @property - def reversibility(self): - """ - Get the ability to produce heating and cooling - :return: bool - """ - return self._reversible - - @property - def simultaneous_heat_cold(self): - """ - Get the ability to produce heating and cooling at the same time - :return: bool - """ - return self._simultaneous_heat_cold + return self._dual_supply_capability def to_dictionary(self): """Class content to dictionary""" @@ -289,18 +269,6 @@ class NonPvGenerationSystem(GenerationSystem): self.distribution_systems] if self.distribution_systems is not None else None _energy_storage_systems = [_energy_storage_system.to_dictionary() for _energy_storage_system in self.energy_storage_systems] if self.energy_storage_systems is not None else None - _heat_output_curve = self.heat_output_curve.to_dictionary() if ( - self.heat_output_curve is not None) else None - _heat_fuel_consumption_curve = self.heat_fuel_consumption_curve.to_dictionary() if ( - self.heat_fuel_consumption_curve is not None) else None - _heat_efficiency_curve = self.heat_efficiency_curve.to_dictionary() if ( - self.heat_efficiency_curve is not None) else None - _cooling_output_curve = self.cooling_output_curve.to_dictionary() if ( - self.cooling_output_curve is not None) else None - _cooling_fuel_consumption_curve = self.cooling_fuel_consumption_curve.to_dictionary() if ( - self.cooling_fuel_consumption_curve is not None) else None - _cooling_efficiency_curve = self.cooling_efficiency_curve.to_dictionary() if ( - self.cooling_efficiency_curve is not None) else None content = { 'Energy Generation component': @@ -330,15 +298,13 @@ class NonPvGenerationSystem(GenerationSystem): 'minimum cooling supply temperature [Celsius]': self.minimum_cooling_supply_temperature, 'heat output curve': self.heat_output_curve, 'heat fuel consumption curve': self.heat_fuel_consumption_curve, - 'heat efficiency curve': _heat_efficiency_curve, + 'heat efficiency curve': self.heat_efficiency_curve, 'cooling output curve': self.cooling_output_curve, 'cooling fuel consumption curve': self.cooling_fuel_consumption_curve, 'cooling efficiency curve': self.cooling_efficiency_curve, 'distribution systems connected': _distribution_systems, 'storage systems connected': _energy_storage_systems, - 'domestic hot water production capability': self.domestic_hot_water, - 'reversible cycle': self.reversibility, - 'simultaneous heat and cooling production': self.simultaneous_heat_cold + 'dual supply capability': self.dual_supply_capability } } return content diff --git a/hub/catalog_factories/data_models/energy_systems/performance_curves.py b/hub/catalog_factories/data_models/energy_systems/performance_curves.py index ff6c22d2..65cc0878 100644 --- a/hub/catalog_factories/data_models/energy_systems/performance_curves.py +++ b/hub/catalog_factories/data_models/energy_systems/performance_curves.py @@ -24,13 +24,13 @@ class PerformanceCurves: def curve_type(self): """ The type of the fit function from the following - Linear =>>> y = a + b*x + Linear =>>> y = a*x + b Exponential =>>> y = a*(b**x) - Second degree polynomial =>>> y = a + b*x + c*(x**2) + Polynomial =>>> y = a*(x**2) + b*x + c Power =>>> y = a*(x**b) - Bi-Quadratic =>>> y = a + b*x + c*(x**2) + d*z + e*(z**2) + f*x*z + Second degree multivariable =>>> y = a*(x**2) + b*x + c*x*z + d*z + e*(z**2) + f - Get the type of function from ['linear', 'exponential', 'second degree polynomial', 'power', 'bi-quadratic'] + Get the type of function from ['linear', 'exponential', 'polynomial', 'power', 'second degree multivariable'] :return: string """ return self._curve_type diff --git a/hub/catalog_factories/data_models/energy_systems/thermal_storage_system.py b/hub/catalog_factories/data_models/energy_systems/thermal_storage_system.py index ca773e09..d3cdf255 100644 --- a/hub/catalog_factories/data_models/energy_systems/thermal_storage_system.py +++ b/hub/catalog_factories/data_models/energy_systems/thermal_storage_system.py @@ -17,7 +17,7 @@ class ThermalStorageSystem(EnergyStorageSystem): def __init__(self, storage_id, type_energy_stored=None, model_name=None, manufacturer=None, storage_type=None, nominal_capacity=None, losses_ratio=None, volume=None, height=None, layers=None, - maximum_operating_temperature=None, storage_medium=None, heating_coil_capacity=None): + maximum_operating_temperature=None, storage_medium=None): super().__init__(storage_id, model_name, manufacturer, nominal_capacity, losses_ratio) self._type_energy_stored = type_energy_stored @@ -27,7 +27,6 @@ class ThermalStorageSystem(EnergyStorageSystem): self._layers = layers self._maximum_operating_temperature = maximum_operating_temperature self._storage_medium = storage_medium - self._heating_coil_capacity = heating_coil_capacity @property def type_energy_stored(self): @@ -85,14 +84,6 @@ class ThermalStorageSystem(EnergyStorageSystem): """ return self._storage_medium - @property - def heating_coil_capacity(self): - """ - Get heating coil capacity in Watts - :return: [material - """ - return self._heating_coil_capacity - def to_dictionary(self): """Class content to dictionary""" _layers = None @@ -119,8 +110,7 @@ class ThermalStorageSystem(EnergyStorageSystem): 'height [m]': self.height, 'layers': _layers, 'maximum operating temperature [Celsius]': self.maximum_operating_temperature, - 'storage_medium': self.storage_medium.to_dictionary(), - 'heating coil capacity [W]': self.heating_coil_capacity + 'storage_medium': self.storage_medium.to_dictionary() } } return content diff --git a/hub/catalog_factories/energy_systems/montreal_custom_catalog.py b/hub/catalog_factories/energy_systems/montreal_custom_catalog.py index d3e37e36..bf47d19b 100644 --- a/hub/catalog_factories/energy_systems/montreal_custom_catalog.py +++ b/hub/catalog_factories/energy_systems/montreal_custom_catalog.py @@ -87,7 +87,7 @@ class MontrealCustomCatalog(Catalog): cooling_efficiency=cooling_efficiency, electricity_efficiency=electricity_efficiency, energy_storage_systems=storage_systems, - domestic_hot_water=False + dual_supply_capability=False ) _equipments.append(generation_system) @@ -111,7 +111,10 @@ class MontrealCustomCatalog(Catalog): distribution_consumption_variable_flow = float( equipment['distribution_consumption_variable_flow']['#text']) / 100 - emission_equipment = equipment['dissipation_id'] + emission_equipment = -1 + if 'dissipation_id' in equipment: + emission_equipment = equipment['dissipation_id'] + _emission_equipments = None for equipment_archetype in self._catalog_emission_equipments: if int(equipment_archetype.id) == int(emission_equipment): @@ -135,7 +138,7 @@ class MontrealCustomCatalog(Catalog): equipment_id = float(equipment['@id']) equipment_type = equipment['@type'] model_name = equipment['name'] - parasitic_consumption = None + parasitic_consumption = 0 if 'parasitic_consumption' in equipment: parasitic_consumption = float(equipment['parasitic_consumption']['#text']) / 100 diff --git a/hub/catalog_factories/energy_systems/montreal_future_system_catalogue.py b/hub/catalog_factories/energy_systems/montreal_future_system_catalogue.py index 625e362c..b6d7f9f5 100644 --- a/hub/catalog_factories/energy_systems/montreal_future_system_catalogue.py +++ b/hub/catalog_factories/energy_systems/montreal_future_system_catalogue.py @@ -121,26 +121,13 @@ class MontrealFutureSystemCatalogue(Catalog): parameters = non_pv['cooling_efficiency_curve']['parameters'] coefficients = list(non_pv['cooling_efficiency_curve']['coefficients'].values()) cooling_efficiency_curve = PerformanceCurves(curve_type, dependant_variable, parameters, coefficients) - dhw = None - if non_pv['domestic_hot_water'] is not None: - if non_pv['domestic_hot_water'] == 'True': - dhw = True + dual_supply_capability = None + if non_pv['dual_supply_capability'] is not None: + if non_pv['dual_supply_capability'] == 'True': + dual_supply_capability = True else: - dhw = False + dual_supply_capability = False - reversible = None - if non_pv['reversible'] is not None: - if non_pv['reversible'] == 'True': - reversible = True - else: - reversible = False - - dual_supply = None - if non_pv['simultaneous_heat_cold'] is not None: - if non_pv['simultaneous_heat_cold'] == 'True': - dual_supply = True - else: - dual_supply = False non_pv_component = NonPvGenerationSystem(system_id=system_id, name=name, system_type=system_type, @@ -173,9 +160,7 @@ class MontrealFutureSystemCatalogue(Catalog): cooling_efficiency_curve=cooling_efficiency_curve, distribution_systems=distribution_systems, energy_storage_systems=energy_storage_systems, - domestic_hot_water=dhw, - reversible=reversible, - simultaneous_heat_cold=dual_supply) + dual_supply_capability=dual_supply_capability) generation_components.append(non_pv_component) pv_generation_components = self._archetypes['EnergySystemCatalog']['energy_generation_components'][ 'pv_generation_component'] @@ -202,6 +187,7 @@ class MontrealFutureSystemCatalogue(Catalog): storage_component = pv['energy_storage_systems']['storage_id'] storage_systems = self._search_storage_equipment(self._load_storage_components(), storage_component) energy_storage_systems = storage_systems + pv_component = PvGenerationSystem(system_id=system_id, name=name, system_type=system_type, @@ -262,7 +248,7 @@ class MontrealFutureSystemCatalogue(Catalog): system_id = None model_name = None system_type = None - parasitic_energy_consumption = None + parasitic_energy_consumption = 0 emission_system = EmissionSystem(system_id=system_id, model_name=model_name, system_type=system_type, @@ -298,7 +284,6 @@ class MontrealFutureSystemCatalogue(Catalog): layers = [insulation_layer, tank_layer] nominal_capacity = tes['nominal_capacity'] losses_ratio = tes['losses_ratio'] - heating_coil_capacity = tes['heating_coil_capacity'] storage_component = ThermalStorageSystem(storage_id=storage_id, model_name=model_name, type_energy_stored=type_energy_stored, @@ -310,8 +295,7 @@ class MontrealFutureSystemCatalogue(Catalog): height=height, layers=layers, maximum_operating_temperature=maximum_operating_temperature, - storage_medium=medium, - heating_coil_capacity=heating_coil_capacity) + storage_medium=medium) storage_components.append(storage_component) for template in template_storages: @@ -319,7 +303,7 @@ class MontrealFutureSystemCatalogue(Catalog): storage_type = template['storage_type'] type_energy_stored = template['type_energy_stored'] maximum_operating_temperature = template['maximum_operating_temperature'] - height = float(template['physical_characteristics']['height']) + height = template['physical_characteristics']['height'] materials = self._load_materials() insulation_material_id = template['insulation']['material_id'] insulation_material = self._search_material(materials, insulation_material_id) @@ -338,7 +322,6 @@ class MontrealFutureSystemCatalogue(Catalog): nominal_capacity = template['nominal_capacity'] losses_ratio = template['losses_ratio'] volume = template['physical_characteristics']['volume'] - heating_coil_capacity = template['heating_coil_capacity'] storage_component = ThermalStorageSystem(storage_id=storage_id, model_name=model_name, type_energy_stored=type_energy_stored, @@ -350,8 +333,7 @@ class MontrealFutureSystemCatalogue(Catalog): height=height, layers=layers, maximum_operating_temperature=maximum_operating_temperature, - storage_medium=medium, - heating_coil_capacity=heating_coil_capacity) + storage_medium=medium) storage_components.append(storage_component) return storage_components diff --git a/hub/city_model_structure/building.py b/hub/city_model_structure/building.py index 387a4bf9..315f65d9 100644 --- a/hub/city_model_structure/building.py +++ b/hub/city_model_structure/building.py @@ -90,9 +90,7 @@ class Building(CityObject): self._interior_slabs.append(surface) else: logging.error('Building %s [%s] has an unexpected surface type %s.', self.name, self.aliases, surface.type) - self._domestic_hot_water_peak_load = None - self._fuel_consumption_breakdown = {} - self._pv_generation = {} + self._heating_consumption_disaggregated = {} @property def shell(self) -> Polyhedron: @@ -451,8 +449,8 @@ class Building(CityObject): monthly_values = PeakLoads(self).heating_peak_loads_from_methodology if monthly_values is None: return None - results[cte.MONTH] = [x / cte.WATTS_HOUR_TO_JULES for x in monthly_values] - results[cte.YEAR] = [max(monthly_values) / cte.WATTS_HOUR_TO_JULES] + results[cte.MONTH] = monthly_values + results[cte.YEAR] = [max(monthly_values)] return results @property @@ -468,24 +466,8 @@ class Building(CityObject): monthly_values = PeakLoads(self).cooling_peak_loads_from_methodology if monthly_values is None: return None - results[cte.MONTH] = [x / cte.WATTS_HOUR_TO_JULES for x in monthly_values] - results[cte.YEAR] = [max(monthly_values) / cte.WATTS_HOUR_TO_JULES] - return results - - @property - def domestic_hot_water_peak_load(self) -> Union[None, dict]: - """ - Get cooling peak load in W - :return: dict{[float]} - """ - results = {} - monthly_values = None - if cte.HOUR in self.domestic_hot_water_heat_demand: - monthly_values = PeakLoads().peak_loads_from_hourly(self.domestic_hot_water_heat_demand[cte.HOUR]) - if monthly_values is None: - return None - results[cte.MONTH] = [x / cte.WATTS_HOUR_TO_JULES for x in monthly_values] - results[cte.YEAR] = [max(monthly_values) / cte.WATTS_HOUR_TO_JULES] + results[cte.MONTH] = [x * cte.WATTS_HOUR_TO_JULES for x in monthly_values] + results[cte.YEAR] = [max(monthly_values)] return results @property @@ -843,6 +825,23 @@ class Building(CityObject): self._onsite_electrical_production[_key] = _results return self._onsite_electrical_production + @property + def heating_consumption_disaggregated(self) -> dict: + """ + Get energy consumed for heating from different fuels in J + return: dict + """ + return self._heating_consumption_disaggregated + + @heating_consumption_disaggregated.setter + def heating_consumption_disaggregated(self, value): + """ + Get energy consumed for heating from different fuels in J + return: dict + """ + self._heating_consumption_disaggregated = value + + @property def lower_corner(self): """ @@ -856,60 +855,3 @@ class Building(CityObject): Get building upper corner. """ return [self._max_x, self._max_y, self._max_z] - - @property - def energy_consumption_breakdown(self) -> dict: - """ - Get energy consumption of different sectors - return: dict - """ - fuel_breakdown = {cte.ELECTRICITY: {cte.LIGHTING: self.lighting_electrical_demand[cte.YEAR][0], - cte.APPLIANCES: self.appliances_electrical_demand[cte.YEAR][0]}} - energy_systems = self.energy_systems - for energy_system in energy_systems: - demand_types = energy_system.demand_types - generation_systems = energy_system.generation_systems - for demand_type in demand_types: - for generation_system in generation_systems: - if generation_system.system_type != cte.PHOTOVOLTAIC: - if generation_system.fuel_type not in fuel_breakdown: - fuel_breakdown[generation_system.fuel_type] = {} - if demand_type in generation_system.energy_consumption: - fuel_breakdown[f'{generation_system.fuel_type}'][f'{demand_type}'] = ( - generation_system.energy_consumption)[f'{demand_type}'][cte.YEAR][0] - storage_systems = generation_system.energy_storage_systems - if storage_systems: - for storage_system in storage_systems: - if storage_system.type_energy_stored == 'thermal' and storage_system.heating_coil_energy_consumption: - fuel_breakdown[cte.ELECTRICITY][f'{demand_type}'] += storage_system.heating_coil_energy_consumption[cte.YEAR][0] - #TODO: When simulation models of all energy system archetypes are created, this part can be removed - heating_fuels = [] - dhw_fuels = [] - for energy_system in self.energy_systems: - if cte.HEATING in energy_system.demand_types: - for generation_system in energy_system.generation_systems: - heating_fuels.append(generation_system.fuel_type) - if cte.DOMESTIC_HOT_WATER in energy_system.demand_types: - for generation_system in energy_system.generation_systems: - dhw_fuels.append(generation_system.fuel_type) - for key in fuel_breakdown: - if key == cte.ELECTRICITY and cte.COOLING not in fuel_breakdown[key]: - for energy_system in energy_systems: - if cte.COOLING in energy_system.demand_types and cte.COOLING not in fuel_breakdown[key]: - for generation_system in energy_system.generation_systems: - fuel_breakdown[generation_system.fuel_type][cte.COOLING] = self.cooling_consumption[cte.YEAR][0] - for fuel in heating_fuels: - if cte.HEATING not in fuel_breakdown[fuel]: - for energy_system in energy_systems: - if cte.HEATING in energy_system.demand_types: - for generation_system in energy_system.generation_systems: - fuel_breakdown[generation_system.fuel_type][cte.HEATING] = self.heating_consumption[cte.YEAR][0] - for fuel in dhw_fuels: - if cte.DOMESTIC_HOT_WATER not in fuel_breakdown[fuel]: - for energy_system in energy_systems: - if cte.DOMESTIC_HOT_WATER in energy_system.demand_types: - for generation_system in energy_system.generation_systems: - fuel_breakdown[generation_system.fuel_type][cte.DOMESTIC_HOT_WATER] = self.domestic_hot_water_consumption[cte.YEAR][0] - self._fuel_consumption_breakdown = fuel_breakdown - return self._fuel_consumption_breakdown - diff --git a/hub/city_model_structure/building_demand/surface.py b/hub/city_model_structure/building_demand/surface.py index 65f90ae3..ab27ffe8 100644 --- a/hub/city_model_structure/building_demand/surface.py +++ b/hub/city_model_structure/building_demand/surface.py @@ -42,12 +42,10 @@ class Surface: self._short_wave_reflectance = None self._long_wave_emittance = None self._inverse = None - self._associated_thermal_boundaries = [] + self._associated_thermal_boundaries = None self._vegetation = None self._percentage_shared = None self._solar_collectors_area_reduction_factor = None - self._global_irradiance_tilted = {} - self._installed_solar_collector_area = None @property def name(self): @@ -386,35 +384,3 @@ class Surface: :param value: float """ self._solar_collectors_area_reduction_factor = value - - @property - def global_irradiance_tilted(self) -> dict: - """ - Get global irradiance on a tilted surface in J/m2 - :return: dict - """ - return self._global_irradiance_tilted - - @global_irradiance_tilted.setter - def global_irradiance_tilted(self, value): - """ - Set global irradiance on a tilted surface in J/m2 - :param value: dict - """ - self._global_irradiance_tilted = value - - @property - def installed_solar_collector_area(self): - """ - Get installed solar collector area in m2 - :return: dict - """ - return self._installed_solar_collector_area - - @installed_solar_collector_area.setter - def installed_solar_collector_area(self, value): - """ - Set installed solar collector area in m2 - :return: dict - """ - self._installed_solar_collector_area = value \ No newline at end of file diff --git a/hub/city_model_structure/city_object.py b/hub/city_model_structure/city_object.py index 0d281b65..c18a4aa0 100644 --- a/hub/city_model_structure/city_object.py +++ b/hub/city_model_structure/city_object.py @@ -41,10 +41,9 @@ class CityObject: self._ground_temperature = {} self._global_horizontal = {} self._diffuse = {} - self._direct_normal = {} + self._beam = {} self._sensors = [] self._neighbours = None - self._beam = {} @property def level_of_detail(self) -> LevelOfDetail: @@ -239,20 +238,20 @@ class CityObject: self._diffuse = value @property - def direct_normal(self) -> dict: + def beam(self) -> dict: """ Get beam radiation surrounding the city object in J/m2 :return: dict{dict{[float]}} """ - return self._direct_normal + return self._beam - @direct_normal.setter - def direct_normal(self, value): + @beam.setter + def beam(self, value): """ Set beam radiation surrounding the city object in J/m2 :param value: dict{dict{[float]}} """ - self._direct_normal = value + self._beam = value @property def lower_corner(self): @@ -303,19 +302,3 @@ class CityObject: Set the list of neighbour_objects and their properties associated to the current city_object """ self._neighbours = value - - @property - def beam(self) -> dict: - """ - Get beam radiation surrounding the city object in J/m2 - :return: dict{dict{[float]}} - """ - return self._beam - - @beam.setter - def beam(self, value): - """ - Set beam radiation surrounding the city object in J/m2 - :param value: dict{dict{[float]}} - """ - self._beam = value diff --git a/hub/city_model_structure/energy_systems/emission_system.py b/hub/city_model_structure/energy_systems/emission_system.py index 32bf7c17..e8773013 100644 --- a/hub/city_model_structure/energy_systems/emission_system.py +++ b/hub/city_model_structure/energy_systems/emission_system.py @@ -13,7 +13,7 @@ class EmissionSystem: def __init__(self): self._model_name = None self._type = None - self._parasitic_energy_consumption = None + self._parasitic_energy_consumption = 0 @property def model_name(self): diff --git a/hub/city_model_structure/energy_systems/generation_system.py b/hub/city_model_structure/energy_systems/generation_system.py index 1765c08e..394c2f09 100644 --- a/hub/city_model_structure/energy_systems/generation_system.py +++ b/hub/city_model_structure/energy_systems/generation_system.py @@ -11,8 +11,7 @@ from abc import ABC from typing import Union, List from hub.city_model_structure.energy_systems.distribution_system import DistributionSystem -from hub.city_model_structure.energy_systems.thermal_storage_system import ThermalStorageSystem -from hub.city_model_structure.energy_systems.electrical_storage_system import ElectricalStorageSystem +from hub.city_model_structure.energy_systems.energy_storage_system import EnergyStorageSystem class GenerationSystem(ABC): @@ -27,7 +26,6 @@ class GenerationSystem(ABC): self._fuel_type = None self._distribution_systems = None self._energy_storage_systems = None - self._number_of_units = None @property def system_type(self): @@ -126,7 +124,7 @@ class GenerationSystem(ABC): self._distribution_systems = value @property - def energy_storage_systems(self) -> Union[None, List[ThermalStorageSystem], List[ElectricalStorageSystem]]: + def energy_storage_systems(self) -> Union[None, List[EnergyStorageSystem]]: """ Get energy storage systems connected to this generation system :return: [EnergyStorageSystem] @@ -140,19 +138,3 @@ class GenerationSystem(ABC): :param value: [EnergyStorageSystem] """ self._energy_storage_systems = value - - @property - def number_of_units(self): - """ - Get number of a specific generation unit - :return: int - """ - return self._number_of_units - - @number_of_units.setter - def number_of_units(self, value): - """ - Set number of a specific generation unit - :return: int - """ - self._number_of_units = value diff --git a/hub/city_model_structure/energy_systems/non_pv_generation_system.py b/hub/city_model_structure/energy_systems/non_pv_generation_system.py index 0eb9ed0e..fea1d7b2 100644 --- a/hub/city_model_structure/energy_systems/non_pv_generation_system.py +++ b/hub/city_model_structure/energy_systems/non_pv_generation_system.py @@ -42,12 +42,7 @@ class NonPvGenerationSystem(GenerationSystem): self._cooling_output_curve = None self._cooling_fuel_consumption_curve = None self._cooling_efficiency_curve = None - self._domestic_hot_water = None - self._heat_supply_temperature = None - self._cooling_supply_temperature = None - self._reversible = None - self._simultaneous_heat_cold = None - self._energy_consumption = {} + self._dual_supply_capability = None @property def nominal_heat_output(self): @@ -434,106 +429,21 @@ class NonPvGenerationSystem(GenerationSystem): self._cooling_efficiency_curve = value @property - def domestic_hot_water(self): + def dual_supply_capability(self): """ - Get the capability of generating domestic hot water + Get the capability of the generation component for simultaneous heat and cold production :return: bool """ - return self._domestic_hot_water + return self._dual_supply_capability - @domestic_hot_water.setter - def domestic_hot_water(self, value): + @dual_supply_capability.setter + def dual_supply_capability(self, value): """ - Set the capability of generating domestic hot water + Set the capability of the generation component for simultaneous heat and cold production :return: bool """ - self._domestic_hot_water = value + self._dual_supply_capability = value - @property - def heat_supply_temperature(self): - """ - Get the hourly heat supply temperature - :return: list - """ - return self._heat_supply_temperature - - @heat_supply_temperature.setter - def heat_supply_temperature(self, value): - """ - set the hourly heat supply temperature - :param value: - :return: list - """ - self._heat_supply_temperature = value - - @property - def cooling_supply_temperature(self): - """ - Get the hourly cooling supply temperature - :return: list - """ - return self._heat_supply_temperature - - @cooling_supply_temperature.setter - def cooling_supply_temperature(self, value): - """ - set the hourly cooling supply temperature - :param value: - :return: list - """ - self._cooling_supply_temperature = value - - @property - def reversibility(self): - """ - Get the capability of generating both heating and cooling - - :return: bool - """ - return self._reversible - - @reversibility.setter - def reversibility(self, value): - """ - Set the capability of generating domestic hot water - - :return: bool - """ - self._reversible = value - - @property - def simultaneous_heat_cold(self): - """ - Get the capability of generating both heating and cooling at the same time - - :return: bool - """ - return self._simultaneous_heat_cold - - @simultaneous_heat_cold.setter - def simultaneous_heat_cold(self, value): - """ - Set the capability of generating domestic hot water at the same time - - :return: bool - """ - self._simultaneous_heat_cold = value - - @property - def energy_consumption(self) -> dict: - """ - Get energy consumption in W - :return: dict{[float]} - """ - return self._energy_consumption - - @energy_consumption.setter - def energy_consumption(self, value): - """ - Set energy consumption in W - :param value: dict{[float]} - """ - self._energy_consumption = value diff --git a/hub/city_model_structure/energy_systems/performance_curve.py b/hub/city_model_structure/energy_systems/performance_curve.py index df667993..e7c72287 100644 --- a/hub/city_model_structure/energy_systems/performance_curve.py +++ b/hub/city_model_structure/energy_systems/performance_curve.py @@ -24,29 +24,28 @@ class PerformanceCurves: def curve_type(self): """ Get the type of the fit function from the following - Linear =>>> y = a + b*x + Linear =>>> y = a*x + b Exponential =>>> y = a*(b**x) - Second degree polynomial =>>> y = a + b*x + c*(x**2) + Polynomial =>>> y = a*(x**2) + b*x + c Power =>>> y = a*(x**b) - Bi-Quadratic =>>> y = a + b*x + c*(x**2) + d*z + e*(z**2) + f*x*z + Second degree multivariable =>>> y = a*(x**2) + b*x + c*x*z + d*z + e*(z**2) + f - Get the type of function from ['linear', 'exponential', 'second degree polynomial', 'power', 'bi-quadratic'] + Get the type of function from ['linear', 'exponential', 'polynomial', 'power', 'second degree multivariable'] :return: string """ - return self._curve_type @curve_type.setter def curve_type(self, value): """ Set the type of the fit function from the following - Linear =>>> y = a + b*x + Linear =>>> y = a*x + b Exponential =>>> y = a*(b**x) - Second degree polynomial =>>> y = a + b*x + c*(x**2) + Polynomial =>>> y = a*(x**2) + b*x + c Power =>>> y = a*(x**b) - Bi-Quadratic =>>> y = a + b*x + c*(x**2) + d*z + e*(z**2) + f*x*z + Second degree multivariable =>>> y = a*(x**2) + b*x + c*x*z + d*z + e*(z**2) + f - Get the type of function from ['linear', 'exponential', 'second degree polynomial', 'power', 'bi-quadratic'] + Get the type of function from ['linear', 'exponential', 'polynomial', 'power', 'second degree multivariable'] :return: string """ self._curve_type = value diff --git a/hub/city_model_structure/energy_systems/pv_generation_system.py b/hub/city_model_structure/energy_systems/pv_generation_system.py index ddbc847a..13409c7e 100644 --- a/hub/city_model_structure/energy_systems/pv_generation_system.py +++ b/hub/city_model_structure/energy_systems/pv_generation_system.py @@ -26,10 +26,6 @@ class PvGenerationSystem(GenerationSystem): self._width = None self._height = None self._electricity_power = None - self._tilt_angle = None - self._surface_azimuth = None - self._solar_altitude_angle = None - self._solar_azimuth_angle = None @property def nominal_electricity_output(self): @@ -206,35 +202,3 @@ class PvGenerationSystem(GenerationSystem): :param value: float """ self._electricity_power = value - - @property - def tilt_angle(self): - """ - Get tilt angle of PV system in degrees - :return: float - """ - return self._tilt_angle - - @tilt_angle.setter - def tilt_angle(self, value): - """ - Set PV system tilt angle in degrees - :param value: float - """ - self._tilt_angle = value - - @property - def surface_azimuth(self): - """ - Get surface azimuth angle of PV system in degrees. 0 is North - :return: float - """ - return self._surface_azimuth - - @surface_azimuth.setter - def surface_azimuth(self, value): - """ - Set PV system tilt angle in degrees - :param value: float - """ - self._surface_azimuth = value diff --git a/hub/city_model_structure/energy_systems/thermal_storage_system.py b/hub/city_model_structure/energy_systems/thermal_storage_system.py index fd9b8f81..0f7f6a12 100644 --- a/hub/city_model_structure/energy_systems/thermal_storage_system.py +++ b/hub/city_model_structure/energy_systems/thermal_storage_system.py @@ -22,9 +22,6 @@ class ThermalStorageSystem(EnergyStorageSystem): self._height = None self._layers = None self._maximum_operating_temperature = None - self._heating_coil_capacity = None - self._temperature = None - self._heating_coil_energy_consumption = None @property def volume(self): @@ -89,51 +86,3 @@ class ThermalStorageSystem(EnergyStorageSystem): :param value: float """ self._maximum_operating_temperature = value - - @property - def heating_coil_capacity(self): - """ - Get heating coil capacity in Watts - :return: float - """ - return self._heating_coil_capacity - - @heating_coil_capacity.setter - def heating_coil_capacity(self, value): - """ - Set heating coil capacity in Watts - :param value: float - """ - self._heating_coil_capacity = value - - @property - def temperature(self) -> dict: - """ - Get fuel consumption in W, m3, or kg - :return: dict{[float]} - """ - return self._temperature - - @temperature.setter - def temperature(self, value): - """ - Set fuel consumption in W, m3, or kg - :param value: dict{[float]} - """ - self._temperature = value - - @property - def heating_coil_energy_consumption(self) -> dict: - """ - Get fuel consumption in W, m3, or kg - :return: dict{[float]} - """ - return self._heating_coil_energy_consumption - - @heating_coil_energy_consumption.setter - def heating_coil_energy_consumption(self, value): - """ - Set fuel consumption in W, m3, or kg - :param value: dict{[float]} - """ - self._heating_coil_energy_consumption = value diff --git a/hub/data/energy_systems/montreal_future_systems.xml b/hub/data/energy_systems/montreal_future_systems.xml index b51c9488..769f87bd 100644 --- a/hub/data/energy_systems/montreal_future_systems.xml +++ b/hub/data/energy_systems/montreal_future_systems.xml @@ -5,11 +5,11 @@ 1 Water - - - - - + + + + + 981.0 4180.0 0.6 @@ -26,7 +26,7 @@ 4.7 23.5 0.95 - False + True natural gas @@ -50,10 +50,7 @@ - True - - - False + 2 @@ -65,7 +62,7 @@ 6.15 30.8 0.95 - False + True natural gas @@ -89,10 +86,7 @@ - True - - - False + 3 @@ -104,7 +98,7 @@ 8.8 44 0.95 - False + True natural gas @@ -128,10 +122,7 @@ - True - - - False + 4 @@ -143,7 +134,7 @@ 12.3 61.5 0.95 - False + True natural gas @@ -167,10 +158,7 @@ - True - - - False + 5 @@ -182,7 +170,7 @@ 4.0 35.2 0.95 - False + True natural gas @@ -206,10 +194,7 @@ - True - - - False + 6 @@ -221,7 +206,7 @@ 4.0 35.2 0.95 - False + False natural gas @@ -245,10 +230,7 @@ - True - - - False + 7 @@ -260,7 +242,7 @@ 2.5 25.0 0.96 - False + natural gas @@ -284,10 +266,7 @@ - True - - - False + 8 @@ -299,7 +278,7 @@ 3.2 32.0 0.96 - False + natural gas @@ -323,10 +302,7 @@ - True - - - False + 9 @@ -338,7 +314,7 @@ 4.5 45.0 0.95 - False + True natural gas @@ -362,10 +338,7 @@ - True - - - False + 10 @@ -377,7 +350,7 @@ 3.5 35.0 0.95 - False + True natural gas @@ -401,10 +374,7 @@ - True - - - False + 11 @@ -416,7 +386,7 @@ 5.3 53.0 0.95 - False + True natural gas @@ -440,10 +410,7 @@ - True - - - False + 12 @@ -474,10 +441,10 @@ 0 51.7 3.32 - True + Electricity Air - Water + water @@ -493,7 +460,7 @@ - bi-quadratic + second degree multivariable function COP source_temperature supply_temperature @@ -504,10 +471,7 @@ - False - - - False + False 14 @@ -519,10 +483,10 @@ 0 279.3 3.07 - True + Electricity Air - Water + water @@ -538,7 +502,7 @@ - bi-quadratic + second degree multivariable function COP source_temperature supply_temperature @@ -549,10 +513,7 @@ - False - - - False + False 15 @@ -564,10 +525,10 @@ 0 557 3.46 - True + Electricity Air - Water + water @@ -583,7 +544,7 @@ - bi-quadratic + second degree multivariable function COP source_temperature supply_temperature @@ -594,10 +555,7 @@ - False - - - False + False 16 @@ -609,7 +567,7 @@ 0.90 - False + natural gas @@ -635,10 +593,7 @@ 6 - True - - - False + 17 @@ -650,7 +605,7 @@ 0.95 - False + electricity @@ -676,25 +631,22 @@ 6 - False - - - False + 18 - template Air-to-Water heat pump with storage + template Air-to-Water heat pump heat pump - 2 - True + 3 + electricity Air - Water + water @@ -709,34 +661,19 @@ - - bi-quadratic - COP - source_temperature - supply_temperature - - + - - bi-quadratic - COP - source_temperature - supply_temperature - - + 6 - True - - - True + True 19 - template Groundwater-to-Water heat pump with storage + template Groundwater-to-Water heat pump heat pump @@ -744,10 +681,10 @@ 3.5 - True + electricity Ground - Water + water @@ -770,14 +707,11 @@ 6 - True - - - True + True 20 - template Water-to-Water heat pump with storage + template Water-to-Water heat pump heat pump @@ -785,10 +719,10 @@ 3.5 - True + electricity Water - Water + water @@ -811,10 +745,7 @@ 6 - True - - - False + True 21 @@ -826,7 +757,7 @@ 0.90 - False + natural gas @@ -850,10 +781,7 @@ - True - - - False + 22 @@ -865,7 +793,7 @@ 0.95 - False + electricity @@ -889,10 +817,7 @@ - True - - - False + 23 @@ -904,14 +829,14 @@ 3 - True + electricity Air - Water + water - 4.5 + @@ -922,28 +847,13 @@ - - bi-quadratic - COP - source_temperature - supply_temperature - - + - - bi-quadratic - COP - source_temperature - supply_temperature - - + - True - - - True + True 24 @@ -955,10 +865,10 @@ 3.5 - True + electricity Ground - Water + water @@ -979,10 +889,7 @@ - True - - - True + True 25 @@ -994,10 +901,10 @@ 3.5 - True + electricity Water - Water + water @@ -1018,10 +925,7 @@ - True - - - True + True 26 @@ -1041,55 +945,7 @@ 1.0 - False - - 27 - template domestic hot water heat pump - heat pump - - - - - - 3.5 - - electricity - Air - Water - - - - - - - - - - - - - - - - bi-quadratic - COP - source_temperature - supply_temperature - - - - - - - - 7 - - True - - - False - @@ -1114,9 +970,8 @@ 1 sensible - - - + + 2 @@ -1140,9 +995,8 @@ 1 sensible - - - + + 3 @@ -1166,9 +1020,8 @@ 1 sensible - - - + + 4 @@ -1191,9 +1044,8 @@ 1 sensible - - - + + 5 @@ -1217,16 +1069,15 @@ 1 sensible - - - + + 6 template Hot Water Storage Tank thermal - - + HF 200 + 95.0 1 @@ -1237,74 +1088,47 @@ 0 1.5 Steel - + 1 sensible - - - - - - 7 - template Hot Water Storage Tank with Heating Coil - thermal - - - 95.0 - - 1 - 90.0 - - - 2 - 0 - 1.5 - Steel - - - - 1 - - sensible - - - 5000 + + 1 Polyurethane - - - - - - - + + + + + + + 0.028 2 Steel - - - - - - - + + + + + + + 18 - + - + @@ -1314,6 +1138,7 @@ heating cooling + domestic_hot_water 21 @@ -1401,75 +1226,13 @@ 26 - - 8 - 4 pipe system with air source heat pump storage and gas boiler - schemas/ASHP+TES+GasBoiler.jpg - - heating - cooling - - - 23 - 16 - - - - 9 - 4 pipe system with air source heat pump storage and electric boiler - schemas/ASHP+TES+GasBoiler.jpg - - heating - cooling - - - 22 - 18 - - - - 10 - Domestic Hot Water Heat Pump with Coiled Storage - schemas/ASHP+TES+GasBoiler.jpg - - domestic_hot_water - - - 27 - - - - 11 - Central Heating System َASHP Gas-Boiler TES - schemas/ASHP+TES+GasBoiler.jpg - - heating - - - 23 - 16 - - - - 12 - Unitary ASHP Cooling System - schemas/ASHP+TES+GasBoiler.jpg - - cooling - - - 23 - - - PV+ASHP+GasBoiler+TES 7 1 - 10 @@ -1543,31 +1306,6 @@ 6 - - PV+4Pipe+DHW - - 7 - 8 - 10 - - - - Central Heating+Unitary Cooling+Unitary DHW - - 10 - 11 - 12 - - - - Central Heating+Unitary Cooling+Unitary DHW+PV - - 7 - 10 - 11 - 12 - - diff --git a/hub/exports/formats/simplified_radiosity_algorithm.py b/hub/exports/formats/simplified_radiosity_algorithm.py index 25189419..d008a958 100644 --- a/hub/exports/formats/simplified_radiosity_algorithm.py +++ b/hub/exports/formats/simplified_radiosity_algorithm.py @@ -66,9 +66,9 @@ class SimplifiedRadiosityAlgorithm: else: i = (total_days + day - 1) * 24 + hour - 1 representative_building = self._city.buildings[0] - _global = representative_building.diffuse[cte.HOUR][i] / cte.WATTS_HOUR_TO_JULES - _beam = representative_building.direct_normal[cte.HOUR][i] / cte.WATTS_HOUR_TO_JULES - content += f'{day} {month} {hour} {_global} {_beam}\n' + _diffuse = representative_building.diffuse[cte.HOUR][i] * cte.WATTS_HOUR_TO_JULES + _beam = representative_building.beam[cte.HOUR][i] * cte.WATTS_HOUR_TO_JULES + content += f'{day} {month} {hour} {_diffuse} {_beam}\n' with open(file, 'w', encoding='utf-8') as file: file.write(content) diff --git a/hub/helpers/constants.py b/hub/helpers/constants.py index ad32c835..23fab290 100644 --- a/hub/helpers/constants.py +++ b/hub/helpers/constants.py @@ -10,11 +10,11 @@ Project Coder Pilar Monsalvete Alvarez de Uribarri pilar.monsalvete@concordia.ca KELVIN = 273.15 WATER_DENSITY = 1000 # kg/m3 WATER_HEAT_CAPACITY = 4182 # J/kgK -WATER_THERMAL_CONDUCTIVITY = 0.65 # W/mK -NATURAL_GAS_LHV = 36.6e6 # J/m3 + AIR_DENSITY = 1.293 # kg/m3 AIR_HEAT_CAPACITY = 1005.2 # J/kgK + # converters HOUR_TO_MINUTES = 60 MINUTES_TO_SECONDS = 60 @@ -292,7 +292,6 @@ WOOD = 'Wood' GAS = 'Gas' DIESEL = 'Diesel' COAL = 'Coal' -BIOMASS = 'Biomass' AIR = 'Air' WATER = 'Water' GEOTHERMAL = 'Geothermal' diff --git a/hub/imports/energy_systems/montreal_custom_energy_system_parameters.py b/hub/imports/energy_systems/montreal_custom_energy_system_parameters.py index 15833c9b..4cdb848a 100644 --- a/hub/imports/energy_systems/montreal_custom_energy_system_parameters.py +++ b/hub/imports/energy_systems/montreal_custom_energy_system_parameters.py @@ -86,8 +86,7 @@ class MontrealCustomEnergySystemParameters: if archetype_generation_system.system_type == 'Photovoltaic': _generation_system = PvGenerationSystem() _type = 'PV system' - _generation_system.system_type = Dictionaries().montreal_generation_system_to_hub_energy_generation_system[ - _type] + _generation_system.system_type = Dictionaries().montreal_generation_system_to_hub_energy_generation_system[_type] _fuel_type = Dictionaries().montreal_custom_fuel_to_hub_fuel[archetype_generation_system.fuel_type] _generation_system.fuel_type = _fuel_type _generation_system.electricity_efficiency = archetype_generation_system.electricity_efficiency @@ -99,8 +98,7 @@ class MontrealCustomEnergySystemParameters: else: _generation_system = NonPvGenerationSystem() _type = archetype_generation_system.system_type - _generation_system.system_type = Dictionaries().montreal_generation_system_to_hub_energy_generation_system[ - _type] + _generation_system.system_type = Dictionaries().montreal_generation_system_to_hub_energy_generation_system[_type] _fuel_type = Dictionaries().montreal_custom_fuel_to_hub_fuel[archetype_generation_system.fuel_type] _generation_system.fuel_type = _fuel_type _generation_system.source_types = archetype_generation_system.source_medium diff --git a/hub/imports/energy_systems/montreal_future_energy_systems_parameters.py b/hub/imports/energy_systems/montreal_future_energy_systems_parameters.py index 1bcde834..542608a0 100644 --- a/hub/imports/energy_systems/montreal_future_energy_systems_parameters.py +++ b/hub/imports/energy_systems/montreal_future_energy_systems_parameters.py @@ -82,7 +82,8 @@ class MontrealFutureEnergySystemParameters: return _generic_energy_systems - def _create_generation_systems(self, archetype_system): + @staticmethod + def _create_generation_systems(archetype_system): _generation_systems = [] archetype_generation_systems = archetype_system.generation_systems if archetype_generation_systems is not None: @@ -106,7 +107,6 @@ class MontrealFutureEnergySystemParameters: _generation_system.cell_temperature_coefficient = archetype_generation_system.cell_temperature_coefficient _generation_system.width = archetype_generation_system.width _generation_system.height = archetype_generation_system.height - _generation_system.tilt_angle = self._city.latitude _generic_storage_system = None if archetype_generation_system.energy_storage_systems is not None: _generic_storage_system = ElectricalStorageSystem() @@ -140,13 +140,12 @@ class MontrealFutureEnergySystemParameters: _generation_system.cooling_output_curve = archetype_generation_system.cooling_output_curve _generation_system.cooling_fuel_consumption_curve = archetype_generation_system.cooling_fuel_consumption_curve _generation_system.cooling_efficiency_curve = archetype_generation_system.cooling_efficiency_curve - _generation_system.domestic_hot_water = archetype_generation_system.domestic_hot_water + _generation_system.dual_supply_capability = archetype_generation_system.dual_supply_capability _generation_system.nominal_electricity_output = archetype_generation_system.nominal_electricity_output _generation_system.source_medium = archetype_generation_system.source_medium _generation_system.heat_efficiency = archetype_generation_system.heat_efficiency _generation_system.cooling_efficiency = archetype_generation_system.cooling_efficiency _generation_system.electricity_efficiency = archetype_generation_system.electricity_efficiency - _generation_system.reversibility = archetype_generation_system.reversibility _generic_storage_system = None if archetype_generation_system.energy_storage_systems is not None: _storage_systems = [] @@ -156,19 +155,11 @@ class MontrealFutureEnergySystemParameters: _generic_storage_system.type_energy_stored = 'electrical' else: _generic_storage_system = ThermalStorageSystem() - _generic_storage_system.type_energy_stored = storage_system.type_energy_stored - _generic_storage_system.height = storage_system.height - _generic_storage_system.layers = storage_system.layers - _generic_storage_system.storage_medium = storage_system.storage_medium - _generic_storage_system.heating_coil_capacity = storage_system.heating_coil_capacity + _generic_storage_system.type_energy_stored = 'thermal' _storage_systems.append(_generic_storage_system) - _generation_system.energy_storage_systems = _storage_systems - if archetype_generation_system.domestic_hot_water: - _generation_system.domestic_hot_water = True - if archetype_generation_system.reversibility: - _generation_system.reversibility = True - if archetype_generation_system.simultaneous_heat_cold: - _generation_system.simultaneous_heat_cold = True + _generation_system.energy_storage_systems = [_storage_systems] + if archetype_generation_system.dual_supply_capability: + _generation_system.dual_supply_capability = True _generation_systems.append(_generation_system) return _generation_systems diff --git a/hub/imports/results/ep_multiple_buildings.py b/hub/imports/results/ep_multiple_buildings.py index bd9a2dd3..9da12c7a 100644 --- a/hub/imports/results/ep_multiple_buildings.py +++ b/hub/imports/results/ep_multiple_buildings.py @@ -60,12 +60,9 @@ class EnergyPlusMultipleBuildings: for building in self._city.buildings: building.heating_demand[cte.HOUR] = building_energy_demands[f'Building {building.name} Heating Demand (J)'] building.cooling_demand[cte.HOUR] = building_energy_demands[f'Building {building.name} Cooling Demand (J)'] - building.domestic_hot_water_heat_demand[cte.HOUR] = \ - [x * cte.WATTS_HOUR_TO_JULES for x in building_energy_demands[f'Building {building.name} DHW Demand (W)']] - building.appliances_electrical_demand[cte.HOUR] = \ - [x * cte.WATTS_HOUR_TO_JULES for x in building_energy_demands[f'Building {building.name} Appliances (W)']] - building.lighting_electrical_demand[cte.HOUR] = \ - [x * cte.WATTS_HOUR_TO_JULES for x in building_energy_demands[f'Building {building.name} Lighting (W)']] + building.domestic_hot_water_heat_demand[cte.HOUR] = building_energy_demands[f'Building {building.name} DHW Demand (W)'] + building.appliances_electrical_demand[cte.HOUR] = building_energy_demands[f'Building {building.name} Appliances (W)'] + building.lighting_electrical_demand[cte.HOUR] = building_energy_demands[f'Building {building.name} Lighting (W)'] building.heating_demand[cte.MONTH] = MonthlyValues.get_total_month(building.heating_demand[cte.HOUR]) building.cooling_demand[cte.MONTH] = MonthlyValues.get_total_month(building.cooling_demand[cte.HOUR]) building.domestic_hot_water_heat_demand[cte.MONTH] = ( diff --git a/hub/imports/results/simplified_radiosity_algorithm.py b/hub/imports/results/simplified_radiosity_algorithm.py index 3824e7ce..57fae8e9 100644 --- a/hub/imports/results/simplified_radiosity_algorithm.py +++ b/hub/imports/results/simplified_radiosity_algorithm.py @@ -34,7 +34,7 @@ class SimplifiedRadiosityAlgorithm: for key in self._results: _irradiance = {} header_name = key.split(':') - result = [x * cte.WATTS_HOUR_TO_JULES for x in self._results[key]] + result = [x / cte.WATTS_HOUR_TO_JULES for x in self._results[key]] city_object_name = header_name[1] building = self._city.city_object(city_object_name) surface_id = header_name[2] diff --git a/hub/imports/weather/epw_weather_parameters.py b/hub/imports/weather/epw_weather_parameters.py index 0c362261..b4f28291 100644 --- a/hub/imports/weather/epw_weather_parameters.py +++ b/hub/imports/weather/epw_weather_parameters.py @@ -110,26 +110,22 @@ class EpwWeatherParameters: # new_value = pd.DataFrame(self._weather_values[['dry_bulb_temperature_c']].to_numpy(), columns=['epw']) # number_invalid_records = new_value[new_value.epw == 99.9].count().epw building.external_temperature[cte.HOUR] = self._weather_values['dry_bulb_temperature_c'] - building.global_horizontal[cte.HOUR] = [x * cte.WATTS_HOUR_TO_JULES + building.global_horizontal[cte.HOUR] = [x / cte.WATTS_HOUR_TO_JULES for x in self._weather_values['global_horizontal_radiation_wh_m2']] - building.diffuse[cte.HOUR] = [x * cte.WATTS_HOUR_TO_JULES + building.diffuse[cte.HOUR] = [x / cte.WATTS_HOUR_TO_JULES for x in self._weather_values['diffuse_horizontal_radiation_wh_m2']] - building.direct_normal[cte.HOUR] = [x * cte.WATTS_HOUR_TO_JULES - for x in self._weather_values['direct_normal_radiation_wh_m2']] - building.beam[cte.HOUR] = [building.global_horizontal[cte.HOUR][i] - - building.diffuse[cte.HOUR][i] - for i in range(len(building.global_horizontal[cte.HOUR]))] + building.beam[cte.HOUR] = [x / cte.WATTS_HOUR_TO_JULES + for x in self._weather_values['direct_normal_radiation_wh_m2']] building.cold_water_temperature[cte.HOUR] = wh().cold_water_temperature(building.external_temperature[cte.HOUR]) - # create the monthly and yearly values out of the hourly for building in self._city.buildings: building.external_temperature[cte.MONTH] = \ MonthlyValues().get_mean_values(building.external_temperature[cte.HOUR]) - building.external_temperature[cte.YEAR] = [sum(building.external_temperature[cte.HOUR]) / 8760] + building.external_temperature[cte.YEAR] = [sum(building.external_temperature[cte.HOUR]) / 9870] building.cold_water_temperature[cte.MONTH] = \ MonthlyValues().get_mean_values(building.cold_water_temperature[cte.HOUR]) - building.cold_water_temperature[cte.YEAR] = [sum(building.cold_water_temperature[cte.HOUR]) / 8760] + building.cold_water_temperature[cte.YEAR] = [sum(building.cold_water_temperature[cte.HOUR]) / 9870] # If the usage has already being imported, the domestic hot water missing values must be calculated here that # the cold water temperature is finally known diff --git a/hub/imports/weather/helpers/weather.py b/hub/imports/weather/helpers/weather.py index 755f9ad3..7603cb5b 100644 --- a/hub/imports/weather/helpers/weather.py +++ b/hub/imports/weather/helpers/weather.py @@ -8,7 +8,7 @@ Project Coder Pilar Monsalvete Alvarez de Uribarri pilar.monsalvete@concordia.ca import logging import math import hub.helpers.constants as cte -from datetime import datetime, timedelta + class Weather: """ @@ -55,19 +55,25 @@ class Weather: # and Craig Christensen, National Renewable Energy Laboratory # ambient temperatures( in °C) # cold water temperatures( in °C) - t_out_fahrenheit = [1.8 * t_out + 32 for t_out in ambient_temperature] - t_out_average = sum(t_out_fahrenheit) / len(t_out_fahrenheit) - max_difference = max(t_out_fahrenheit) - min(t_out_fahrenheit) - ratio = 0.4 + 0.01 * (t_out_average - 44) - lag = 35 - (t_out_average - 35) - number_of_day = [a for a in range(1, 366)] - day_of_year = [day for day in number_of_day for _ in range(24)] - cold_temperature_fahrenheit = [] + ambient_temperature_fahrenheit = [] + average_temperature = 0 + maximum_temperature = -1000 + minimum_temperature = 1000 + for temperature in ambient_temperature: + value = temperature * 9 / 5 + 32 + ambient_temperature_fahrenheit.append(value) + average_temperature += value / 8760 + if value > maximum_temperature: + maximum_temperature = value + if value < minimum_temperature: + minimum_temperature = value + delta_temperature = maximum_temperature - minimum_temperature + ratio = 0.4 + 0.01 * (average_temperature - 44) + lag = 35 - 1 * (average_temperature - 44) cold_temperature = [] - for i in range(len(ambient_temperature)): - cold_temperature_fahrenheit.append(t_out_average + 6 + ratio * (max_difference / 2) * - math.sin(math.radians(0.986 * (day_of_year[i] - 15 - lag) - 90))) - cold_temperature.append((cold_temperature_fahrenheit[i] - 32) / 1.8) + for temperature in ambient_temperature_fahrenheit: + radians = (0.986 * (temperature-15-lag) - 90) * math.pi / 180 + cold_temperature.append((average_temperature + 6 + ratio * (delta_temperature/2) * math.sin(radians) - 32) * 5/9) return cold_temperature def epw_file(self, region_code): diff --git a/tests/test_systems_catalog.py b/tests/test_systems_catalog.py index 612a8fe6..d41e5c07 100644 --- a/tests/test_systems_catalog.py +++ b/tests/test_systems_catalog.py @@ -38,12 +38,12 @@ class TestSystemsCatalog(TestCase): catalog = EnergySystemsCatalogFactory('montreal_future').catalog catalog_categories = catalog.names() - archetypes = catalog.names() - self.assertEqual(15, len(archetypes['archetypes'])) + archetypes = catalog.names('archetypes') + self.assertEqual(12, len(archetypes['archetypes'])) systems = catalog.names('systems') - self.assertEqual(12, len(systems['systems'])) + self.assertEqual(7, len(systems['systems'])) generation_equipments = catalog.names('generation_equipments') - self.assertEqual(27, len(generation_equipments['generation_equipments'])) + self.assertEqual(26, len(generation_equipments['generation_equipments'])) with self.assertRaises(ValueError): catalog.names('unknown') diff --git a/tests/test_systems_factory.py b/tests/test_systems_factory.py index 66f600c8..c4c086e3 100644 --- a/tests/test_systems_factory.py +++ b/tests/test_systems_factory.py @@ -122,13 +122,12 @@ class TestSystemsFactory(TestCase): for energy_system in building.energy_systems: if cte.HEATING in energy_system.demand_types: _generation_system = cast(NonPvGenerationSystem, energy_system.generation_systems[0]) - _generation_system.nominal_heat_output = building.heating_peak_load[cte.YEAR][0] + _generation_system.heat_power = building.heating_peak_load[cte.YEAR][0] if cte.COOLING in energy_system.demand_types: _generation_system = cast(NonPvGenerationSystem, energy_system.generation_systems[0]) - _generation_system.nominal_cooling_output = building.cooling_peak_load[cte.YEAR][0] + _generation_system.cooling_power = building.cooling_peak_load[cte.YEAR][0] for building in self._city.buildings: - print('test') self.assertLess(0, building.heating_consumption[cte.YEAR][0]) self.assertLess(0, building.cooling_consumption[cte.YEAR][0]) self.assertLess(0, building.domestic_hot_water_consumption[cte.YEAR][0]) From 2d11bf66400c0dc2178081b939246ce361c62b27 Mon Sep 17 00:00:00 2001 From: s_ranjbar Date: Thu, 27 Jun 2024 16:32:44 -0400 Subject: [PATCH 07/42] Reapply "fix: energy system catalogue and importers are modified" This reverts commit 9adacadc2aa2296af11e051bc10381d73d6e99f9. --- .../energy_systems/emission_system.py | 2 +- .../non_pv_generation_system.py | 52 +- .../energy_systems/performance_curves.py | 8 +- .../energy_systems/thermal_storage_system.py | 14 +- .../energy_systems/montreal_custom_catalog.py | 9 +- .../montreal_future_system_catalogue.py | 40 +- hub/city_model_structure/building.py | 102 +++- .../building_demand/surface.py | 36 +- hub/city_model_structure/city_object.py | 29 +- .../energy_systems/emission_system.py | 2 +- .../energy_systems/generation_system.py | 22 +- .../non_pv_generation_system.py | 106 +++- .../energy_systems/performance_curve.py | 17 +- .../energy_systems/pv_generation_system.py | 36 ++ .../energy_systems/thermal_storage_system.py | 51 ++ .../montreal_future_systems.xml | 474 ++++++++++++++---- .../insel/insel_monthly_energy_balance.py | 2 +- .../formats/simplified_radiosity_algorithm.py | 6 +- hub/helpers/constants.py | 5 +- ...ontreal_custom_energy_system_parameters.py | 6 +- ...ntreal_future_energy_systems_parameters.py | 23 +- hub/imports/results/ep_multiple_buildings.py | 9 +- .../results/simplified_radiosity_algorithm.py | 2 +- hub/imports/weather/epw_weather_parameters.py | 16 +- hub/imports/weather/helpers/weather.py | 32 +- tests/test_systems_catalog.py | 8 +- tests/test_systems_factory.py | 7 +- 27 files changed, 877 insertions(+), 239 deletions(-) diff --git a/hub/catalog_factories/data_models/energy_systems/emission_system.py b/hub/catalog_factories/data_models/energy_systems/emission_system.py index 538954d3..a8ac91b6 100644 --- a/hub/catalog_factories/data_models/energy_systems/emission_system.py +++ b/hub/catalog_factories/data_models/energy_systems/emission_system.py @@ -10,7 +10,7 @@ class EmissionSystem: """ Emission system class """ - def __init__(self, system_id, model_name=None, system_type=None, parasitic_energy_consumption=0): + def __init__(self, system_id, model_name=None, system_type=None, parasitic_energy_consumption=None): self._system_id = system_id self._model_name = model_name diff --git a/hub/catalog_factories/data_models/energy_systems/non_pv_generation_system.py b/hub/catalog_factories/data_models/energy_systems/non_pv_generation_system.py index 5b203d01..0844c785 100644 --- a/hub/catalog_factories/data_models/energy_systems/non_pv_generation_system.py +++ b/hub/catalog_factories/data_models/energy_systems/non_pv_generation_system.py @@ -25,9 +25,11 @@ class NonPvGenerationSystem(GenerationSystem): maximum_cooling_supply_temperature=None, minimum_cooling_supply_temperature=None, heat_output_curve=None, heat_fuel_consumption_curve=None, heat_efficiency_curve=None, cooling_output_curve=None, cooling_fuel_consumption_curve=None, cooling_efficiency_curve=None, - distribution_systems=None, energy_storage_systems=None, dual_supply_capability=False): - super().__init__(system_id=system_id, name=name, model_name=model_name, manufacturer=manufacturer, fuel_type=fuel_type, - distribution_systems=distribution_systems, energy_storage_systems=energy_storage_systems) + distribution_systems=None, energy_storage_systems=None, domestic_hot_water=False, + reversible=None, simultaneous_heat_cold=None): + super().__init__(system_id=system_id, name=name, model_name=model_name, manufacturer=manufacturer, + fuel_type=fuel_type, distribution_systems=distribution_systems, + energy_storage_systems=energy_storage_systems) self._system_type = system_type self._nominal_heat_output = nominal_heat_output self._maximum_heat_output = maximum_heat_output @@ -53,7 +55,9 @@ class NonPvGenerationSystem(GenerationSystem): self._cooling_output_curve = cooling_output_curve self._cooling_fuel_consumption_curve = cooling_fuel_consumption_curve self._cooling_efficiency_curve = cooling_efficiency_curve - self._dual_supply_capability = dual_supply_capability + self._domestic_hot_water = domestic_hot_water + self._reversible = reversible + self._simultaneous_heat_cold = simultaneous_heat_cold @property def system_type(self): @@ -256,12 +260,28 @@ class NonPvGenerationSystem(GenerationSystem): return self._cooling_efficiency_curve @property - def dual_supply_capability(self): + def domestic_hot_water(self): """ - Get dual supply capability + Get the ability to produce domestic hot water :return: bool """ - return self._dual_supply_capability + return self._domestic_hot_water + + @property + def reversibility(self): + """ + Get the ability to produce heating and cooling + :return: bool + """ + return self._reversible + + @property + def simultaneous_heat_cold(self): + """ + Get the ability to produce heating and cooling at the same time + :return: bool + """ + return self._simultaneous_heat_cold def to_dictionary(self): """Class content to dictionary""" @@ -269,6 +289,18 @@ class NonPvGenerationSystem(GenerationSystem): self.distribution_systems] if self.distribution_systems is not None else None _energy_storage_systems = [_energy_storage_system.to_dictionary() for _energy_storage_system in self.energy_storage_systems] if self.energy_storage_systems is not None else None + _heat_output_curve = self.heat_output_curve.to_dictionary() if ( + self.heat_output_curve is not None) else None + _heat_fuel_consumption_curve = self.heat_fuel_consumption_curve.to_dictionary() if ( + self.heat_fuel_consumption_curve is not None) else None + _heat_efficiency_curve = self.heat_efficiency_curve.to_dictionary() if ( + self.heat_efficiency_curve is not None) else None + _cooling_output_curve = self.cooling_output_curve.to_dictionary() if ( + self.cooling_output_curve is not None) else None + _cooling_fuel_consumption_curve = self.cooling_fuel_consumption_curve.to_dictionary() if ( + self.cooling_fuel_consumption_curve is not None) else None + _cooling_efficiency_curve = self.cooling_efficiency_curve.to_dictionary() if ( + self.cooling_efficiency_curve is not None) else None content = { 'Energy Generation component': @@ -298,13 +330,15 @@ class NonPvGenerationSystem(GenerationSystem): 'minimum cooling supply temperature [Celsius]': self.minimum_cooling_supply_temperature, 'heat output curve': self.heat_output_curve, 'heat fuel consumption curve': self.heat_fuel_consumption_curve, - 'heat efficiency curve': self.heat_efficiency_curve, + 'heat efficiency curve': _heat_efficiency_curve, 'cooling output curve': self.cooling_output_curve, 'cooling fuel consumption curve': self.cooling_fuel_consumption_curve, 'cooling efficiency curve': self.cooling_efficiency_curve, 'distribution systems connected': _distribution_systems, 'storage systems connected': _energy_storage_systems, - 'dual supply capability': self.dual_supply_capability + 'domestic hot water production capability': self.domestic_hot_water, + 'reversible cycle': self.reversibility, + 'simultaneous heat and cooling production': self.simultaneous_heat_cold } } return content diff --git a/hub/catalog_factories/data_models/energy_systems/performance_curves.py b/hub/catalog_factories/data_models/energy_systems/performance_curves.py index 65cc0878..ff6c22d2 100644 --- a/hub/catalog_factories/data_models/energy_systems/performance_curves.py +++ b/hub/catalog_factories/data_models/energy_systems/performance_curves.py @@ -24,13 +24,13 @@ class PerformanceCurves: def curve_type(self): """ The type of the fit function from the following - Linear =>>> y = a*x + b + Linear =>>> y = a + b*x Exponential =>>> y = a*(b**x) - Polynomial =>>> y = a*(x**2) + b*x + c + Second degree polynomial =>>> y = a + b*x + c*(x**2) Power =>>> y = a*(x**b) - Second degree multivariable =>>> y = a*(x**2) + b*x + c*x*z + d*z + e*(z**2) + f + Bi-Quadratic =>>> y = a + b*x + c*(x**2) + d*z + e*(z**2) + f*x*z - Get the type of function from ['linear', 'exponential', 'polynomial', 'power', 'second degree multivariable'] + Get the type of function from ['linear', 'exponential', 'second degree polynomial', 'power', 'bi-quadratic'] :return: string """ return self._curve_type diff --git a/hub/catalog_factories/data_models/energy_systems/thermal_storage_system.py b/hub/catalog_factories/data_models/energy_systems/thermal_storage_system.py index d3cdf255..ca773e09 100644 --- a/hub/catalog_factories/data_models/energy_systems/thermal_storage_system.py +++ b/hub/catalog_factories/data_models/energy_systems/thermal_storage_system.py @@ -17,7 +17,7 @@ class ThermalStorageSystem(EnergyStorageSystem): def __init__(self, storage_id, type_energy_stored=None, model_name=None, manufacturer=None, storage_type=None, nominal_capacity=None, losses_ratio=None, volume=None, height=None, layers=None, - maximum_operating_temperature=None, storage_medium=None): + maximum_operating_temperature=None, storage_medium=None, heating_coil_capacity=None): super().__init__(storage_id, model_name, manufacturer, nominal_capacity, losses_ratio) self._type_energy_stored = type_energy_stored @@ -27,6 +27,7 @@ class ThermalStorageSystem(EnergyStorageSystem): self._layers = layers self._maximum_operating_temperature = maximum_operating_temperature self._storage_medium = storage_medium + self._heating_coil_capacity = heating_coil_capacity @property def type_energy_stored(self): @@ -84,6 +85,14 @@ class ThermalStorageSystem(EnergyStorageSystem): """ return self._storage_medium + @property + def heating_coil_capacity(self): + """ + Get heating coil capacity in Watts + :return: [material + """ + return self._heating_coil_capacity + def to_dictionary(self): """Class content to dictionary""" _layers = None @@ -110,7 +119,8 @@ class ThermalStorageSystem(EnergyStorageSystem): 'height [m]': self.height, 'layers': _layers, 'maximum operating temperature [Celsius]': self.maximum_operating_temperature, - 'storage_medium': self.storage_medium.to_dictionary() + 'storage_medium': self.storage_medium.to_dictionary(), + 'heating coil capacity [W]': self.heating_coil_capacity } } return content diff --git a/hub/catalog_factories/energy_systems/montreal_custom_catalog.py b/hub/catalog_factories/energy_systems/montreal_custom_catalog.py index bf47d19b..d3e37e36 100644 --- a/hub/catalog_factories/energy_systems/montreal_custom_catalog.py +++ b/hub/catalog_factories/energy_systems/montreal_custom_catalog.py @@ -87,7 +87,7 @@ class MontrealCustomCatalog(Catalog): cooling_efficiency=cooling_efficiency, electricity_efficiency=electricity_efficiency, energy_storage_systems=storage_systems, - dual_supply_capability=False + domestic_hot_water=False ) _equipments.append(generation_system) @@ -111,10 +111,7 @@ class MontrealCustomCatalog(Catalog): distribution_consumption_variable_flow = float( equipment['distribution_consumption_variable_flow']['#text']) / 100 - emission_equipment = -1 - if 'dissipation_id' in equipment: - emission_equipment = equipment['dissipation_id'] - + emission_equipment = equipment['dissipation_id'] _emission_equipments = None for equipment_archetype in self._catalog_emission_equipments: if int(equipment_archetype.id) == int(emission_equipment): @@ -138,7 +135,7 @@ class MontrealCustomCatalog(Catalog): equipment_id = float(equipment['@id']) equipment_type = equipment['@type'] model_name = equipment['name'] - parasitic_consumption = 0 + parasitic_consumption = None if 'parasitic_consumption' in equipment: parasitic_consumption = float(equipment['parasitic_consumption']['#text']) / 100 diff --git a/hub/catalog_factories/energy_systems/montreal_future_system_catalogue.py b/hub/catalog_factories/energy_systems/montreal_future_system_catalogue.py index b6d7f9f5..625e362c 100644 --- a/hub/catalog_factories/energy_systems/montreal_future_system_catalogue.py +++ b/hub/catalog_factories/energy_systems/montreal_future_system_catalogue.py @@ -121,13 +121,26 @@ class MontrealFutureSystemCatalogue(Catalog): parameters = non_pv['cooling_efficiency_curve']['parameters'] coefficients = list(non_pv['cooling_efficiency_curve']['coefficients'].values()) cooling_efficiency_curve = PerformanceCurves(curve_type, dependant_variable, parameters, coefficients) - dual_supply_capability = None - if non_pv['dual_supply_capability'] is not None: - if non_pv['dual_supply_capability'] == 'True': - dual_supply_capability = True + dhw = None + if non_pv['domestic_hot_water'] is not None: + if non_pv['domestic_hot_water'] == 'True': + dhw = True else: - dual_supply_capability = False + dhw = False + reversible = None + if non_pv['reversible'] is not None: + if non_pv['reversible'] == 'True': + reversible = True + else: + reversible = False + + dual_supply = None + if non_pv['simultaneous_heat_cold'] is not None: + if non_pv['simultaneous_heat_cold'] == 'True': + dual_supply = True + else: + dual_supply = False non_pv_component = NonPvGenerationSystem(system_id=system_id, name=name, system_type=system_type, @@ -160,7 +173,9 @@ class MontrealFutureSystemCatalogue(Catalog): cooling_efficiency_curve=cooling_efficiency_curve, distribution_systems=distribution_systems, energy_storage_systems=energy_storage_systems, - dual_supply_capability=dual_supply_capability) + domestic_hot_water=dhw, + reversible=reversible, + simultaneous_heat_cold=dual_supply) generation_components.append(non_pv_component) pv_generation_components = self._archetypes['EnergySystemCatalog']['energy_generation_components'][ 'pv_generation_component'] @@ -187,7 +202,6 @@ class MontrealFutureSystemCatalogue(Catalog): storage_component = pv['energy_storage_systems']['storage_id'] storage_systems = self._search_storage_equipment(self._load_storage_components(), storage_component) energy_storage_systems = storage_systems - pv_component = PvGenerationSystem(system_id=system_id, name=name, system_type=system_type, @@ -248,7 +262,7 @@ class MontrealFutureSystemCatalogue(Catalog): system_id = None model_name = None system_type = None - parasitic_energy_consumption = 0 + parasitic_energy_consumption = None emission_system = EmissionSystem(system_id=system_id, model_name=model_name, system_type=system_type, @@ -284,6 +298,7 @@ class MontrealFutureSystemCatalogue(Catalog): layers = [insulation_layer, tank_layer] nominal_capacity = tes['nominal_capacity'] losses_ratio = tes['losses_ratio'] + heating_coil_capacity = tes['heating_coil_capacity'] storage_component = ThermalStorageSystem(storage_id=storage_id, model_name=model_name, type_energy_stored=type_energy_stored, @@ -295,7 +310,8 @@ class MontrealFutureSystemCatalogue(Catalog): height=height, layers=layers, maximum_operating_temperature=maximum_operating_temperature, - storage_medium=medium) + storage_medium=medium, + heating_coil_capacity=heating_coil_capacity) storage_components.append(storage_component) for template in template_storages: @@ -303,7 +319,7 @@ class MontrealFutureSystemCatalogue(Catalog): storage_type = template['storage_type'] type_energy_stored = template['type_energy_stored'] maximum_operating_temperature = template['maximum_operating_temperature'] - height = template['physical_characteristics']['height'] + height = float(template['physical_characteristics']['height']) materials = self._load_materials() insulation_material_id = template['insulation']['material_id'] insulation_material = self._search_material(materials, insulation_material_id) @@ -322,6 +338,7 @@ class MontrealFutureSystemCatalogue(Catalog): nominal_capacity = template['nominal_capacity'] losses_ratio = template['losses_ratio'] volume = template['physical_characteristics']['volume'] + heating_coil_capacity = template['heating_coil_capacity'] storage_component = ThermalStorageSystem(storage_id=storage_id, model_name=model_name, type_energy_stored=type_energy_stored, @@ -333,7 +350,8 @@ class MontrealFutureSystemCatalogue(Catalog): height=height, layers=layers, maximum_operating_temperature=maximum_operating_temperature, - storage_medium=medium) + storage_medium=medium, + heating_coil_capacity=heating_coil_capacity) storage_components.append(storage_component) return storage_components diff --git a/hub/city_model_structure/building.py b/hub/city_model_structure/building.py index 315f65d9..387a4bf9 100644 --- a/hub/city_model_structure/building.py +++ b/hub/city_model_structure/building.py @@ -90,7 +90,9 @@ class Building(CityObject): self._interior_slabs.append(surface) else: logging.error('Building %s [%s] has an unexpected surface type %s.', self.name, self.aliases, surface.type) - self._heating_consumption_disaggregated = {} + self._domestic_hot_water_peak_load = None + self._fuel_consumption_breakdown = {} + self._pv_generation = {} @property def shell(self) -> Polyhedron: @@ -449,8 +451,8 @@ class Building(CityObject): monthly_values = PeakLoads(self).heating_peak_loads_from_methodology if monthly_values is None: return None - results[cte.MONTH] = monthly_values - results[cte.YEAR] = [max(monthly_values)] + results[cte.MONTH] = [x / cte.WATTS_HOUR_TO_JULES for x in monthly_values] + results[cte.YEAR] = [max(monthly_values) / cte.WATTS_HOUR_TO_JULES] return results @property @@ -466,8 +468,24 @@ class Building(CityObject): monthly_values = PeakLoads(self).cooling_peak_loads_from_methodology if monthly_values is None: return None - results[cte.MONTH] = [x * cte.WATTS_HOUR_TO_JULES for x in monthly_values] - results[cte.YEAR] = [max(monthly_values)] + results[cte.MONTH] = [x / cte.WATTS_HOUR_TO_JULES for x in monthly_values] + results[cte.YEAR] = [max(monthly_values) / cte.WATTS_HOUR_TO_JULES] + return results + + @property + def domestic_hot_water_peak_load(self) -> Union[None, dict]: + """ + Get cooling peak load in W + :return: dict{[float]} + """ + results = {} + monthly_values = None + if cte.HOUR in self.domestic_hot_water_heat_demand: + monthly_values = PeakLoads().peak_loads_from_hourly(self.domestic_hot_water_heat_demand[cte.HOUR]) + if monthly_values is None: + return None + results[cte.MONTH] = [x / cte.WATTS_HOUR_TO_JULES for x in monthly_values] + results[cte.YEAR] = [max(monthly_values) / cte.WATTS_HOUR_TO_JULES] return results @property @@ -825,23 +843,6 @@ class Building(CityObject): self._onsite_electrical_production[_key] = _results return self._onsite_electrical_production - @property - def heating_consumption_disaggregated(self) -> dict: - """ - Get energy consumed for heating from different fuels in J - return: dict - """ - return self._heating_consumption_disaggregated - - @heating_consumption_disaggregated.setter - def heating_consumption_disaggregated(self, value): - """ - Get energy consumed for heating from different fuels in J - return: dict - """ - self._heating_consumption_disaggregated = value - - @property def lower_corner(self): """ @@ -855,3 +856,60 @@ class Building(CityObject): Get building upper corner. """ return [self._max_x, self._max_y, self._max_z] + + @property + def energy_consumption_breakdown(self) -> dict: + """ + Get energy consumption of different sectors + return: dict + """ + fuel_breakdown = {cte.ELECTRICITY: {cte.LIGHTING: self.lighting_electrical_demand[cte.YEAR][0], + cte.APPLIANCES: self.appliances_electrical_demand[cte.YEAR][0]}} + energy_systems = self.energy_systems + for energy_system in energy_systems: + demand_types = energy_system.demand_types + generation_systems = energy_system.generation_systems + for demand_type in demand_types: + for generation_system in generation_systems: + if generation_system.system_type != cte.PHOTOVOLTAIC: + if generation_system.fuel_type not in fuel_breakdown: + fuel_breakdown[generation_system.fuel_type] = {} + if demand_type in generation_system.energy_consumption: + fuel_breakdown[f'{generation_system.fuel_type}'][f'{demand_type}'] = ( + generation_system.energy_consumption)[f'{demand_type}'][cte.YEAR][0] + storage_systems = generation_system.energy_storage_systems + if storage_systems: + for storage_system in storage_systems: + if storage_system.type_energy_stored == 'thermal' and storage_system.heating_coil_energy_consumption: + fuel_breakdown[cte.ELECTRICITY][f'{demand_type}'] += storage_system.heating_coil_energy_consumption[cte.YEAR][0] + #TODO: When simulation models of all energy system archetypes are created, this part can be removed + heating_fuels = [] + dhw_fuels = [] + for energy_system in self.energy_systems: + if cte.HEATING in energy_system.demand_types: + for generation_system in energy_system.generation_systems: + heating_fuels.append(generation_system.fuel_type) + if cte.DOMESTIC_HOT_WATER in energy_system.demand_types: + for generation_system in energy_system.generation_systems: + dhw_fuels.append(generation_system.fuel_type) + for key in fuel_breakdown: + if key == cte.ELECTRICITY and cte.COOLING not in fuel_breakdown[key]: + for energy_system in energy_systems: + if cte.COOLING in energy_system.demand_types and cte.COOLING not in fuel_breakdown[key]: + for generation_system in energy_system.generation_systems: + fuel_breakdown[generation_system.fuel_type][cte.COOLING] = self.cooling_consumption[cte.YEAR][0] + for fuel in heating_fuels: + if cte.HEATING not in fuel_breakdown[fuel]: + for energy_system in energy_systems: + if cte.HEATING in energy_system.demand_types: + for generation_system in energy_system.generation_systems: + fuel_breakdown[generation_system.fuel_type][cte.HEATING] = self.heating_consumption[cte.YEAR][0] + for fuel in dhw_fuels: + if cte.DOMESTIC_HOT_WATER not in fuel_breakdown[fuel]: + for energy_system in energy_systems: + if cte.DOMESTIC_HOT_WATER in energy_system.demand_types: + for generation_system in energy_system.generation_systems: + fuel_breakdown[generation_system.fuel_type][cte.DOMESTIC_HOT_WATER] = self.domestic_hot_water_consumption[cte.YEAR][0] + self._fuel_consumption_breakdown = fuel_breakdown + return self._fuel_consumption_breakdown + diff --git a/hub/city_model_structure/building_demand/surface.py b/hub/city_model_structure/building_demand/surface.py index ab27ffe8..65f90ae3 100644 --- a/hub/city_model_structure/building_demand/surface.py +++ b/hub/city_model_structure/building_demand/surface.py @@ -42,10 +42,12 @@ class Surface: self._short_wave_reflectance = None self._long_wave_emittance = None self._inverse = None - self._associated_thermal_boundaries = None + self._associated_thermal_boundaries = [] self._vegetation = None self._percentage_shared = None self._solar_collectors_area_reduction_factor = None + self._global_irradiance_tilted = {} + self._installed_solar_collector_area = None @property def name(self): @@ -384,3 +386,35 @@ class Surface: :param value: float """ self._solar_collectors_area_reduction_factor = value + + @property + def global_irradiance_tilted(self) -> dict: + """ + Get global irradiance on a tilted surface in J/m2 + :return: dict + """ + return self._global_irradiance_tilted + + @global_irradiance_tilted.setter + def global_irradiance_tilted(self, value): + """ + Set global irradiance on a tilted surface in J/m2 + :param value: dict + """ + self._global_irradiance_tilted = value + + @property + def installed_solar_collector_area(self): + """ + Get installed solar collector area in m2 + :return: dict + """ + return self._installed_solar_collector_area + + @installed_solar_collector_area.setter + def installed_solar_collector_area(self, value): + """ + Set installed solar collector area in m2 + :return: dict + """ + self._installed_solar_collector_area = value \ No newline at end of file diff --git a/hub/city_model_structure/city_object.py b/hub/city_model_structure/city_object.py index c18a4aa0..0d281b65 100644 --- a/hub/city_model_structure/city_object.py +++ b/hub/city_model_structure/city_object.py @@ -41,9 +41,10 @@ class CityObject: self._ground_temperature = {} self._global_horizontal = {} self._diffuse = {} - self._beam = {} + self._direct_normal = {} self._sensors = [] self._neighbours = None + self._beam = {} @property def level_of_detail(self) -> LevelOfDetail: @@ -238,20 +239,20 @@ class CityObject: self._diffuse = value @property - def beam(self) -> dict: + def direct_normal(self) -> dict: """ Get beam radiation surrounding the city object in J/m2 :return: dict{dict{[float]}} """ - return self._beam + return self._direct_normal - @beam.setter - def beam(self, value): + @direct_normal.setter + def direct_normal(self, value): """ Set beam radiation surrounding the city object in J/m2 :param value: dict{dict{[float]}} """ - self._beam = value + self._direct_normal = value @property def lower_corner(self): @@ -302,3 +303,19 @@ class CityObject: Set the list of neighbour_objects and their properties associated to the current city_object """ self._neighbours = value + + @property + def beam(self) -> dict: + """ + Get beam radiation surrounding the city object in J/m2 + :return: dict{dict{[float]}} + """ + return self._beam + + @beam.setter + def beam(self, value): + """ + Set beam radiation surrounding the city object in J/m2 + :param value: dict{dict{[float]}} + """ + self._beam = value diff --git a/hub/city_model_structure/energy_systems/emission_system.py b/hub/city_model_structure/energy_systems/emission_system.py index e8773013..32bf7c17 100644 --- a/hub/city_model_structure/energy_systems/emission_system.py +++ b/hub/city_model_structure/energy_systems/emission_system.py @@ -13,7 +13,7 @@ class EmissionSystem: def __init__(self): self._model_name = None self._type = None - self._parasitic_energy_consumption = 0 + self._parasitic_energy_consumption = None @property def model_name(self): diff --git a/hub/city_model_structure/energy_systems/generation_system.py b/hub/city_model_structure/energy_systems/generation_system.py index 394c2f09..1765c08e 100644 --- a/hub/city_model_structure/energy_systems/generation_system.py +++ b/hub/city_model_structure/energy_systems/generation_system.py @@ -11,7 +11,8 @@ from abc import ABC from typing import Union, List from hub.city_model_structure.energy_systems.distribution_system import DistributionSystem -from hub.city_model_structure.energy_systems.energy_storage_system import EnergyStorageSystem +from hub.city_model_structure.energy_systems.thermal_storage_system import ThermalStorageSystem +from hub.city_model_structure.energy_systems.electrical_storage_system import ElectricalStorageSystem class GenerationSystem(ABC): @@ -26,6 +27,7 @@ class GenerationSystem(ABC): self._fuel_type = None self._distribution_systems = None self._energy_storage_systems = None + self._number_of_units = None @property def system_type(self): @@ -124,7 +126,7 @@ class GenerationSystem(ABC): self._distribution_systems = value @property - def energy_storage_systems(self) -> Union[None, List[EnergyStorageSystem]]: + def energy_storage_systems(self) -> Union[None, List[ThermalStorageSystem], List[ElectricalStorageSystem]]: """ Get energy storage systems connected to this generation system :return: [EnergyStorageSystem] @@ -138,3 +140,19 @@ class GenerationSystem(ABC): :param value: [EnergyStorageSystem] """ self._energy_storage_systems = value + + @property + def number_of_units(self): + """ + Get number of a specific generation unit + :return: int + """ + return self._number_of_units + + @number_of_units.setter + def number_of_units(self, value): + """ + Set number of a specific generation unit + :return: int + """ + self._number_of_units = value diff --git a/hub/city_model_structure/energy_systems/non_pv_generation_system.py b/hub/city_model_structure/energy_systems/non_pv_generation_system.py index fea1d7b2..0eb9ed0e 100644 --- a/hub/city_model_structure/energy_systems/non_pv_generation_system.py +++ b/hub/city_model_structure/energy_systems/non_pv_generation_system.py @@ -42,7 +42,12 @@ class NonPvGenerationSystem(GenerationSystem): self._cooling_output_curve = None self._cooling_fuel_consumption_curve = None self._cooling_efficiency_curve = None - self._dual_supply_capability = None + self._domestic_hot_water = None + self._heat_supply_temperature = None + self._cooling_supply_temperature = None + self._reversible = None + self._simultaneous_heat_cold = None + self._energy_consumption = {} @property def nominal_heat_output(self): @@ -429,21 +434,106 @@ class NonPvGenerationSystem(GenerationSystem): self._cooling_efficiency_curve = value @property - def dual_supply_capability(self): + def domestic_hot_water(self): """ - Get the capability of the generation component for simultaneous heat and cold production + Get the capability of generating domestic hot water :return: bool """ - return self._dual_supply_capability + return self._domestic_hot_water - @dual_supply_capability.setter - def dual_supply_capability(self, value): + @domestic_hot_water.setter + def domestic_hot_water(self, value): """ - Set the capability of the generation component for simultaneous heat and cold production + Set the capability of generating domestic hot water :return: bool """ - self._dual_supply_capability = value + self._domestic_hot_water = value + @property + def heat_supply_temperature(self): + """ + Get the hourly heat supply temperature + :return: list + """ + return self._heat_supply_temperature + + @heat_supply_temperature.setter + def heat_supply_temperature(self, value): + """ + set the hourly heat supply temperature + :param value: + :return: list + """ + self._heat_supply_temperature = value + + @property + def cooling_supply_temperature(self): + """ + Get the hourly cooling supply temperature + :return: list + """ + return self._heat_supply_temperature + + @cooling_supply_temperature.setter + def cooling_supply_temperature(self, value): + """ + set the hourly cooling supply temperature + :param value: + :return: list + """ + self._cooling_supply_temperature = value + + @property + def reversibility(self): + """ + Get the capability of generating both heating and cooling + + :return: bool + """ + return self._reversible + + @reversibility.setter + def reversibility(self, value): + """ + Set the capability of generating domestic hot water + + :return: bool + """ + self._reversible = value + + @property + def simultaneous_heat_cold(self): + """ + Get the capability of generating both heating and cooling at the same time + + :return: bool + """ + return self._simultaneous_heat_cold + + @simultaneous_heat_cold.setter + def simultaneous_heat_cold(self, value): + """ + Set the capability of generating domestic hot water at the same time + + :return: bool + """ + self._simultaneous_heat_cold = value + + @property + def energy_consumption(self) -> dict: + """ + Get energy consumption in W + :return: dict{[float]} + """ + return self._energy_consumption + + @energy_consumption.setter + def energy_consumption(self, value): + """ + Set energy consumption in W + :param value: dict{[float]} + """ + self._energy_consumption = value diff --git a/hub/city_model_structure/energy_systems/performance_curve.py b/hub/city_model_structure/energy_systems/performance_curve.py index e7c72287..df667993 100644 --- a/hub/city_model_structure/energy_systems/performance_curve.py +++ b/hub/city_model_structure/energy_systems/performance_curve.py @@ -24,28 +24,29 @@ class PerformanceCurves: def curve_type(self): """ Get the type of the fit function from the following - Linear =>>> y = a*x + b + Linear =>>> y = a + b*x Exponential =>>> y = a*(b**x) - Polynomial =>>> y = a*(x**2) + b*x + c + Second degree polynomial =>>> y = a + b*x + c*(x**2) Power =>>> y = a*(x**b) - Second degree multivariable =>>> y = a*(x**2) + b*x + c*x*z + d*z + e*(z**2) + f + Bi-Quadratic =>>> y = a + b*x + c*(x**2) + d*z + e*(z**2) + f*x*z - Get the type of function from ['linear', 'exponential', 'polynomial', 'power', 'second degree multivariable'] + Get the type of function from ['linear', 'exponential', 'second degree polynomial', 'power', 'bi-quadratic'] :return: string """ + return self._curve_type @curve_type.setter def curve_type(self, value): """ Set the type of the fit function from the following - Linear =>>> y = a*x + b + Linear =>>> y = a + b*x Exponential =>>> y = a*(b**x) - Polynomial =>>> y = a*(x**2) + b*x + c + Second degree polynomial =>>> y = a + b*x + c*(x**2) Power =>>> y = a*(x**b) - Second degree multivariable =>>> y = a*(x**2) + b*x + c*x*z + d*z + e*(z**2) + f + Bi-Quadratic =>>> y = a + b*x + c*(x**2) + d*z + e*(z**2) + f*x*z - Get the type of function from ['linear', 'exponential', 'polynomial', 'power', 'second degree multivariable'] + Get the type of function from ['linear', 'exponential', 'second degree polynomial', 'power', 'bi-quadratic'] :return: string """ self._curve_type = value diff --git a/hub/city_model_structure/energy_systems/pv_generation_system.py b/hub/city_model_structure/energy_systems/pv_generation_system.py index 13409c7e..ddbc847a 100644 --- a/hub/city_model_structure/energy_systems/pv_generation_system.py +++ b/hub/city_model_structure/energy_systems/pv_generation_system.py @@ -26,6 +26,10 @@ class PvGenerationSystem(GenerationSystem): self._width = None self._height = None self._electricity_power = None + self._tilt_angle = None + self._surface_azimuth = None + self._solar_altitude_angle = None + self._solar_azimuth_angle = None @property def nominal_electricity_output(self): @@ -202,3 +206,35 @@ class PvGenerationSystem(GenerationSystem): :param value: float """ self._electricity_power = value + + @property + def tilt_angle(self): + """ + Get tilt angle of PV system in degrees + :return: float + """ + return self._tilt_angle + + @tilt_angle.setter + def tilt_angle(self, value): + """ + Set PV system tilt angle in degrees + :param value: float + """ + self._tilt_angle = value + + @property + def surface_azimuth(self): + """ + Get surface azimuth angle of PV system in degrees. 0 is North + :return: float + """ + return self._surface_azimuth + + @surface_azimuth.setter + def surface_azimuth(self, value): + """ + Set PV system tilt angle in degrees + :param value: float + """ + self._surface_azimuth = value diff --git a/hub/city_model_structure/energy_systems/thermal_storage_system.py b/hub/city_model_structure/energy_systems/thermal_storage_system.py index 0f7f6a12..fd9b8f81 100644 --- a/hub/city_model_structure/energy_systems/thermal_storage_system.py +++ b/hub/city_model_structure/energy_systems/thermal_storage_system.py @@ -22,6 +22,9 @@ class ThermalStorageSystem(EnergyStorageSystem): self._height = None self._layers = None self._maximum_operating_temperature = None + self._heating_coil_capacity = None + self._temperature = None + self._heating_coil_energy_consumption = None @property def volume(self): @@ -86,3 +89,51 @@ class ThermalStorageSystem(EnergyStorageSystem): :param value: float """ self._maximum_operating_temperature = value + + @property + def heating_coil_capacity(self): + """ + Get heating coil capacity in Watts + :return: float + """ + return self._heating_coil_capacity + + @heating_coil_capacity.setter + def heating_coil_capacity(self, value): + """ + Set heating coil capacity in Watts + :param value: float + """ + self._heating_coil_capacity = value + + @property + def temperature(self) -> dict: + """ + Get fuel consumption in W, m3, or kg + :return: dict{[float]} + """ + return self._temperature + + @temperature.setter + def temperature(self, value): + """ + Set fuel consumption in W, m3, or kg + :param value: dict{[float]} + """ + self._temperature = value + + @property + def heating_coil_energy_consumption(self) -> dict: + """ + Get fuel consumption in W, m3, or kg + :return: dict{[float]} + """ + return self._heating_coil_energy_consumption + + @heating_coil_energy_consumption.setter + def heating_coil_energy_consumption(self, value): + """ + Set fuel consumption in W, m3, or kg + :param value: dict{[float]} + """ + self._heating_coil_energy_consumption = value diff --git a/hub/data/energy_systems/montreal_future_systems.xml b/hub/data/energy_systems/montreal_future_systems.xml index 769f87bd..b51c9488 100644 --- a/hub/data/energy_systems/montreal_future_systems.xml +++ b/hub/data/energy_systems/montreal_future_systems.xml @@ -5,11 +5,11 @@ 1 Water - - - - - + + + + + 981.0 4180.0 0.6 @@ -26,7 +26,7 @@ 4.7 23.5 0.95 - True + False natural gas @@ -50,7 +50,10 @@ - + True + + + False 2 @@ -62,7 +65,7 @@ 6.15 30.8 0.95 - True + False natural gas @@ -86,7 +89,10 @@ - + True + + + False 3 @@ -98,7 +104,7 @@ 8.8 44 0.95 - True + False natural gas @@ -122,7 +128,10 @@ - + True + + + False 4 @@ -134,7 +143,7 @@ 12.3 61.5 0.95 - True + False natural gas @@ -158,7 +167,10 @@ - + True + + + False 5 @@ -170,7 +182,7 @@ 4.0 35.2 0.95 - True + False natural gas @@ -194,7 +206,10 @@ - + True + + + False 6 @@ -206,7 +221,7 @@ 4.0 35.2 0.95 - False + False natural gas @@ -230,7 +245,10 @@ - + True + + + False 7 @@ -242,7 +260,7 @@ 2.5 25.0 0.96 - + False natural gas @@ -266,7 +284,10 @@ - + True + + + False 8 @@ -278,7 +299,7 @@ 3.2 32.0 0.96 - + False natural gas @@ -302,7 +323,10 @@ - + True + + + False 9 @@ -314,7 +338,7 @@ 4.5 45.0 0.95 - True + False natural gas @@ -338,7 +362,10 @@ - + True + + + False 10 @@ -350,7 +377,7 @@ 3.5 35.0 0.95 - True + False natural gas @@ -374,7 +401,10 @@ - + True + + + False 11 @@ -386,7 +416,7 @@ 5.3 53.0 0.95 - True + False natural gas @@ -410,7 +440,10 @@ - + True + + + False 12 @@ -441,10 +474,10 @@ 0 51.7 3.32 - + True Electricity Air - water + Water @@ -460,7 +493,7 @@ - second degree multivariable function + bi-quadratic COP source_temperature supply_temperature @@ -471,7 +504,10 @@ - False + False + + + False 14 @@ -483,10 +519,10 @@ 0 279.3 3.07 - + True Electricity Air - water + Water @@ -502,7 +538,7 @@ - second degree multivariable function + bi-quadratic COP source_temperature supply_temperature @@ -513,7 +549,10 @@ - False + False + + + False 15 @@ -525,10 +564,10 @@ 0 557 3.46 - + True Electricity Air - water + Water @@ -544,7 +583,7 @@ - second degree multivariable function + bi-quadratic COP source_temperature supply_temperature @@ -555,7 +594,10 @@ - False + False + + + False 16 @@ -567,7 +609,7 @@ 0.90 - + False natural gas @@ -593,7 +635,10 @@ 6 - + True + + + False 17 @@ -605,7 +650,7 @@ 0.95 - + False electricity @@ -631,22 +676,25 @@ 6 - + False + + + False 18 - template Air-to-Water heat pump + template Air-to-Water heat pump with storage heat pump - 3 - + 2 + True electricity Air - water + Water @@ -661,19 +709,34 @@ - + + bi-quadratic + COP + source_temperature + supply_temperature + + - + + bi-quadratic + COP + source_temperature + supply_temperature + + 6 - True + True + + + True 19 - template Groundwater-to-Water heat pump + template Groundwater-to-Water heat pump with storage heat pump @@ -681,10 +744,10 @@ 3.5 - + True electricity Ground - water + Water @@ -707,11 +770,14 @@ 6 - True + True + + + True 20 - template Water-to-Water heat pump + template Water-to-Water heat pump with storage heat pump @@ -719,10 +785,10 @@ 3.5 - + True electricity Water - water + Water @@ -745,7 +811,10 @@ 6 - True + True + + + False 21 @@ -757,7 +826,7 @@ 0.90 - + False natural gas @@ -781,7 +850,10 @@ - + True + + + False 22 @@ -793,7 +865,7 @@ 0.95 - + False electricity @@ -817,7 +889,10 @@ - + True + + + False 23 @@ -829,14 +904,14 @@ 3 - + True electricity Air - water + Water - + 4.5 @@ -847,13 +922,28 @@ - + + bi-quadratic + COP + source_temperature + supply_temperature + + - + + bi-quadratic + COP + source_temperature + supply_temperature + + - True + True + + + True 24 @@ -865,10 +955,10 @@ 3.5 - + True electricity Ground - water + Water @@ -889,7 +979,10 @@ - True + True + + + True 25 @@ -901,10 +994,10 @@ 3.5 - + True electricity Water - water + Water @@ -925,7 +1018,10 @@ - True + True + + + True 26 @@ -945,7 +1041,55 @@ 1.0 + False + + 27 + template domestic hot water heat pump + heat pump + + + + + + 3.5 + + electricity + Air + Water + + + + + + + + + + + + + + + + bi-quadratic + COP + source_temperature + supply_temperature + + + + + + + + 7 + + True + + + False + @@ -970,8 +1114,9 @@ 1 sensible - - + + + 2 @@ -995,8 +1140,9 @@ 1 sensible - - + + + 3 @@ -1020,8 +1166,9 @@ 1 sensible - - + + + 4 @@ -1044,8 +1191,9 @@ 1 sensible - - + + + 5 @@ -1069,15 +1217,16 @@ 1 sensible - - + + + 6 template Hot Water Storage Tank thermal - HF 200 - + + 95.0 1 @@ -1088,47 +1237,74 @@ 0 1.5 Steel - + 1 sensible - - + + + + + + 7 + template Hot Water Storage Tank with Heating Coil + thermal + + + 95.0 + + 1 + 90.0 + + + 2 + 0 + 1.5 + Steel + + + + 1 + + sensible + + + 5000 1 Polyurethane - - - - - - - + + + + + + + 0.028 2 Steel - - - - - - - + + + + + + + 18 - + - + @@ -1138,7 +1314,6 @@ heating cooling - domestic_hot_water 21 @@ -1226,13 +1401,75 @@ 26 + + 8 + 4 pipe system with air source heat pump storage and gas boiler + schemas/ASHP+TES+GasBoiler.jpg + + heating + cooling + + + 23 + 16 + + + + 9 + 4 pipe system with air source heat pump storage and electric boiler + schemas/ASHP+TES+GasBoiler.jpg + + heating + cooling + + + 22 + 18 + + + + 10 + Domestic Hot Water Heat Pump with Coiled Storage + schemas/ASHP+TES+GasBoiler.jpg + + domestic_hot_water + + + 27 + + + + 11 + Central Heating System َASHP Gas-Boiler TES + schemas/ASHP+TES+GasBoiler.jpg + + heating + + + 23 + 16 + + + + 12 + Unitary ASHP Cooling System + schemas/ASHP+TES+GasBoiler.jpg + + cooling + + + 23 + + + PV+ASHP+GasBoiler+TES 7 1 + 10 @@ -1306,6 +1543,31 @@ 6 + + PV+4Pipe+DHW + + 7 + 8 + 10 + + + + Central Heating+Unitary Cooling+Unitary DHW + + 10 + 11 + 12 + + + + Central Heating+Unitary Cooling+Unitary DHW+PV + + 7 + 10 + 11 + 12 + + diff --git a/hub/exports/building_energy/insel/insel_monthly_energy_balance.py b/hub/exports/building_energy/insel/insel_monthly_energy_balance.py index f14ec946..329e9a13 100644 --- a/hub/exports/building_energy/insel/insel_monthly_energy_balance.py +++ b/hub/exports/building_energy/insel/insel_monthly_energy_balance.py @@ -270,7 +270,7 @@ class InselMonthlyEnergyBalance: global_irradiance = surface.global_irradiance[cte.MONTH] for j in range(0, len(global_irradiance)): parameters.append(f'{j + 1} ' - f'{global_irradiance[j] * cte.WATTS_HOUR_TO_JULES / 24 / _NUMBER_DAYS_PER_MONTH[j]}') + f'{global_irradiance[j] / 24 / _NUMBER_DAYS_PER_MONTH[j]}') else: for j in range(0, 12): parameters.append(f'{j + 1} 0.0') diff --git a/hub/exports/formats/simplified_radiosity_algorithm.py b/hub/exports/formats/simplified_radiosity_algorithm.py index d008a958..25189419 100644 --- a/hub/exports/formats/simplified_radiosity_algorithm.py +++ b/hub/exports/formats/simplified_radiosity_algorithm.py @@ -66,9 +66,9 @@ class SimplifiedRadiosityAlgorithm: else: i = (total_days + day - 1) * 24 + hour - 1 representative_building = self._city.buildings[0] - _diffuse = representative_building.diffuse[cte.HOUR][i] * cte.WATTS_HOUR_TO_JULES - _beam = representative_building.beam[cte.HOUR][i] * cte.WATTS_HOUR_TO_JULES - content += f'{day} {month} {hour} {_diffuse} {_beam}\n' + _global = representative_building.diffuse[cte.HOUR][i] / cte.WATTS_HOUR_TO_JULES + _beam = representative_building.direct_normal[cte.HOUR][i] / cte.WATTS_HOUR_TO_JULES + content += f'{day} {month} {hour} {_global} {_beam}\n' with open(file, 'w', encoding='utf-8') as file: file.write(content) diff --git a/hub/helpers/constants.py b/hub/helpers/constants.py index 23fab290..ad32c835 100644 --- a/hub/helpers/constants.py +++ b/hub/helpers/constants.py @@ -10,11 +10,11 @@ Project Coder Pilar Monsalvete Alvarez de Uribarri pilar.monsalvete@concordia.ca KELVIN = 273.15 WATER_DENSITY = 1000 # kg/m3 WATER_HEAT_CAPACITY = 4182 # J/kgK - +WATER_THERMAL_CONDUCTIVITY = 0.65 # W/mK +NATURAL_GAS_LHV = 36.6e6 # J/m3 AIR_DENSITY = 1.293 # kg/m3 AIR_HEAT_CAPACITY = 1005.2 # J/kgK - # converters HOUR_TO_MINUTES = 60 MINUTES_TO_SECONDS = 60 @@ -292,6 +292,7 @@ WOOD = 'Wood' GAS = 'Gas' DIESEL = 'Diesel' COAL = 'Coal' +BIOMASS = 'Biomass' AIR = 'Air' WATER = 'Water' GEOTHERMAL = 'Geothermal' diff --git a/hub/imports/energy_systems/montreal_custom_energy_system_parameters.py b/hub/imports/energy_systems/montreal_custom_energy_system_parameters.py index 4cdb848a..15833c9b 100644 --- a/hub/imports/energy_systems/montreal_custom_energy_system_parameters.py +++ b/hub/imports/energy_systems/montreal_custom_energy_system_parameters.py @@ -86,7 +86,8 @@ class MontrealCustomEnergySystemParameters: if archetype_generation_system.system_type == 'Photovoltaic': _generation_system = PvGenerationSystem() _type = 'PV system' - _generation_system.system_type = Dictionaries().montreal_generation_system_to_hub_energy_generation_system[_type] + _generation_system.system_type = Dictionaries().montreal_generation_system_to_hub_energy_generation_system[ + _type] _fuel_type = Dictionaries().montreal_custom_fuel_to_hub_fuel[archetype_generation_system.fuel_type] _generation_system.fuel_type = _fuel_type _generation_system.electricity_efficiency = archetype_generation_system.electricity_efficiency @@ -98,7 +99,8 @@ class MontrealCustomEnergySystemParameters: else: _generation_system = NonPvGenerationSystem() _type = archetype_generation_system.system_type - _generation_system.system_type = Dictionaries().montreal_generation_system_to_hub_energy_generation_system[_type] + _generation_system.system_type = Dictionaries().montreal_generation_system_to_hub_energy_generation_system[ + _type] _fuel_type = Dictionaries().montreal_custom_fuel_to_hub_fuel[archetype_generation_system.fuel_type] _generation_system.fuel_type = _fuel_type _generation_system.source_types = archetype_generation_system.source_medium diff --git a/hub/imports/energy_systems/montreal_future_energy_systems_parameters.py b/hub/imports/energy_systems/montreal_future_energy_systems_parameters.py index 542608a0..1bcde834 100644 --- a/hub/imports/energy_systems/montreal_future_energy_systems_parameters.py +++ b/hub/imports/energy_systems/montreal_future_energy_systems_parameters.py @@ -82,8 +82,7 @@ class MontrealFutureEnergySystemParameters: return _generic_energy_systems - @staticmethod - def _create_generation_systems(archetype_system): + def _create_generation_systems(self, archetype_system): _generation_systems = [] archetype_generation_systems = archetype_system.generation_systems if archetype_generation_systems is not None: @@ -107,6 +106,7 @@ class MontrealFutureEnergySystemParameters: _generation_system.cell_temperature_coefficient = archetype_generation_system.cell_temperature_coefficient _generation_system.width = archetype_generation_system.width _generation_system.height = archetype_generation_system.height + _generation_system.tilt_angle = self._city.latitude _generic_storage_system = None if archetype_generation_system.energy_storage_systems is not None: _generic_storage_system = ElectricalStorageSystem() @@ -140,12 +140,13 @@ class MontrealFutureEnergySystemParameters: _generation_system.cooling_output_curve = archetype_generation_system.cooling_output_curve _generation_system.cooling_fuel_consumption_curve = archetype_generation_system.cooling_fuel_consumption_curve _generation_system.cooling_efficiency_curve = archetype_generation_system.cooling_efficiency_curve - _generation_system.dual_supply_capability = archetype_generation_system.dual_supply_capability + _generation_system.domestic_hot_water = archetype_generation_system.domestic_hot_water _generation_system.nominal_electricity_output = archetype_generation_system.nominal_electricity_output _generation_system.source_medium = archetype_generation_system.source_medium _generation_system.heat_efficiency = archetype_generation_system.heat_efficiency _generation_system.cooling_efficiency = archetype_generation_system.cooling_efficiency _generation_system.electricity_efficiency = archetype_generation_system.electricity_efficiency + _generation_system.reversibility = archetype_generation_system.reversibility _generic_storage_system = None if archetype_generation_system.energy_storage_systems is not None: _storage_systems = [] @@ -155,11 +156,19 @@ class MontrealFutureEnergySystemParameters: _generic_storage_system.type_energy_stored = 'electrical' else: _generic_storage_system = ThermalStorageSystem() - _generic_storage_system.type_energy_stored = 'thermal' + _generic_storage_system.type_energy_stored = storage_system.type_energy_stored + _generic_storage_system.height = storage_system.height + _generic_storage_system.layers = storage_system.layers + _generic_storage_system.storage_medium = storage_system.storage_medium + _generic_storage_system.heating_coil_capacity = storage_system.heating_coil_capacity _storage_systems.append(_generic_storage_system) - _generation_system.energy_storage_systems = [_storage_systems] - if archetype_generation_system.dual_supply_capability: - _generation_system.dual_supply_capability = True + _generation_system.energy_storage_systems = _storage_systems + if archetype_generation_system.domestic_hot_water: + _generation_system.domestic_hot_water = True + if archetype_generation_system.reversibility: + _generation_system.reversibility = True + if archetype_generation_system.simultaneous_heat_cold: + _generation_system.simultaneous_heat_cold = True _generation_systems.append(_generation_system) return _generation_systems diff --git a/hub/imports/results/ep_multiple_buildings.py b/hub/imports/results/ep_multiple_buildings.py index 9da12c7a..bd9a2dd3 100644 --- a/hub/imports/results/ep_multiple_buildings.py +++ b/hub/imports/results/ep_multiple_buildings.py @@ -60,9 +60,12 @@ class EnergyPlusMultipleBuildings: for building in self._city.buildings: building.heating_demand[cte.HOUR] = building_energy_demands[f'Building {building.name} Heating Demand (J)'] building.cooling_demand[cte.HOUR] = building_energy_demands[f'Building {building.name} Cooling Demand (J)'] - building.domestic_hot_water_heat_demand[cte.HOUR] = building_energy_demands[f'Building {building.name} DHW Demand (W)'] - building.appliances_electrical_demand[cte.HOUR] = building_energy_demands[f'Building {building.name} Appliances (W)'] - building.lighting_electrical_demand[cte.HOUR] = building_energy_demands[f'Building {building.name} Lighting (W)'] + building.domestic_hot_water_heat_demand[cte.HOUR] = \ + [x * cte.WATTS_HOUR_TO_JULES for x in building_energy_demands[f'Building {building.name} DHW Demand (W)']] + building.appliances_electrical_demand[cte.HOUR] = \ + [x * cte.WATTS_HOUR_TO_JULES for x in building_energy_demands[f'Building {building.name} Appliances (W)']] + building.lighting_electrical_demand[cte.HOUR] = \ + [x * cte.WATTS_HOUR_TO_JULES for x in building_energy_demands[f'Building {building.name} Lighting (W)']] building.heating_demand[cte.MONTH] = MonthlyValues.get_total_month(building.heating_demand[cte.HOUR]) building.cooling_demand[cte.MONTH] = MonthlyValues.get_total_month(building.cooling_demand[cte.HOUR]) building.domestic_hot_water_heat_demand[cte.MONTH] = ( diff --git a/hub/imports/results/simplified_radiosity_algorithm.py b/hub/imports/results/simplified_radiosity_algorithm.py index 57fae8e9..3824e7ce 100644 --- a/hub/imports/results/simplified_radiosity_algorithm.py +++ b/hub/imports/results/simplified_radiosity_algorithm.py @@ -34,7 +34,7 @@ class SimplifiedRadiosityAlgorithm: for key in self._results: _irradiance = {} header_name = key.split(':') - result = [x / cte.WATTS_HOUR_TO_JULES for x in self._results[key]] + result = [x * cte.WATTS_HOUR_TO_JULES for x in self._results[key]] city_object_name = header_name[1] building = self._city.city_object(city_object_name) surface_id = header_name[2] diff --git a/hub/imports/weather/epw_weather_parameters.py b/hub/imports/weather/epw_weather_parameters.py index b4f28291..0c362261 100644 --- a/hub/imports/weather/epw_weather_parameters.py +++ b/hub/imports/weather/epw_weather_parameters.py @@ -110,22 +110,26 @@ class EpwWeatherParameters: # new_value = pd.DataFrame(self._weather_values[['dry_bulb_temperature_c']].to_numpy(), columns=['epw']) # number_invalid_records = new_value[new_value.epw == 99.9].count().epw building.external_temperature[cte.HOUR] = self._weather_values['dry_bulb_temperature_c'] - building.global_horizontal[cte.HOUR] = [x / cte.WATTS_HOUR_TO_JULES + building.global_horizontal[cte.HOUR] = [x * cte.WATTS_HOUR_TO_JULES for x in self._weather_values['global_horizontal_radiation_wh_m2']] - building.diffuse[cte.HOUR] = [x / cte.WATTS_HOUR_TO_JULES + building.diffuse[cte.HOUR] = [x * cte.WATTS_HOUR_TO_JULES for x in self._weather_values['diffuse_horizontal_radiation_wh_m2']] - building.beam[cte.HOUR] = [x / cte.WATTS_HOUR_TO_JULES - for x in self._weather_values['direct_normal_radiation_wh_m2']] + building.direct_normal[cte.HOUR] = [x * cte.WATTS_HOUR_TO_JULES + for x in self._weather_values['direct_normal_radiation_wh_m2']] + building.beam[cte.HOUR] = [building.global_horizontal[cte.HOUR][i] - + building.diffuse[cte.HOUR][i] + for i in range(len(building.global_horizontal[cte.HOUR]))] building.cold_water_temperature[cte.HOUR] = wh().cold_water_temperature(building.external_temperature[cte.HOUR]) + # create the monthly and yearly values out of the hourly for building in self._city.buildings: building.external_temperature[cte.MONTH] = \ MonthlyValues().get_mean_values(building.external_temperature[cte.HOUR]) - building.external_temperature[cte.YEAR] = [sum(building.external_temperature[cte.HOUR]) / 9870] + building.external_temperature[cte.YEAR] = [sum(building.external_temperature[cte.HOUR]) / 8760] building.cold_water_temperature[cte.MONTH] = \ MonthlyValues().get_mean_values(building.cold_water_temperature[cte.HOUR]) - building.cold_water_temperature[cte.YEAR] = [sum(building.cold_water_temperature[cte.HOUR]) / 9870] + building.cold_water_temperature[cte.YEAR] = [sum(building.cold_water_temperature[cte.HOUR]) / 8760] # If the usage has already being imported, the domestic hot water missing values must be calculated here that # the cold water temperature is finally known diff --git a/hub/imports/weather/helpers/weather.py b/hub/imports/weather/helpers/weather.py index 7603cb5b..755f9ad3 100644 --- a/hub/imports/weather/helpers/weather.py +++ b/hub/imports/weather/helpers/weather.py @@ -8,7 +8,7 @@ Project Coder Pilar Monsalvete Alvarez de Uribarri pilar.monsalvete@concordia.ca import logging import math import hub.helpers.constants as cte - +from datetime import datetime, timedelta class Weather: """ @@ -55,25 +55,19 @@ class Weather: # and Craig Christensen, National Renewable Energy Laboratory # ambient temperatures( in °C) # cold water temperatures( in °C) - ambient_temperature_fahrenheit = [] - average_temperature = 0 - maximum_temperature = -1000 - minimum_temperature = 1000 - for temperature in ambient_temperature: - value = temperature * 9 / 5 + 32 - ambient_temperature_fahrenheit.append(value) - average_temperature += value / 8760 - if value > maximum_temperature: - maximum_temperature = value - if value < minimum_temperature: - minimum_temperature = value - delta_temperature = maximum_temperature - minimum_temperature - ratio = 0.4 + 0.01 * (average_temperature - 44) - lag = 35 - 1 * (average_temperature - 44) + t_out_fahrenheit = [1.8 * t_out + 32 for t_out in ambient_temperature] + t_out_average = sum(t_out_fahrenheit) / len(t_out_fahrenheit) + max_difference = max(t_out_fahrenheit) - min(t_out_fahrenheit) + ratio = 0.4 + 0.01 * (t_out_average - 44) + lag = 35 - (t_out_average - 35) + number_of_day = [a for a in range(1, 366)] + day_of_year = [day for day in number_of_day for _ in range(24)] + cold_temperature_fahrenheit = [] cold_temperature = [] - for temperature in ambient_temperature_fahrenheit: - radians = (0.986 * (temperature-15-lag) - 90) * math.pi / 180 - cold_temperature.append((average_temperature + 6 + ratio * (delta_temperature/2) * math.sin(radians) - 32) * 5/9) + for i in range(len(ambient_temperature)): + cold_temperature_fahrenheit.append(t_out_average + 6 + ratio * (max_difference / 2) * + math.sin(math.radians(0.986 * (day_of_year[i] - 15 - lag) - 90))) + cold_temperature.append((cold_temperature_fahrenheit[i] - 32) / 1.8) return cold_temperature def epw_file(self, region_code): diff --git a/tests/test_systems_catalog.py b/tests/test_systems_catalog.py index d41e5c07..612a8fe6 100644 --- a/tests/test_systems_catalog.py +++ b/tests/test_systems_catalog.py @@ -38,12 +38,12 @@ class TestSystemsCatalog(TestCase): catalog = EnergySystemsCatalogFactory('montreal_future').catalog catalog_categories = catalog.names() - archetypes = catalog.names('archetypes') - self.assertEqual(12, len(archetypes['archetypes'])) + archetypes = catalog.names() + self.assertEqual(15, len(archetypes['archetypes'])) systems = catalog.names('systems') - self.assertEqual(7, len(systems['systems'])) + self.assertEqual(12, len(systems['systems'])) generation_equipments = catalog.names('generation_equipments') - self.assertEqual(26, len(generation_equipments['generation_equipments'])) + self.assertEqual(27, len(generation_equipments['generation_equipments'])) with self.assertRaises(ValueError): catalog.names('unknown') diff --git a/tests/test_systems_factory.py b/tests/test_systems_factory.py index c4c086e3..a8207a7a 100644 --- a/tests/test_systems_factory.py +++ b/tests/test_systems_factory.py @@ -122,14 +122,13 @@ class TestSystemsFactory(TestCase): for energy_system in building.energy_systems: if cte.HEATING in energy_system.demand_types: _generation_system = cast(NonPvGenerationSystem, energy_system.generation_systems[0]) - _generation_system.heat_power = building.heating_peak_load[cte.YEAR][0] + _generation_system.nominal_heat_output = building.heating_peak_load[cte.YEAR][0] if cte.COOLING in energy_system.demand_types: _generation_system = cast(NonPvGenerationSystem, energy_system.generation_systems[0]) - _generation_system.cooling_power = building.cooling_peak_load[cte.YEAR][0] + _generation_system.nominal_cooling_output = building.cooling_peak_load[cte.YEAR][0] for building in self._city.buildings: self.assertLess(0, building.heating_consumption[cte.YEAR][0]) self.assertLess(0, building.cooling_consumption[cte.YEAR][0]) self.assertLess(0, building.domestic_hot_water_consumption[cte.YEAR][0]) - self.assertLess(0, building.onsite_electrical_production[cte.YEAR][0]) - print('test') \ No newline at end of file + self.assertLess(0, building.onsite_electrical_production[cte.YEAR][0]) \ No newline at end of file From 1cc7b2cb8cc134b94a33cd65bf8b605506495343 Mon Sep 17 00:00:00 2001 From: guille Date: Mon, 1 Jul 2024 07:04:50 +0200 Subject: [PATCH 08/42] IDFL Add objects without archetype as shadow objects instead --- hub/city_model_structure/building_demand/surface.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hub/city_model_structure/building_demand/surface.py b/hub/city_model_structure/building_demand/surface.py index 65f90ae3..a500c73a 100644 --- a/hub/city_model_structure/building_demand/surface.py +++ b/hub/city_model_structure/building_demand/surface.py @@ -42,7 +42,7 @@ class Surface: self._short_wave_reflectance = None self._long_wave_emittance = None self._inverse = None - self._associated_thermal_boundaries = [] + self._associated_thermal_boundaries = None self._vegetation = None self._percentage_shared = None self._solar_collectors_area_reduction_factor = None From 1279dffff8abadf7c9f7a0060aedc0449f2d386c Mon Sep 17 00:00:00 2001 From: s_ranjbar Date: Mon, 1 Jul 2024 12:16:26 -0400 Subject: [PATCH 09/42] fix: small issue in the city creator was resolved --- tests/test_geometry_factory.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tests/test_geometry_factory.py b/tests/test_geometry_factory.py index d436851c..2d8d0412 100644 --- a/tests/test_geometry_factory.py +++ b/tests/test_geometry_factory.py @@ -8,7 +8,7 @@ from pathlib import Path from unittest import TestCase import hub.exports.exports_factory -from hub.helpers.dictionaries import MontrealFunctionToHubFunction +from hub.helpers.dictionaries import Dictionaries from hub.helpers.geometry_helper import GeometryHelper from hub.imports.construction_factory import ConstructionFactory from hub.imports.geometry_factory import GeometryFactory @@ -36,6 +36,7 @@ class TestGeometryFactory(TestCase): height_field=height_field, year_of_construction_field=year_of_construction_field, function_field=function_field, + function_to_hub=Dictionaries().montreal_function_to_hub_function ).city self.assertIsNotNone(self._city, 'city is none') return self._city @@ -104,6 +105,7 @@ class TestGeometryFactory(TestCase): """ file = 'FZK_Haus_LoD_2.gml' city = self._get_city(file, 'citygml') + print('test') self.assertTrue(len(city.buildings) == 1) self._check_buildings(city) for building in city.buildings: @@ -132,7 +134,7 @@ class TestGeometryFactory(TestCase): year_of_construction_field='ANNEE_CONS', aliases_field=['ID_UEV', 'CIVIQUE_DE', 'NOM_RUE'], function_field='CODE_UTILI', - function_to_hub=MontrealFunctionToHubFunction().dictionary).city + function_to_hub=Dictionaries().montreal_function_to_hub_function).city hub.exports.exports_factory.ExportsFactory('obj', city, self._output_path).export() for building in city.building_alias('01002777'): self.assertEqual('1', building.name, 'Wrong building name when looking for alias') From a81c0cfee34a26f101e351d8be054318466a5b15 Mon Sep 17 00:00:00 2001 From: guille Date: Mon, 1 Jul 2024 18:48:37 +0200 Subject: [PATCH 10/42] Correct bug in shadding object creation when no archetype available --- hub/exports/building_energy/idf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hub/exports/building_energy/idf.py b/hub/exports/building_energy/idf.py index 514f6ae4..55faa89c 100644 --- a/hub/exports/building_energy/idf.py +++ b/hub/exports/building_energy/idf.py @@ -513,7 +513,7 @@ class Idf: self._lod = self._city.level_of_detail.geometry for building in self._city.buildings: for internal_zone in building.internal_zones: - if internal_zone.thermal_zones_from_internal_zones is None or len(thermal_zone.thermal_boundaries) == 0: + if internal_zone.thermal_zones_from_internal_zones is None or len(internal_zone.thermal_zones_from_internal_zones.thermal_boundaries) == 0: self._add_shading(building) # if the building has not archetype use it as shadow object continue for thermal_zone in internal_zone.thermal_zones_from_internal_zones: From dc3372ff5ed9c2760b1bc4f51d679ab4d6cab1b5 Mon Sep 17 00:00:00 2001 From: s_ranjbar Date: Wed, 3 Jul 2024 10:35:31 -0400 Subject: [PATCH 11/42] fix: final changes to catalogue, importer, and parameter importer --- .../data_models/energy_systems/emission_system.py | 2 +- .../energy_systems/montreal_custom_catalog.py | 2 +- .../energy_systems/montreal_future_system_catalogue.py | 2 +- .../energy_systems/emission_system.py | 2 +- .../montreal_custom_energy_system_parameters.py | 8 ++++++-- .../montreal_future_energy_systems_parameters.py | 8 ++++++-- 6 files changed, 16 insertions(+), 8 deletions(-) diff --git a/hub/catalog_factories/data_models/energy_systems/emission_system.py b/hub/catalog_factories/data_models/energy_systems/emission_system.py index a8ac91b6..538954d3 100644 --- a/hub/catalog_factories/data_models/energy_systems/emission_system.py +++ b/hub/catalog_factories/data_models/energy_systems/emission_system.py @@ -10,7 +10,7 @@ class EmissionSystem: """ Emission system class """ - def __init__(self, system_id, model_name=None, system_type=None, parasitic_energy_consumption=None): + def __init__(self, system_id, model_name=None, system_type=None, parasitic_energy_consumption=0): self._system_id = system_id self._model_name = model_name diff --git a/hub/catalog_factories/energy_systems/montreal_custom_catalog.py b/hub/catalog_factories/energy_systems/montreal_custom_catalog.py index d3e37e36..cace9278 100644 --- a/hub/catalog_factories/energy_systems/montreal_custom_catalog.py +++ b/hub/catalog_factories/energy_systems/montreal_custom_catalog.py @@ -135,7 +135,7 @@ class MontrealCustomCatalog(Catalog): equipment_id = float(equipment['@id']) equipment_type = equipment['@type'] model_name = equipment['name'] - parasitic_consumption = None + parasitic_consumption = 0 if 'parasitic_consumption' in equipment: parasitic_consumption = float(equipment['parasitic_consumption']['#text']) / 100 diff --git a/hub/catalog_factories/energy_systems/montreal_future_system_catalogue.py b/hub/catalog_factories/energy_systems/montreal_future_system_catalogue.py index 625e362c..a4477ba2 100644 --- a/hub/catalog_factories/energy_systems/montreal_future_system_catalogue.py +++ b/hub/catalog_factories/energy_systems/montreal_future_system_catalogue.py @@ -262,7 +262,7 @@ class MontrealFutureSystemCatalogue(Catalog): system_id = None model_name = None system_type = None - parasitic_energy_consumption = None + parasitic_energy_consumption = 0 emission_system = EmissionSystem(system_id=system_id, model_name=model_name, system_type=system_type, diff --git a/hub/city_model_structure/energy_systems/emission_system.py b/hub/city_model_structure/energy_systems/emission_system.py index 32bf7c17..e8773013 100644 --- a/hub/city_model_structure/energy_systems/emission_system.py +++ b/hub/city_model_structure/energy_systems/emission_system.py @@ -13,7 +13,7 @@ class EmissionSystem: def __init__(self): self._model_name = None self._type = None - self._parasitic_energy_consumption = None + self._parasitic_energy_consumption = 0 @property def model_name(self): diff --git a/hub/imports/energy_systems/montreal_custom_energy_system_parameters.py b/hub/imports/energy_systems/montreal_custom_energy_system_parameters.py index 15833c9b..0a9d589f 100644 --- a/hub/imports/energy_systems/montreal_custom_energy_system_parameters.py +++ b/hub/imports/energy_systems/montreal_custom_energy_system_parameters.py @@ -138,8 +138,12 @@ class MontrealCustomEnergySystemParameters: _distribution_system.heat_losses = archetype_distribution_system.heat_losses _emission_system = None if archetype_distribution_system.emission_systems is not None: - _emission_system = EmissionSystem() - _distribution_system.emission_systems = [_emission_system] + _emission_systems = [] + for emission_system in archetype_distribution_system.emission_systems: + _emission_system = EmissionSystem() + _emission_system.parasitic_energy_consumption = emission_system.parasitic_energy_consumption + _emission_systems.append(_emission_system) + _distribution_system.emission_systems = _emission_systems _distribution_systems.append(_distribution_system) return _distribution_systems diff --git a/hub/imports/energy_systems/montreal_future_energy_systems_parameters.py b/hub/imports/energy_systems/montreal_future_energy_systems_parameters.py index 1bcde834..ab2b6dda 100644 --- a/hub/imports/energy_systems/montreal_future_energy_systems_parameters.py +++ b/hub/imports/energy_systems/montreal_future_energy_systems_parameters.py @@ -187,8 +187,12 @@ class MontrealFutureEnergySystemParameters: _distribution_system.heat_losses = archetype_distribution_system.heat_losses _emission_system = None if archetype_distribution_system.emission_systems is not None: - _emission_system = EmissionSystem() - _distribution_system.emission_systems = [_emission_system] + _emission_systems = [] + for emission_system in archetype_distribution_system.emission_systems: + _emission_system = EmissionSystem() + _emission_system.parasitic_energy_consumption = emission_system.parasitic_energy_consumption + _emission_systems.append(_emission_system) + _distribution_system.emission_systems = _emission_systems _distribution_systems.append(_distribution_system) return _distribution_systems From 6d2bb98470f47eca00472fa4061eb2935ea299df Mon Sep 17 00:00:00 2001 From: guille Date: Thu, 4 Jul 2024 09:53:45 +0200 Subject: [PATCH 12/42] Correct bug in shadding object creation when no archetype available --- hub/city_model_structure/building_demand/internal_zone.py | 2 ++ hub/exports/building_energy/idf.py | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/hub/city_model_structure/building_demand/internal_zone.py b/hub/city_model_structure/building_demand/internal_zone.py index 8bf2c98b..77d524a7 100644 --- a/hub/city_model_structure/building_demand/internal_zone.py +++ b/hub/city_model_structure/building_demand/internal_zone.py @@ -132,6 +132,8 @@ class InternalZone: _thermal_boundary = ThermalBoundary(surface, surface.solid_polygon.area, windows_areas) surface.associated_thermal_boundaries = [_thermal_boundary] _thermal_boundaries.append(_thermal_boundary) + if self.thermal_archetype is None: + return None # there are no archetype _number_of_storeys = int(self.volume / self.area / self.thermal_archetype.average_storey_height) _thermal_zone = ThermalZone(_thermal_boundaries, self, self.volume, self.area, _number_of_storeys) for thermal_boundary in _thermal_zone.thermal_boundaries: diff --git a/hub/exports/building_energy/idf.py b/hub/exports/building_energy/idf.py index 55faa89c..3f713be3 100644 --- a/hub/exports/building_energy/idf.py +++ b/hub/exports/building_energy/idf.py @@ -513,7 +513,7 @@ class Idf: self._lod = self._city.level_of_detail.geometry for building in self._city.buildings: for internal_zone in building.internal_zones: - if internal_zone.thermal_zones_from_internal_zones is None or len(internal_zone.thermal_zones_from_internal_zones.thermal_boundaries) == 0: + if internal_zone.thermal_zones_from_internal_zones is None: self._add_shading(building) # if the building has not archetype use it as shadow object continue for thermal_zone in internal_zone.thermal_zones_from_internal_zones: From 3c5f1b735762c2cba97b2e7194ffcc36cceb1034 Mon Sep 17 00:00:00 2001 From: Guille Gutierrez Date: Thu, 4 Jul 2024 03:55:45 -0400 Subject: [PATCH 13/42] Update hub/version.py --- hub/version.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hub/version.py b/hub/version.py index 20664dd2..c13230ae 100644 --- a/hub/version.py +++ b/hub/version.py @@ -1,4 +1,4 @@ """ Hub version number """ -__version__ = '0.2.0.5' +__version__ = '0.2.0.6' From 446c7fa4ce357280541da8eba65316d8e49168e6 Mon Sep 17 00:00:00 2001 From: guille Date: Wed, 10 Jul 2024 07:39:53 +0200 Subject: [PATCH 14/42] Correct correct shadding object selection and idd file --- hub/exports/building_energy/idf.py | 2 +- hub/exports/building_energy/idf_files/Energy+.idd | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/hub/exports/building_energy/idf.py b/hub/exports/building_energy/idf.py index 3f713be3..5641a600 100644 --- a/hub/exports/building_energy/idf.py +++ b/hub/exports/building_energy/idf.py @@ -514,7 +514,7 @@ class Idf: for building in self._city.buildings: for internal_zone in building.internal_zones: if internal_zone.thermal_zones_from_internal_zones is None: - self._add_shading(building) # if the building has not archetype use it as shadow object + self._add_shading(building) # if the building has no archetype use it as shadow object continue for thermal_zone in internal_zone.thermal_zones_from_internal_zones: for thermal_boundary in thermal_zone.thermal_boundaries: diff --git a/hub/exports/building_energy/idf_files/Energy+.idd b/hub/exports/building_energy/idf_files/Energy+.idd index 40da6796..95d10597 100644 --- a/hub/exports/building_energy/idf_files/Energy+.idd +++ b/hub/exports/building_energy/idf_files/Energy+.idd @@ -1,4 +1,4 @@ -!IDD_Version 23.2.0 +!IDD_Version 24.1.0 !IDD_BUILD 7636e6b3e9 ! *************************************************************************** ! This file is the Input Data Dictionary (IDD) for EnergyPlus. @@ -30002,10 +30002,10 @@ People, A7 , \field Mean Radiant Temperature Calculation Type \note optional (only required for thermal comfort runs) \type choice - \key ZoneAveraged + \key EnclosureAveraged \key SurfaceWeighted \key AngleFactor - \default ZoneAveraged + \default EnclosureAveraged A8 , \field Surface Name/Angle Factor List Name \type object-list \object-list AllHeatTranAngFacNames From 998df80b63da033b47a37c0ecc2b9161ad7bfac6 Mon Sep 17 00:00:00 2001 From: guille Date: Wed, 10 Jul 2024 11:55:13 +0200 Subject: [PATCH 15/42] Correct shading object selection and idd file --- hub/exports/building_energy/idf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hub/exports/building_energy/idf.py b/hub/exports/building_energy/idf.py index 5641a600..3480d803 100644 --- a/hub/exports/building_energy/idf.py +++ b/hub/exports/building_energy/idf.py @@ -514,7 +514,7 @@ class Idf: for building in self._city.buildings: for internal_zone in building.internal_zones: if internal_zone.thermal_zones_from_internal_zones is None: - self._add_shading(building) # if the building has no archetype use it as shadow object + self._target_buildings.remove(building.name) continue for thermal_zone in internal_zone.thermal_zones_from_internal_zones: for thermal_boundary in thermal_zone.thermal_boundaries: From db371aecf3448c53f473807015e6adc64499c80d Mon Sep 17 00:00:00 2001 From: Guille Gutierrez Date: Wed, 10 Jul 2024 05:57:01 -0400 Subject: [PATCH 16/42] Update hub/version.py --- hub/version.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hub/version.py b/hub/version.py index c13230ae..c7ac3f15 100644 --- a/hub/version.py +++ b/hub/version.py @@ -1,4 +1,4 @@ """ Hub version number """ -__version__ = '0.2.0.6' +__version__ = '0.2.0.7' From abc3fc48dd8ec25176c19014db0363102d72633a Mon Sep 17 00:00:00 2001 From: guille Date: Tue, 16 Jul 2024 07:24:22 +0200 Subject: [PATCH 17/42] Add type to constructions to avoid collisions in constructions names --- hub/exports/building_energy/idf.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/hub/exports/building_energy/idf.py b/hub/exports/building_energy/idf.py index 3480d803..d01ab391 100644 --- a/hub/exports/building_energy/idf.py +++ b/hub/exports/building_energy/idf.py @@ -321,7 +321,7 @@ class Idf: if construction.Name == vegetation_name: return else: - if construction.Name == thermal_boundary.construction_name: + if construction.Name == f'{thermal_boundary.construction_name} {thermal_boundary.parent_surface.type}': return if thermal_boundary.layers is None: for material in self._idf.idfobjects[self._MATERIAL]: @@ -340,7 +340,8 @@ class Idf: for i in range(0, len(layers) - 1): _kwargs[f'Layer_{i + 2}'] = layers[i].material_name else: - _kwargs = {'Name': thermal_boundary.construction_name, 'Outside_Layer': layers[0].material_name} + _kwargs = {'Name': f'{thermal_boundary.construction_name} {thermal_boundary.parent_surface.type}', + 'Outside_Layer': layers[0].material_name} for i in range(1, len(layers) - 1): _kwargs[f'Layer_{i + 1}'] = layers[i].material_name self._idf.newidfobject(self._CONSTRUCTION, **_kwargs) @@ -717,7 +718,7 @@ class Idf: if boundary.parent_surface.vegetation is not None: construction_name = f'{boundary.construction_name}_{boundary.parent_surface.vegetation.name}' else: - construction_name = boundary.construction_name + construction_name = f'{boundary.construction_name} {boundary.parent_surface.type}' _kwargs['Construction_Name'] = construction_name surface = self._idf.newidfobject(self._SURFACE, **_kwargs) From ee846a622541a39adfeed6d46aec4b2b9c4b1576 Mon Sep 17 00:00:00 2001 From: Guille Gutierrez Date: Tue, 16 Jul 2024 01:25:01 -0400 Subject: [PATCH 18/42] Update hub/version.py --- hub/version.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hub/version.py b/hub/version.py index c7ac3f15..e12713d6 100644 --- a/hub/version.py +++ b/hub/version.py @@ -1,4 +1,4 @@ """ Hub version number """ -__version__ = '0.2.0.7' +__version__ = '0.2.0.8' From 4a01ac51d8f97dbfc74e018ede8da972f0257723 Mon Sep 17 00:00:00 2001 From: guille Date: Thu, 25 Jul 2024 18:10:51 +0200 Subject: [PATCH 19/42] Remove the building from the targets if needed --- hub/exports/building_energy/idf.py | 47 ++++++++++++++++++------------ 1 file changed, 29 insertions(+), 18 deletions(-) diff --git a/hub/exports/building_energy/idf.py b/hub/exports/building_energy/idf.py index d01ab391..93b03cdf 100644 --- a/hub/exports/building_energy/idf.py +++ b/hub/exports/building_energy/idf.py @@ -7,6 +7,9 @@ Code contributors: Pilar Monsalvete Alvarez de Uribarri pilar.monsalvete@concord Oriol Gavalda Torrellas oriol.gavalda@concordia.ca """ import copy +import datetime +import glob +import os from pathlib import Path from geomeppy import IDF import hub.helpers.constants as cte @@ -275,11 +278,12 @@ class Idf: _kwargs[f'Field_{counter + 2}'] = 'Until: 24:00,0.0' self._idf.newidfobject(self._COMPACT_SCHEDULE, **_kwargs) - def _write_schedules_file(self, usage, schedule): - file_name = str((Path(self._output_path) / f'{schedule.type} schedules {usage}.csv').resolve()) - with open(file_name, 'w', encoding='utf8') as file: - for value in schedule.values: - file.write(f'{str(value)},\n') + def _write_schedules_file(self, schedule, usage): + file_name = str((Path(self._output_path) / f'{schedule.type} schedules {usage.replace("/","_")}.csv').resolve()) + if not Path(file_name).exists(): + with open(file_name, 'w', encoding='utf8') as file: + for value in schedule.values: + file.write(f'{str(value)},\n') return Path(file_name).name def _add_file_schedule(self, usage, schedule, file_name): @@ -304,7 +308,7 @@ class Idf: for schedule in self._idf.idfobjects[self._FILE_SCHEDULE]: if schedule.Name == f'{schedule_type} schedules {usage}': return - file_name = self._write_schedules_file(usage, new_schedules[0]) + file_name = self._write_schedules_file(new_schedules[0], usage) self._add_file_schedule(usage, new_schedules[0], file_name) return @@ -471,7 +475,7 @@ class Idf: Air_Changes_per_Hour=_air_change ) - def _add_dhw(self, thermal_zone, zone_name): + def _add_dhw(self, thermal_zone, zone_name, usage): peak_flow_rate = thermal_zone.domestic_hot_water.peak_flow * thermal_zone.total_floor_area self._idf.newidfobject(self._DHW, Name=f'DHW {zone_name}', @@ -479,7 +483,7 @@ class Idf: Flow_Rate_Fraction_Schedule_Name=f'DHW_prof schedules {thermal_zone.usage_name}', Target_Temperature_Schedule_Name=f'DHW_temp schedules {thermal_zone.usage_name}', Hot_Water_Supply_Temperature_Schedule_Name=f'DHW_temp schedules {thermal_zone.usage_name}', - Cold_Water_Supply_Temperature_Schedule_Name=f'cold_temp schedules {zone_name}', + Cold_Water_Supply_Temperature_Schedule_Name=f'cold_temp schedules {usage}', EndUse_Subcategory=f'DHW {zone_name}', Zone_Name=zone_name ) @@ -513,19 +517,25 @@ class Idf: self._rename_building(self._city.name) self._lod = self._city.level_of_detail.geometry for building in self._city.buildings: + is_target = building.name in self._target_buildings or building.name in self._adjacent_buildings for internal_zone in building.internal_zones: if internal_zone.thermal_zones_from_internal_zones is None: - self._target_buildings.remove(building.name) + self._target_buildings.remoidf_surface_typeve(building.name) + is_target = False continue for thermal_zone in internal_zone.thermal_zones_from_internal_zones: + for thermal_boundary in thermal_zone.thermal_boundaries: self._add_construction(thermal_boundary) if thermal_boundary.parent_surface.vegetation is not None: self._add_vegetation_material(thermal_boundary.parent_surface.vegetation) for thermal_opening in thermal_boundary.thermal_openings: self._add_window_construction_and_material(thermal_opening) - usage = thermal_zone.usage_name - if building.name in self._target_buildings or building.name in self._adjacent_buildings: + + if is_target: + start = datetime.datetime.now() + service_temperature = thermal_zone.domestic_hot_water.service_temperature + usage = thermal_zone.usage_name _new_schedules = self._create_infiltration_schedules(thermal_zone) self._add_schedules(usage, 'Infiltration', _new_schedules) _new_schedules = self._create_ventilation_schedules(thermal_zone) @@ -537,11 +547,10 @@ class Idf: self._add_schedules(usage, 'Lighting', thermal_zone.lighting.schedules) self._add_schedules(usage, 'Appliance', thermal_zone.appliances.schedules) self._add_schedules(usage, 'DHW_prof', thermal_zone.domestic_hot_water.schedules) - _new_schedules = self._create_yearly_values_schedules('cold_temp', - building.cold_water_temperature[cte.HOUR]) - self._add_schedules(building.name, 'cold_temp', _new_schedules) - value = thermal_zone.domestic_hot_water.service_temperature - _new_schedules = self._create_constant_value_schedules('DHW_temp', value) + _new_schedules = self._create_yearly_values_schedules('cold_temp', building.cold_water_temperature[cte.HOUR]) + self._add_schedules(usage, 'cold_temp', _new_schedules) + + _new_schedules = self._create_constant_value_schedules('DHW_temp', service_temperature) self._add_schedules(usage, 'DHW_temp', _new_schedules) _occ = thermal_zone.occupancy if _occ.occupancy_density == 0: @@ -558,11 +567,13 @@ class Idf: self._add_occupancy(thermal_zone, building.name) self._add_lighting(thermal_zone, building.name) self._add_appliances(thermal_zone, building.name) - self._add_dhw(thermal_zone, building.name) + self._add_dhw(thermal_zone, building.name, usage) if self._export_type == "Surfaces": - if building.name in self._target_buildings or building.name in self._adjacent_buildings: + if is_target: if building.thermal_zones_from_internal_zones is not None: + start = datetime.datetime.now() self._add_surfaces(building, building.name) + print(f'add surfaces {datetime.datetime.now() - start}') else: self._add_pure_geometry(building, building.name) else: From ace666553a98f3224b682d0b0b6759695c2ac298 Mon Sep 17 00:00:00 2001 From: connor Date: Fri, 30 Aug 2024 18:01:26 -0400 Subject: [PATCH 20/42] Add version number to numpy --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 92ae9b19..8a9cecfc 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,5 @@ xmltodict -numpy +numpy==1.26.4 trimesh[all] pyproj pandas From 8a681185032e9aaf3b12cb12bef82e7b4221db45 Mon Sep 17 00:00:00 2001 From: s_ranjbar Date: Mon, 9 Sep 2024 11:11:33 -0400 Subject: [PATCH 21/42] fix: small bugs in the irradiance units were fixed. --- hub/city_model_structure/building_demand/surface.py | 8 ++++---- hub/imports/results/simplified_radiosity_algorithm.py | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/hub/city_model_structure/building_demand/surface.py b/hub/city_model_structure/building_demand/surface.py index a500c73a..c67b157c 100644 --- a/hub/city_model_structure/building_demand/surface.py +++ b/hub/city_model_structure/building_demand/surface.py @@ -180,7 +180,7 @@ class Surface: @property def global_irradiance(self) -> dict: """ - Get global irradiance on surface in J/m2 + Get global irradiance on surface in W/m2 :return: dict """ return self._global_irradiance @@ -188,7 +188,7 @@ class Surface: @global_irradiance.setter def global_irradiance(self, value): """ - Set global irradiance on surface in J/m2 + Set global irradiance on surface in W/m2 :param value: dict """ self._global_irradiance = value @@ -390,7 +390,7 @@ class Surface: @property def global_irradiance_tilted(self) -> dict: """ - Get global irradiance on a tilted surface in J/m2 + Get global irradiance on a tilted surface in W/m2 :return: dict """ return self._global_irradiance_tilted @@ -398,7 +398,7 @@ class Surface: @global_irradiance_tilted.setter def global_irradiance_tilted(self, value): """ - Set global irradiance on a tilted surface in J/m2 + Set global irradiance on a tilted surface in W/m2 :param value: dict """ self._global_irradiance_tilted = value diff --git a/hub/imports/results/simplified_radiosity_algorithm.py b/hub/imports/results/simplified_radiosity_algorithm.py index 3824e7ce..9b09b5f8 100644 --- a/hub/imports/results/simplified_radiosity_algorithm.py +++ b/hub/imports/results/simplified_radiosity_algorithm.py @@ -34,7 +34,7 @@ class SimplifiedRadiosityAlgorithm: for key in self._results: _irradiance = {} header_name = key.split(':') - result = [x * cte.WATTS_HOUR_TO_JULES for x in self._results[key]] + result = [x for x in self._results[key]] city_object_name = header_name[1] building = self._city.city_object(city_object_name) surface_id = header_name[2] From 725746fbcbaa16aecc731300dc9120f36b40eb97 Mon Sep 17 00:00:00 2001 From: ogavalda <33801000+ogavalda@users.noreply.github.com> Date: Sun, 15 Sep 2024 09:44:07 -0400 Subject: [PATCH 22/42] Changes in infiltration profiles and the source of values for infiltration --- .../building_demand/thermal_archetype.py | 32 + .../building_demand/thermal_zone.py | 20 + hub/data/construction/nrcan_archetypes.json | 4442 ++++++++++++++--- hub/exports/building_energy/idf.py | 24 +- 4 files changed, 3732 insertions(+), 786 deletions(-) diff --git a/hub/city_model_structure/building_demand/thermal_archetype.py b/hub/city_model_structure/building_demand/thermal_archetype.py index cd70912a..bbe9d428 100644 --- a/hub/city_model_structure/building_demand/thermal_archetype.py +++ b/hub/city_model_structure/building_demand/thermal_archetype.py @@ -132,3 +132,35 @@ class ThermalArchetype: :param value: float """ self._infiltration_rate_for_ventilation_system_on = value + + @property + def infiltration_rate_area_for_ventilation_system_off(self): + """ + Get infiltration rate for ventilation system off in l/s/m2 + :return: float + """ + return self._infiltration_rate_for_ventilation_system_off + + @infiltration_rate_area_for_ventilation_system_off.setter + def infiltration_rate_area_for_ventilation_system_off(self, value): + """ + Set infiltration rate for ventilation system off in l/s/m2 + :param value: float + """ + self._infiltration_rate_for_ventilation_system_off = value + + @property + def infiltration_rate_area_for_ventilation_system_on(self): + """ + Get infiltration rate for ventilation system on in l/s/m2 + :return: float + """ + return self._infiltration_rate_for_ventilation_system_on + + @infiltration_rate_area_for_ventilation_system_on.setter + def infiltration_rate_area_for_ventilation_system_on(self, value): + """ + Set infiltration rate for ventilation system on in l/s/m2 + :param value: float + """ + self._infiltration_rate_for_ventilation_system_on = value diff --git a/hub/city_model_structure/building_demand/thermal_zone.py b/hub/city_model_structure/building_demand/thermal_zone.py index 386e8c4b..60d4907c 100644 --- a/hub/city_model_structure/building_demand/thermal_zone.py +++ b/hub/city_model_structure/building_demand/thermal_zone.py @@ -44,6 +44,8 @@ class ThermalZone: self._indirectly_heated_area_ratio = None self._infiltration_rate_system_on = None self._infiltration_rate_system_off = None + self._infiltration_rate_area_system_on = None + self._infiltration_rate_area_system_off = None self._volume = volume self._ordinate_number = None self._view_factors_matrix = None @@ -166,6 +168,24 @@ class ThermalZone: self._infiltration_rate_system_off = self._parent_internal_zone.thermal_archetype.infiltration_rate_for_ventilation_system_off return self._infiltration_rate_system_off + @property + def infiltration_rate_area_system_on(self): + """ + Get thermal zone infiltration rate system on in air changes per second (1/s) + :return: None or float + """ + self._infiltration_rate_area_system_on = self._parent_internal_zone.thermal_archetype.infiltration_rate_area_for_ventilation_system_on + return self._infiltration_rate_area_system_on + + @property + def infiltration_rate_area_system_off(self): + """ + Get thermal zone infiltration rate system off in air changes per second (1/s) + :return: None or float + """ + self._infiltration_rate_area_system_off = self._parent_internal_zone.thermal_archetype.infiltration_rate_area_for_ventilation_system_off + return self._infiltration_rate_area_system_off + @property def volume(self): """ diff --git a/hub/data/construction/nrcan_archetypes.json b/hub/data/construction/nrcan_archetypes.json index 30b7d661..3ed7d6a4 100644 --- a/hub/data/construction/nrcan_archetypes.json +++ b/hub/data/construction/nrcan_archetypes.json @@ -9,6 +9,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_4", @@ -53,6 +55,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_5", @@ -97,6 +101,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_6", @@ -141,6 +147,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_7A", @@ -185,6 +193,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_7B", @@ -229,6 +239,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_8", @@ -273,6 +285,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_4", @@ -317,6 +331,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_5", @@ -361,6 +377,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_6", @@ -405,6 +423,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_7A", @@ -449,6 +469,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_7B", @@ -493,6 +515,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_8", @@ -537,6 +561,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_4", @@ -581,6 +607,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_5", @@ -625,6 +653,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_6", @@ -669,6 +699,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_7A", @@ -713,6 +745,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_7B", @@ -757,6 +791,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_8", @@ -800,7 +836,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_4", @@ -844,7 +882,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_5", @@ -888,7 +928,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_6", @@ -932,7 +974,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_7A", @@ -976,7 +1020,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_7B", @@ -1020,7 +1066,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_8", @@ -1064,7 +1112,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_4", @@ -1108,7 +1158,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_5", @@ -1152,7 +1204,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_6", @@ -1196,7 +1250,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_7A", @@ -1240,7 +1296,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_7B", @@ -1284,7 +1342,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_8", @@ -1328,7 +1388,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_4", @@ -1372,7 +1434,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_5", @@ -1416,7 +1480,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_6", @@ -1460,7 +1526,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_7A", @@ -1504,7 +1572,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_7B", @@ -1548,7 +1618,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_8", @@ -1593,6 +1665,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_4", @@ -1637,6 +1711,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_5", @@ -1681,6 +1757,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_6", @@ -1725,6 +1803,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_7A", @@ -1769,6 +1849,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_7B", @@ -1813,6 +1895,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_8", @@ -1856,7 +1940,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_4", @@ -1900,7 +1986,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_5", @@ -1944,7 +2032,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_6", @@ -1988,7 +2078,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_7A", @@ -2032,7 +2124,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_7B", @@ -2076,7 +2170,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_8", @@ -2121,6 +2217,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_4", @@ -2165,6 +2263,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_5", @@ -2209,6 +2309,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_6", @@ -2253,6 +2355,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_7A", @@ -2297,6 +2401,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_7B", @@ -2341,6 +2447,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_8", @@ -2385,6 +2493,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_4", @@ -2429,6 +2539,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_5", @@ -2473,6 +2585,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_6", @@ -2517,6 +2631,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_7A", @@ -2561,6 +2677,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_7B", @@ -2605,6 +2723,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_8", @@ -2648,7 +2768,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_4", @@ -2692,7 +2814,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_5", @@ -2736,7 +2860,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_6", @@ -2780,7 +2906,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_7A", @@ -2824,7 +2952,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_7B", @@ -2868,7 +2998,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_8", @@ -2912,7 +3044,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_4", @@ -2956,7 +3090,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_5", @@ -3000,7 +3136,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_6", @@ -3044,7 +3182,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_7A", @@ -3088,7 +3228,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_7B", @@ -3132,7 +3274,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_8", @@ -3176,7 +3320,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_4", @@ -3220,7 +3366,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_5", @@ -3264,7 +3412,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_6", @@ -3308,7 +3458,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_7A", @@ -3352,7 +3504,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_7B", @@ -3396,7 +3550,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_8", @@ -3440,7 +3596,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_4", @@ -3484,7 +3642,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_5", @@ -3528,7 +3688,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_6", @@ -3572,7 +3734,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_7A", @@ -3616,7 +3780,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_7B", @@ -3660,7 +3826,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_8", @@ -3704,7 +3872,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_4", @@ -3748,7 +3918,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_5", @@ -3792,7 +3964,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_6", @@ -3836,7 +4010,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_7A", @@ -3880,7 +4056,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_7B", @@ -3924,7 +4102,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_8", @@ -3969,6 +4149,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_4", @@ -4013,6 +4195,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_5", @@ -4057,6 +4241,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_6", @@ -4101,6 +4287,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_7A", @@ -4145,6 +4333,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_7B", @@ -4189,6 +4379,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_8", @@ -4233,6 +4425,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_4", @@ -4276,7 +4470,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_for_ventilation_system_off": 1.13 , + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_5", @@ -4321,6 +4517,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_6", @@ -4365,6 +4563,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_7A", @@ -4409,6 +4609,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_7B", @@ -4453,6 +4655,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_8", @@ -4497,6 +4701,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_4", @@ -4541,6 +4747,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_5", @@ -4585,6 +4793,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_6", @@ -4629,6 +4839,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_7A", @@ -4673,6 +4885,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_7B", @@ -4717,6 +4931,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_8", @@ -4761,6 +4977,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_4", @@ -4805,6 +5023,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_5", @@ -4849,6 +5069,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_6", @@ -4893,6 +5115,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_7A", @@ -4937,6 +5161,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_7B", @@ -4981,6 +5207,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_8", @@ -5024,7 +5252,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_4", @@ -5068,7 +5298,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_5", @@ -5112,7 +5344,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_6", @@ -5156,7 +5390,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_7A", @@ -5200,7 +5436,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_7B", @@ -5244,7 +5482,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_8", @@ -5288,7 +5528,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_4", @@ -5332,7 +5574,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_5", @@ -5376,7 +5620,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_6", @@ -5420,7 +5666,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_7A", @@ -5464,7 +5712,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_7B", @@ -5508,7 +5758,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_8", @@ -5553,6 +5805,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_4", @@ -5597,6 +5851,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_5", @@ -5641,6 +5897,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_6", @@ -5685,6 +5943,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_7A", @@ -5729,6 +5989,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_7B", @@ -5773,6 +6035,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_8", @@ -5816,7 +6080,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_4", @@ -5860,7 +6126,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_5", @@ -5904,7 +6172,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_6", @@ -5948,7 +6218,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_7A", @@ -5992,7 +6264,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_7B", @@ -6036,7 +6310,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_8", @@ -6081,6 +6357,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_4", @@ -6125,6 +6403,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_5", @@ -6169,6 +6449,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_6", @@ -6213,6 +6495,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_7A", @@ -6257,6 +6541,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_7B", @@ -6301,6 +6587,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_8", @@ -6345,6 +6633,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_4", @@ -6389,6 +6679,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_5", @@ -6433,6 +6725,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_6", @@ -6477,6 +6771,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_7A", @@ -6521,6 +6817,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_7B", @@ -6565,6 +6863,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_8", @@ -6608,7 +6908,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_4", @@ -6652,7 +6954,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_5", @@ -6696,7 +7000,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_6", @@ -6740,7 +7046,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_7A", @@ -6784,7 +7092,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_7B", @@ -6828,7 +7138,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_8", @@ -6872,7 +7184,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_4", @@ -6916,7 +7230,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_5", @@ -6960,7 +7276,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_6", @@ -7004,7 +7322,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_7A", @@ -7048,7 +7368,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_7B", @@ -7092,7 +7414,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_8", @@ -7136,7 +7460,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_4", @@ -7180,7 +7506,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_5", @@ -7224,7 +7552,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_6", @@ -7268,7 +7598,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_7A", @@ -7312,7 +7644,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_7B", @@ -7356,7 +7690,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_8", @@ -7400,7 +7736,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_4", @@ -7444,7 +7782,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_5", @@ -7488,7 +7828,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_6", @@ -7532,7 +7874,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_7A", @@ -7576,7 +7920,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_7B", @@ -7620,7 +7966,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_8", @@ -7664,7 +8012,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_4", @@ -7708,7 +8058,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_5", @@ -7752,7 +8104,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_6", @@ -7796,7 +8150,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_7A", @@ -7840,7 +8196,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_7B", @@ -7884,7 +8242,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_8", @@ -7929,6 +8289,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_4", @@ -7973,6 +8335,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_5", @@ -8017,6 +8381,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_6", @@ -8061,6 +8427,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_7A", @@ -8105,6 +8473,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_7B", @@ -8149,6 +8519,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_8", @@ -8193,6 +8565,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_4", @@ -8237,6 +8611,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_5", @@ -8281,6 +8657,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_6", @@ -8325,6 +8703,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_7A", @@ -8369,6 +8749,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_7B", @@ -8413,6 +8795,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_8", @@ -8457,6 +8841,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_4", @@ -8501,6 +8887,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_5", @@ -8545,6 +8933,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_6", @@ -8589,6 +8979,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_7A", @@ -8633,6 +9025,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_7B", @@ -8677,6 +9071,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_8", @@ -8721,6 +9117,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_4", @@ -8765,6 +9163,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_5", @@ -8809,6 +9209,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_6", @@ -8853,6 +9255,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_7A", @@ -8897,6 +9301,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_7B", @@ -8941,6 +9347,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_8", @@ -8984,7 +9392,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_4", @@ -9028,7 +9438,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_5", @@ -9072,7 +9484,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_6", @@ -9116,7 +9530,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_7A", @@ -9160,7 +9576,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_7B", @@ -9204,7 +9622,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_8", @@ -9248,7 +9668,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_4", @@ -9292,7 +9714,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_5", @@ -9336,7 +9760,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_6", @@ -9380,7 +9806,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_7A", @@ -9424,7 +9852,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_7B", @@ -9468,7 +9898,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_8", @@ -9513,6 +9945,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_4", @@ -9557,6 +9991,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_5", @@ -9601,6 +10037,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_6", @@ -9645,6 +10083,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_7A", @@ -9689,6 +10129,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_7B", @@ -9733,6 +10175,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_8", @@ -9776,7 +10220,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_4", @@ -9820,7 +10266,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_5", @@ -9864,7 +10312,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_6", @@ -9908,7 +10358,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_7A", @@ -9952,7 +10404,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_7B", @@ -9996,7 +10450,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_8", @@ -10041,6 +10497,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_4", @@ -10085,6 +10543,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_5", @@ -10129,6 +10589,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_6", @@ -10173,6 +10635,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_7A", @@ -10217,6 +10681,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_7B", @@ -10261,6 +10727,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_8", @@ -10305,6 +10773,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_4", @@ -10349,6 +10819,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_5", @@ -10393,6 +10865,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_6", @@ -10437,6 +10911,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_7A", @@ -10481,6 +10957,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_7B", @@ -10525,6 +11003,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_8", @@ -10568,7 +11048,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_4", @@ -10612,7 +11094,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_5", @@ -10656,7 +11140,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_6", @@ -10700,7 +11186,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_7A", @@ -10744,7 +11232,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_7B", @@ -10788,7 +11278,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_8", @@ -10832,7 +11324,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_4", @@ -10876,7 +11370,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_5", @@ -10920,7 +11416,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_6", @@ -10964,7 +11462,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_7A", @@ -11008,7 +11508,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_7B", @@ -11052,7 +11554,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_8", @@ -11096,7 +11600,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_4", @@ -11140,7 +11646,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_5", @@ -11184,7 +11692,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_6", @@ -11228,7 +11738,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_7A", @@ -11272,7 +11784,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_7B", @@ -11316,7 +11830,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_8", @@ -11360,7 +11876,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_4", @@ -11404,7 +11922,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_5", @@ -11448,7 +11968,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_6", @@ -11492,7 +12014,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_7A", @@ -11536,7 +12060,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_7B", @@ -11580,7 +12106,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_8", @@ -11624,7 +12152,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_4", @@ -11668,7 +12198,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_5", @@ -11712,7 +12244,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_6", @@ -11756,7 +12290,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_7A", @@ -11800,7 +12336,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_7B", @@ -11844,7 +12382,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_8", @@ -11889,6 +12429,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_4", @@ -11933,6 +12475,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_5", @@ -11977,6 +12521,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_6", @@ -12021,6 +12567,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_7A", @@ -12065,6 +12613,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_7B", @@ -12109,6 +12659,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_8", @@ -12153,6 +12705,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_4", @@ -12197,6 +12751,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_5", @@ -12241,6 +12797,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_6", @@ -12285,6 +12843,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_7A", @@ -12329,6 +12889,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_7B", @@ -12373,6 +12935,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_8", @@ -12417,6 +12981,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_4", @@ -12461,6 +13027,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_5", @@ -12505,6 +13073,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_6", @@ -12549,6 +13119,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_7A", @@ -12593,6 +13165,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_7B", @@ -12637,6 +13211,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_8", @@ -12681,6 +13257,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_4", @@ -12725,6 +13303,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_5", @@ -12769,6 +13349,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_6", @@ -12813,6 +13395,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_7A", @@ -12857,6 +13441,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_7B", @@ -12901,6 +13487,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_8", @@ -12944,7 +13532,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_4", @@ -12988,7 +13578,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_5", @@ -13032,7 +13624,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_6", @@ -13076,7 +13670,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_7A", @@ -13120,7 +13716,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_7B", @@ -13164,7 +13762,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_8", @@ -13208,7 +13808,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_4", @@ -13252,7 +13854,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_5", @@ -13296,7 +13900,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_6", @@ -13340,7 +13946,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_7A", @@ -13384,7 +13992,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_7B", @@ -13428,7 +14038,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_8", @@ -13473,6 +14085,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_4", @@ -13517,6 +14131,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_5", @@ -13561,6 +14177,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_6", @@ -13605,6 +14223,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_7A", @@ -13649,6 +14269,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_7B", @@ -13693,6 +14315,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_8", @@ -13736,7 +14360,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_4", @@ -13780,7 +14406,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_5", @@ -13824,7 +14452,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_6", @@ -13868,7 +14498,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_7A", @@ -13912,7 +14544,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_7B", @@ -13956,7 +14590,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_8", @@ -14001,6 +14637,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_4", @@ -14045,6 +14683,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_5", @@ -14089,6 +14729,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_6", @@ -14133,6 +14775,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_7A", @@ -14177,6 +14821,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_7B", @@ -14221,6 +14867,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_8", @@ -14265,6 +14913,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_4", @@ -14309,6 +14959,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_5", @@ -14353,6 +15005,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_6", @@ -14397,6 +15051,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_7A", @@ -14441,6 +15097,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_7B", @@ -14485,6 +15143,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_8", @@ -14528,7 +15188,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_4", @@ -14572,7 +15234,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_5", @@ -14616,7 +15280,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_6", @@ -14660,7 +15326,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_7A", @@ -14704,7 +15372,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_7B", @@ -14748,7 +15418,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_8", @@ -14792,7 +15464,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_4", @@ -14836,7 +15510,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_5", @@ -14880,7 +15556,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_6", @@ -14924,7 +15602,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_7A", @@ -14968,7 +15648,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_7B", @@ -15012,7 +15694,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_8", @@ -15056,7 +15740,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_4", @@ -15100,7 +15786,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_5", @@ -15144,7 +15832,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_6", @@ -15188,7 +15878,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_7A", @@ -15232,7 +15924,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_7B", @@ -15276,7 +15970,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_8", @@ -15320,7 +16016,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_4", @@ -15364,7 +16062,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_5", @@ -15408,7 +16108,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_6", @@ -15452,7 +16154,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_7A", @@ -15496,7 +16200,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_7B", @@ -15540,7 +16246,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_8", @@ -15584,7 +16292,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_4", @@ -15628,7 +16338,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_5", @@ -15672,7 +16384,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_6", @@ -15716,7 +16430,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_7A", @@ -15760,7 +16476,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_7B", @@ -15804,7 +16522,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_8", @@ -15849,6 +16569,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_4", @@ -15893,6 +16615,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_5", @@ -15937,6 +16661,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_6", @@ -15981,6 +16707,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_7A", @@ -16025,6 +16753,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_7B", @@ -16069,6 +16799,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_8", @@ -16113,6 +16845,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_4", @@ -16157,6 +16891,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_5", @@ -16201,6 +16937,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_6", @@ -16245,6 +16983,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_7A", @@ -16289,6 +17029,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_7B", @@ -16333,6 +17075,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_8", @@ -16377,6 +17121,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_4", @@ -16421,6 +17167,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_5", @@ -16465,6 +17213,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_6", @@ -16509,6 +17259,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_7A", @@ -16553,6 +17305,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_7B", @@ -16597,6 +17351,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_8", @@ -16641,6 +17397,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_4", @@ -16685,6 +17443,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_5", @@ -16729,6 +17489,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_6", @@ -16773,6 +17535,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_7A", @@ -16817,6 +17581,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_7B", @@ -16861,6 +17627,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_8", @@ -16904,7 +17672,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_4", @@ -16948,7 +17718,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_5", @@ -16992,7 +17764,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_6", @@ -17036,7 +17810,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_7A", @@ -17080,7 +17856,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_7B", @@ -17124,7 +17902,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_8", @@ -17168,7 +17948,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_4", @@ -17212,7 +17994,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_5", @@ -17256,7 +18040,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_6", @@ -17300,7 +18086,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_7A", @@ -17344,7 +18132,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_7B", @@ -17388,7 +18178,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_8", @@ -17433,6 +18225,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_4", @@ -17477,6 +18271,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_5", @@ -17521,6 +18317,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_6", @@ -17565,6 +18363,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_7A", @@ -17609,6 +18409,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_7B", @@ -17653,6 +18455,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_8", @@ -17696,7 +18500,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_4", @@ -17740,7 +18546,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_5", @@ -17784,7 +18592,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_6", @@ -17828,7 +18638,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_7A", @@ -17872,7 +18684,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_7B", @@ -17916,7 +18730,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_8", @@ -17961,6 +18777,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_4", @@ -18005,6 +18823,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_5", @@ -18049,6 +18869,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_6", @@ -18093,6 +18915,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_7A", @@ -18137,6 +18961,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_7B", @@ -18181,6 +19007,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_8", @@ -18225,6 +19053,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_4", @@ -18269,6 +19099,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_5", @@ -18313,6 +19145,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_6", @@ -18357,6 +19191,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_7A", @@ -18401,6 +19237,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_7B", @@ -18445,6 +19283,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_8", @@ -18488,7 +19328,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_4", @@ -18532,7 +19374,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_5", @@ -18576,7 +19420,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_6", @@ -18620,7 +19466,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_7A", @@ -18664,7 +19512,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_7B", @@ -18708,7 +19558,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_8", @@ -18752,7 +19604,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_4", @@ -18796,7 +19650,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_5", @@ -18840,7 +19696,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_6", @@ -18884,7 +19742,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_7A", @@ -18928,7 +19788,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_7B", @@ -18972,7 +19834,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_8", @@ -19016,7 +19880,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_4", @@ -19060,7 +19926,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_5", @@ -19104,7 +19972,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_6", @@ -19148,7 +20018,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_7A", @@ -19192,7 +20064,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_7B", @@ -19236,7 +20110,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_8", @@ -19280,7 +20156,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_4", @@ -19324,7 +20202,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_5", @@ -19368,7 +20248,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_6", @@ -19412,7 +20294,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_7A", @@ -19456,7 +20340,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_7B", @@ -19500,7 +20386,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_8", @@ -19544,7 +20432,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_4", @@ -19588,7 +20478,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_5", @@ -19632,7 +20524,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_6", @@ -19676,7 +20570,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_7A", @@ -19720,7 +20616,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_7B", @@ -19764,7 +20662,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_8", @@ -19809,6 +20709,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_4", @@ -19853,6 +20755,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_5", @@ -19897,6 +20801,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_6", @@ -19941,6 +20847,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_7A", @@ -19985,6 +20893,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_7B", @@ -20029,6 +20939,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_8", @@ -20073,6 +20985,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_4", @@ -20117,6 +21031,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_5", @@ -20161,6 +21077,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_6", @@ -20205,6 +21123,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_7A", @@ -20249,6 +21169,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_7B", @@ -20293,6 +21215,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_8", @@ -20337,6 +21261,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_4", @@ -20381,6 +21307,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_5", @@ -20425,6 +21353,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_6", @@ -20469,6 +21399,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_7A", @@ -20513,6 +21445,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_7B", @@ -20557,6 +21491,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_8", @@ -20601,6 +21537,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_4", @@ -20645,6 +21583,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_5", @@ -20689,6 +21629,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_6", @@ -20733,6 +21675,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_7A", @@ -20777,6 +21721,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_7B", @@ -20821,6 +21767,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_8", @@ -20864,7 +21812,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_4", @@ -20908,7 +21858,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_5", @@ -20952,7 +21904,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_6", @@ -20996,7 +21950,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_7A", @@ -21040,7 +21996,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_7B", @@ -21084,7 +22042,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_8", @@ -21128,7 +22088,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_4", @@ -21172,7 +22134,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_5", @@ -21216,7 +22180,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_6", @@ -21260,7 +22226,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_7A", @@ -21304,7 +22272,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_7B", @@ -21348,7 +22318,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_8", @@ -21393,6 +22365,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_4", @@ -21437,6 +22411,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_5", @@ -21481,6 +22457,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_6", @@ -21525,6 +22503,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_7A", @@ -21569,6 +22549,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_7B", @@ -21613,6 +22595,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_8", @@ -21656,7 +22640,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_4", @@ -21700,7 +22686,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_5", @@ -21744,7 +22732,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_6", @@ -21788,7 +22778,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_7A", @@ -21832,7 +22824,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_7B", @@ -21876,7 +22870,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_8", @@ -21921,6 +22917,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_4", @@ -21965,6 +22963,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_5", @@ -22009,6 +23009,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_6", @@ -22053,6 +23055,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_7A", @@ -22097,6 +23101,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_7B", @@ -22141,6 +23147,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_8", @@ -22185,6 +23193,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_4", @@ -22229,6 +23239,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_5", @@ -22273,6 +23285,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_6", @@ -22317,6 +23331,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_7A", @@ -22361,6 +23377,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_7B", @@ -22405,6 +23423,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_8", @@ -22448,7 +23468,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_4", @@ -22492,7 +23514,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_5", @@ -22536,7 +23560,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_6", @@ -22580,7 +23606,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_7A", @@ -22624,7 +23652,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_7B", @@ -22668,7 +23698,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_8", @@ -22712,7 +23744,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_4", @@ -22756,7 +23790,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_5", @@ -22800,7 +23836,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_6", @@ -22844,7 +23882,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_7A", @@ -22888,7 +23928,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_7B", @@ -22932,7 +23974,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_8", @@ -22976,7 +24020,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_4", @@ -23020,7 +24066,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_5", @@ -23064,7 +24112,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_6", @@ -23108,7 +24158,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_7A", @@ -23152,7 +24204,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_7B", @@ -23196,7 +24250,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_8", @@ -23240,7 +24296,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_4", @@ -23284,7 +24342,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_5", @@ -23328,7 +24388,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_6", @@ -23372,7 +24434,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_7A", @@ -23416,7 +24480,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_7B", @@ -23460,7 +24526,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_8", @@ -23504,7 +24572,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_4", @@ -23548,7 +24618,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_5", @@ -23592,7 +24664,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_6", @@ -23636,7 +24710,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_7A", @@ -23680,7 +24756,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_7B", @@ -23724,7 +24802,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_8", @@ -23769,6 +24849,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_4", @@ -23813,6 +24895,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_5", @@ -23857,6 +24941,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_6", @@ -23901,6 +24987,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_7A", @@ -23945,6 +25033,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_7B", @@ -23989,6 +25079,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_8", @@ -24033,6 +25125,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_4", @@ -24077,6 +25171,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_5", @@ -24121,6 +25217,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_6", @@ -24165,6 +25263,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_7A", @@ -24209,6 +25309,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_7B", @@ -24253,6 +25355,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_8", @@ -24297,6 +25401,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_4", @@ -24341,6 +25447,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_5", @@ -24385,6 +25493,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_6", @@ -24429,6 +25539,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_7A", @@ -24473,6 +25585,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_7B", @@ -24517,6 +25631,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_8", @@ -24561,6 +25677,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_4", @@ -24605,6 +25723,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_5", @@ -24649,6 +25769,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_6", @@ -24693,6 +25815,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_7A", @@ -24737,6 +25861,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_7B", @@ -24781,6 +25907,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_8", @@ -24824,7 +25952,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_4", @@ -24868,7 +25998,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_5", @@ -24912,7 +26044,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_6", @@ -24956,7 +26090,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_7A", @@ -25000,7 +26136,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_7B", @@ -25044,7 +26182,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_8", @@ -25088,7 +26228,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_4", @@ -25132,7 +26274,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_5", @@ -25176,7 +26320,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_6", @@ -25220,7 +26366,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_7A", @@ -25264,7 +26412,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_7B", @@ -25308,7 +26458,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_8", @@ -25353,6 +26505,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_4", @@ -25397,6 +26551,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_5", @@ -25441,6 +26597,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_6", @@ -25485,6 +26643,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_7A", @@ -25529,6 +26689,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_7B", @@ -25573,6 +26735,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_8", @@ -25616,7 +26780,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_4", @@ -25660,7 +26826,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_5", @@ -25704,7 +26872,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_6", @@ -25748,7 +26918,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_7A", @@ -25792,7 +26964,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_7B", @@ -25836,7 +27010,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_8", @@ -25881,6 +27057,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_4", @@ -25925,6 +27103,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_5", @@ -25969,6 +27149,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_6", @@ -26013,6 +27195,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_7A", @@ -26057,6 +27241,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_7B", @@ -26101,6 +27287,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_8", @@ -26145,6 +27333,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_4", @@ -26189,6 +27379,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_5", @@ -26233,6 +27425,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_6", @@ -26277,6 +27471,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_7A", @@ -26321,6 +27517,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_7B", @@ -26365,6 +27563,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_8", @@ -26408,7 +27608,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_4", @@ -26452,7 +27654,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_5", @@ -26496,7 +27700,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_6", @@ -26540,7 +27746,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_7A", @@ -26584,7 +27792,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_7B", @@ -26628,7 +27838,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_8", @@ -26672,7 +27884,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_4", @@ -26716,7 +27930,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_5", @@ -26760,7 +27976,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_6", @@ -26804,7 +28022,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_7A", @@ -26848,7 +28068,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_7B", @@ -26892,7 +28114,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_8", @@ -26936,7 +28160,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_4", @@ -26980,7 +28206,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_5", @@ -27024,7 +28252,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_6", @@ -27068,7 +28298,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_7A", @@ -27112,7 +28344,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_7B", @@ -27156,7 +28390,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_8", @@ -27200,7 +28436,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_4", @@ -27244,7 +28482,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_5", @@ -27288,7 +28528,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_6", @@ -27332,7 +28574,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_7A", @@ -27376,7 +28620,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_7B", @@ -27420,7 +28666,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_8", @@ -27464,7 +28712,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_4", @@ -27508,7 +28758,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_5", @@ -27552,7 +28804,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_6", @@ -27596,7 +28850,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_7A", @@ -27640,7 +28896,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_7B", @@ -27684,7 +28942,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_8", @@ -27729,6 +28989,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_4", @@ -27773,6 +29035,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_5", @@ -27817,6 +29081,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_6", @@ -27861,6 +29127,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_7A", @@ -27905,6 +29173,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_7B", @@ -27949,6 +29219,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_8", @@ -27993,6 +29265,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_4", @@ -28037,6 +29311,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_5", @@ -28081,6 +29357,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_6", @@ -28125,6 +29403,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_7A", @@ -28169,6 +29449,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_7B", @@ -28213,6 +29495,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_8", @@ -28257,6 +29541,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_4", @@ -28301,6 +29587,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_5", @@ -28345,6 +29633,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_6", @@ -28389,6 +29679,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_7A", @@ -28433,6 +29725,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_7B", @@ -28477,6 +29771,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_8", @@ -28521,6 +29817,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_4", @@ -28565,6 +29863,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_5", @@ -28609,6 +29909,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_6", @@ -28653,6 +29955,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_7A", @@ -28697,6 +30001,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_7B", @@ -28741,6 +30047,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_8", @@ -28784,7 +30092,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_4", @@ -28828,7 +30138,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_5", @@ -28872,7 +30184,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_6", @@ -28916,7 +30230,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_7A", @@ -28960,7 +30276,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_7B", @@ -29004,7 +30322,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_8", @@ -29048,7 +30368,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_4", @@ -29092,7 +30414,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_5", @@ -29136,7 +30460,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_6", @@ -29180,7 +30506,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_7A", @@ -29224,7 +30552,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_7B", @@ -29268,7 +30598,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_8", @@ -29313,6 +30645,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_4", @@ -29357,6 +30691,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_5", @@ -29401,6 +30737,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_6", @@ -29445,6 +30783,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_7A", @@ -29489,6 +30829,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_7B", @@ -29533,6 +30875,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_8", @@ -29576,7 +30920,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_4", @@ -29620,7 +30966,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_5", @@ -29664,7 +31012,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_6", @@ -29708,7 +31058,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_7A", @@ -29752,7 +31104,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_7B", @@ -29796,7 +31150,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_8", @@ -29841,6 +31197,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_4", @@ -29885,6 +31243,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_5", @@ -29929,6 +31289,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_6", @@ -29973,6 +31335,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_7A", @@ -30017,6 +31381,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_7B", @@ -30061,6 +31427,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_8", @@ -30105,6 +31473,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_4", @@ -30149,6 +31519,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_5", @@ -30193,6 +31565,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_6", @@ -30237,6 +31611,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_7A", @@ -30281,6 +31657,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_7B", @@ -30325,6 +31703,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_8", @@ -30368,7 +31748,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_4", @@ -30412,7 +31794,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_5", @@ -30456,7 +31840,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_6", @@ -30500,7 +31886,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_7A", @@ -30544,7 +31932,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_7B", @@ -30588,7 +31978,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_8", @@ -30632,7 +32024,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_4", @@ -30676,7 +32070,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_5", @@ -30720,7 +32116,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_6", @@ -30764,7 +32162,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_7A", @@ -30808,7 +32208,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_7B", @@ -30852,7 +32254,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_8", @@ -30896,7 +32300,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_4", @@ -30940,7 +32346,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_5", @@ -30984,7 +32392,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_6", @@ -31028,7 +32438,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_7A", @@ -31072,7 +32484,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_7B", @@ -31116,7 +32530,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_8", @@ -31160,7 +32576,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_4", @@ -31204,7 +32622,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_5", @@ -31248,7 +32668,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_6", @@ -31292,7 +32714,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_7A", @@ -31336,7 +32760,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_7B", @@ -31380,7 +32806,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_8", @@ -31424,7 +32852,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_4", @@ -31468,7 +32898,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_5", @@ -31512,7 +32944,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_6", @@ -31556,7 +32990,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_7A", @@ -31600,7 +33036,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_7B", @@ -31644,7 +33082,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_8", @@ -31689,6 +33129,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_4", @@ -31733,6 +33175,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_5", @@ -31777,6 +33221,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_6", @@ -31821,6 +33267,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_7A", @@ -31865,6 +33313,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_7B", @@ -31909,6 +33359,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_8", @@ -31953,6 +33405,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_4", @@ -31997,6 +33451,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_5", @@ -32041,6 +33497,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_6", @@ -32085,6 +33543,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_7A", @@ -32129,6 +33589,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_7B", @@ -32173,6 +33635,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_8", @@ -32217,6 +33681,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_4", @@ -32261,6 +33727,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_5", @@ -32305,6 +33773,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_6", @@ -32349,6 +33819,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_7A", @@ -32393,6 +33865,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_7B", @@ -32437,6 +33911,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_8", @@ -32481,6 +33957,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_4", @@ -32525,6 +34003,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_5", @@ -32569,6 +34049,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_6", @@ -32613,6 +34095,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_7A", @@ -32657,6 +34141,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_7B", @@ -32701,6 +34187,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_8", @@ -32744,7 +34232,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_4", @@ -32788,7 +34278,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_5", @@ -32832,7 +34324,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_6", @@ -32876,7 +34370,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_7A", @@ -32920,7 +34416,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_7B", @@ -32964,7 +34462,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_8", @@ -33008,7 +34508,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_4", @@ -33052,7 +34554,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_5", @@ -33096,7 +34600,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_6", @@ -33140,7 +34646,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_7A", @@ -33184,7 +34692,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_7B", @@ -33228,7 +34738,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_8", @@ -33273,6 +34785,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_4", @@ -33317,6 +34831,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_5", @@ -33361,6 +34877,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_6", @@ -33405,6 +34923,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_7A", @@ -33449,6 +34969,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_7B", @@ -33493,6 +35015,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_8", @@ -33536,7 +35060,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_4", @@ -33580,7 +35106,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_5", @@ -33624,7 +35152,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_6", @@ -33668,7 +35198,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_7A", @@ -33712,7 +35244,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_7B", @@ -33756,7 +35290,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_8", @@ -33801,6 +35337,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_4", @@ -33845,6 +35383,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_5", @@ -33889,6 +35429,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_6", @@ -33933,6 +35475,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_7A", @@ -33977,6 +35521,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_7B", @@ -34021,6 +35567,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_8", @@ -34065,6 +35613,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_4", @@ -34109,6 +35659,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_5", @@ -34153,6 +35705,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_6", @@ -34197,6 +35751,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_7A", @@ -34241,6 +35797,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_7B", @@ -34285,6 +35843,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_8", @@ -34328,7 +35888,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_4", @@ -34372,7 +35934,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_5", @@ -34416,7 +35980,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_6", @@ -34460,7 +36026,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_7A", @@ -34504,7 +36072,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_7B", @@ -34548,7 +36118,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_8", @@ -34592,7 +36164,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_4", @@ -34636,7 +36210,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_5", @@ -34680,7 +36256,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_6", @@ -34724,7 +36302,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_7A", @@ -34768,7 +36348,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_7B", @@ -34812,7 +36394,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_8", @@ -34856,7 +36440,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_4", @@ -34900,7 +36486,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_5", @@ -34944,7 +36532,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_6", @@ -34988,7 +36578,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_7A", @@ -35032,7 +36624,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_7B", @@ -35076,7 +36670,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_8", @@ -35120,7 +36716,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_4", @@ -35164,7 +36762,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_5", @@ -35208,7 +36808,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_6", @@ -35252,7 +36854,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_7A", @@ -35296,7 +36900,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_7B", @@ -35340,7 +36946,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_8", @@ -35384,7 +36992,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_4", @@ -35428,7 +37038,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_5", @@ -35472,7 +37084,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_6", @@ -35516,7 +37130,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_7A", @@ -35560,7 +37176,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_7B", @@ -35604,7 +37222,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_8", @@ -35649,6 +37269,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_4", @@ -35693,6 +37315,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_5", @@ -35737,6 +37361,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_6", @@ -35781,6 +37407,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_7A", @@ -35825,6 +37453,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_7B", @@ -35869,6 +37499,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_8", @@ -35913,6 +37545,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_4", @@ -35957,6 +37591,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_5", @@ -36001,6 +37637,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_6", @@ -36045,6 +37683,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_7A", @@ -36089,6 +37729,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_7B", @@ -36133,6 +37775,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_8", @@ -36177,6 +37821,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_4", @@ -36221,6 +37867,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_5", @@ -36265,6 +37913,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_6", @@ -36309,6 +37959,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_7A", @@ -36353,6 +38005,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_7B", @@ -36397,6 +38051,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_8", @@ -36441,6 +38097,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_4", @@ -36485,6 +38143,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_5", @@ -36529,6 +38189,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_6", @@ -36573,6 +38235,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_7A", @@ -36617,6 +38281,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_7B", @@ -36661,6 +38327,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_8", @@ -36704,7 +38372,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_4", @@ -36748,7 +38418,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_5", @@ -36792,7 +38464,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_6", @@ -36836,7 +38510,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_7A", @@ -36880,7 +38556,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_7B", @@ -36924,7 +38602,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_8", @@ -36968,7 +38648,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_4", @@ -37012,7 +38694,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_5", @@ -37056,7 +38740,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_6", @@ -37100,7 +38786,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_7A", @@ -37144,7 +38832,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_7B", @@ -37188,7 +38878,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_8", @@ -37233,6 +38925,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_4", @@ -37277,6 +38971,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_5", @@ -37321,6 +39017,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_6", @@ -37365,6 +39063,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_7A", @@ -37409,6 +39109,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_7B", @@ -37453,6 +39155,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_8", @@ -37496,7 +39200,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_4", @@ -37540,7 +39246,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_5", @@ -37584,7 +39292,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_6", @@ -37628,7 +39338,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_7A", @@ -37672,7 +39384,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_7B", @@ -37716,7 +39430,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_8", @@ -37761,6 +39477,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_4", @@ -37805,6 +39523,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_5", @@ -37849,6 +39569,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_6", @@ -37893,6 +39615,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_7A", @@ -37937,6 +39661,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_7B", @@ -37981,6 +39707,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_8", @@ -38025,6 +39753,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_4", @@ -38069,6 +39799,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_5", @@ -38113,6 +39845,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_6", @@ -38157,6 +39891,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_7A", @@ -38201,6 +39937,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_7B", @@ -38245,6 +39983,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_8", @@ -38288,7 +40028,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_4", @@ -38332,7 +40074,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_5", @@ -38376,7 +40120,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_6", @@ -38420,7 +40166,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_7A", @@ -38464,7 +40212,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_7B", @@ -38508,7 +40258,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_8", @@ -38552,7 +40304,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_4", @@ -38596,7 +40350,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_5", @@ -38640,7 +40396,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_6", @@ -38684,7 +40442,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_7A", @@ -38728,7 +40488,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_7B", @@ -38772,7 +40534,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_8", @@ -38816,7 +40580,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_4", @@ -38860,7 +40626,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_5", @@ -38904,7 +40672,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_6", @@ -38948,7 +40718,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_7A", @@ -38992,7 +40764,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_7B", @@ -39036,7 +40810,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_8", @@ -39080,7 +40856,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_4", @@ -39124,7 +40902,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_5", @@ -39168,7 +40948,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_6", @@ -39212,7 +40994,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_7A", @@ -39256,7 +41040,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_7B", @@ -39300,7 +41086,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_8", @@ -39344,7 +41132,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_4", @@ -39388,7 +41178,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_5", @@ -39432,7 +41224,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_6", @@ -39476,7 +41270,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_7A", @@ -39520,7 +41316,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_7B", @@ -39564,7 +41362,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_8", @@ -39609,6 +41409,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_4", @@ -39653,6 +41455,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_5", @@ -39697,6 +41501,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_6", @@ -39741,6 +41547,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_7A", @@ -39785,6 +41593,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_7B", @@ -39829,6 +41639,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_8", @@ -39873,6 +41685,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_4", @@ -39917,6 +41731,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_5", @@ -39961,6 +41777,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_6", @@ -40005,6 +41823,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_7A", @@ -40049,6 +41869,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_7B", @@ -40093,6 +41915,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_8", @@ -40137,6 +41961,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_4", @@ -40181,6 +42007,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_5", @@ -40225,6 +42053,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_6", @@ -40269,6 +42099,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_7A", @@ -40313,6 +42145,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_7B", @@ -40357,6 +42191,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_8", @@ -40401,6 +42237,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_4", @@ -40445,6 +42283,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_5", @@ -40489,6 +42329,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_6", @@ -40533,6 +42375,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_7A", @@ -40577,6 +42421,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_7B", @@ -40621,6 +42467,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_8", @@ -40664,7 +42512,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_4", @@ -40708,7 +42558,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_5", @@ -40752,7 +42604,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_6", @@ -40796,7 +42650,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_7A", @@ -40840,7 +42696,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_7B", @@ -40884,7 +42742,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_8", @@ -40928,7 +42788,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_4", @@ -40972,7 +42834,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_5", @@ -41016,7 +42880,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_6", @@ -41060,7 +42926,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_7A", @@ -41104,7 +42972,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_7B", @@ -41148,7 +43018,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_8", @@ -41193,6 +43065,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_4", @@ -41237,6 +43111,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_5", @@ -41281,6 +43157,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_6", @@ -41325,6 +43203,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_7A", @@ -41369,6 +43249,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_7B", @@ -41413,6 +43295,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_8", @@ -41456,7 +43340,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_4", @@ -41500,7 +43386,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_5", @@ -41544,7 +43432,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_6", @@ -41588,7 +43478,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_7A", @@ -41632,7 +43524,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_7B", @@ -41676,7 +43570,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_8", @@ -41721,6 +43617,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_4", @@ -41765,6 +43663,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_5", @@ -41809,6 +43709,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_6", @@ -41853,6 +43755,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_7A", @@ -41897,6 +43801,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_7B", @@ -41941,6 +43847,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_8", @@ -41985,6 +43893,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_4", @@ -42029,6 +43939,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_5", @@ -42073,6 +43985,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_6", @@ -42117,6 +44031,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_7A", @@ -42161,6 +44077,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_7B", @@ -42205,6 +44123,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_8", @@ -42248,7 +44168,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_4", @@ -42292,7 +44214,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_5", @@ -42336,7 +44260,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_6", @@ -42380,7 +44306,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_7A", @@ -42424,7 +44352,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_7B", @@ -42468,7 +44398,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_8", @@ -42512,7 +44444,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_4", @@ -42556,7 +44490,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_5", @@ -42600,7 +44536,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_6", @@ -42644,7 +44582,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_7A", @@ -42688,7 +44628,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_7B", @@ -42732,7 +44674,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_8", @@ -42776,7 +44720,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_4", @@ -42820,7 +44766,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_5", @@ -42864,7 +44812,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_6", @@ -42908,7 +44858,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_7A", @@ -42952,7 +44904,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_7B", @@ -42996,7 +44950,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_8", @@ -43040,7 +44996,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_4", @@ -43084,7 +45042,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_5", @@ -43128,7 +45088,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_6", @@ -43172,7 +45134,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_7A", @@ -43216,7 +45180,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_7B", @@ -43260,7 +45226,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_8", @@ -43304,7 +45272,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_4", @@ -43348,7 +45318,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_5", @@ -43392,7 +45364,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_6", @@ -43436,7 +45410,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_7A", @@ -43480,7 +45456,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_7B", @@ -43524,7 +45502,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_8", @@ -43569,6 +45549,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_4", @@ -43613,6 +45595,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_5", @@ -43657,6 +45641,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_6", @@ -43701,6 +45687,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_7A", @@ -43745,6 +45733,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_7B", @@ -43789,6 +45779,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_8", @@ -43833,6 +45825,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_4", @@ -43877,6 +45871,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_5", @@ -43921,6 +45917,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_6", @@ -43965,6 +45963,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_7A", @@ -44009,6 +46009,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_7B", @@ -44053,6 +46055,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_8", @@ -44097,6 +46101,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_4", @@ -44141,6 +46147,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_5", @@ -44185,6 +46193,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_6", @@ -44229,6 +46239,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_7A", @@ -44273,6 +46285,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_7B", @@ -44317,6 +46331,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_8", @@ -44361,6 +46377,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_4", @@ -44405,6 +46423,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_5", @@ -44449,6 +46469,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_6", @@ -44493,6 +46515,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_7A", @@ -44537,6 +46561,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_7B", @@ -44581,6 +46607,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_8", @@ -44624,7 +46652,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_4", @@ -44668,7 +46698,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_5", @@ -44712,7 +46744,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_6", @@ -44756,7 +46790,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_7A", @@ -44800,7 +46836,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_7B", @@ -44844,7 +46882,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_8", @@ -44888,7 +46928,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_4", @@ -44932,7 +46974,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_5", @@ -44976,7 +47020,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_6", @@ -45020,7 +47066,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_7A", @@ -45064,7 +47112,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_7B", @@ -45108,7 +47158,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_8", @@ -45153,6 +47205,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_4", @@ -45197,6 +47251,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_5", @@ -45241,6 +47297,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_6", @@ -45285,6 +47343,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_7A", @@ -45329,6 +47389,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_7B", @@ -45373,6 +47435,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_8", @@ -45416,7 +47480,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_4", @@ -45460,7 +47526,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_5", @@ -45504,7 +47572,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_6", @@ -45548,7 +47618,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_7A", @@ -45592,7 +47664,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_7B", @@ -45636,7 +47710,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_8", @@ -45681,6 +47757,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_4", @@ -45725,6 +47803,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_5", @@ -45769,6 +47849,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_6", @@ -45813,6 +47895,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_7A", @@ -45857,6 +47941,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_7B", @@ -45901,6 +47987,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_8", @@ -45945,6 +48033,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_4", @@ -45989,6 +48079,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_5", @@ -46033,6 +48125,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_6", @@ -46077,6 +48171,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_7A", @@ -46121,6 +48217,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_7B", @@ -46165,6 +48263,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_8", @@ -46208,7 +48308,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_4", @@ -46252,7 +48354,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_5", @@ -46296,7 +48400,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_6", @@ -46340,7 +48446,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_7A", @@ -46384,7 +48492,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_7B", @@ -46428,7 +48538,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_8", @@ -46472,7 +48584,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_4", @@ -46516,7 +48630,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_5", @@ -46560,7 +48676,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_6", @@ -46604,7 +48722,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_7A", @@ -46648,7 +48768,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_7B", @@ -46692,7 +48814,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_8", @@ -46736,7 +48860,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_4", @@ -46780,7 +48906,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_5", @@ -46824,7 +48952,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_6", @@ -46868,7 +48998,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_7A", @@ -46912,7 +49044,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_7B", @@ -46956,7 +49090,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_8", @@ -47000,7 +49136,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_4", @@ -47044,7 +49182,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_5", @@ -47088,7 +49228,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_6", @@ -47132,7 +49274,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_7A", @@ -47176,7 +49320,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_7B", @@ -47220,7 +49366,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_8", @@ -47264,7 +49412,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_4", @@ -47308,7 +49458,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_5", @@ -47352,7 +49504,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_6", @@ -47396,7 +49550,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_7A", @@ -47440,7 +49596,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_7B", @@ -47484,7 +49642,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_8", @@ -47529,6 +49689,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_4", @@ -47573,6 +49735,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_5", @@ -47617,6 +49781,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_6", @@ -47661,6 +49827,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_7A", @@ -47705,6 +49873,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_7B", @@ -47749,6 +49919,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_8", @@ -47793,6 +49965,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_4", @@ -47837,6 +50011,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_5", @@ -47881,6 +50057,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_6", @@ -47925,6 +50103,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_7A", @@ -47969,6 +50149,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_7B", @@ -48013,6 +50195,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_8", @@ -48057,6 +50241,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_4", @@ -48101,6 +50287,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_5", @@ -48145,6 +50333,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_6", @@ -48189,6 +50379,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_7A", @@ -48233,6 +50425,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_7B", @@ -48277,6 +50471,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_8", @@ -48321,6 +50517,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_4", @@ -48365,6 +50563,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_5", @@ -48409,6 +50609,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_6", @@ -48453,6 +50655,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_7A", @@ -48497,6 +50701,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_7B", @@ -48541,6 +50747,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_8", @@ -48584,7 +50792,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_4", @@ -48628,7 +50838,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_5", @@ -48672,7 +50884,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_6", @@ -48716,7 +50930,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_7A", @@ -48760,7 +50976,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_7B", @@ -48804,7 +51022,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_8", @@ -48848,7 +51068,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_4", @@ -48892,7 +51114,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_5", @@ -48936,7 +51160,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_6", @@ -48980,7 +51206,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_7A", @@ -49024,7 +51252,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_7B", @@ -49068,7 +51298,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_8", @@ -49113,6 +51345,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_4", @@ -49157,6 +51391,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_5", @@ -49201,6 +51437,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_6", @@ -49245,6 +51483,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_7A", @@ -49289,6 +51529,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_7B", @@ -49333,6 +51575,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_8", @@ -49376,7 +51620,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_4", @@ -49420,7 +51666,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_5", @@ -49464,7 +51712,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_6", @@ -49508,7 +51758,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_7A", @@ -49552,7 +51804,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_7B", @@ -49596,7 +51850,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_8", @@ -49641,6 +51897,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_4", @@ -49685,6 +51943,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_5", @@ -49729,6 +51989,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_6", @@ -49773,6 +52035,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_7A", @@ -49817,6 +52081,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_7B", @@ -49861,6 +52127,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_8", @@ -49905,6 +52173,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_4", @@ -49949,6 +52219,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_5", @@ -49993,6 +52265,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_6", @@ -50037,6 +52311,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_7A", @@ -50081,6 +52357,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_7B", @@ -50125,6 +52403,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_8", @@ -50168,7 +52448,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_4", @@ -50212,7 +52494,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_5", @@ -50256,7 +52540,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_6", @@ -50300,7 +52586,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_7A", @@ -50344,7 +52632,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_7B", @@ -50388,7 +52678,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_8", @@ -50432,7 +52724,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_4", @@ -50476,7 +52770,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_5", @@ -50520,7 +52816,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_6", @@ -50564,7 +52862,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_7A", @@ -50608,7 +52908,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_7B", @@ -50652,7 +52954,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_8", @@ -50696,7 +53000,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_4", @@ -50740,7 +53046,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_5", @@ -50784,7 +53092,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_6", @@ -50828,7 +53138,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_7A", @@ -50872,7 +53184,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_7B", @@ -50916,7 +53230,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_8", @@ -50960,7 +53276,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_4", @@ -51004,7 +53322,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_5", @@ -51048,7 +53368,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_6", @@ -51092,7 +53414,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_7A", @@ -51136,7 +53460,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_7B", @@ -51180,7 +53506,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_8", @@ -51224,7 +53552,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_4", @@ -51268,7 +53598,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_5", @@ -51312,7 +53644,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_6", @@ -51356,7 +53690,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_7A", @@ -51400,7 +53736,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_7B", @@ -51444,7 +53782,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_8", @@ -51489,6 +53829,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_4", @@ -51533,6 +53875,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_5", @@ -51577,6 +53921,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_6", @@ -51621,6 +53967,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_7A", @@ -51665,6 +54013,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_7B", @@ -51709,6 +54059,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_8", @@ -51753,6 +54105,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_4", @@ -51797,6 +54151,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_5", @@ -51841,6 +54197,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_6", @@ -51885,6 +54243,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_7A", @@ -51929,6 +54289,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_7B", @@ -51973,6 +54335,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_8", @@ -52017,6 +54381,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_4", @@ -52061,6 +54427,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_5", @@ -52105,6 +54473,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_6", @@ -52149,6 +54519,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_7A", @@ -52193,6 +54565,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_7B", @@ -52237,6 +54611,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_8", @@ -52281,6 +54657,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_4", @@ -52325,6 +54703,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_5", @@ -52369,6 +54749,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_6", @@ -52413,6 +54795,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_7A", @@ -52457,6 +54841,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_7B", @@ -52501,6 +54887,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_8", @@ -52544,7 +54932,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_4", @@ -52588,7 +54978,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_5", @@ -52632,7 +55024,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_6", @@ -52676,7 +55070,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_7A", @@ -52720,7 +55116,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_7B", @@ -52764,7 +55162,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_8", @@ -52808,7 +55208,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_4", @@ -52852,7 +55254,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_5", @@ -52896,7 +55300,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_6", @@ -52940,7 +55346,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_7A", @@ -52984,7 +55392,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_7B", @@ -53028,7 +55438,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_8", @@ -53073,6 +55485,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_4", @@ -53117,6 +55531,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_5", @@ -53161,6 +55577,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_6", @@ -53205,6 +55623,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_7A", @@ -53249,6 +55669,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_7B", @@ -53293,6 +55715,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_8", @@ -53336,7 +55760,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_4", @@ -53380,7 +55806,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_5", @@ -53424,7 +55852,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_6", @@ -53468,7 +55898,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_7A", @@ -53512,7 +55944,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_7B", @@ -53556,7 +55990,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_8", @@ -53601,6 +56037,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_4", @@ -53645,6 +56083,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_5", @@ -53689,6 +56129,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_6", @@ -53733,6 +56175,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_7A", @@ -53777,6 +56221,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_7B", @@ -53821,6 +56267,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_8", @@ -53865,6 +56313,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_4", @@ -53909,6 +56359,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_5", @@ -53953,6 +56405,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_6", @@ -53997,6 +56451,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_7A", @@ -54041,6 +56497,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_7B", @@ -54085,6 +56543,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_8", @@ -54128,7 +56588,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_4", @@ -54172,7 +56634,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_5", @@ -54216,7 +56680,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_6", @@ -54260,7 +56726,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_7A", @@ -54304,7 +56772,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_7B", @@ -54348,7 +56818,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_8", @@ -54392,7 +56864,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_4", @@ -54436,7 +56910,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_5", @@ -54480,7 +56956,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_6", @@ -54524,7 +57002,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_7A", @@ -54568,7 +57048,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_7B", @@ -54612,7 +57094,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_8", @@ -54656,7 +57140,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_4", @@ -54700,7 +57186,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_5", @@ -54744,7 +57232,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_6", @@ -54788,7 +57278,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_7A", @@ -54832,7 +57324,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_7B", @@ -54876,7 +57370,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_8", @@ -54920,7 +57416,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_4", @@ -54964,7 +57462,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_5", @@ -55008,7 +57508,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_6", @@ -55052,7 +57554,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_7A", @@ -55096,7 +57600,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_7B", @@ -55140,7 +57646,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_8", @@ -55184,7 +57692,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_4", @@ -55228,7 +57738,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_5", @@ -55272,7 +57784,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_6", @@ -55316,7 +57830,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_7A", @@ -55360,7 +57876,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_7B", @@ -55404,7 +57922,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_8", @@ -55449,6 +57969,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_4", @@ -55493,6 +58015,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_5", @@ -55537,6 +58061,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_6", @@ -55581,6 +58107,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_7A", @@ -55625,6 +58153,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_7B", @@ -55669,6 +58199,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_8", @@ -55713,6 +58245,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_4", @@ -55757,6 +58291,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_5", @@ -55801,6 +58337,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_6", @@ -55845,6 +58383,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_7A", @@ -55889,6 +58429,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_7B", @@ -55933,6 +58475,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_8", @@ -55977,6 +58521,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_4", @@ -56021,6 +58567,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_5", @@ -56065,6 +58613,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_6", @@ -56109,6 +58659,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_7A", @@ -56153,6 +58705,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_7B", @@ -56197,6 +58751,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_8", @@ -56241,6 +58797,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_4", @@ -56285,6 +58843,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_5", @@ -56329,6 +58889,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_6", @@ -56373,6 +58935,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_7A", @@ -56417,6 +58981,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_7B", @@ -56461,6 +59027,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_8", @@ -56504,7 +59072,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_4", @@ -56548,7 +59118,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_5", @@ -56592,7 +59164,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_6", @@ -56636,7 +59210,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_7A", @@ -56680,7 +59256,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_7B", @@ -56724,7 +59302,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_8", @@ -56768,7 +59348,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_4", @@ -56812,7 +59394,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_5", @@ -56856,7 +59440,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_6", @@ -56900,7 +59486,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_7A", @@ -56944,7 +59532,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_7B", @@ -56988,7 +59578,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_8", @@ -57033,6 +59625,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_4", @@ -57077,6 +59671,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_5", @@ -57121,6 +59717,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_6", @@ -57165,6 +59763,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_7A", @@ -57209,6 +59809,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_7B", @@ -57253,6 +59855,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_8", @@ -57296,7 +59900,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_4", @@ -57340,7 +59946,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_5", @@ -57384,7 +59992,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_6", @@ -57428,7 +60038,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_7A", @@ -57472,7 +60084,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_7B", @@ -57516,7 +60130,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_8", @@ -57561,6 +60177,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_4", @@ -57605,6 +60223,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_5", @@ -57649,6 +60269,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_6", @@ -57693,6 +60315,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_7A", @@ -57737,6 +60361,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_7B", @@ -57781,6 +60407,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_8", @@ -57825,6 +60453,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_4", @@ -57869,6 +60499,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_5", @@ -57913,6 +60545,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_6", @@ -57957,6 +60591,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_7A", @@ -58001,6 +60637,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_7B", @@ -58045,6 +60683,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_8", @@ -58088,7 +60728,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_4", @@ -58132,7 +60774,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_5", @@ -58176,7 +60820,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_6", @@ -58220,7 +60866,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_7A", @@ -58264,7 +60912,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_7B", @@ -58308,7 +60958,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_8", @@ -58352,7 +61004,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_4", @@ -58396,7 +61050,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_5", @@ -58440,7 +61096,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_6", @@ -58484,7 +61142,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_7A", @@ -58528,7 +61188,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_7B", @@ -58572,7 +61234,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_8", @@ -58616,7 +61280,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_4", @@ -58660,7 +61326,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_5", @@ -58704,7 +61372,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_6", @@ -58748,7 +61418,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_7A", @@ -58792,7 +61464,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_7B", @@ -58836,7 +61510,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_8", @@ -58880,7 +61556,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_4", @@ -58924,7 +61602,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_5", @@ -58968,7 +61648,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_6", @@ -59012,7 +61694,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_7A", @@ -59056,7 +61740,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_7B", @@ -59100,7 +61786,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_8", @@ -59144,7 +61832,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_4", @@ -59188,7 +61878,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_5", @@ -59232,7 +61924,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_6", @@ -59276,7 +61970,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_7A", @@ -59320,7 +62016,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_7B", @@ -59364,7 +62062,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_8", @@ -59409,6 +62109,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_4", @@ -59453,6 +62155,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_5", @@ -59497,6 +62201,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_6", @@ -59541,6 +62247,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_7A", @@ -59585,6 +62293,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_7B", @@ -59629,6 +62339,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.11, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1000_1900_8", @@ -59673,6 +62385,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_4", @@ -59717,6 +62431,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_5", @@ -59761,6 +62477,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_6", @@ -59805,6 +62523,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_7A", @@ -59849,6 +62569,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_7B", @@ -59893,6 +62615,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.13, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1901_1910_8", @@ -59937,6 +62661,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_4", @@ -59981,6 +62707,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_5", @@ -60025,6 +62753,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_6", @@ -60069,6 +62799,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_7A", @@ -60113,6 +62845,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_7B", @@ -60157,6 +62891,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1911_1920_8", @@ -60200,7 +62936,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_4", @@ -60244,7 +62982,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_5", @@ -60288,7 +63028,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_6", @@ -60332,7 +63074,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_7A", @@ -60376,7 +63120,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_7B", @@ -60420,7 +63166,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.1, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1921_1930_8", @@ -60464,7 +63212,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_4", @@ -60508,7 +63258,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_5", @@ -60552,7 +63304,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_6", @@ -60596,7 +63350,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_7A", @@ -60640,7 +63396,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_7B", @@ -60684,7 +63442,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 1.05, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.006, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1931_1940_8", @@ -60728,7 +63488,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_4", @@ -60772,7 +63534,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_5", @@ -60816,7 +63580,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_6", @@ -60860,7 +63626,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_7A", @@ -60904,7 +63672,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_7B", @@ -60948,7 +63718,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.88, + "infiltration_rate_for_ventilation_system_off": 1.15, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0055, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1941_1950_8", @@ -60993,6 +63765,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_4", @@ -61037,6 +63811,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_5", @@ -61081,6 +63857,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_6", @@ -61125,6 +63903,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_7A", @@ -61169,6 +63949,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_7B", @@ -61213,6 +63995,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1951_1960_8", @@ -61256,7 +64040,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_4", @@ -61300,7 +64086,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_5", @@ -61344,7 +64132,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_6", @@ -61388,7 +64178,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_7A", @@ -61432,7 +64224,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_7B", @@ -61476,7 +64270,9 @@ "thermal_capacity": 300, "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.79, + "infiltration_rate_for_ventilation_system_off": 0.87, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0045, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1961_1970_8", @@ -61521,6 +64317,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_4", @@ -61565,6 +64363,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_5", @@ -61609,6 +64409,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_6", @@ -61653,6 +64455,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_7A", @@ -61697,6 +64501,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_7B", @@ -61741,6 +64547,8 @@ "extra_loses_due_thermal_bridges": 0.1, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.7, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.004, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1971_1980_8", @@ -61785,6 +64593,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_4", @@ -61829,6 +64639,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_5", @@ -61873,6 +64685,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_6", @@ -61917,6 +64731,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_7A", @@ -61961,6 +64777,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_7B", @@ -62005,6 +64823,8 @@ "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1981_1990_8", @@ -62048,7 +64868,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_4", @@ -62092,7 +64914,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_5", @@ -62136,7 +64960,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_6", @@ -62180,7 +65006,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_7A", @@ -62224,7 +65052,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_7B", @@ -62268,7 +65098,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.69, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.003, "constructions": { "OutdoorsWall": { "opaque_surface_name": "1991_2000_8", @@ -62312,7 +65144,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_4", @@ -62356,7 +65190,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_5", @@ -62400,7 +65236,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_6", @@ -62444,7 +65282,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_7A", @@ -62488,7 +65328,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_7B", @@ -62532,7 +65374,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.61, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0015, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2001_2010_8", @@ -62576,7 +65420,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_4", @@ -62620,7 +65466,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_5", @@ -62664,7 +65512,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_6", @@ -62708,7 +65558,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_7A", @@ -62752,7 +65604,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_7B", @@ -62796,7 +65650,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2011_2016_8", @@ -62840,7 +65696,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_4", @@ -62884,7 +65742,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_5", @@ -62928,7 +65788,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_6", @@ -62972,7 +65834,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_7A", @@ -63016,7 +65880,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_7B", @@ -63060,7 +65926,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2017_2019_8", @@ -63104,7 +65972,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_4", @@ -63148,7 +66018,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_5", @@ -63192,7 +66064,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_6", @@ -63236,7 +66110,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_7A", @@ -63280,7 +66156,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_7B", @@ -63324,7 +66202,9 @@ "thermal_capacity": 200, "extra_loses_due_thermal_bridges": 0.05, "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.31, + "infiltration_rate_for_ventilation_system_off": 0.62, + "infiltration_rate_area_for_ventilation_system_on": 0, + "infiltration_rate_area_for_ventilation_system_off": 0.0005, "constructions": { "OutdoorsWall": { "opaque_surface_name": "2020_3000_8", diff --git a/hub/exports/building_energy/idf.py b/hub/exports/building_energy/idf.py index 93b03cdf..ba66a1dd 100644 --- a/hub/exports/building_energy/idf.py +++ b/hub/exports/building_energy/idf.py @@ -392,9 +392,9 @@ class Idf: thermostat = self._add_thermostat(thermal_zone) self._idf.newidfobject(self._IDEAL_LOAD_AIR_SYSTEM, Zone_Name=zone_name, - System_Availability_Schedule_Name=f'HVAC AVAIL SCHEDULES {thermal_zone.usage_name}', - Heating_Availability_Schedule_Name=f'HVAC AVAIL SCHEDULES {thermal_zone.usage_name}', - Cooling_Availability_Schedule_Name=f'HVAC AVAIL SCHEDULES {thermal_zone.usage_name}', + System_Availability_Schedule_Name=f'Thermostat_availability schedules {thermal_zone.usage_name}', + Heating_Availability_Schedule_Name=f'Thermostat_availability schedules {thermal_zone.usage_name}', + Cooling_Availability_Schedule_Name=f'Thermostat_availability schedules {thermal_zone.usage_name}', Template_Thermostat_Name=thermostat.Name) def _add_occupancy(self, thermal_zone, zone_name): @@ -454,7 +454,7 @@ class Idf: ) def _add_infiltration(self, thermal_zone, zone_name): - schedule = f'Infiltration schedules {thermal_zone.usage_name}' + schedule = f'INF_CONST schedules {thermal_zone.usage_name}' _infiltration = thermal_zone.infiltration_rate_system_off * cte.HOUR_TO_SECONDS self._idf.newidfobject(self._INFILTRATION, Name=f'{zone_name}_infiltration', @@ -464,6 +464,17 @@ class Idf: Air_Changes_per_Hour=_infiltration ) + def _add_infiltration_surface(self, thermal_zone, zone_name): + schedule = f'INF_CONST schedules {thermal_zone.usage_name}' + _infiltration = thermal_zone.infiltration_rate_area_system_off + self._idf.newidfobject(self._INFILTRATION, + Name=f'{zone_name}_infiltration', + Zone_or_ZoneList_or_Space_or_SpaceList_Name=zone_name, + Schedule_Name=schedule, + Design_Flow_Rate_Calculation_Method='Flow/ExteriorWallArea', + Air_Changes_per_Hour=_infiltration + ) + def _add_ventilation(self, thermal_zone, zone_name): schedule = f'Ventilation schedules {thermal_zone.usage_name}' _air_change = thermal_zone.mechanical_air_change * cte.HOUR_TO_SECONDS @@ -549,9 +560,12 @@ class Idf: self._add_schedules(usage, 'DHW_prof', thermal_zone.domestic_hot_water.schedules) _new_schedules = self._create_yearly_values_schedules('cold_temp', building.cold_water_temperature[cte.HOUR]) self._add_schedules(usage, 'cold_temp', _new_schedules) - _new_schedules = self._create_constant_value_schedules('DHW_temp', service_temperature) self._add_schedules(usage, 'DHW_temp', _new_schedules) + _new_schedules = self._create_constant_value_schedules('INF_CONST', 1) + self._add_schedules(usage, 'INF_CONST', _new_schedules) + _new_schedules = self._create_constant_value_schedules('Thermostat_availability', 1) + self._add_schedules(usage, 'Thermostat_availability', _new_schedules) _occ = thermal_zone.occupancy if _occ.occupancy_density == 0: _total_heat = 0 From a7375f0b53891bbfead185bc4f946f0f20b2df13 Mon Sep 17 00:00:00 2001 From: ogavalda <33801000+ogavalda@users.noreply.github.com> Date: Sun, 15 Sep 2024 10:15:41 -0400 Subject: [PATCH 23/42] Adding infiltration per m2 --- hub/exports/building_energy/idf.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hub/exports/building_energy/idf.py b/hub/exports/building_energy/idf.py index ba66a1dd..d1422fe2 100644 --- a/hub/exports/building_energy/idf.py +++ b/hub/exports/building_energy/idf.py @@ -466,7 +466,7 @@ class Idf: def _add_infiltration_surface(self, thermal_zone, zone_name): schedule = f'INF_CONST schedules {thermal_zone.usage_name}' - _infiltration = thermal_zone.infiltration_rate_area_system_off + _infiltration = thermal_zone.infiltration_rate_area_system_off*2 self._idf.newidfobject(self._INFILTRATION, Name=f'{zone_name}_infiltration', Zone_or_ZoneList_or_Space_or_SpaceList_Name=zone_name, @@ -576,7 +576,7 @@ class Idf: self._add_schedules(usage, 'Activity Level', _new_schedules) self._add_zone(thermal_zone, building.name) self._add_heating_system(thermal_zone, building.name) - self._add_infiltration(thermal_zone, building.name) + self._add_infiltration_surface(thermal_zone, building.name) self._add_ventilation(thermal_zone, building.name) self._add_occupancy(thermal_zone, building.name) self._add_lighting(thermal_zone, building.name) From 54a6e6b2db8974ba5aa0bf0ee6aea71774e1de57 Mon Sep 17 00:00:00 2001 From: ogavalda <33801000+ogavalda@users.noreply.github.com> Date: Sun, 15 Sep 2024 10:22:07 -0400 Subject: [PATCH 24/42] Adding infiltration per m2 --- hub/imports/weather/EPWCLEANER | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 hub/imports/weather/EPWCLEANER diff --git a/hub/imports/weather/EPWCLEANER b/hub/imports/weather/EPWCLEANER new file mode 100644 index 00000000..e69de29b From 15b96fe1546eec994a7735f3f4aee0386255666c Mon Sep 17 00:00:00 2001 From: ogavalda <33801000+ogavalda@users.noreply.github.com> Date: Mon, 16 Sep 2024 15:41:27 -0400 Subject: [PATCH 25/42] Changing the full structure to incorporate a second way of entering infiltration (infiltration per outdoor area) --- .../construction/nrcan_catalog.py | 12 +++++++-- .../data_models/construction/archetype.py | 25 ++++++++++++++++++- .../building_demand/thermal_archetype.py | 2 ++ hub/exports/building_energy/idf.py | 4 +-- hub/helpers/constants.py | 1 + .../construction/nrcan_physics_parameters.py | 2 ++ 6 files changed, 41 insertions(+), 5 deletions(-) diff --git a/hub/catalog_factories/construction/nrcan_catalog.py b/hub/catalog_factories/construction/nrcan_catalog.py index 19690b0a..599d5908 100644 --- a/hub/catalog_factories/construction/nrcan_catalog.py +++ b/hub/catalog_factories/construction/nrcan_catalog.py @@ -128,6 +128,12 @@ class NrcanCatalog(Catalog): infiltration_rate_for_ventilation_system_on = ( archetype['infiltration_rate_for_ventilation_system_on'] / cte.HOUR_TO_SECONDS ) + infiltration_rate_area_for_ventilation_system_off = ( + archetype['infiltration_rate_area_for_ventilation_system_off'] * 1 + ) + infiltration_rate_area_for_ventilation_system_on = ( + archetype['infiltration_rate_area_for_ventilation_system_on'] * 1 + ) archetype_constructions = [] for archetype_construction in archetype['constructions']: @@ -153,7 +159,6 @@ class NrcanCatalog(Catalog): _window) archetype_constructions.append(_construction) break - _catalog_archetypes.append(Archetype(archetype_id, name, function, @@ -165,7 +170,10 @@ class NrcanCatalog(Catalog): extra_loses_due_to_thermal_bridges, None, infiltration_rate_for_ventilation_system_off, - infiltration_rate_for_ventilation_system_on)) + infiltration_rate_for_ventilation_system_on, + infiltration_rate_area_for_ventilation_system_off, + infiltration_rate_area_for_ventilation_system_on + )) return _catalog_archetypes def names(self, category=None): diff --git a/hub/catalog_factories/data_models/construction/archetype.py b/hub/catalog_factories/data_models/construction/archetype.py index 3397c4bf..def81c3a 100644 --- a/hub/catalog_factories/data_models/construction/archetype.py +++ b/hub/catalog_factories/data_models/construction/archetype.py @@ -23,7 +23,10 @@ class Archetype: extra_loses_due_to_thermal_bridges, indirect_heated_ratio, infiltration_rate_for_ventilation_system_off, - infiltration_rate_for_ventilation_system_on): + infiltration_rate_for_ventilation_system_on, + infiltration_rate_area_for_ventilation_system_off, + infiltration_rate_area_for_ventilation_system_on + ): self._id = archetype_id self._name = name self._function = function @@ -36,6 +39,8 @@ class Archetype: self._indirect_heated_ratio = indirect_heated_ratio self._infiltration_rate_for_ventilation_system_off = infiltration_rate_for_ventilation_system_off self._infiltration_rate_for_ventilation_system_on = infiltration_rate_for_ventilation_system_on + self._infiltration_rate_area_for_ventilation_system_off = infiltration_rate_area_for_ventilation_system_off + self._infiltration_rate_area_for_ventilation_system_on = infiltration_rate_area_for_ventilation_system_on @property def id(self): @@ -133,6 +138,22 @@ class Archetype: """ return self._infiltration_rate_for_ventilation_system_on + @property + def infiltration_rate_area_for_ventilation_system_off(self): + """ + Get archetype infiltration rate for ventilation system off in m3/sm2 + :return: float + """ + return self._infiltration_rate_area_for_ventilation_system_off + + @property + def infiltration_rate_area_for_ventilation_system_on(self): + """ + Get archetype infiltration rate for ventilation system on in m3/sm2 + :return: float + """ + return self._infiltration_rate_for_ventilation_system_on + def to_dictionary(self): """Class content to dictionary""" _constructions = [] @@ -149,6 +170,8 @@ class Archetype: 'indirect heated ratio': self.indirect_heated_ratio, 'infiltration rate for ventilation off [1/s]': self.infiltration_rate_for_ventilation_system_off, 'infiltration rate for ventilation on [1/s]': self.infiltration_rate_for_ventilation_system_on, + 'infiltration rate area for ventilation off [m3/sm2]': self.infiltration_rate_area_for_ventilation_system_off, + 'infiltration rate area for ventilation on [m3/sm2]': self.infiltration_rate_area_for_ventilation_system_on, 'constructions': _constructions } } diff --git a/hub/city_model_structure/building_demand/thermal_archetype.py b/hub/city_model_structure/building_demand/thermal_archetype.py index bbe9d428..242e5104 100644 --- a/hub/city_model_structure/building_demand/thermal_archetype.py +++ b/hub/city_model_structure/building_demand/thermal_archetype.py @@ -20,6 +20,8 @@ class ThermalArchetype: self._indirect_heated_ratio = None self._infiltration_rate_for_ventilation_system_off = None self._infiltration_rate_for_ventilation_system_on = None + self._infiltration_rate_area_for_ventilation_system_off=None + self._infiltration_rate_area_for_ventilation_system_on=None @property def constructions(self) -> [Construction]: diff --git a/hub/exports/building_energy/idf.py b/hub/exports/building_energy/idf.py index d1422fe2..eafb67e9 100644 --- a/hub/exports/building_energy/idf.py +++ b/hub/exports/building_energy/idf.py @@ -466,13 +466,13 @@ class Idf: def _add_infiltration_surface(self, thermal_zone, zone_name): schedule = f'INF_CONST schedules {thermal_zone.usage_name}' - _infiltration = thermal_zone.infiltration_rate_area_system_off*2 + _infiltration = thermal_zone.infiltration_rate_area_system_off*1 self._idf.newidfobject(self._INFILTRATION, Name=f'{zone_name}_infiltration', Zone_or_ZoneList_or_Space_or_SpaceList_Name=zone_name, Schedule_Name=schedule, Design_Flow_Rate_Calculation_Method='Flow/ExteriorWallArea', - Air_Changes_per_Hour=_infiltration + Flow_Rate_per_Exterior_Surface_Area=_infiltration ) def _add_ventilation(self, thermal_zone, zone_name): diff --git a/hub/helpers/constants.py b/hub/helpers/constants.py index ad32c835..39586c54 100644 --- a/hub/helpers/constants.py +++ b/hub/helpers/constants.py @@ -25,6 +25,7 @@ KILO_WATTS_HOUR_TO_JULES = 3600000 WATTS_HOUR_TO_JULES = 3600 GALLONS_TO_QUBIC_METERS = 0.0037854117954011185 + # time SECOND = 'second' MINUTE = 'minute' diff --git a/hub/imports/construction/nrcan_physics_parameters.py b/hub/imports/construction/nrcan_physics_parameters.py index e57aa22e..c65bd2da 100644 --- a/hub/imports/construction/nrcan_physics_parameters.py +++ b/hub/imports/construction/nrcan_physics_parameters.py @@ -67,6 +67,8 @@ class NrcanPhysicsParameters: thermal_archetype.indirect_heated_ratio = 0 thermal_archetype.infiltration_rate_for_ventilation_system_on = catalog_archetype.infiltration_rate_for_ventilation_system_on thermal_archetype.infiltration_rate_for_ventilation_system_off = catalog_archetype.infiltration_rate_for_ventilation_system_off + thermal_archetype.infiltration_rate_area_for_ventilation_system_on = catalog_archetype.infiltration_rate_area_for_ventilation_system_on + thermal_archetype.infiltration_rate_area_for_ventilation_system_off = catalog_archetype.infiltration_rate_area_for_ventilation_system_off _constructions = [] for catalog_construction in catalog_archetype.constructions: construction = Construction() From cd34435a9fd1a14cfaa8e404c617210a1979dae4 Mon Sep 17 00:00:00 2001 From: ogavalda <33801000+ogavalda@users.noreply.github.com> Date: Mon, 16 Sep 2024 15:49:18 -0400 Subject: [PATCH 26/42] Including air temperature output --- hub/exports/building_energy/idf.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/hub/exports/building_energy/idf.py b/hub/exports/building_energy/idf.py index eafb67e9..28fe0041 100644 --- a/hub/exports/building_energy/idf.py +++ b/hub/exports/building_energy/idf.py @@ -625,6 +625,18 @@ class Idf: Reporting_Frequency="Hourly", ) + self._idf.newidfobject( + "OUTPUT:VARIABLE", + Variable_Name="Zone Air Temperature", + Reporting_Frequency="Hourly", + ) + + self._idf.newidfobject( + "OUTPUT:VARIABLE", + Variable_Name="Zone Air Relative Humidity", + Reporting_Frequency="Hourly", + ) + # post-process to erase windows associated to adiabatic walls windows_list = [] for window in self._idf.idfobjects[self._WINDOW]: From ef62e2531f6bdf7ccecf49c7cb71b7892488f405 Mon Sep 17 00:00:00 2001 From: guille Date: Mon, 23 Sep 2024 17:56:58 +0200 Subject: [PATCH 27/42] add weather file to the EnergyBuildingsExportsFactory --- hub/exports/energy_building_exports_factory.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/hub/exports/energy_building_exports_factory.py b/hub/exports/energy_building_exports_factory.py index 952e4a12..7d494b29 100644 --- a/hub/exports/energy_building_exports_factory.py +++ b/hub/exports/energy_building_exports_factory.py @@ -20,9 +20,10 @@ class EnergyBuildingsExportsFactory: """ Energy Buildings exports factory class """ - def __init__(self, handler, city, path, custom_insel_block='d18599', target_buildings=None): + def __init__(self, handler, city, path, custom_insel_block='d18599', target_buildings=None, weather_file=None): self._city = city self._export_type = '_' + handler.lower() + self._weather_file = weather_file validate_import_export_type(EnergyBuildingsExportsFactory, handler) if isinstance(path, str): path = Path(path) @@ -53,12 +54,13 @@ class EnergyBuildingsExportsFactory: """ idf_data_path = (Path(__file__).parent / './building_energy/idf_files/').resolve() url = wh().epw_file(self._city.region_code) - weather_path = (Path(__file__).parent.parent / f'data/weather/epw/{url.rsplit("/", 1)[1]}').resolve() - if not weather_path.exists(): - with open(weather_path, 'wb') as epw_file: + if self._weather_file is None: + self._weather_file = (Path(__file__).parent.parent / f'data/weather/epw/{url.rsplit("/", 1)[1]}').resolve() + if not self._weather_file.exists(): + with open(self._weather_file, 'wb') as epw_file: epw_file.write(requests.get(url, allow_redirects=True).content) - return Idf(self._city, self._path, (idf_data_path / 'Minimal.idf'), (idf_data_path / 'Energy+.idd'), weather_path, - target_buildings=self._target_buildings) + return Idf(self._city, self._path, (idf_data_path / 'Minimal.idf'), (idf_data_path / 'Energy+.idd'), + self._weather_path, target_buildings=self._target_buildings) @property def _insel_monthly_energy_balance(self): From a45cf02b287fca0adcc9f55704405a1a79e3c733 Mon Sep 17 00:00:00 2001 From: Guille Gutierrez Date: Mon, 23 Sep 2024 11:57:33 -0400 Subject: [PATCH 28/42] Update hub/version.py --- hub/version.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hub/version.py b/hub/version.py index e12713d6..b0317da1 100644 --- a/hub/version.py +++ b/hub/version.py @@ -1,4 +1,4 @@ """ Hub version number """ -__version__ = '0.2.0.8' +__version__ = '0.2.0.9' From 2495046c442816e488ff46f891bdd703395895cd Mon Sep 17 00:00:00 2001 From: guille Date: Mon, 30 Sep 2024 19:46:07 +0200 Subject: [PATCH 29/42] correct typo --- hub/exports/energy_building_exports_factory.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hub/exports/energy_building_exports_factory.py b/hub/exports/energy_building_exports_factory.py index 7d494b29..698b4ebb 100644 --- a/hub/exports/energy_building_exports_factory.py +++ b/hub/exports/energy_building_exports_factory.py @@ -60,7 +60,7 @@ class EnergyBuildingsExportsFactory: with open(self._weather_file, 'wb') as epw_file: epw_file.write(requests.get(url, allow_redirects=True).content) return Idf(self._city, self._path, (idf_data_path / 'Minimal.idf'), (idf_data_path / 'Energy+.idd'), - self._weather_path, target_buildings=self._target_buildings) + self._weather_file, target_buildings=self._target_buildings) @property def _insel_monthly_energy_balance(self): From 4b6a942324e382cfe9d09e893a99592ba3953d8e Mon Sep 17 00:00:00 2001 From: ogavalda <33801000+ogavalda@users.noreply.github.com> Date: Mon, 30 Sep 2024 15:58:21 -0400 Subject: [PATCH 30/42] Small change. test --- hub/exports/building_energy/idf.py | 1 + 1 file changed, 1 insertion(+) diff --git a/hub/exports/building_energy/idf.py b/hub/exports/building_energy/idf.py index 28fe0041..aa2d0d5e 100644 --- a/hub/exports/building_energy/idf.py +++ b/hub/exports/building_energy/idf.py @@ -331,6 +331,7 @@ class Idf: for material in self._idf.idfobjects[self._MATERIAL]: if material.Name == "DefaultMaterial": return + self._idf.set_default_constructions() return for layer in thermal_boundary.layers: From 0ce392ea064e76ec66a3d15d1eb12b6f3a8f2583 Mon Sep 17 00:00:00 2001 From: Majid Rezaei Date: Wed, 25 Sep 2024 06:02:17 -0400 Subject: [PATCH 31/42] fix: change building names in ep_multiple_buildings.py to upper case --- hub/imports/results/ep_multiple_buildings.py | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/hub/imports/results/ep_multiple_buildings.py b/hub/imports/results/ep_multiple_buildings.py index bd9a2dd3..71d62763 100644 --- a/hub/imports/results/ep_multiple_buildings.py +++ b/hub/imports/results/ep_multiple_buildings.py @@ -24,7 +24,7 @@ class EnergyPlusMultipleBuildings: csv_output = list(csv.DictReader(csv_file)) for building in self._city.buildings: - building_name = building.name + building_name = building.name.upper() buildings_energy_demands[f'Building {building_name} Heating Demand (J)'] = [ float( row[f"{building_name} IDEAL LOADS AIR SYSTEM:Zone Ideal Loads Supply Air Total Heating Energy [J](Hourly)"]) @@ -36,7 +36,7 @@ class EnergyPlusMultipleBuildings: for row in csv_output ] buildings_energy_demands[f'Building {building_name} DHW Demand (W)'] = [ - float(row[f"DHW {building.name}:Water Use Equipment Heating Rate [W](Hourly)"]) + float(row[f"DHW {building_name}:Water Use Equipment Heating Rate [W](Hourly)"]) for row in csv_output ] buildings_energy_demands[f'Building {building_name} Appliances (W)'] = [ @@ -58,14 +58,15 @@ class EnergyPlusMultipleBuildings: if energy_plus_output_file_path.is_file(): building_energy_demands = self._building_energy_demands(energy_plus_output_file_path) for building in self._city.buildings: - building.heating_demand[cte.HOUR] = building_energy_demands[f'Building {building.name} Heating Demand (J)'] - building.cooling_demand[cte.HOUR] = building_energy_demands[f'Building {building.name} Cooling Demand (J)'] + building_name = building.name.upper() + building.heating_demand[cte.HOUR] = building_energy_demands[f'Building {building_name} Heating Demand (J)'] + building.cooling_demand[cte.HOUR] = building_energy_demands[f'Building {building_name} Cooling Demand (J)'] building.domestic_hot_water_heat_demand[cte.HOUR] = \ - [x * cte.WATTS_HOUR_TO_JULES for x in building_energy_demands[f'Building {building.name} DHW Demand (W)']] + [x * cte.WATTS_HOUR_TO_JULES for x in building_energy_demands[f'Building {building_name} DHW Demand (W)']] building.appliances_electrical_demand[cte.HOUR] = \ - [x * cte.WATTS_HOUR_TO_JULES for x in building_energy_demands[f'Building {building.name} Appliances (W)']] + [x * cte.WATTS_HOUR_TO_JULES for x in building_energy_demands[f'Building {building_name} Appliances (W)']] building.lighting_electrical_demand[cte.HOUR] = \ - [x * cte.WATTS_HOUR_TO_JULES for x in building_energy_demands[f'Building {building.name} Lighting (W)']] + [x * cte.WATTS_HOUR_TO_JULES for x in building_energy_demands[f'Building {building_name} Lighting (W)']] building.heating_demand[cte.MONTH] = MonthlyValues.get_total_month(building.heating_demand[cte.HOUR]) building.cooling_demand[cte.MONTH] = MonthlyValues.get_total_month(building.cooling_demand[cte.HOUR]) building.domestic_hot_water_heat_demand[cte.MONTH] = ( From 33049441f0e6caa47f18d14386788ed7bf57b8f6 Mon Sep 17 00:00:00 2001 From: Koa Wells Date: Tue, 1 Oct 2024 14:35:08 -0500 Subject: [PATCH 32/42] Add build package to setup.py and remove texttest --- setup.py | 2 +- texttest | 142 ------------------------------------------------------- 2 files changed, 1 insertion(+), 143 deletions(-) delete mode 100644 texttest diff --git a/setup.py b/setup.py index 7c2df9ca..8af11db8 100644 --- a/setup.py +++ b/setup.py @@ -10,7 +10,7 @@ with pathlib.Path('requirements.txt').open() as r: for requirement in r.readlines() ] -install_requires.append('setuptools') +install_requires.append('setuptools, build') main_ns = {} version = convert_path('hub/version.py') diff --git a/texttest b/texttest deleted file mode 100644 index b5147f2b..00000000 --- a/texttest +++ /dev/null @@ -1,142 +0,0 @@ -ZoneControl:Thermostat, - Room_180_7ad8616b Thermostat, !- Name - Room_180_7ad8616b, !- Zone or ZoneList Name - Room_180_7ad8616b Thermostat Schedule, !- Control Type Schedule Name - ThermostatSetpoint:DualSetpoint, !- Control 1 Object Type - LargeOffice Building_Setpoint 26, !- Control 1 Name - , !- Control 2 Object Type - , !- Control 2 Name - , !- Control 3 Object Type - , !- Control 3 Name - , !- Control 4 Object Type - , !- Control 4 Name - 0; !- Temperature Difference Between Cutout And Setpoint {deltaC} - -Schedule:Compact, - Room_180_7ad8616b Thermostat Schedule, !- Name - Room_180_7ad8616b Thermostat Schedule Type Limits, !- Schedule Type Limits Name - Through: 12/31, !- Field 1 - For: AllDays, !- Field 2 - Until: 24:00, !- Field 3 - 4; !- Field 4 - -ScheduleTypeLimits, - Room_180_7ad8616b Thermostat Schedule Type Limits, !- Name - 0, !- Lower Limit Value {BasedOnField A3} - 4, !- Upper Limit Value {BasedOnField A3} - DISCRETE; !- Numeric Type - -ThermostatSetpoint:DualSetpoint, - LargeOffice Building_Setpoint 26, !- Name - LargeOffice Building_Setpoint_HtgSetp Schedule, !- Heating Setpoint Temperature Schedule Name - LargeOffice Building_Setpoint_ClgSetp Schedule; !- Cooling Setpoint Temperature Schedule Name - -ZoneHVAC:EquipmentConnections, - Room_180_7ad8616b, !- Zone Name - Room_180_7ad8616b Equipment List, !- Zone Conditioning Equipment List Name - Room_180_7ad8616b Inlet Node List, !- Zone Air Inlet Node or NodeList Name - , !- Zone Air Exhaust Node or NodeList Name - Node 27, !- Zone Air Node Name - Room_180_7ad8616b Return Node List; !- Zone Return Air Node or NodeList Name - -NodeList, - Room_180_7ad8616b Inlet Node List, !- Name - Node 305; !- Node Name 1 - -NodeList, - Room_180_7ad8616b Return Node List, !- Name - Node 308; !- Node Name 1 - -ZoneHVAC:Baseboard:Convective:Electric, - Elec Baseboard 1, !- Name - Always On Discrete hvac_library, !- Availability Schedule Name - , !- Heating Design Capacity Method - Autosize, !- Heating Design Capacity {W} - , !- Heating Design Capacity Per Floor Area {W/m2} - , !- Fraction of Autosized Heating Design Capacity - 1; !- Efficiency - -AirTerminal:SingleDuct:ConstantVolume:NoReheat, - Diffuser 21, !- Name - Always On Discrete hvac_library, !- Availability Schedule Name - Node 307, !- Air Inlet Node Name - Node 305, !- Air Outlet Node Name - AutoSize; !- Maximum Air Flow Rate {m3/s} - -ZoneHVAC:AirDistributionUnit, - ADU Diffuser 21, !- Name - Node 305, !- Air Distribution Unit Outlet Node Name - AirTerminal:SingleDuct:ConstantVolume:NoReheat, !- Air Terminal Object Type - Diffuser 21; !- Air Terminal Name - -ZoneHVAC:EquipmentList, - Room_180_7ad8616b Equipment List, !- Name - SequentialLoad, !- Load Distribution Scheme - ZoneHVAC:Baseboard:Convective:Electric, !- Zone Equipment Object Type 1 - Elec Baseboard 1, !- Zone Equipment Name 1 - 1, !- Zone Equipment Cooling Sequence 1 - 1, !- Zone Equipment Heating or No-Load Sequence 1 - , !- Zone Equipment Sequential Cooling Fraction Schedule Name 1 - , !- Zone Equipment Sequential Heating Fraction Schedule Name 1 - ZoneHVAC:AirDistributionUnit, !- Zone Equipment Object Type 2 - ADU Diffuser 21, !- Zone Equipment Name 2 - 2, !- Zone Equipment Cooling Sequence 2 - 2, !- Zone Equipment Heating or No-Load Sequence 2 - , !- Zone Equipment Sequential Cooling Fraction Schedule Name 2 - ; !- Zone Equipment Sequential Heating Fraction Schedule Name 2 - -Sizing:Zone, - Room_180_7ad8616b, !- Zone or ZoneList Name - SupplyAirTemperature, !- Zone Cooling Design Supply Air Temperature Input Method - 14, !- Zone Cooling Design Supply Air Temperature {C} - 11.11, !- Zone Cooling Design Supply Air Temperature Difference {deltaC} - SupplyAirTemperature, !- Zone Heating Design Supply Air Temperature Input Method - 40, !- Zone Heating Design Supply Air Temperature {C} - 11.11, !- Zone Heating Design Supply Air Temperature Difference {deltaC} - 0.0085, !- Zone Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} - 0.008, !- Zone Heating Design Supply Air Humidity Ratio {kgWater/kgDryAir} - Room_180_7ad8616b DSOA Space List, !- Design Specification Outdoor Air Object Name - , !- Zone Heating Sizing Factor - , !- Zone Cooling Sizing Factor - DesignDay, !- Cooling Design Air Flow Method - 0, !- Cooling Design Air Flow Rate {m3/s} - 0.000762, !- Cooling Minimum Air Flow per Zone Floor Area {m3/s-m2} - 0, !- Cooling Minimum Air Flow {m3/s} - 0, !- Cooling Minimum Air Flow Fraction - DesignDay, !- Heating Design Air Flow Method - 0, !- Heating Design Air Flow Rate {m3/s} - 0.002032, !- Heating Maximum Air Flow per Zone Floor Area {m3/s-m2} - 0.1415762, !- Heating Maximum Air Flow {m3/s} - 0.3, !- Heating Maximum Air Flow Fraction - , !- Design Specification Zone Air Distribution Object Name - No, !- Account for Dedicated Outdoor Air System - , !- Dedicated Outdoor Air System Control Strategy - , !- Dedicated Outdoor Air Low Setpoint Temperature for Design {C} - , !- Dedicated Outdoor Air High Setpoint Temperature for Design {C} - Sensible Load Only No Latent Load, !- Zone Load Sizing Method - HumidityRatioDifference, !- Zone Latent Cooling Design Supply Air Humidity Ratio Input Method - , !- Zone Dehumidification Design Supply Air Humidity Ratio {kgWater/kgDryAir} - 0.005, !- Zone Cooling Design Supply Air Humidity Ratio Difference {kgWater/kgDryAir} - HumidityRatioDifference, !- Zone Latent Heating Design Supply Air Humidity Ratio Input Method - , !- Zone Humidification Design Supply Air Humidity Ratio {kgWater/kgDryAir} - 0.005; !- Zone Humidification Design Supply Air Humidity Ratio Difference {kgWater/kgDryAir} - -DesignSpecification:OutdoorAir:SpaceList, - Room_180_7ad8616b DSOA Space List, !- Name - Room_180_7ad8616b_Space, !- Space Name 1 - MidriseApartment Apartment Ventilation; !- Space Design Specification Outdoor Air Object Name 1 - -Zone, - Room_181_3a411b5d, !- Name - , !- Direction of Relative North {deg} - 0, !- X Origin {m} - 0, !- Y Origin {m} - 0, !- Z Origin {m} - , !- Type - 1, !- Multiplier - 4, !- Ceiling Height {m} - 291.62935408288, !- Volume {m3} - , !- Floor Area {m2} - , !- Zone Inside Convection Algorithm - , !- Zone Outside Convection Algorithm - Yes; !- Part of Total Floor Area \ No newline at end of file From 3905f228dc772ba90112fcff9b2294296cef1365 Mon Sep 17 00:00:00 2001 From: guille Date: Wed, 2 Oct 2024 06:30:43 +0200 Subject: [PATCH 33/42] correct unittests --- hub/catalog_factories/construction/eilat_catalog.py | 11 ++++++++--- hub/catalog_factories/construction/nrel_catalog.py | 4 +++- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/hub/catalog_factories/construction/eilat_catalog.py b/hub/catalog_factories/construction/eilat_catalog.py index 43f889c2..8868f3e1 100644 --- a/hub/catalog_factories/construction/eilat_catalog.py +++ b/hub/catalog_factories/construction/eilat_catalog.py @@ -22,6 +22,7 @@ class EilatCatalog(Catalog): """ Eilat catalog class """ + def __init__(self, path): _path_archetypes = Path(path / 'eilat_archetypes.json').resolve() _path_constructions = (path / 'eilat_constructions.json').resolve() @@ -121,8 +122,10 @@ class EilatCatalog(Catalog): construction_period = archetype['period_of_construction'] average_storey_height = archetype['average_storey_height'] extra_loses_due_to_thermal_bridges = archetype['extra_loses_due_thermal_bridges'] - infiltration_rate_for_ventilation_system_off = archetype['infiltration_rate_for_ventilation_system_off'] / cte.HOUR_TO_SECONDS - infiltration_rate_for_ventilation_system_on = archetype['infiltration_rate_for_ventilation_system_on'] / cte.HOUR_TO_SECONDS + infiltration_rate_for_ventilation_system_off = archetype[ + 'infiltration_rate_for_ventilation_system_off'] / cte.HOUR_TO_SECONDS + infiltration_rate_for_ventilation_system_on = archetype[ + 'infiltration_rate_for_ventilation_system_on'] / cte.HOUR_TO_SECONDS archetype_constructions = [] for archetype_construction in archetype['constructions']: @@ -160,7 +163,9 @@ class EilatCatalog(Catalog): extra_loses_due_to_thermal_bridges, None, infiltration_rate_for_ventilation_system_off, - infiltration_rate_for_ventilation_system_on)) + infiltration_rate_for_ventilation_system_on, + 0, + 0)) return _catalog_archetypes def names(self, category=None): diff --git a/hub/catalog_factories/construction/nrel_catalog.py b/hub/catalog_factories/construction/nrel_catalog.py index da31fd9f..6236a420 100644 --- a/hub/catalog_factories/construction/nrel_catalog.py +++ b/hub/catalog_factories/construction/nrel_catalog.py @@ -162,7 +162,9 @@ class NrelCatalog(Catalog): extra_loses_due_to_thermal_bridges, indirect_heated_ratio, infiltration_rate_for_ventilation_system_off, - infiltration_rate_for_ventilation_system_on)) + infiltration_rate_for_ventilation_system_on, + 0, + 0)) return _catalog_archetypes def names(self, category=None): From d38150ac2d95660c3c82a7f556dc097d8112f0b2 Mon Sep 17 00:00:00 2001 From: Koa Wells Date: Thu, 3 Oct 2024 13:05:56 -0500 Subject: [PATCH 34/42] Remove build from setup.py and add it to requirements.txt --- requirements.txt | 3 ++- setup.py | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/requirements.txt b/requirements.txt index 8a9cecfc..70d2bd71 100644 --- a/requirements.txt +++ b/requirements.txt @@ -24,4 +24,5 @@ triangle psycopg2-binary Pillow pathlib -sqlalchemy_utils \ No newline at end of file +sqlalchemy_utils +build \ No newline at end of file diff --git a/setup.py b/setup.py index 8af11db8..7c2df9ca 100644 --- a/setup.py +++ b/setup.py @@ -10,7 +10,7 @@ with pathlib.Path('requirements.txt').open() as r: for requirement in r.readlines() ] -install_requires.append('setuptools, build') +install_requires.append('setuptools') main_ns = {} version = convert_path('hub/version.py') From 99535a979c76c3a84a879f57b4b4283fba3f0bbc Mon Sep 17 00:00:00 2001 From: Guille Gutierrez Date: Thu, 17 Oct 2024 00:19:27 -0400 Subject: [PATCH 35/42] Update hub/version.py --- hub/version.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hub/version.py b/hub/version.py index b0317da1..656101d3 100644 --- a/hub/version.py +++ b/hub/version.py @@ -1,4 +1,4 @@ """ Hub version number """ -__version__ = '0.2.0.9' +__version__ = '0.2.0.10' From 47810737fa9536c8412f6c9e8b3d8faace84b84b Mon Sep 17 00:00:00 2001 From: s_ranjbar Date: Sat, 20 Jul 2024 19:42:09 -0400 Subject: [PATCH 36/42] geojson, construction and usage importers are all modified for mixed use buildings --- .../construction/nrcan_physics_parameters.py | 18 ++++- hub/imports/geometry/geojson.py | 14 ++++ hub/imports/usage/comnet_usage_parameters.py | 76 +++++++++++++------ hub/imports/usage/nrcan_usage_parameters.py | 74 +++++++++++------- 4 files changed, 130 insertions(+), 52 deletions(-) diff --git a/hub/imports/construction/nrcan_physics_parameters.py b/hub/imports/construction/nrcan_physics_parameters.py index c65bd2da..35f5382a 100644 --- a/hub/imports/construction/nrcan_physics_parameters.py +++ b/hub/imports/construction/nrcan_physics_parameters.py @@ -3,6 +3,7 @@ NrcanPhysicsParameters import the construction and material information defined SPDX - License - Identifier: LGPL - 3.0 - or -later Copyright © 2022 Concordia CERC group Project Coder Pilar Monsalvete Alvarez de Uribarri pilar.monsalvete@concordia.ca +Project Collaborator Saeed Ranjbar saeed.ranjbar@concordia.ca """ import logging @@ -32,10 +33,21 @@ class NrcanPhysicsParameters: city = self._city nrcan_catalog = ConstructionCatalogFactory('nrcan').catalog for building in city.buildings: - if building.function not in Dictionaries().hub_function_to_nrcan_construction_function: - logging.error('Building %s has an unknown building function %s', building.name, building.function) + main_function = None + functions = building.function.split('_') + if len(functions) > 1: + maximum_percentage = 0 + for function in functions: + percentage_and_function = function.split('-') + if float(percentage_and_function[0]) > maximum_percentage: + maximum_percentage = float(percentage_and_function[0]) + main_function = percentage_and_function[-1] + else: + main_function = functions[-1] + if main_function not in Dictionaries().hub_function_to_nrcan_construction_function: + logging.error('Building %s has an unknown building function %s', building.name, main_function) continue - function = Dictionaries().hub_function_to_nrcan_construction_function[building.function] + function = Dictionaries().hub_function_to_nrcan_construction_function[main_function] try: archetype = self._search_archetype(nrcan_catalog, function, building.year_of_construction, self._climate_zone) diff --git a/hub/imports/geometry/geojson.py b/hub/imports/geometry/geojson.py index b07a6a7b..888045ad 100644 --- a/hub/imports/geometry/geojson.py +++ b/hub/imports/geometry/geojson.py @@ -3,6 +3,7 @@ Geojson module parses geojson files and import the geometry into the city model SPDX - License - Identifier: LGPL - 3.0 - or -later Copyright © 2022 Concordia CERC group Project Coder Guillermo Gutierrez Guillermo.GutierrezMorote@concordia.ca +Project Collaborator Saeed Ranjbar saeed.ranjbar@concordia.ca """ import uuid @@ -127,6 +128,19 @@ class Geojson: function = None if self._function_field is not None: function = str(feature['properties'][self._function_field]) + if function == 'Mixed use' or function == 'mixed use': + function_parts = [] + for key, value in feature['properties'].items(): + if key.startswith("mixed_type_") and not key.endswith("_percentage"): + type_key = key + percentage_key = f"{key}_percentage" + if percentage_key in feature['properties']: + if self._function_to_hub is not None and feature['properties'][type_key] in self._function_to_hub: + usage_function = self._function_to_hub[feature['properties'][type_key]] + function_parts.append(f"{feature['properties'][percentage_key]}-{usage_function}") + else: + function_parts.append(f"{feature['properties'][percentage_key]}-{feature['properties'][type_key]}") + function = "_".join(function_parts) if self._function_to_hub is not None: # use the transformation dictionary to retrieve the proper function if function in self._function_to_hub: diff --git a/hub/imports/usage/comnet_usage_parameters.py b/hub/imports/usage/comnet_usage_parameters.py index 02f9b77e..a48089fd 100644 --- a/hub/imports/usage/comnet_usage_parameters.py +++ b/hub/imports/usage/comnet_usage_parameters.py @@ -3,6 +3,7 @@ ComnetUsageParameters extracts the usage properties from Comnet catalog and assi SPDX - License - Identifier: LGPL - 3.0 - or -later Copyright © 2022 Concordia CERC group Project Coder Pilar Monsalvete Alvarez de Uribarri pilar.monsalvete@concordia.ca +Project Collaborator Saeed Ranjbar saeed.ranjbar@concordia.ca """ import copy import logging @@ -35,29 +36,60 @@ class ComnetUsageParameters: city = self._city comnet_catalog = UsageCatalogFactory('comnet').catalog for building in city.buildings: - usage_name = Dictionaries().hub_usage_to_comnet_usage[building.function] - try: - archetype_usage = self._search_archetypes(comnet_catalog, usage_name) - except KeyError: - logging.error('Building %s has unknown usage archetype for usage %s', building.name, usage_name) - continue - - for internal_zone in building.internal_zones: - if internal_zone.area is None: - raise TypeError('Internal zone area not defined, ACH cannot be calculated') - if internal_zone.volume is None: - raise TypeError('Internal zone volume not defined, ACH cannot be calculated') - if internal_zone.area <= 0: - raise TypeError('Internal zone area is zero, ACH cannot be calculated') - volume_per_area = internal_zone.volume / internal_zone.area - usage = Usage() - usage.name = usage_name - self._assign_values(usage, archetype_usage, volume_per_area, building.cold_water_temperature) - usage.percentage = 1 - self._calculate_reduced_values_from_extended_library(usage, archetype_usage) - - internal_zone.usages = [usage] + usages = [] + comnet_archetype_usages = [] + building_functions = building.function.split('_') + for function in building_functions: + usages.append(function.split('-')) + for usage in usages: + comnet_usage_name = Dictionaries().hub_usage_to_comnet_usage[usage[-1]] + try: + comnet_archetype_usage = self._search_archetypes(comnet_catalog, comnet_usage_name) + comnet_archetype_usages.append(comnet_archetype_usage) + except KeyError: + logging.error('Building %s has unknown usage archetype for usage %s', building.name, comnet_usage_name) + continue + for (i, internal_zone) in enumerate(building.internal_zones): + internal_zone_usages = [] + if len(building.internal_zones) > 1: + volume_per_area = 0 + if internal_zone.area is None: + logging.error('Building %s has internal zone area not defined, ACH cannot be calculated for usage %s', + building.name, usages[i][-1]) + continue + if internal_zone.volume is None: + logging.error('Building %s has internal zone volume not defined, ACH cannot be calculated for usage %s', + building.name, usages[i][-1]) + continue + if internal_zone.area <= 0: + logging.error('Building %s has internal zone area equal to 0, ACH cannot be calculated for usage %s', + building.name, usages[i][-1]) + continue + volume_per_area += internal_zone.volume / internal_zone.area + usage = Usage() + usage.name = usages[i][-1] + self._assign_values(usage, comnet_archetype_usages[i], volume_per_area, building.cold_water_temperature) + usage.percentage = 1 + self._calculate_reduced_values_from_extended_library(usage, comnet_archetype_usages[i]) + internal_zone_usages.append(usage) + else: + if building.storeys_above_ground is None: + logging.error('Building %s no number of storeys assigned, ACH cannot be calculated for usage %s', + building.name, usages) + continue + volume_per_area = building.volume / building.floor_area / building.storeys_above_ground + for (j, mixed_usage) in enumerate(usages): + usage = Usage() + usage.name = mixed_usage[-1] + if len(usages) > 1: + usage.percentage = float(mixed_usage[0]) / 100 + else: + usage.percentage = 1 + self._assign_values(usage, comnet_archetype_usages[j], volume_per_area, building.cold_water_temperature) + self._calculate_reduced_values_from_extended_library(usage, comnet_archetype_usages[j]) + internal_zone_usages.append(usage) + internal_zone.usages = internal_zone_usages @staticmethod def _search_archetypes(comnet_catalog, usage_name): comnet_archetypes = comnet_catalog.entries('archetypes').usages diff --git a/hub/imports/usage/nrcan_usage_parameters.py b/hub/imports/usage/nrcan_usage_parameters.py index 9d718d33..9c88bc05 100644 --- a/hub/imports/usage/nrcan_usage_parameters.py +++ b/hub/imports/usage/nrcan_usage_parameters.py @@ -3,6 +3,7 @@ NrcanUsageParameters extracts the usage properties from NRCAN catalog and assign SPDX - License - Identifier: LGPL - 3.0 - or -later Copyright © 2022 Concordia CERC group Project Coder Pilar Monsalvete Alvarez de Uribarri pilar.monsalvete@concordia.ca +Project Collaborator Saeed Ranjbar saeed.ranjbar@concordia.ca """ import logging @@ -33,53 +34,72 @@ class NrcanUsageParameters: city = self._city nrcan_catalog = UsageCatalogFactory('nrcan').catalog comnet_catalog = UsageCatalogFactory('comnet').catalog - for building in city.buildings: - usage_name = Dictionaries().hub_usage_to_nrcan_usage[building.function] - try: - archetype_usage = self._search_archetypes(nrcan_catalog, usage_name) - except KeyError: - logging.error('Building %s has unknown usage archetype for usage %s', building.name, usage_name) - continue + usages = [] + nrcan_archetype_usages = [] + comnet_archetype_usages = [] + building_functions = building.function.split('_') + for function in building_functions: + usages.append(function.split('-')) + for usage in usages: + usage_name = Dictionaries().hub_usage_to_nrcan_usage[usage[-1]] + try: + archetype_usage = self._search_archetypes(nrcan_catalog, usage_name) + nrcan_archetype_usages.append(archetype_usage) + except KeyError: + logging.error('Building %s has unknown usage archetype for usage %s', building.name, usage_name) + continue + comnet_usage_name = Dictionaries().hub_usage_to_comnet_usage[usage[-1]] + try: + comnet_archetype_usage = self._search_archetypes(comnet_catalog, comnet_usage_name) + comnet_archetype_usages.append(comnet_archetype_usage) + except KeyError: + logging.error('Building %s has unknown usage archetype for usage %s', building.name, comnet_usage_name) + continue - comnet_usage_name = Dictionaries().hub_usage_to_comnet_usage[building.function] - try: - comnet_archetype_usage = self._search_archetypes(comnet_catalog, comnet_usage_name) - except KeyError: - logging.error('Building %s has unknown usage archetype for usage %s', building.name, comnet_usage_name) - continue - - for internal_zone in building.internal_zones: + for (i, internal_zone) in enumerate(building.internal_zones): + internal_zone_usages = [] if len(building.internal_zones) > 1: volume_per_area = 0 if internal_zone.area is None: logging.error('Building %s has internal zone area not defined, ACH cannot be calculated for usage %s', - building.name, usage_name) + building.name, usages[i][-1]) continue if internal_zone.volume is None: logging.error('Building %s has internal zone volume not defined, ACH cannot be calculated for usage %s', - building.name, usage_name) + building.name, usages[i][-1]) continue if internal_zone.area <= 0: logging.error('Building %s has internal zone area equal to 0, ACH cannot be calculated for usage %s', - building.name, usage_name) + building.name, usages[i][-1]) continue volume_per_area += internal_zone.volume / internal_zone.area + usage = Usage() + usage.name = usages[i][-1] + self._assign_values(usage, nrcan_archetype_usages[i], volume_per_area, building.cold_water_temperature) + self._assign_comnet_extra_values(usage, comnet_archetype_usages[i], nrcan_archetype_usages[i].occupancy.occupancy_density) + usage.percentage = 1 + self._calculate_reduced_values_from_extended_library(usage, nrcan_archetype_usages[i]) + internal_zone_usages.append(usage) else: if building.storeys_above_ground is None: logging.error('Building %s no number of storeys assigned, ACH cannot be calculated for usage %s', - building.name, usage_name) + building.name, usages) continue volume_per_area = building.volume / building.floor_area / building.storeys_above_ground + for (j, mixed_usage) in enumerate(usages): + usage = Usage() + usage.name = mixed_usage[-1] + if len(usages) > 1: + usage.percentage = float(mixed_usage[0]) / 100 + else: + usage.percentage = 1 + self._assign_values(usage, nrcan_archetype_usages[j], volume_per_area, building.cold_water_temperature) + self._assign_comnet_extra_values(usage, comnet_archetype_usages[j], nrcan_archetype_usages[j].occupancy.occupancy_density) + self._calculate_reduced_values_from_extended_library(usage, nrcan_archetype_usages[j]) + internal_zone_usages.append(usage) - usage = Usage() - usage.name = usage_name - self._assign_values(usage, archetype_usage, volume_per_area, building.cold_water_temperature) - self._assign_comnet_extra_values(usage, comnet_archetype_usage, archetype_usage.occupancy.occupancy_density) - usage.percentage = 1 - self._calculate_reduced_values_from_extended_library(usage, archetype_usage) - - internal_zone.usages = [usage] + internal_zone.usages = internal_zone_usages @staticmethod def _search_archetypes(catalog, usage_name): From df2d7a3054638b73a94a981b0607ac8f61e4d922 Mon Sep 17 00:00:00 2001 From: s_ranjbar Date: Wed, 24 Jul 2024 10:26:45 -0400 Subject: [PATCH 37/42] Geojson class modified for the geojson format Guille suggested --- hub/imports/geometry/geojson.py | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/hub/imports/geometry/geojson.py b/hub/imports/geometry/geojson.py index 888045ad..6680b6b6 100644 --- a/hub/imports/geometry/geojson.py +++ b/hub/imports/geometry/geojson.py @@ -3,7 +3,6 @@ Geojson module parses geojson files and import the geometry into the city model SPDX - License - Identifier: LGPL - 3.0 - or -later Copyright © 2022 Concordia CERC group Project Coder Guillermo Gutierrez Guillermo.GutierrezMorote@concordia.ca -Project Collaborator Saeed Ranjbar saeed.ranjbar@concordia.ca """ import uuid @@ -130,16 +129,24 @@ class Geojson: function = str(feature['properties'][self._function_field]) if function == 'Mixed use' or function == 'mixed use': function_parts = [] - for key, value in feature['properties'].items(): - if key.startswith("mixed_type_") and not key.endswith("_percentage"): - type_key = key - percentage_key = f"{key}_percentage" - if percentage_key in feature['properties']: - if self._function_to_hub is not None and feature['properties'][type_key] in self._function_to_hub: - usage_function = self._function_to_hub[feature['properties'][type_key]] - function_parts.append(f"{feature['properties'][percentage_key]}-{usage_function}") - else: - function_parts.append(f"{feature['properties'][percentage_key]}-{feature['properties'][type_key]}") + if 'usages' in feature['properties']: + usages = feature['properties']['usages'] + for usage in usages: + if self._function_to_hub is not None and usage['usage'] in self._function_to_hub: + function_parts.append(f"{usage['percentage']}-{self._function_to_hub[usage['usage']]}") + else: + function_parts.append(f"{usage['percentage']}-{usage['usage']}") + else: + for key, value in feature['properties'].items(): + if key.startswith("mixed_type_") and not key.endswith("_percentage"): + type_key = key + percentage_key = f"{key}_percentage" + if percentage_key in feature['properties']: + if self._function_to_hub is not None and feature['properties'][type_key] in self._function_to_hub: + usage_function = self._function_to_hub[feature['properties'][type_key]] + function_parts.append(f"{feature['properties'][percentage_key]}-{usage_function}") + else: + function_parts.append(f"{feature['properties'][percentage_key]}-{feature['properties'][type_key]}") function = "_".join(function_parts) if self._function_to_hub is not None: # use the transformation dictionary to retrieve the proper function From 4ac9ccda816960d5158d70fc1428f79279566f81 Mon Sep 17 00:00:00 2001 From: Guille Gutierrez Date: Thu, 17 Oct 2024 08:05:13 -0400 Subject: [PATCH 38/42] Update hub/version.py --- hub/version.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hub/version.py b/hub/version.py index 656101d3..44cecba4 100644 --- a/hub/version.py +++ b/hub/version.py @@ -1,4 +1,4 @@ """ Hub version number """ -__version__ = '0.2.0.10' +__version__ = '0.2.0.11' From 4e46b6bc0de7ac8115f750e7c020bcf59c466d5e Mon Sep 17 00:00:00 2001 From: s_ranjbar Date: Fri, 18 Oct 2024 12:28:38 +0200 Subject: [PATCH 39/42] fix: the small bug in test units is resolved, the construction and usage factories can be loaded without any order --- hub/imports/usage/comnet_usage_parameters.py | 48 +++++++++++++++++-- hub/imports/usage/nrcan_usage_parameters.py | 49 ++++++++++++++++++-- tests/test_usage_factory.py | 2 +- 3 files changed, 89 insertions(+), 10 deletions(-) diff --git a/hub/imports/usage/comnet_usage_parameters.py b/hub/imports/usage/comnet_usage_parameters.py index a48089fd..a3a6a613 100644 --- a/hub/imports/usage/comnet_usage_parameters.py +++ b/hub/imports/usage/comnet_usage_parameters.py @@ -19,6 +19,8 @@ from hub.city_model_structure.building_demand.domestic_hot_water import Domestic from hub.city_model_structure.attributes.schedule import Schedule from hub.city_model_structure.building_demand.internal_gain import InternalGain from hub.catalog_factories.usage_catalog_factory import UsageCatalogFactory +from hub.catalog_factories.construction_catalog_factory import ConstructionCatalogFactory +from hub.imports.construction.helpers.construction_helper import ConstructionHelper class ComnetUsageParameters: @@ -73,11 +75,13 @@ class ComnetUsageParameters: self._calculate_reduced_values_from_extended_library(usage, comnet_archetype_usages[i]) internal_zone_usages.append(usage) else: - if building.storeys_above_ground is None: - logging.error('Building %s no number of storeys assigned, ACH cannot be calculated for usage %s', - building.name, usages) - continue - volume_per_area = building.volume / building.floor_area / building.storeys_above_ground + storeys_above_ground = building.storeys_above_ground + if storeys_above_ground is None: + logging.error('Building %s no number of storeys assigned, ACH cannot be calculated for usage %s. ' + 'NRCAN construction data for the year %s is used to calculated number of storeys above ' + 'ground', building.name, usages, building.year_of_construction) + storeys_above_ground = self.average_storey_height_calculator(self._city, building) + volume_per_area = building.volume / building.floor_area / storeys_above_ground for (j, mixed_usage) in enumerate(usages): usage = Usage() usage.name = mixed_usage[-1] @@ -261,3 +265,37 @@ class ComnetUsageParameters: _mean_internal_gain.schedules = _schedules return [_mean_internal_gain] + + @staticmethod + def average_storey_height_calculator(city, building): + climate_zone = ConstructionHelper.city_to_nrcan_climate_zone(city.climate_reference_city) + nrcan_catalog = ConstructionCatalogFactory('nrcan').catalog + main_function = None + functions = building.function.split('_') + if len(functions) > 1: + maximum_percentage = 0 + for function in functions: + percentage_and_function = function.split('-') + if float(percentage_and_function[0]) > maximum_percentage: + maximum_percentage = float(percentage_and_function[0]) + main_function = percentage_and_function[-1] + else: + main_function = functions[-1] + if main_function not in Dictionaries().hub_function_to_nrcan_construction_function: + logging.error('Building %s has an unknown building function %s', building.name, main_function) + function = Dictionaries().hub_function_to_nrcan_construction_function[main_function] + construction_archetype = None + average_storey_height = None + nrcan_archetypes = nrcan_catalog.entries('archetypes') + for building_archetype in nrcan_archetypes: + construction_period_limits = building_archetype.construction_period.split('_') + if int(construction_period_limits[0]) <= int(building.year_of_construction) <= int(construction_period_limits[1]): + if str(function) == str(building_archetype.function) and climate_zone == str(building_archetype.climate_zone): + construction_archetype = building_archetype + average_storey_height = building_archetype.average_storey_height + if construction_archetype is None: + logging.error('Building %s has unknown construction archetype for building function: %s ' + '[%s], building year of construction: %s and climate zone %s', building.name, function, + building.function, building.year_of_construction, climate_zone) + + return average_storey_height \ No newline at end of file diff --git a/hub/imports/usage/nrcan_usage_parameters.py b/hub/imports/usage/nrcan_usage_parameters.py index 9c88bc05..854d7051 100644 --- a/hub/imports/usage/nrcan_usage_parameters.py +++ b/hub/imports/usage/nrcan_usage_parameters.py @@ -9,6 +9,7 @@ Project Collaborator Saeed Ranjbar saeed.ranjbar@concordia.ca import logging import hub.helpers.constants as cte +from hub.catalog_factories.construction_catalog_factory import ConstructionCatalogFactory from hub.helpers.dictionaries import Dictionaries from hub.city_model_structure.building_demand.usage import Usage from hub.city_model_structure.building_demand.lighting import Lighting @@ -17,6 +18,7 @@ from hub.city_model_structure.building_demand.appliances import Appliances from hub.city_model_structure.building_demand.thermal_control import ThermalControl from hub.city_model_structure.building_demand.domestic_hot_water import DomesticHotWater from hub.catalog_factories.usage_catalog_factory import UsageCatalogFactory +from hub.imports.construction.helpers.construction_helper import ConstructionHelper class NrcanUsageParameters: @@ -82,11 +84,14 @@ class NrcanUsageParameters: self._calculate_reduced_values_from_extended_library(usage, nrcan_archetype_usages[i]) internal_zone_usages.append(usage) else: - if building.storeys_above_ground is None: - logging.error('Building %s no number of storeys assigned, ACH cannot be calculated for usage %s', - building.name, usages) + storeys_above_ground = building.storeys_above_ground + if storeys_above_ground is None: + logging.error('Building %s no number of storeys assigned, ACH cannot be calculated for usage %s. ' + 'NRCAN construction data for the year %s is used to calculated number of storeys above ' + 'ground', building.name, usages, building.year_of_construction) + storeys_above_ground = self.average_storey_height_calculator(self._city, building) continue - volume_per_area = building.volume / building.floor_area / building.storeys_above_ground + volume_per_area = building.volume / building.floor_area / storeys_above_ground for (j, mixed_usage) in enumerate(usages): usage = Usage() usage.name = mixed_usage[-1] @@ -217,3 +222,39 @@ class NrcanUsageParameters: usage.thermal_control.mean_heating_set_point = max_heating_setpoint usage.thermal_control.heating_set_back = min_heating_setpoint usage.thermal_control.mean_cooling_set_point = min_cooling_setpoint + + @staticmethod + def average_storey_height_calculator(city, building): + climate_zone = ConstructionHelper.city_to_nrcan_climate_zone(city.climate_reference_city) + nrcan_catalog = ConstructionCatalogFactory('nrcan').catalog + main_function = None + functions = building.function.split('_') + if len(functions) > 1: + maximum_percentage = 0 + for function in functions: + percentage_and_function = function.split('-') + if float(percentage_and_function[0]) > maximum_percentage: + maximum_percentage = float(percentage_and_function[0]) + main_function = percentage_and_function[-1] + else: + main_function = functions[-1] + if main_function not in Dictionaries().hub_function_to_nrcan_construction_function: + logging.error('Building %s has an unknown building function %s', building.name, main_function) + function = Dictionaries().hub_function_to_nrcan_construction_function[main_function] + construction_archetype = None + average_storey_height = None + nrcan_archetypes = nrcan_catalog.entries('archetypes') + for building_archetype in nrcan_archetypes: + construction_period_limits = building_archetype.construction_period.split('_') + if int(construction_period_limits[0]) <= int(building.year_of_construction) <= int(construction_period_limits[1]): + if str(function) == str(building_archetype.function) and climate_zone == str(building_archetype.climate_zone): + construction_archetype = building_archetype + average_storey_height = building_archetype.average_storey_height + if construction_archetype is None: + logging.error('Building %s has unknown construction archetype for building function: %s ' + '[%s], building year of construction: %s and climate zone %s', building.name, function, + building.function, building.year_of_construction, climate_zone) + + return average_storey_height + + diff --git a/tests/test_usage_factory.py b/tests/test_usage_factory.py index 6b6d821a..5c180f09 100644 --- a/tests/test_usage_factory.py +++ b/tests/test_usage_factory.py @@ -83,7 +83,7 @@ class TestUsageFactory(TestCase): city = self._get_citygml(file) for building in city.buildings: building.function = Dictionaries().pluto_function_to_hub_function[building.function] - + ConstructionFactory('nrcan', city).enrich() UsageFactory('comnet', city).enrich() self._check_buildings(city) for building in city.buildings: From bf4018a64986088f26f6bc1c2e48e5c84c7eaf08 Mon Sep 17 00:00:00 2001 From: guille Date: Sun, 20 Oct 2024 17:39:54 +0200 Subject: [PATCH 40/42] Update version number --- hub/version.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hub/version.py b/hub/version.py index 44cecba4..b2f14e16 100644 --- a/hub/version.py +++ b/hub/version.py @@ -1,4 +1,4 @@ """ Hub version number """ -__version__ = '0.2.0.11' +__version__ = '0.2.0.12' From 164ffbf9c8cdbd57211bc16fd0ccd48feb573fae Mon Sep 17 00:00:00 2001 From: s_ranjbar Date: Mon, 21 Oct 2024 23:30:10 +0200 Subject: [PATCH 41/42] feat: all the catalogues, importers, data and tests of palma are added --- .../construction/palma_catalog.py | 236 ++ .../construction_catalog_factory.py | 8 + .../energy_systems/pv_generation_system.py | 16 +- .../energy_systems/palma_system_catalgue.py | 520 +++++ .../energy_systems_catalog_factory.py | 8 + hub/catalog_factories/usage/palma_catalog.py | 227 ++ .../usage_catalog_factory.py | 8 + hub/data/construction/palma_archetypes.json | 664 ++++++ .../construction/palma_constructions.json | 1895 +++++++++++++++++ hub/data/energy_systems/palma_systems.xml | 809 +++++++ hub/data/usage/palma_schedules.json | 904 ++++++++ hub/data/usage/palma_space_compliance.json | 30 + hub/data/usage/palma_space_types.json | 97 + hub/helpers/constants.py | 5 +- ...function_to_palma_construction_function.py | 30 + hub/helpers/data/hub_usage_to_palma_usage.py | 51 + .../data/montreal_custom_fuel_to_hub_fuel.py | 12 +- ..._system_to_hub_energy_generation_system.py | 8 +- .../data/palma_function_to_hub_function.py | 31 + hub/helpers/dictionaries.py | 26 + .../helpers/construction_helper.py | 14 + .../construction/palma_physics_parameters.py | 104 + hub/imports/construction_factory.py | 10 + .../palma_energy_systems_parameters.py | 216 ++ hub/imports/energy_systems_factory.py | 10 + hub/imports/usage/palma_usage_parameters.py | 174 ++ hub/imports/usage_factory.py | 10 + tests/test_construction_catalog.py | 20 + tests/test_construction_factory.py | 28 +- tests/test_systems_catalog.py | 21 + tests/test_systems_factory.py | 39 + tests/test_usage_catalog.py | 8 + tests/test_usage_factory.py | 58 + tests/tests_data/palma_test.geojson | 48 + 34 files changed, 6335 insertions(+), 10 deletions(-) create mode 100644 hub/catalog_factories/construction/palma_catalog.py create mode 100644 hub/catalog_factories/energy_systems/palma_system_catalgue.py create mode 100644 hub/catalog_factories/usage/palma_catalog.py create mode 100644 hub/data/construction/palma_archetypes.json create mode 100644 hub/data/construction/palma_constructions.json create mode 100644 hub/data/energy_systems/palma_systems.xml create mode 100644 hub/data/usage/palma_schedules.json create mode 100644 hub/data/usage/palma_space_compliance.json create mode 100644 hub/data/usage/palma_space_types.json create mode 100644 hub/helpers/data/hub_function_to_palma_construction_function.py create mode 100644 hub/helpers/data/hub_usage_to_palma_usage.py create mode 100644 hub/helpers/data/palma_function_to_hub_function.py create mode 100644 hub/imports/construction/palma_physics_parameters.py create mode 100644 hub/imports/energy_systems/palma_energy_systems_parameters.py create mode 100644 hub/imports/usage/palma_usage_parameters.py create mode 100644 tests/tests_data/palma_test.geojson diff --git a/hub/catalog_factories/construction/palma_catalog.py b/hub/catalog_factories/construction/palma_catalog.py new file mode 100644 index 00000000..3a0d3809 --- /dev/null +++ b/hub/catalog_factories/construction/palma_catalog.py @@ -0,0 +1,236 @@ +""" +Palma construction catalog +SPDX - License - Identifier: LGPL - 3.0 - or -later +Copyright © 2023 Concordia CERC group +Project Coder Cecilia Pérez Pérez cperez@irec.cat +""" + +import json +from pathlib import Path +from hub.catalog_factories.catalog import Catalog +from hub.catalog_factories.data_models.construction.content import Content +from hub.catalog_factories.construction.construction_helper import ConstructionHelper +from hub.catalog_factories.data_models.construction.construction import Construction +from hub.catalog_factories.data_models.construction.archetype import Archetype +from hub.catalog_factories.data_models.construction.window import Window +from hub.catalog_factories.data_models.construction.material import Material +from hub.catalog_factories.data_models.construction.layer import Layer +import hub.helpers.constants as cte + + +class PalmaCatalog(Catalog): + """ + Palma catalog class + """ + def __init__(self, path): + _path_archetypes = Path(path / 'palma_archetypes.json').resolve() + _path_constructions = (path / 'palma_constructions.json').resolve() + with open(_path_archetypes, 'r', encoding='utf-8') as file: + self._archetypes = json.load(file) + with open(_path_constructions, 'r', encoding='utf-8') as file: + self._constructions = json.load(file) + + self._catalog_windows = self._load_windows() + self._catalog_materials = self._load_materials() + self._catalog_constructions = self._load_constructions() + self._catalog_archetypes = self._load_archetypes() + + # store the full catalog data model in self._content + self._content = Content(self._catalog_archetypes, + self._catalog_constructions, + self._catalog_materials, + self._catalog_windows) + + def _load_windows(self): + _catalog_windows = [] + windows = self._constructions['transparent_surfaces'] + for window in windows: + name = list(window.keys())[0] + window_id = name + g_value = window[name]['shgc'] + window_type = window[name]['type'] + frame_ratio = window[name]['frame_ratio'] + overall_u_value = window[name]['u_value'] + _catalog_windows.append(Window(window_id, frame_ratio, g_value, overall_u_value, name, window_type)) + return _catalog_windows + + def _load_materials(self): + _catalog_materials = [] + materials = self._constructions['materials'] + for material in materials: + name = list(material.keys())[0] + material_id = name + no_mass = material[name]['no_mass'] + thermal_resistance = None + conductivity = None + density = None + specific_heat = None + solar_absorptance = None + thermal_absorptance = None + visible_absorptance = None + if no_mass: + thermal_resistance = material[name]['thermal_resistance'] + else: + solar_absorptance = material[name]['solar_absorptance'] + thermal_absorptance = str(1 - float(material[name]['thermal_emittance'])) + visible_absorptance = material[name]['visible_absorptance'] + conductivity = material[name]['conductivity'] + density = material[name]['density'] + specific_heat = material[name]['specific_heat'] + _material = Material(material_id, + name, + solar_absorptance, + thermal_absorptance, + visible_absorptance, + no_mass, + thermal_resistance, + conductivity, + density, + specific_heat) + _catalog_materials.append(_material) + return _catalog_materials + + def _load_constructions(self): + _catalog_constructions = [] + constructions = self._constructions['opaque_surfaces'] + for construction in constructions: + name = list(construction.keys())[0] + construction_id = name + construction_type = ConstructionHelper().nrcan_surfaces_types_to_hub_types[construction[name]['type']] + layers = [] + for layer in construction[name]['layers']: + layer_id = layer + layer_name = layer + material_id = layer + thickness = construction[name]['layers'][layer] + for material in self._catalog_materials: + if str(material_id) == str(material.id): + layers.append(Layer(layer_id, layer_name, material, thickness)) + break + _catalog_constructions.append(Construction(construction_id, construction_type, name, layers)) + return _catalog_constructions + + def _load_archetypes(self): + _catalog_archetypes = [] + archetypes = self._archetypes['archetypes'] + for archetype in archetypes: + archetype_id = f'{archetype["function"]}_{archetype["period_of_construction"]}_{archetype["climate_zone"]}' + function = archetype['function'] + name = archetype_id + climate_zone = archetype['climate_zone'] + construction_period = archetype['period_of_construction'] + average_storey_height = archetype['average_storey_height'] + thermal_capacity = float(archetype['thermal_capacity']) * 1000 + extra_loses_due_to_thermal_bridges = archetype['extra_loses_due_thermal_bridges'] + infiltration_rate_for_ventilation_system_off = archetype['infiltration_rate_for_ventilation_system_off'] / cte.HOUR_TO_SECONDS + infiltration_rate_for_ventilation_system_on = archetype['infiltration_rate_for_ventilation_system_on'] / cte.HOUR_TO_SECONDS + + archetype_constructions = [] + for archetype_construction in archetype['constructions']: + archetype_construction_type = ConstructionHelper().nrcan_surfaces_types_to_hub_types[archetype_construction] + archetype_construction_name = archetype['constructions'][archetype_construction]['opaque_surface_name'] + for construction in self._catalog_constructions: + if archetype_construction_type == construction.type and construction.name == archetype_construction_name: + _construction = None + _window = None + _window_ratio = None + if 'transparent_surface_name' in archetype['constructions'][archetype_construction].keys(): + _window_ratio = archetype['constructions'][archetype_construction]['transparent_ratio'] + _window_id = archetype['constructions'][archetype_construction]['transparent_surface_name'] + for window in self._catalog_windows: + if _window_id == window.id: + _window = window + break + _construction = Construction(construction.id, + construction.type, + construction.name, + construction.layers, + _window_ratio, + _window) + archetype_constructions.append(_construction) + break + + _catalog_archetypes.append(Archetype(archetype_id, + name, + function, + climate_zone, + construction_period, + archetype_constructions, + average_storey_height, + thermal_capacity, + extra_loses_due_to_thermal_bridges, + None, + infiltration_rate_for_ventilation_system_off, + infiltration_rate_for_ventilation_system_on, + None, + None)) + return _catalog_archetypes + + def names(self, category=None): + """ + Get the catalog elements names + :parm: optional category filter + """ + if category is None: + _names = {'archetypes': [], 'constructions': [], 'materials': [], 'windows': []} + for archetype in self._content.archetypes: + _names['archetypes'].append(archetype.name) + for construction in self._content.constructions: + _names['constructions'].append(construction.name) + for material in self._content.materials: + _names['materials'].append(material.name) + for window in self._content.windows: + _names['windows'].append(window.name) + else: + _names = {category: []} + if category.lower() == 'archetypes': + for archetype in self._content.archetypes: + _names[category].append(archetype.name) + elif category.lower() == 'constructions': + for construction in self._content.constructions: + _names[category].append(construction.name) + elif category.lower() == 'materials': + for material in self._content.materials: + _names[category].append(material.name) + elif category.lower() == 'windows': + for window in self._content.windows: + _names[category].append(window.name) + else: + raise ValueError(f'Unknown category [{category}]') + return _names + + def entries(self, category=None): + """ + Get the catalog elements + :parm: optional category filter + """ + if category is None: + return self._content + if category.lower() == 'archetypes': + return self._content.archetypes + if category.lower() == 'constructions': + return self._content.constructions + if category.lower() == 'materials': + return self._content.materials + if category.lower() == 'windows': + return self._content.windows + raise ValueError(f'Unknown category [{category}]') + + def get_entry(self, name): + """ + Get one catalog element by names + :parm: entry name + """ + for entry in self._content.archetypes: + if entry.name.lower() == name.lower(): + return entry + for entry in self._content.constructions: + if entry.name.lower() == name.lower(): + return entry + for entry in self._content.materials: + if entry.name.lower() == name.lower(): + return entry + for entry in self._content.windows: + if entry.name.lower() == name.lower(): + return entry + raise IndexError(f"{name} doesn't exists in the catalog") \ No newline at end of file diff --git a/hub/catalog_factories/construction_catalog_factory.py b/hub/catalog_factories/construction_catalog_factory.py index b1c8a45b..270cb1b4 100644 --- a/hub/catalog_factories/construction_catalog_factory.py +++ b/hub/catalog_factories/construction_catalog_factory.py @@ -11,6 +11,7 @@ from typing import TypeVar from hub.catalog_factories.construction.nrcan_catalog import NrcanCatalog from hub.catalog_factories.construction.nrel_catalog import NrelCatalog from hub.catalog_factories.construction.eilat_catalog import EilatCatalog +from hub.catalog_factories.construction.palma_catalog import PalmaCatalog from hub.helpers.utils import validate_import_export_type Catalog = TypeVar('Catalog') @@ -48,6 +49,13 @@ class ConstructionCatalogFactory: """ return EilatCatalog(self._path) + @property + def _palma(self): + """ + Retrieve Palma catalog + """ + return PalmaCatalog(self._path) + @property def catalog(self) -> Catalog: """ diff --git a/hub/catalog_factories/data_models/energy_systems/pv_generation_system.py b/hub/catalog_factories/data_models/energy_systems/pv_generation_system.py index 87228afa..68ac1460 100644 --- a/hub/catalog_factories/data_models/energy_systems/pv_generation_system.py +++ b/hub/catalog_factories/data_models/energy_systems/pv_generation_system.py @@ -17,8 +17,9 @@ class PvGenerationSystem(GenerationSystem): def __init__(self, system_id, name, system_type, model_name=None, manufacturer=None, electricity_efficiency=None, nominal_electricity_output=None, nominal_ambient_temperature=None, nominal_cell_temperature=None, nominal_radiation=None, standard_test_condition_cell_temperature=None, - standard_test_condition_maximum_power=None, cell_temperature_coefficient=None, width=None, height=None, - distribution_systems=None, energy_storage_systems=None): + standard_test_condition_maximum_power=None, standard_test_condition_radiation=None, + cell_temperature_coefficient=None, width=None, height=None, distribution_systems=None, + energy_storage_systems=None): super().__init__(system_id=system_id, name=name, model_name=model_name, manufacturer=manufacturer, fuel_type='renewable', distribution_systems=distribution_systems, energy_storage_systems=energy_storage_systems) @@ -30,6 +31,7 @@ class PvGenerationSystem(GenerationSystem): self._nominal_radiation = nominal_radiation self._standard_test_condition_cell_temperature = standard_test_condition_cell_temperature self._standard_test_condition_maximum_power = standard_test_condition_maximum_power + self._standard_test_condition_radiation = standard_test_condition_radiation self._cell_temperature_coefficient = cell_temperature_coefficient self._width = width self._height = height @@ -98,6 +100,15 @@ class PvGenerationSystem(GenerationSystem): """ return self._standard_test_condition_maximum_power + @property + def standard_test_condition_radiation(self): + """ + Get standard test condition cell temperature of PV panels in W/m2 + :return: float + """ + return self._standard_test_condition_radiation + + @property def cell_temperature_coefficient(self): """ @@ -143,6 +154,7 @@ class PvGenerationSystem(GenerationSystem): 'nominal radiation [W/m2]': self.nominal_radiation, 'standard test condition cell temperature [Celsius]': self.standard_test_condition_cell_temperature, 'standard test condition maximum power [W]': self.standard_test_condition_maximum_power, + 'standard test condition radiation [W/m2]': self.standard_test_condition_radiation, 'cell temperature coefficient': self.cell_temperature_coefficient, 'width': self.width, 'height': self.height, diff --git a/hub/catalog_factories/energy_systems/palma_system_catalgue.py b/hub/catalog_factories/energy_systems/palma_system_catalgue.py new file mode 100644 index 00000000..d83c9836 --- /dev/null +++ b/hub/catalog_factories/energy_systems/palma_system_catalgue.py @@ -0,0 +1,520 @@ +""" +Palma energy system catalog +SPDX - License - Identifier: LGPL - 3.0 - or -later +Copyright © 2022 Concordia CERC group +Project Coder Saeed Ranjbar saeed.ranjbar@concordia.ca +""" + +import xmltodict +from pathlib import Path +from hub.catalog_factories.catalog import Catalog +from hub.catalog_factories.data_models.energy_systems.distribution_system import DistributionSystem +from hub.catalog_factories.data_models.energy_systems.emission_system import EmissionSystem +from hub.catalog_factories.data_models.energy_systems.system import System +from hub.catalog_factories.data_models.energy_systems.content import Content +from hub.catalog_factories.data_models.energy_systems.non_pv_generation_system import NonPvGenerationSystem +from hub.catalog_factories.data_models.energy_systems.pv_generation_system import PvGenerationSystem +from hub.catalog_factories.data_models.energy_systems.thermal_storage_system import ThermalStorageSystem +from hub.catalog_factories.data_models.energy_systems.performance_curves import PerformanceCurves +from hub.catalog_factories.data_models.energy_systems.archetype import Archetype +from hub.catalog_factories.data_models.construction.material import Material +from hub.catalog_factories.data_models.construction.layer import Layer + + +class PalmaSystemCatalogue(Catalog): + """ + North america energy system catalog class + """ + + def __init__(self, path): + path = str(path / 'palma_systems.xml') + with open(path, 'r', encoding='utf-8') as xml: + self._archetypes = xmltodict.parse(xml.read(), + force_list=['pv_generation_component', 'demand']) + + self._storage_components = self._load_storage_components() + self._generation_components = self._load_generation_components() + self._energy_emission_components = self._load_emission_equipments() + self._distribution_components = self._load_distribution_equipments() + self._systems = self._load_systems() + self._system_archetypes = self._load_archetypes() + self._content = Content(self._system_archetypes, + self._systems, + generations=self._generation_components, + distributions=self._distribution_components) + + def _load_generation_components(self): + generation_components = [] + non_pv_generation_components = self._archetypes['EnergySystemCatalog']['energy_generation_components'][ + 'non_pv_generation_component'] + if non_pv_generation_components is not None: + for non_pv in non_pv_generation_components: + system_id = non_pv['system_id'] + name = non_pv['name'] + system_type = non_pv['system_type'] + model_name = non_pv['model_name'] + manufacturer = non_pv['manufacturer'] + fuel_type = non_pv['fuel_type'] + distribution_systems = non_pv['distribution_systems'] + energy_storage_systems = None + if non_pv['energy_storage_systems'] is not None: + storage_component = non_pv['energy_storage_systems']['storage_id'] + storage_systems = self._search_storage_equipment(self._load_storage_components(), storage_component) + energy_storage_systems = storage_systems + nominal_heat_output = non_pv['nominal_heat_output'] + maximum_heat_output = non_pv['maximum_heat_output'] + minimum_heat_output = non_pv['minimum_heat_output'] + source_medium = non_pv['source_medium'] + supply_medium = non_pv['supply_medium'] + heat_efficiency = non_pv['heat_efficiency'] + nominal_cooling_output = non_pv['nominal_cooling_output'] + maximum_cooling_output = non_pv['maximum_cooling_output'] + minimum_cooling_output = non_pv['minimum_cooling_output'] + cooling_efficiency = non_pv['cooling_efficiency'] + electricity_efficiency = non_pv['electricity_efficiency'] + source_temperature = non_pv['source_temperature'] + source_mass_flow = non_pv['source_mass_flow'] + nominal_electricity_output = non_pv['nominal_electricity_output'] + maximum_heat_supply_temperature = non_pv['maximum_heat_supply_temperature'] + minimum_heat_supply_temperature = non_pv['minimum_heat_supply_temperature'] + maximum_cooling_supply_temperature = non_pv['maximum_cooling_supply_temperature'] + minimum_cooling_supply_temperature = non_pv['minimum_cooling_supply_temperature'] + heat_output_curve = None + heat_fuel_consumption_curve = None + heat_efficiency_curve = None + cooling_output_curve = None + cooling_fuel_consumption_curve = None + cooling_efficiency_curve = None + if non_pv['heat_output_curve'] is not None: + curve_type = non_pv['heat_output_curve']['curve_type'] + dependant_variable = non_pv['heat_output_curve']['dependant_variable'] + parameters = non_pv['heat_output_curve']['parameters'] + coefficients = list(non_pv['heat_output_curve']['coefficients'].values()) + heat_output_curve = PerformanceCurves(curve_type, dependant_variable, parameters, coefficients) + if non_pv['heat_fuel_consumption_curve'] is not None: + curve_type = non_pv['heat_fuel_consumption_curve']['curve_type'] + dependant_variable = non_pv['heat_fuel_consumption_curve']['dependant_variable'] + parameters = non_pv['heat_fuel_consumption_curve']['parameters'] + coefficients = list(non_pv['heat_fuel_consumption_curve']['coefficients'].values()) + heat_fuel_consumption_curve = PerformanceCurves(curve_type, dependant_variable, parameters, coefficients) + if non_pv['heat_efficiency_curve'] is not None: + curve_type = non_pv['heat_efficiency_curve']['curve_type'] + dependant_variable = non_pv['heat_efficiency_curve']['dependant_variable'] + parameters = non_pv['heat_efficiency_curve']['parameters'] + coefficients = list(non_pv['heat_efficiency_curve']['coefficients'].values()) + heat_efficiency_curve = PerformanceCurves(curve_type, dependant_variable, parameters, coefficients) + if non_pv['cooling_output_curve'] is not None: + curve_type = non_pv['cooling_output_curve']['curve_type'] + dependant_variable = non_pv['cooling_output_curve']['dependant_variable'] + parameters = non_pv['cooling_output_curve']['parameters'] + coefficients = list(non_pv['cooling_output_curve']['coefficients'].values()) + cooling_output_curve = PerformanceCurves(curve_type, dependant_variable, parameters, coefficients) + if non_pv['cooling_fuel_consumption_curve'] is not None: + curve_type = non_pv['cooling_fuel_consumption_curve']['curve_type'] + dependant_variable = non_pv['cooling_fuel_consumption_curve']['dependant_variable'] + parameters = non_pv['cooling_fuel_consumption_curve']['parameters'] + coefficients = list(non_pv['cooling_fuel_consumption_curve']['coefficients'].values()) + cooling_fuel_consumption_curve = PerformanceCurves(curve_type, dependant_variable, parameters, coefficients) + if non_pv['cooling_efficiency_curve'] is not None: + curve_type = non_pv['cooling_efficiency_curve']['curve_type'] + dependant_variable = non_pv['cooling_efficiency_curve']['dependant_variable'] + parameters = non_pv['cooling_efficiency_curve']['parameters'] + coefficients = list(non_pv['cooling_efficiency_curve']['coefficients'].values()) + cooling_efficiency_curve = PerformanceCurves(curve_type, dependant_variable, parameters, coefficients) + dhw = None + if non_pv['domestic_hot_water'] is not None: + if non_pv['domestic_hot_water'] == 'True': + dhw = True + else: + dhw = False + + reversible = None + if non_pv['reversible'] is not None: + if non_pv['reversible'] == 'True': + reversible = True + else: + reversible = False + + dual_supply = None + if non_pv['simultaneous_heat_cold'] is not None: + if non_pv['simultaneous_heat_cold'] == 'True': + dual_supply = True + else: + dual_supply = False + non_pv_component = NonPvGenerationSystem(system_id=system_id, + name=name, + system_type=system_type, + model_name=model_name, + manufacturer=manufacturer, + fuel_type=fuel_type, + nominal_heat_output=nominal_heat_output, + maximum_heat_output=maximum_heat_output, + minimum_heat_output=minimum_heat_output, + source_medium=source_medium, + supply_medium=supply_medium, + heat_efficiency=heat_efficiency, + nominal_cooling_output=nominal_cooling_output, + maximum_cooling_output=maximum_cooling_output, + minimum_cooling_output=minimum_cooling_output, + cooling_efficiency=cooling_efficiency, + electricity_efficiency=electricity_efficiency, + source_temperature=source_temperature, + source_mass_flow=source_mass_flow, + nominal_electricity_output=nominal_electricity_output, + maximum_heat_supply_temperature=maximum_heat_supply_temperature, + minimum_heat_supply_temperature=minimum_heat_supply_temperature, + maximum_cooling_supply_temperature=maximum_cooling_supply_temperature, + minimum_cooling_supply_temperature=minimum_cooling_supply_temperature, + heat_output_curve=heat_output_curve, + heat_fuel_consumption_curve=heat_fuel_consumption_curve, + heat_efficiency_curve=heat_efficiency_curve, + cooling_output_curve=cooling_output_curve, + cooling_fuel_consumption_curve=cooling_fuel_consumption_curve, + cooling_efficiency_curve=cooling_efficiency_curve, + distribution_systems=distribution_systems, + energy_storage_systems=energy_storage_systems, + domestic_hot_water=dhw, + reversible=reversible, + simultaneous_heat_cold=dual_supply) + generation_components.append(non_pv_component) + pv_generation_components = self._archetypes['EnergySystemCatalog']['energy_generation_components'][ + 'pv_generation_component'] + if pv_generation_components is not None: + for pv in pv_generation_components: + system_id = pv['system_id'] + name = pv['name'] + system_type = pv['system_type'] + model_name = pv['model_name'] + manufacturer = pv['manufacturer'] + electricity_efficiency = pv['electricity_efficiency'] + nominal_electricity_output = pv['nominal_electricity_output'] + nominal_ambient_temperature = pv['nominal_ambient_temperature'] + nominal_cell_temperature = pv['nominal_cell_temperature'] + nominal_radiation = pv['nominal_radiation'] + standard_test_condition_cell_temperature = pv['standard_test_condition_cell_temperature'] + standard_test_condition_maximum_power = pv['standard_test_condition_maximum_power'] + standard_test_condition_radiation = pv['standard_test_condition_radiation'] + cell_temperature_coefficient = pv['cell_temperature_coefficient'] + width = pv['width'] + height = pv['height'] + distribution_systems = pv['distribution_systems'] + energy_storage_systems = None + if pv['energy_storage_systems'] is not None: + storage_component = pv['energy_storage_systems']['storage_id'] + storage_systems = self._search_storage_equipment(self._load_storage_components(), storage_component) + energy_storage_systems = storage_systems + pv_component = PvGenerationSystem(system_id=system_id, + name=name, + system_type=system_type, + model_name=model_name, + manufacturer=manufacturer, + electricity_efficiency=electricity_efficiency, + nominal_electricity_output=nominal_electricity_output, + nominal_ambient_temperature=nominal_ambient_temperature, + nominal_cell_temperature=nominal_cell_temperature, + nominal_radiation=nominal_radiation, + standard_test_condition_cell_temperature= + standard_test_condition_cell_temperature, + standard_test_condition_maximum_power=standard_test_condition_maximum_power, + standard_test_condition_radiation=standard_test_condition_radiation, + cell_temperature_coefficient=cell_temperature_coefficient, + width=width, + height=height, + distribution_systems=distribution_systems, + energy_storage_systems=energy_storage_systems) + generation_components.append(pv_component) + + return generation_components + + def _load_distribution_equipments(self): + _equipments = [] + distribution_systems = self._archetypes['EnergySystemCatalog']['distribution_systems']['distribution_system'] + if distribution_systems is not None: + for distribution_system in distribution_systems: + system_id = None + model_name = None + system_type = None + supply_temperature = None + distribution_consumption_fix_flow = None + distribution_consumption_variable_flow = None + heat_losses = None + generation_systems = None + energy_storage_systems = None + emission_systems = None + distribution_equipment = DistributionSystem(system_id=system_id, + model_name=model_name, + system_type=system_type, + supply_temperature=supply_temperature, + distribution_consumption_fix_flow=distribution_consumption_fix_flow, + distribution_consumption_variable_flow= + distribution_consumption_variable_flow, + heat_losses=heat_losses, + generation_systems=generation_systems, + energy_storage_systems=energy_storage_systems, + emission_systems=emission_systems + ) + _equipments.append(distribution_equipment) + return _equipments + + def _load_emission_equipments(self): + _equipments = [] + dissipation_systems = self._archetypes['EnergySystemCatalog']['dissipation_systems']['dissipation_system'] + if dissipation_systems is not None: + for dissipation_system in dissipation_systems: + system_id = None + model_name = None + system_type = None + parasitic_energy_consumption = 0 + emission_system = EmissionSystem(system_id=system_id, + model_name=model_name, + system_type=system_type, + parasitic_energy_consumption=parasitic_energy_consumption) + _equipments.append(emission_system) + return _equipments + + def _load_storage_components(self): + storage_components = [] + thermal_storages = self._archetypes['EnergySystemCatalog']['energy_storage_components']['thermalStorages'] + for tes in thermal_storages: + storage_id = tes['storage_id'] + type_energy_stored = tes['type_energy_stored'] + model_name = tes['model_name'] + manufacturer = tes['manufacturer'] + storage_type = tes['storage_type'] + volume = tes['physical_characteristics']['volume'] + height = tes['physical_characteristics']['height'] + maximum_operating_temperature = tes['maximum_operating_temperature'] + materials = self._load_materials() + insulation_material_id = tes['insulation']['material_id'] + insulation_material = self._search_material(materials, insulation_material_id) + material_id = tes['physical_characteristics']['material_id'] + tank_material = self._search_material(materials, material_id) + thickness = float(tes['insulation']['insulationThickness']) / 100 # from cm to m + insulation_layer = Layer(None, 'insulation', insulation_material, thickness) + thickness = float(tes['physical_characteristics']['tankThickness']) / 100 # from cm to m + tank_layer = Layer(None, 'tank', tank_material, thickness) + media = self._load_media() + media_id = tes['storage_medium']['medium_id'] + medium = self._search_media(media, media_id) + layers = [insulation_layer, tank_layer] + nominal_capacity = tes['nominal_capacity'] + losses_ratio = tes['losses_ratio'] + heating_coil_capacity = tes['heating_coil_capacity'] + storage_component = ThermalStorageSystem(storage_id=storage_id, + model_name=model_name, + type_energy_stored=type_energy_stored, + manufacturer=manufacturer, + storage_type=storage_type, + nominal_capacity=nominal_capacity, + losses_ratio=losses_ratio, + volume=volume, + height=height, + layers=layers, + maximum_operating_temperature=maximum_operating_temperature, + storage_medium=medium, + heating_coil_capacity=heating_coil_capacity) + storage_components.append(storage_component) + return storage_components + + def _load_systems(self): + base_path = Path(Path(__file__).parent.parent.parent / 'data/energy_systems') + _catalog_systems = [] + systems = self._archetypes['EnergySystemCatalog']['systems']['system'] + for system in systems: + system_id = system['id'] + name = system['name'] + demands = system['demands']['demand'] + generation_components = system['components']['generation_id'] + generation_systems = self._search_generation_equipment(self._load_generation_components(), generation_components) + configuration_schema = None + if system['schema'] is not None: + configuration_schema = Path(base_path / system['schema']) + energy_system = System(system_id=system_id, + name=name, + demand_types=demands, + generation_systems=generation_systems, + distribution_systems=None, + configuration_schema=configuration_schema) + _catalog_systems.append(energy_system) + return _catalog_systems + + def _load_archetypes(self): + _system_archetypes = [] + system_clusters = self._archetypes['EnergySystemCatalog']['system_archetypes']['system_archetype'] + for system_cluster in system_clusters: + name = system_cluster['name'] + systems = system_cluster['systems']['system_id'] + integer_system_ids = [int(item) for item in systems] + _systems = [] + for system_archetype in self._systems: + if int(system_archetype.id) in integer_system_ids: + _systems.append(system_archetype) + _system_archetypes.append(Archetype(name=name, systems=_systems)) + return _system_archetypes + + def _load_materials(self): + materials = [] + _materials = self._archetypes['EnergySystemCatalog']['materials']['material'] + for _material in _materials: + material_id = _material['material_id'] + name = _material['name'] + conductivity = _material['conductivity'] + solar_absorptance = _material['solar_absorptance'] + thermal_absorptance = _material['thermal_absorptance'] + density = _material['density'] + specific_heat = _material['specific_heat'] + no_mass = _material['no_mass'] + visible_absorptance = _material['visible_absorptance'] + thermal_resistance = _material['thermal_resistance'] + + material = Material(material_id, + name, + solar_absorptance=solar_absorptance, + thermal_absorptance=thermal_absorptance, + density=density, + conductivity=conductivity, + thermal_resistance=thermal_resistance, + visible_absorptance=visible_absorptance, + no_mass=no_mass, + specific_heat=specific_heat) + materials.append(material) + return materials + + @staticmethod + def _search_material(materials, material_id): + _material = None + for material in materials: + if int(material.id) == int(material_id): + _material = material + break + if _material is None: + raise ValueError(f'Material with the id = [{material_id}] not found in catalog ') + return _material + + def _load_media(self): + media = [] + _media = [self._archetypes['EnergySystemCatalog']['media']['medium']] + for _medium in _media: + medium_id = _medium['medium_id'] + density = _medium['density'] + name = _medium['name'] + conductivity = _medium['conductivity'] + solar_absorptance = _medium['solar_absorptance'] + thermal_absorptance = _medium['thermal_absorptance'] + specific_heat = _medium['specific_heat'] + no_mass = _medium['no_mass'] + visible_absorptance = _medium['visible_absorptance'] + thermal_resistance = _medium['thermal_resistance'] + medium = Material(material_id=medium_id, + name=name, + solar_absorptance=solar_absorptance, + thermal_absorptance=thermal_absorptance, + visible_absorptance=visible_absorptance, + no_mass=no_mass, + thermal_resistance=thermal_resistance, + conductivity=conductivity, + density=density, + specific_heat=specific_heat) + media.append(medium) + return media + + @staticmethod + def _search_media(media, medium_id): + _medium = None + for medium in media: + if int(medium.id) == int(medium_id): + _medium = medium + break + if _medium is None: + raise ValueError(f'media with the id = [{medium_id}] not found in catalog ') + return _medium + + @staticmethod + def _search_generation_equipment(generation_systems, generation_id): + _generation_systems = [] + + if isinstance(generation_id, list): + integer_ids = [int(item) for item in generation_id] + for generation in generation_systems: + if int(generation.id) in integer_ids: + _generation_systems.append(generation) + else: + integer_id = int(generation_id) + for generation in generation_systems: + if int(generation.id) == integer_id: + _generation_systems.append(generation) + + if len(_generation_systems) == 0: + _generation_systems = None + raise ValueError(f'The system with the following id is not found in catalog [{generation_id}]') + return _generation_systems + + @staticmethod + def _search_storage_equipment(storage_systems, storage_id): + _storage_systems = [] + for storage in storage_systems: + if storage.id in storage_id: + _storage_systems.append(storage) + if len(_storage_systems) == 0: + _storage_systems = None + raise ValueError(f'The system with the following id is not found in catalog [{storage_id}]') + return _storage_systems + + def names(self, category=None): + """ + Get the catalog elements names + :parm: optional category filter + """ + if category is None: + _names = {'archetypes': [], 'systems': [], 'generation_equipments': [], 'storage_equipments': []} + for archetype in self._content.archetypes: + _names['archetypes'].append(archetype.name) + for system in self._content.systems: + _names['systems'].append(system.name) + for equipment in self._content.generation_equipments: + _names['generation_equipments'].append(equipment.name) + else: + _names = {category: []} + if category.lower() == 'archetypes': + for archetype in self._content.archetypes: + _names[category].append(archetype.name) + elif category.lower() == 'systems': + for system in self._content.systems: + _names[category].append(system.name) + elif category.lower() == 'generation_equipments': + for system in self._content.generation_equipments: + _names[category].append(system.name) + else: + raise ValueError(f'Unknown category [{category}]') + return _names + + def entries(self, category=None): + """ + Get the catalog elements + :parm: optional category filter + """ + if category is None: + return self._content + if category.lower() == 'archetypes': + return self._content.archetypes + if category.lower() == 'systems': + return self._content.systems + if category.lower() == 'generation_equipments': + return self._content.generation_equipments + raise ValueError(f'Unknown category [{category}]') + + def get_entry(self, name): + """ + Get one catalog element by names + :parm: entry name + """ + for entry in self._content.archetypes: + if entry.name.lower() == name.lower(): + return entry + for entry in self._content.systems: + if entry.name.lower() == name.lower(): + return entry + for entry in self._content.generation_equipments: + if entry.name.lower() == name.lower(): + return entry + raise IndexError(f"{name} doesn't exists in the catalog") diff --git a/hub/catalog_factories/energy_systems_catalog_factory.py b/hub/catalog_factories/energy_systems_catalog_factory.py index ffd36d10..ecc6004b 100644 --- a/hub/catalog_factories/energy_systems_catalog_factory.py +++ b/hub/catalog_factories/energy_systems_catalog_factory.py @@ -10,6 +10,7 @@ from typing import TypeVar from hub.catalog_factories.energy_systems.montreal_custom_catalog import MontrealCustomCatalog from hub.catalog_factories.energy_systems.montreal_future_system_catalogue import MontrealFutureSystemCatalogue +from hub.catalog_factories.energy_systems.palma_system_catalgue import PalmaSystemCatalogue from hub.helpers.utils import validate_import_export_type Catalog = TypeVar('Catalog') @@ -40,6 +41,13 @@ class EnergySystemsCatalogFactory: """ return MontrealFutureSystemCatalogue(self._path) + @property + def _palma(self): + """ + Retrieve Palma catalog + """ + return PalmaSystemCatalogue(self._path) + @property def catalog(self) -> Catalog: """ diff --git a/hub/catalog_factories/usage/palma_catalog.py b/hub/catalog_factories/usage/palma_catalog.py new file mode 100644 index 00000000..ee8ab4d1 --- /dev/null +++ b/hub/catalog_factories/usage/palma_catalog.py @@ -0,0 +1,227 @@ +""" +Palma usage catalog +SPDX - License - Identifier: LGPL - 3.0 - or -later +Copyright © 2022 Concordia CERC group +Project Coder Cecilia Pérez cperez@irec.cat +""" + +import json +import urllib.request +from pathlib import Path + +import xmltodict + +import hub.helpers.constants as cte +from hub.catalog_factories.catalog import Catalog +from hub.catalog_factories.data_models.usages.appliances import Appliances +from hub.catalog_factories.data_models.usages.content import Content +from hub.catalog_factories.data_models.usages.lighting import Lighting +from hub.catalog_factories.data_models.usages.occupancy import Occupancy +from hub.catalog_factories.data_models.usages.domestic_hot_water import DomesticHotWater +from hub.catalog_factories.data_models.usages.schedule import Schedule +from hub.catalog_factories.data_models.usages.thermal_control import ThermalControl +from hub.catalog_factories.data_models.usages.usage import Usage +from hub.catalog_factories.usage.usage_helper import UsageHelper + + +class PalmaCatalog(Catalog): + """ + Palma catalog class + """ + def __init__(self, path): + self._schedules_path = Path(path / 'palma_schedules.json').resolve() + self._space_types_path = Path(path / 'palma_space_types.json').resolve() + self._space_compliance_path = Path(path / 'palma_space_compliance.json').resolve() + self._content = None + self._schedules = {} + self._load_schedules() + self._content = Content(self._load_archetypes()) + + @staticmethod + def _extract_schedule(raw): + nrcan_schedule_type = raw['category'] + if 'Heating' in raw['name'] and 'Water' not in raw['name']: + nrcan_schedule_type = f'{nrcan_schedule_type} Heating' + elif 'Cooling' in raw['name']: + nrcan_schedule_type = f'{nrcan_schedule_type} Cooling' + if nrcan_schedule_type not in UsageHelper().nrcan_schedule_type_to_hub_schedule_type: + return None + hub_type = UsageHelper().nrcan_schedule_type_to_hub_schedule_type[nrcan_schedule_type] + data_type = UsageHelper().nrcan_data_type_to_hub_data_type[raw['units']] + time_step = UsageHelper().nrcan_time_to_hub_time[raw['type']] + # nrcan only uses daily range for the schedules + time_range = cte.DAY + day_types = UsageHelper().nrcan_day_type_to_hub_days[raw['day_types']] + return Schedule(hub_type, raw['values'], data_type, time_step, time_range, day_types) + + def _load_schedules(self): + _schedule_types = [] + with open(self._schedules_path, 'r') as f: + schedules_type = json.load(f) + for schedule_type in schedules_type['tables']['schedules']['table']: + schedule = PalmaCatalog._extract_schedule(schedule_type) + if schedule_type['name'] not in _schedule_types: + _schedule_types.append(schedule_type['name']) + if schedule is not None: + self._schedules[schedule_type['name']] = [schedule] + else: + if schedule is not None: + _schedules = self._schedules[schedule_type['name']] + _schedules.append(schedule) + self._schedules[schedule_type['name']] = _schedules + + def _get_schedules(self, name): + schedule = None + if name in self._schedules: + schedule = self._schedules[name] + return schedule + + def _load_archetypes(self): + usages = [] + with open(self._space_types_path, 'r') as f: + space_types = json.load(f)['tables']['space_types']['table'] + space_types = [st for st in space_types if st['space_type'] == 'WholeBuilding'] + with open(self._space_compliance_path, 'r') as f: + space_types_compliance = json.load(f)['tables']['space_compliance']['table'] + space_types_compliance = [st for st in space_types_compliance if st['space_type'] == 'WholeBuilding'] + space_types_dictionary = {} + for space_type in space_types_compliance: + usage_type = space_type['building_type'] + # people/m2 + occupancy_density = space_type['occupancy_per_area_people_per_m2'] + # W/m2 + lighting_density = space_type['lighting_per_area_w_per_m2'] + # W/m2 + appliances_density = space_type['electric_equipment_per_area_w_per_m2'] + # peak flow in gallons/h/m2 + domestic_hot_water_peak_flow = ( + space_type['service_water_heating_peak_flow_per_area'] * + cte.GALLONS_TO_QUBIC_METERS / cte.HOUR_TO_SECONDS + ) + space_types_dictionary[usage_type] = {'occupancy_per_area': occupancy_density, + 'lighting_per_area': lighting_density, + 'electric_equipment_per_area': appliances_density, + 'service_water_heating_peak_flow_per_area': domestic_hot_water_peak_flow + } + + for space_type in space_types: + usage_type = space_type['building_type'] + space_type_compliance = space_types_dictionary[usage_type] + occupancy_density = space_type_compliance['occupancy_per_area'] + sensible_convective_internal_gain = space_type['sensible_convective_internal_gain'] + sensible_radiative_internal_gain = space_type['sensible_radiative_internal_gain'] + latent_internal_gain = space_type['latent_internal_gain'] + lighting_density = space_type_compliance['lighting_per_area'] + appliances_density = space_type_compliance['electric_equipment_per_area'] + domestic_hot_water_peak_flow = space_type_compliance['service_water_heating_peak_flow_per_area'] + + occupancy_schedule_name = space_type['occupancy_schedule'] + lighting_schedule_name = space_type['lighting_schedule'] + appliance_schedule_name = space_type['electric_equipment_schedule'] + hvac_schedule_name = space_type['exhaust_schedule'] + if hvac_schedule_name and 'FAN' in hvac_schedule_name: + hvac_schedule_name = hvac_schedule_name.replace('FAN', 'Fan') + if not hvac_schedule_name: + hvac_schedule_name = 'default_HVAC_schedule' + heating_setpoint_schedule_name = space_type['heating_setpoint_schedule'] + cooling_setpoint_schedule_name = space_type['cooling_setpoint_schedule'] + domestic_hot_water_schedule_name = space_type['service_water_heating_schedule'] + occupancy_schedule = self._get_schedules(occupancy_schedule_name) + lighting_schedule = self._get_schedules(lighting_schedule_name) + appliance_schedule = self._get_schedules(appliance_schedule_name) + heating_schedule = self._get_schedules(heating_setpoint_schedule_name) + cooling_schedule = self._get_schedules(cooling_setpoint_schedule_name) + hvac_availability = self._get_schedules(hvac_schedule_name) + domestic_hot_water_load_schedule = self._get_schedules(domestic_hot_water_schedule_name) + + # ACH -> 1/s + mechanical_air_change = space_type['ventilation_air_changes'] / cte.HOUR_TO_SECONDS + # cfm/ft2 to m3/m2.s + ventilation_rate = space_type['ventilation_per_area'] / (cte.METERS_TO_FEET * cte.MINUTES_TO_SECONDS) + # cfm/person to m3/m2.s + ventilation_rate += space_type['ventilation_per_person'] / ( + pow(cte.METERS_TO_FEET, 3) * cte.MINUTES_TO_SECONDS + ) * occupancy_density + + lighting_radiative_fraction = space_type['lighting_fraction_radiant'] + lighting_convective_fraction = 0 + if lighting_radiative_fraction is not None: + lighting_convective_fraction = 1 - lighting_radiative_fraction + lighting_latent_fraction = 0 + appliances_radiative_fraction = space_type['electric_equipment_fraction_radiant'] + appliances_latent_fraction = space_type['electric_equipment_fraction_latent'] + appliances_convective_fraction = 0 + if appliances_radiative_fraction is not None and appliances_latent_fraction is not None: + appliances_convective_fraction = 1 - appliances_radiative_fraction - appliances_latent_fraction + + domestic_hot_water_service_temperature = space_type['service_water_heating_target_temperature'] + + occupancy = Occupancy(occupancy_density, + sensible_convective_internal_gain, + sensible_radiative_internal_gain, + latent_internal_gain, + occupancy_schedule) + lighting = Lighting(lighting_density, + lighting_convective_fraction, + lighting_radiative_fraction, + lighting_latent_fraction, + lighting_schedule) + appliances = Appliances(appliances_density, + appliances_convective_fraction, + appliances_radiative_fraction, + appliances_latent_fraction, + appliance_schedule) + thermal_control = ThermalControl(None, + None, + None, + hvac_availability, + heating_schedule, + cooling_schedule) + domestic_hot_water = DomesticHotWater(None, + domestic_hot_water_peak_flow, + domestic_hot_water_service_temperature, + domestic_hot_water_load_schedule) + + hours_day = None + days_year = None + + usages.append(Usage(usage_type, + hours_day, + days_year, + mechanical_air_change, + ventilation_rate, + occupancy, + lighting, + appliances, + thermal_control, + domestic_hot_water)) + + + return usages + + def names(self, category=None): + """ + Get the catalog elements names + :parm: for usage catalog category filter does nothing as there is only one category (usages) + """ + _names = {'usages': []} + for usage in self._content.usages: + _names['usages'].append(usage.name) + return _names + + def entries(self, category=None): + """ + Get the catalog elements + :parm: for usage catalog category filter does nothing as there is only one category (usages) + """ + return self._content + + def get_entry(self, name): + """ + Get one catalog element by names + :parm: entry name + """ + for usage in self._content.usages: + if usage.name.lower() == name.lower(): + return usage + raise IndexError(f"{name} doesn't exists in the catalog") \ No newline at end of file diff --git a/hub/catalog_factories/usage_catalog_factory.py b/hub/catalog_factories/usage_catalog_factory.py index ce015a35..b5412bd2 100644 --- a/hub/catalog_factories/usage_catalog_factory.py +++ b/hub/catalog_factories/usage_catalog_factory.py @@ -11,6 +11,7 @@ from typing import TypeVar from hub.catalog_factories.usage.comnet_catalog import ComnetCatalog from hub.catalog_factories.usage.nrcan_catalog import NrcanCatalog from hub.catalog_factories.usage.eilat_catalog import EilatCatalog +from hub.catalog_factories.usage.palma_catalog import PalmaCatalog from hub.helpers.utils import validate_import_export_type Catalog = TypeVar('Catalog') @@ -49,6 +50,13 @@ class UsageCatalogFactory: """ return EilatCatalog(self._path) + @property + def _palma(self): + """ + Retrieve Palma catalog + """ + return PalmaCatalog(self._path) + @property def catalog(self) -> Catalog: """ diff --git a/hub/data/construction/palma_archetypes.json b/hub/data/construction/palma_archetypes.json new file mode 100644 index 00000000..5781ceaa --- /dev/null +++ b/hub/data/construction/palma_archetypes.json @@ -0,0 +1,664 @@ +{ + "archetypes": [ + { + "function": "Large multifamily building", + "period_of_construction": "2021_2050", + "climate_zone": "B3", + "average_storey_height": 3.57, + "thermal_capacity": 83.018, + "extra_loses_due_thermal_bridges": 0.1, + "infiltration_rate_for_ventilation_system_on": 0, + "infiltration_rate_for_ventilation_system_off": 0.9, + "constructions": { + "OutdoorsWall": { + "opaque_surface_name": "PA1_PA2_2021_2050_FACEXT", + "transparent_surface_name": "PA1_PA2_2021_2050_WIN1", + "transparent_ratio": { + "north": "60", + "east": "5", + "south": "60", + "west": "5" + } + }, + "OutdoorsRoofCeiling": { + "opaque_surface_name": "PA1_PA2_2021_2050_ROOF", + "transparent_surface_name": null, + "transparent_ratio": { + "north": null, + "east": null, + "south": null, + "west": null + } + }, + "GroundFloor": { + "opaque_surface_name": "PA1_PA2_2021_2050_FLOOR" + }, + "GroundWall": { + "opaque_surface_name": "PA1_PA2_2021_2050_FACEXT" + }, + "GroundRoofCeiling": { + "opaque_surface_name": "PA1_PA2_2021_2050_FLOORINT" + } + } + }, + { + "function": "Medium multifamily building", + "period_of_construction": "2021_2050", + "climate_zone": "B3", + "average_storey_height": 3.57, + "thermal_capacity": 83.018, + "extra_loses_due_thermal_bridges": 0.1, + "infiltration_rate_for_ventilation_system_on": 0, + "infiltration_rate_for_ventilation_system_off": 0.9, + "constructions": { + "OutdoorsWall": { + "opaque_surface_name": "PA1_PA2_2021_2050_FACEXT", + "transparent_surface_name": "PA1_PA2_2021_2050_WIN1", + "transparent_ratio": { + "north": "60", + "east": "5", + "south": "60", + "west": "5" + } + }, + "OutdoorsRoofCeiling": { + "opaque_surface_name": "PA1_PA2_2021_2050_ROOF", + "transparent_surface_name": null, + "transparent_ratio": { + "north": null, + "east": null, + "south": null, + "west": null + } + }, + "GroundFloor": { + "opaque_surface_name": "PA1_PA2_2021_2050_FLOOR" + }, + "GroundWall": { + "opaque_surface_name": "PA1_PA2_2021_2050_FACEXT" + }, + "GroundRoofCeiling": { + "opaque_surface_name": "PA1_PA2_2021_2050_FLOORINT" + } + } + }, + { + "function": "Small multifamily building", + "period_of_construction": "2021_2050", + "climate_zone": "B3", + "average_storey_height": 3.57, + "thermal_capacity": 83.018, + "extra_loses_due_thermal_bridges": 0.1, + "infiltration_rate_for_ventilation_system_on": 0, + "infiltration_rate_for_ventilation_system_off": 0.9, + "constructions": { + "OutdoorsWall": { + "opaque_surface_name": "PA1_PA2_2021_2050_FACEXT", + "transparent_surface_name": "PA1_PA2_2021_2050_WIN1", + "transparent_ratio": { + "north": "60", + "east": "5", + "south": "60", + "west": "5" + } + }, + "OutdoorsRoofCeiling": { + "opaque_surface_name": "PA1_PA2_2021_2050_ROOF", + "transparent_surface_name": null, + "transparent_ratio": { + "north": null, + "east": null, + "south": null, + "west": null + } + }, + "GroundFloor": { + "opaque_surface_name": "PA1_PA2_2021_2050_FLOOR" + }, + "GroundWall": { + "opaque_surface_name": "PA1_PA2_2021_2050_FACEXT" + }, + "GroundRoofCeiling": { + "opaque_surface_name": "PA1_PA2_2021_2050_FLOORINT" + } + } + }, + { + "function": "Single family building", + "period_of_construction": "2021_2050", + "climate_zone": "B3", + "average_storey_height": 3.57, + "thermal_capacity": 83.018, + "extra_loses_due_thermal_bridges": 0.1, + "infiltration_rate_for_ventilation_system_on": 0, + "infiltration_rate_for_ventilation_system_off": 0.9, + "constructions": { + "OutdoorsWall": { + "opaque_surface_name": "PA1_PA2_2021_2050_FACEXT", + "transparent_surface_name": "PA1_PA2_2021_2050_WIN1", + "transparent_ratio": { + "north": "60", + "east": "5", + "south": "60", + "west": "5" + } + }, + "OutdoorsRoofCeiling": { + "opaque_surface_name": "PA1_PA2_2021_2050_ROOF", + "transparent_surface_name": null, + "transparent_ratio": { + "north": null, + "east": null, + "south": null, + "west": null + } + }, + "GroundFloor": { + "opaque_surface_name": "PA1_PA2_2021_2050_FLOOR" + }, + "GroundWall": { + "opaque_surface_name": "PA1_PA2_2021_2050_FACEXT" + }, + "GroundRoofCeiling": { + "opaque_surface_name": "PA1_PA2_2021_2050_FLOORINT" + } + } + }, + { + "function": "Large multifamily building", + "period_of_construction": "1961_1980", + "climate_zone": "B3", + "average_storey_height": 3.57, + "thermal_capacity": 3000, + "extra_loses_due_thermal_bridges": 0.1, + "infiltration_rate_for_ventilation_system_on": 0, + "infiltration_rate_for_ventilation_system_off": 0.9, + "constructions": { + "OutdoorsWall": { + "opaque_surface_name": "PA1_PA2_1961_1980_FACEXT1", + "transparent_surface_name": "PA1_PA2_1961_1980_WIN1", + "transparent_ratio": { + "north": "60", + "east": "60", + "south": "60", + "west": "60" + } + }, + "OutdoorsRoofCeiling": { + "opaque_surface_name": "PA1_PA2_1961_1980_ROOF1", + "transparent_surface_name": null, + "transparent_ratio": { + "north": null, + "east": null, + "south": null, + "west": null + } + }, + "GroundFloor": { + "opaque_surface_name": "PA1_PA2_1961_1980_FLOOR1" + }, + "GroundWall": { + "opaque_surface_name": "PA1_PA2_1961_1980_FACEXT1" + }, + "GroundRoofCeiling": { + "opaque_surface_name": "PA1_PA2_1961_1980_FLOOR4" + } + } + }, + { + "function": "Medium multifamily building", + "period_of_construction": "1800_1900", + "climate_zone": "B3", + "average_storey_height": 4.39, + "thermal_capacity": 3330, + "extra_loses_due_thermal_bridges": 0.1, + "infiltration_rate_for_ventilation_system_on": 0, + "infiltration_rate_for_ventilation_system_off": 0.9, + "constructions": { + "OutdoorsWall": { + "opaque_surface_name": "A_B1900_FACEXT1", + "transparent_surface_name": "A_B1900_WIN2", + "transparent_ratio": { + "north": "20", + "east": "20", + "south": "20", + "west": "20" + } + }, + "OutdoorsRoofCeiling": { + "opaque_surface_name": "A_B1900_ROOF1", + "transparent_surface_name": null, + "transparent_ratio": { + "north": null, + "east": null, + "south": null, + "west": null + } + }, + "GroundFloor": { + "opaque_surface_name": "A_B1900_FLOORGR1" + } + } + }, + { + "function": "Medium multifamily building", + "period_of_construction": "1901_1940", + "climate_zone": "B3", + "average_storey_height": 3.65, + "thermal_capacity": 3420, + "extra_loses_due_thermal_bridges": 0.1, + "infiltration_rate_for_ventilation_system_on": 0, + "infiltration_rate_for_ventilation_system_off": 0.9, + "constructions": { + "OutdoorsWall": { + "opaque_surface_name": "B_1901_1940_FACEXT1", + "transparent_surface_name": "B_1901_1940_WIN1", + "transparent_ratio": { + "north": "40", + "east": "40", + "south": "40", + "west": "40" + } + }, + "OutdoorsRoofCeiling": { + "opaque_surface_name": "B_1901_1940_ROOF1", + "transparent_surface_name": null, + "transparent_ratio": { + "north": null, + "east": null, + "south": null, + "west": null + } + }, + "GroundFloor": { + "opaque_surface_name": "B_1901_1940_FLOORGR1" + } + } + }, + { + "function": "Medium multifamily building", + "period_of_construction": "1941_1960", + "climate_zone": "B3", + "average_storey_height": 3.6, + "thermal_capacity": 3000, + "extra_loses_due_thermal_bridges": 0.1, + "infiltration_rate_for_ventilation_system_on": 0, + "infiltration_rate_for_ventilation_system_off": 0.9, + "constructions": { + "OutdoorsWall": { + "opaque_surface_name": " C_1941_1960_FACEXT1", + "transparent_surface_name": "C_1941_1960_WIN1", + "transparent_ratio": { + "north": "30", + "east": "30", + "south": "30", + "west": "30" + } + }, + "OutdoorsRoofCeiling": { + "opaque_surface_name": "C_1941_1960_ROOF1", + "transparent_surface_name": null, + "transparent_ratio": { + "north": null, + "east": null, + "south": null, + "west": null + } + }, + "GroundFloor": { + "opaque_surface_name": "C_1941_1960_FLOORGR1" + } + } + }, + { + "function": "Medium multifamily building", + "period_of_construction": "1961_1980", + "climate_zone": "B3", + "average_storey_height": 4.5, + "thermal_capacity": 3540, + "extra_loses_due_thermal_bridges": 0.1, + "infiltration_rate_for_ventilation_system_on": 0, + "infiltration_rate_for_ventilation_system_off": 0.9, + "constructions": { + "OutdoorsWall": { + "opaque_surface_name": "PA1_PA2_1961_1980_FACEXT1", + "transparent_surface_name": "PA1_PA2_1961_1980_WIN1", + "transparent_ratio": { + "north": "55", + "east": "55", + "south": "55", + "west": "55" + } + }, + "OutdoorsRoofCeiling": { + "opaque_surface_name": "PA1_PA2_1961_1980_ROOF1", + "transparent_surface_name": null, + "transparent_ratio": { + "north": null, + "east": null, + "south": null, + "west": null + } + }, + "GroundFloor": { + "opaque_surface_name": "PA1_PA2_1961_1980_FLOOR1" + } + } + }, + { + "function": "Medium multifamily building", + "period_of_construction": "1981_2007", + "climate_zone": "B3", + "average_storey_height": 3.2, + "thermal_capacity": 3179, + "extra_loses_due_thermal_bridges": 0.1, + "infiltration_rate_for_ventilation_system_on": 0, + "infiltration_rate_for_ventilation_system_off": 0.9, + "constructions": { + "OutdoorsWall": { + "opaque_surface_name": "E_1981_2007_FACEXT1", + "transparent_surface_name": "E_1981_2007_WIN1", + "transparent_ratio": { + "north": "45", + "east": "45", + "south": "45", + "west": "45" + } + }, + "OutdoorsRoofCeiling": { + "opaque_surface_name": "E_1981_2007_ROOF1", + "transparent_surface_name": null, + "transparent_ratio": { + "north": null, + "east": null, + "south": null, + "west": null + } + }, + "GroundFloor": { + "opaque_surface_name": "E_1981_2007_FLOORGR1" + } + } + }, + { + "function": "Small multifamily building", + "period_of_construction": "1800_1980", + "climate_zone": "B3", + "average_storey_height": 3.8, + "thermal_capacity": 3527.9, + "extra_loses_due_thermal_bridges": 0.1, + "infiltration_rate_for_ventilation_system_on": 0, + "infiltration_rate_for_ventilation_system_off": 0.9, + "constructions": { + "OutdoorsWall": { + "opaque_surface_name": "PA3_PA4_1901_1940_FACEXT1", + "transparent_surface_name": "PA3_PA4_1901_1940_WIN1", + "transparent_ratio": { + "north": "40", + "east": "40", + "south": "40", + "west": "40" + } + }, + "OutdoorsRoofCeiling": { + "opaque_surface_name": "PA3_PA4_1901_1940_ROOF1", + "transparent_surface_name": null, + "transparent_ratio": { + "north": null, + "east": null, + "south": null, + "west": null + } + }, + "GroundFloor": { + "opaque_surface_name": "PA3_PA4_1901_1940_FLOORGR1" + } + } + }, + { + "function": "Small multifamily building", + "period_of_construction": "1981_2007", + "climate_zone": "B3", + "average_storey_height": 3.2, + "thermal_capacity": 3179, + "extra_loses_due_thermal_bridges": 0.1, + "infiltration_rate_for_ventilation_system_on": 0, + "infiltration_rate_for_ventilation_system_off": 0.9, + "constructions": { + "OutdoorsWall": { + "opaque_surface_name": "E_1981_2007_FACEXT1", + "transparent_surface_name": "E_1981_2007_WIN1", + "transparent_ratio": { + "north": "45", + "east": "45", + "south": "45", + "west": "45" + } + }, + "OutdoorsRoofCeiling": { + "opaque_surface_name": "E_1981_2007_ROOF1", + "transparent_surface_name": null, + "transparent_ratio": { + "north": null, + "east": null, + "south": null, + "west": null + } + }, + "GroundFloor": { + "opaque_surface_name": "E_1981_2007_FLOORGR1" + } + } + }, + { + "function": "Small multifamily building", + "period_of_construction": "2008_2014", + "climate_zone": "B3", + "average_storey_height": 2.75, + "thermal_capacity": 3290, + "extra_loses_due_thermal_bridges": 0.1, + "infiltration_rate_for_ventilation_system_on": 0, + "infiltration_rate_for_ventilation_system_off": 0.9, + "constructions": { + "OutdoorsWall": { + "opaque_surface_name": "F_2008_2014_FACEXT1", + "transparent_surface_name": "F_2008_2014_WIN1", + "transparent_ratio": { + "north": "40", + "east": "40", + "south": "40", + "west": "40" + } + }, + "OutdoorsRoofCeiling": { + "opaque_surface_name": "F_2008_2014_ROOF1", + "transparent_surface_name": null, + "transparent_ratio": { + "north": null, + "east": null, + "south": null, + "west": null + } + }, + "GroundFloor": { + "opaque_surface_name": "F_2008_2014_FLOORGR1" + } + } + }, + { + "function": "Small multifamily building", + "period_of_construction": "2015_2019", + "climate_zone": "B3", + "average_storey_height": 2.75, + "thermal_capacity": 3290, + "extra_loses_due_thermal_bridges": 0.1, + "infiltration_rate_for_ventilation_system_on": 0, + "infiltration_rate_for_ventilation_system_off": 0.9, + "constructions": { + "OutdoorsWall": { + "opaque_surface_name": "G_2015_2019_FACEXT1", + "transparent_surface_name": "G_2015_2019_WIN1", + "transparent_ratio": { + "north": "40", + "east": "40", + "south": "40", + "west": "40" + } + }, + "OutdoorsRoofCeiling": { + "opaque_surface_name": "G_2015_2019_ROOF1", + "transparent_surface_name": null, + "transparent_ratio": { + "north": null, + "east": null, + "south": null, + "west": null + } + }, + "GroundFloor": { + "opaque_surface_name": "G_2015_2019_FLOORGR1" + } + } + }, + { + "function": "Single family building", + "period_of_construction": "1800_1980", + "climate_zone": "B3", + "average_storey_height": 3.68, + "thermal_capacity": 4400, + "extra_loses_due_thermal_bridges": 0.1, + "infiltration_rate_for_ventilation_system_on": 0, + "infiltration_rate_for_ventilation_system_off": 0.9, + "constructions": { + "OutdoorsWall": { + "opaque_surface_name": "PA3_PA4_1901_1940_FACEXT1", + "transparent_surface_name": "PA3_PA4_1901_1940_WIN1", + "transparent_ratio": { + "north": "40", + "east": "40", + "south": "40", + "west": "40" + } + }, + "OutdoorsRoofCeiling": { + "opaque_surface_name": "PA3_PA4_1901_1940_ROOF1", + "transparent_surface_name": null, + "transparent_ratio": { + "north": null, + "east": null, + "south": null, + "west": null + } + }, + "GroundFloor": { + "opaque_surface_name": "PA3_PA4_1901_1940_FLOORGR1" + } + } + }, + { + "function": "Single family building", + "period_of_construction": "1981_2007", + "climate_zone": "B3", + "average_storey_height": 3.2, + "thermal_capacity": 3179, + "extra_loses_due_thermal_bridges": 0.1, + "infiltration_rate_for_ventilation_system_on": 0, + "infiltration_rate_for_ventilation_system_off": 0.9, + "constructions": { + "OutdoorsWall": { + "opaque_surface_name": "E_1981_2007_FACEXT1", + "transparent_surface_name": "E_1981_2007_WIN1", + "transparent_ratio": { + "north": "45", + "east": "45", + "south": "45", + "west": "45" + } + }, + "OutdoorsRoofCeiling": { + "opaque_surface_name": "E_1981_2007_ROOF1", + "transparent_surface_name": null, + "transparent_ratio": { + "north": null, + "east": null, + "south": null, + "west": null + } + }, + "GroundFloor": { + "opaque_surface_name": "E_1981_2007_FLOORGR1" + } + } + }, + { + "function": "Single family building", + "period_of_construction": "2008_2014", + "climate_zone": "B3", + "average_storey_height": 3.75, + "thermal_capacity": 3200, + "extra_loses_due_thermal_bridges": 0.1, + "infiltration_rate_for_ventilation_system_on": 0, + "infiltration_rate_for_ventilation_system_off": 0.9, + "constructions": { + "OutdoorsWall": { + "opaque_surface_name": "F_2008_2014_FACEXT1", + "transparent_surface_name": "F_2008_2014_WIN1", + "transparent_ratio": { + "north": "60", + "east": "60", + "south": "60", + "west": "60" + } + }, + "OutdoorsRoofCeiling": { + "opaque_surface_name": "F_2008_2014_ROOF1", + "transparent_surface_name": null, + "transparent_ratio": { + "north": null, + "east": null, + "south": null, + "west": null + } + }, + "GroundFloor": { + "opaque_surface_name": "F_2008_2014_FLOORGR1" + } + } + }, + { + "function": "Single family building", + "period_of_construction": "2015_2019", + "climate_zone": "B3", + "average_storey_height": 3.75, + "thermal_capacity": 3200, + "extra_loses_due_thermal_bridges": 0.1, + "infiltration_rate_for_ventilation_system_on": 0, + "infiltration_rate_for_ventilation_system_off": 0.9, + "constructions": { + "OutdoorsWall": { + "opaque_surface_name": "G_2015_2019_FACEXT1", + "transparent_surface_name": "G_2015_2019_WIN1", + "transparent_ratio": { + "north": "60", + "east": "60", + "south": "60", + "west": "60" + } + }, + "OutdoorsRoofCeiling": { + "opaque_surface_name": "G_2015_2019_ROOF1", + "transparent_surface_name": null, + "transparent_ratio": { + "north": null, + "east": null, + "south": null, + "west": null + } + }, + "GroundFloor": { + "opaque_surface_name": "G_2015_2019_FLOORGR1" + } + } + } + ] + } \ No newline at end of file diff --git a/hub/data/construction/palma_constructions.json b/hub/data/construction/palma_constructions.json new file mode 100644 index 00000000..4ddeeff2 --- /dev/null +++ b/hub/data/construction/palma_constructions.json @@ -0,0 +1,1895 @@ +{ + "opaque_surfaces": [ + { + "PA1_PA2_1961_1980_FLOOR1": { + "period_of_construction": "1961_1980", + "climate_zone": "B3", + "type": "GroundFloor", + "u_value": 0.921, + "layers": { + "RI01": 0.01, + "F02": 0.2, + "M01": 0.02, + "PT01": 0.03 + } + } + }, + { + "PA1_PA2_1961_1980_ROOF1": { + "period_of_construction": "1961_1980", + "climate_zone": "B3", + "type": "OutdoorsRoofCeiling", + "u_value": 1.926, + "layers": { + "IM01": 0.003, + "F02": 0.2, + "RI01": 0.01 + } + } + }, + { + "PA1_PA2_1961_1980_FACEXT1": { + "period_of_construction": "1961_1980", + "climate_zone": "B3", + "type": "OutdoorsWall", + "u_value": 2.207, + "layers": { + "RI05": 0.01, + "PH01": 0.2 + } + } + }, + { + "PA1_PA2_1961_1980_FLOOR4": { + "period_of_construction": "1961_1980", + "climate_zone": "B3", + "type": "GroundRoofCeiling", + "u_value": 2.603, + "layers": { + "RI05": 0.01, + "F02": 0.2, + "PT02": 0.03 + } + } + }, + { + "PA3_PA4_1901_1940_FLOORGR1": { + "period_of_construction": "1800_1980", + "climate_zone": "B3", + "type": "GroundFloor", + "u_value": 1.142, + "layers": { + "RP01": 0.4, + "M01": 0.01, + "PC01": 0.01 + } + } + }, + { + "PA3_PA4_1901_1940_ROOF1": { + "period_of_construction": "1800_1980", + "climate_zone": "B3", + "type": "OutdoorsRoofCeiling", + "u_value": 1.227, + "layers": { + "ECGX": 0.02, + "CA_50": 0, + "F03": 0.2, + "PC01": 0.06 + } + } + }, + { + "PA3_PA4_1901_1940_FACEXT1": { + "period_of_construction": "1800_1980", + "climate_zone": "B3", + "type": "OutdoorsWall", + "u_value": 2.703, + "layers": { + "RI01": 0.01, + "MW01": 0.25, + "RE01": 0.02 + } + } + }, + { + "A_B1900_FACEXT1": { + "period_of_construction": "1800_1900", + "climate_zone": "B3", + "type": "OutdoorsWall", + "u_value": 1.65, + "layers": { + "RI01": 0.02, + "PF033": 0.38, + "RE01": 0.02 + } + } + }, + { + "A_B1900_ROOF1": { + "period_of_construction": "1800_1900", + "climate_zone": "B3", + "type": "OutdoorsRoofCeiling", + "u_value": 1.28, + "layers": { + "ECGX": 0.02, + "CA02": 0.2, + "F03": 0.2, + "CAV20": 0.2, + "PC01": 0.06 + } + } + }, + { + "A_B1900_FLOORGR1": { + "period_of_construction": "1800_1900", + "climate_zone": "B3", + "type": "GroundFloor", + "u_value": 1.39, + "layers": { + "RP01": 0.4, + "M01": 0.04, + "PC01": 0.03 + } + } + }, + { + "B_1901_1940_FACEXT1": { + "period_of_construction": "1901_1940", + "climate_zone": "B3", + "type": "OutdoorsWall", + "u_value": 1.8, + "layers": { + "RI01": 0.01, + "PF033": 0.29, + "RE01": 0.02 + } + } + }, + { + "B_1901_1940_ROOF1": { + "period_of_construction": "1901_1940", + "climate_zone": "B3", + "type": "OutdoorsRoofCeiling", + "u_value": 1.28, + "layers": { + "ECGX": 0.02, + "CA02": 0.2, + "F03": 0.2, + "CAV20": 0.2, + "PC01": 0.06 + } + } + }, + { + "B_1901_1940_FLOORGR1": { + "period_of_construction": "1901_1940", + "climate_zone": "B3", + "type": "GroundFloor", + "u_value": 1.28, + "layers": { + "ECGX": 0.02, + "CA02": 0.2, + "F03": 0.2, + "CAV20": 0.2, + "PC01": 0.06 + } + } + }, + { + "C_1941_1960_FACEXT1": { + "period_of_construction": "1941_1960", + "climate_zone": "B3", + "type": "OutdoorsWall", + "u_value": 1.82, + "layers": { + "RI01": 0.01, + "PF012": 0.04, + "CA10": 0.1, + "PF021": 0.14, + "RE01": 0.02 + } + } + }, + { + "C_1941_1960_ROOF1": { + "period_of_construction": "1941_1960", + "climate_zone": "B3", + "type": "OutdoorsRoofCeiling", + "u_value": 1.4, + "layers": { + "RI01": 0.01, + "F03": 0.2, + "CAV16": 0.16, + "SC01": 0.05, + "M01": 0.04, + "PC01": 0.03 + } + } + }, + { + "C_1941_1960_FLOORGR1": { + "period_of_construction": "1941_1960", + "climate_zone": "B3", + "type": "GroundFloor", + "u_value": 1.47, + "layers": { + "AI06": 0.2, + "M02": 0.2, + "M01": 0.04, + "PC01": 0.03 + } + } + }, + { + "E_1981_2007_FACEXT1": { + "period_of_construction": "1981_2007", + "climate_zone": "B3", + "type": "OutdoorsWall", + "u_value": 0.73, + "layers": { + "RI01": 0.02, + "F02": 0.3, + "AI02": 0.04, + "M02": 0.1, + "PC01": 0.04 + } + } + }, + { + "E_1981_2007_ROOF1": { + "period_of_construction": "1981_2007", + "climate_zone": "B3", + "type": "OutdoorsRoofCeiling", + "u_value": 0.46, + "layers": { + "RI01": 0.02, + "PF022": 0.04, + "AI01": 0.02, + "CA7": 0.07, + "PF021": 0.14, + "M01": 0.02 + } + } + }, + { + "E_1981_2007_FLOORGR1": { + "period_of_construction": "1981_2007", + "climate_zone": "B3", + "type": "GroundFloor", + "u_value": 1.69, + "layers": { + "F02": 0.25, + "M01": 0.025, + "PT01": 0.025 + } + } + }, + { + "F_2008_2014_FACEXT1": { + "period_of_construction": "2008_2014", + "climate_zone": "B3", + "type": "OutdoorsWall", + "u_value": 0.6, + "layers": { + "RI01": 0.02, + "PF022": 0.05, + "AI01": 0.03, + "CAV16": 0.05, + "PF021": 0.14, + "RE01": 0.02 + } + } + }, + { + "F_2008_2014_ROOF1": { + "period_of_construction": "2008_2014", + "climate_zone": "B3", + "type": "OutdoorsRoofCeiling", + "u_value": 0.46, + "layers": { + "RI01": 0.02, + "F02": 0.3, + "AI02": 0.07, + "M02": 0.1, + "M01": 0.01, + "PC01": 0.01 + } + } + }, + { + "F_2008_2014_FLOORGR1": { + "period_of_construction": "2008_2014", + "climate_zone": "B3", + "type": "GroundFloor", + "u_value": 1.59, + "layers": { + "F02": 0.3, + "AI02": 0.05, + "M01": 0.025, + "PT01": 0.025 + } + } + }, + { + "G_2015_2019_FACEXT1": { + "period_of_construction": "2015_2019", + "climate_zone": "B3", + "type": "OutdoorsWall", + "u_value": 0.6, + "layers": { + "RI01": 0.01, + "PF022": 0.09, + "AI01": 0.04, + "CAV16": 0.06, + "PF021": 0.14, + "M01": 0.02 + } + } + }, + { + "G_2015_2019_ROOF1": { + "period_of_construction": "2015_2019", + "climate_zone": "B3", + "type": "OutdoorsRoofCeiling", + "u_value": 0.37, + "layers": { + "RI01": 0.02, + "F02": 0.3, + "AI02": 0.07, + "M02": 0.1, + "M01": 0.01, + "PC01": 0.01 + } + } + }, + { + "G_2015_2019_FLOORGR1": { + "period_of_construction": "2015_2019", + "climate_zone": "B3", + "type": "GroundFloor", + "u_value": 0.57, + "layers": { + "F02": 0.3, + "AI02": 0.05, + "M01": 0.025, + "PT01": 0.025 + } + } + }, + { + "PA1_PA2_2021_2050_FLOOR": { + "period_of_construction": "2021_2050", + "climate_zone": "B3", + "type": "GroundFloor", + "u_value": 0.75, + "layers": { + "PT02": 0.03, + "CA04": 0, + "X01": 0.03, + "F04": 0.3, + "RI05": 0.01 + } + } + }, + { + "PA1_PA2_2021_2050_ROOF": { + "period_of_construction": "2021_2050", + "climate_zone": "B3", + "type": "OutdoorsRoofCeiling", + "u_value": 0.44, + "layers": { + "RI05": 0.01, + "F04": 0.3, + "CA04": 0, + "M04": 0.02, + "PC01": 0.04 + } + } + }, + { + "PA1_PA2_2021_2050_FACEXT": { + "period_of_construction": "2021_2050", + "climate_zone": "B3", + "type": "OutdoorsWall", + "u_value": 0.56, + "layers": { + "RI05": 0.01, + "CA04": 0 + } + } + }, + { + "PA1_PA2_2021_2050_FLOORINT": { + "period_of_construction": "2021_2050", + "climate_zone": "B3", + "type": "GroundRoofCeiling", + "u_value": 2.207, + "layers": { + "RI05": 0.01, + "F04": 0.3, + "IM01": 0.005, + "M04": 0.02, + "PC01": 0.04 + } + } + } + ], + "transparent_surfaces": [ + { + "PA1_PA2_2021_2050_WIN1": { + "period_of_construction": "2021_2050", + "climate_zone": "B3", + "shgc": 0.65, + "type": "Window", + "frame_ratio": 0.15, + "u_value": 2.3 + } + }, + { + "PA1_PA2_1961_1980_WIN1": { + "period_of_construction": "1961_1980", + "climate_zone": "B3", + "shgc": 0.823, + "type": "Window", + "frame_ratio": 0.3, + "u_value": 5.69 + } + }, + { + "PA3_PA4_1901_1940_WIN1": { + "period_of_construction": "1800_1980", + "climate_zone": "B3", + "shgc": 0.76, + "type": "Window", + "frame_ratio": 0.3, + "u_value": 3.44 + } + }, + { + "A_B1900_WIN2": { + "period_of_construction": "1800_1900", + "climate_zone": "B3", + "shgc": 0.76, + "type": "Window", + "frame_ratio": 0.3, + "u_value": 4.02 + } + }, + { + "B_1901_1940_WIN1": { + "period_of_construction": "1901_1940", + "climate_zone": "B3", + "shgc": 0.76, + "type": "Window", + "frame_ratio": 0.3, + "u_value": 3.44 + } + }, + { + "C_1941_1960_WIN1": { + "period_of_construction": "1941_1960", + "climate_zone": "B3", + "shgc": 0.76, + "type": "Window", + "frame_ratio": 0.3, + "u_value": 3.44 + } + }, + { + "E_1981_2007_WIN1": { + "period_of_construction": "1981_2007", + "climate_zone": "B3", + "shgc": 0.76, + "type": "Window", + "frame_ratio": 0.3, + "u_value": 3.44 + } + }, + { + "F_2008_2014_WIN1": { + "period_of_construction": "2008_2014", + "climate_zone": "B3", + "shgc": 0.76, + "type": "Window", + "frame_ratio": 0.3, + "u_value": 3.44 + } + }, + { + "G_2015_2019_WIN1": { + "period_of_construction": "2015_2019", + "climate_zone": "B3", + "shgc": 0.706, + "type": "Window", + "frame_ratio": 0.26, + "u_value": 3.44 + } + } + ], + "materials": [ + { + "PUTZ": { + "no_mass": false, + "conductivity": 2.52, + "density": 1400, + "specific_heat": 1000, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6, + "capacity": 1 + } + }, + { + "KST": { + "no_mass": false, + "conductivity": 3.564, + "density": 1600, + "specific_heat": 1000, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6, + "capacity": 1 + } + }, + { + "DAEMA": { + "no_mass": false, + "conductivity": 0.173, + "density": 60, + "specific_heat": 1000, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6, + "capacity": 1 + } + }, + { + "GIPS": { + "no_mass": false, + "conductivity": 0.756, + "density": 900, + "specific_heat": 1000, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6, + "capacity": 1 + } + }, + { + "HOLZ": { + "no_mass": false, + "conductivity": 0.468, + "density": 600, + "specific_heat": 2100.0, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6, + "capacity": 2.1 + } + }, + { + "BET": { + "no_mass": false, + "conductivity": 7.56, + "density": 2200, + "specific_heat": 1000, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6, + "capacity": 1 + } + }, + { + "TEPP": { + "no_mass": false, + "conductivity": 0.288, + "density": 700, + "specific_heat": 1300.0, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6, + "capacity": 1.3 + } + }, + { + "ESTR": { + "no_mass": false, + "conductivity": 5.04, + "density": 2000, + "specific_heat": 1000, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6, + "capacity": 1 + } + }, + { + "MIWO": { + "no_mass": false, + "conductivity": 0.144, + "density": 60, + "specific_heat": 1000, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6, + "capacity": 1 + } + }, + { + "DAEMM": { + "no_mass": false, + "conductivity": 0.144, + "density": 60, + "specific_heat": 1000, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6, + "capacity": 1 + } + }, + { + "RI01": { + "no_mass": false, + "conductivity": 1.08, + "density": 800, + "specific_heat": 1000, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6, + "capacity": 1 + } + }, + { + "X01": { + "no_mass": false, + "conductivity": 5.884, + "density": 2400, + "specific_heat": 1000, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6 + } + }, + { + "PM01": { + "no_mass": false, + "conductivity": 5.04, + "density": 2000, + "specific_heat": 1000, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6, + "capacity": 1 + } + }, + { + "RE01": { + "no_mass": false, + "conductivity": 3.13, + "density": 1600, + "specific_heat": 1000, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6, + "capacity": 1 + } + }, + { + "ENGUIXAT": { + "no_mass": false, + "conductivity": 1.083, + "density": 800, + "specific_heat": 722.0, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6, + "capacity": 0.722 + } + }, + { + "TOTXOMASS": { + "no_mass": false, + "conductivity": 3.14, + "density": 1800, + "specific_heat": 830.0, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6, + "capacity": 0.83 + } + }, + { + "ARREBOSSAT": { + "no_mass": false, + "conductivity": 3.14, + "density": 1600, + "specific_heat": 830.0, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6, + "capacity": 0.83 + } + }, + { + "PC01": { + "no_mass": false, + "conductivity": 3.78, + "density": 2000, + "specific_heat": 840.0, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6, + "capacity": 0.84 + } + }, + { + "M01": { + "no_mass": false, + "conductivity": 5.04, + "density": 2000, + "specific_heat": 1000, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6, + "capacity": 1 + } + }, + { + "RP01": { + "no_mass": false, + "conductivity": 2.09, + "density": 1500, + "specific_heat": 1000, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6, + "capacity": 1 + } + }, + { + "EMBLANQUIN": { + "no_mass": false, + "conductivity": 1.083, + "density": 800, + "specific_heat": 722.0, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6, + "capacity": 0.722 + } + }, + { + "MAO_CALAT": { + "no_mass": false, + "conductivity": 2.744, + "density": 1600, + "specific_heat": 830.0, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6, + "capacity": 0.83 + } + }, + { + "ECGX": { + "no_mass": false, + "conductivity": 0.9, + "density": 900, + "specific_heat": 1000, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6, + "capacity": 1 + } + }, + { + "CAV20": { + "no_mass": true, + "thermal_resistance": 0.022, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6 + } + }, + { + "CA7": { + "no_mass": true, + "thermal_resistance": 0.15, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.16 + } + }, + { + "F03": { + "no_mass": false, + "conductivity": 2.0623, + "density": 1290, + "specific_heat": 1000, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6, + "capacity": 1 + } + }, + { + "PF021": { + "no_mass": false, + "conductivity": 2.74, + "density": 1600, + "specific_heat": 1000, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6, + "capacity": 1 + } + }, + { + "PF033": { + "no_mass": false, + "conductivity": 3.13, + "density": 1800, + "specific_heat": 1380.0, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6, + "capacity": 1.38 + } + }, + { + "PF02": { + "no_mass": false, + "conductivity": 2.74, + "density": 1600, + "specific_heat": 1000, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6, + "capacity": 1 + } + }, + { + "PF032": { + "no_mass": false, + "conductivity": 3.13, + "density": 1800, + "specific_heat": 1380.0, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6, + "capacity": 1.38 + } + }, + { + "FF02": { + "no_mass": false, + "conductivity": 0.505, + "density": 600, + "specific_heat": 722.0, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6, + "capacity": 0.722 + } + }, + { + "MARES": { + "no_mass": false, + "conductivity": 5.4, + "density": 2038, + "specific_heat": 710.6, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6, + "capacity": 0.7106 + } + }, + { + "CA_50": { + "no_mass": true, + "thermal_resistance": 0.05, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6 + } + }, + { + "AI01": { + "no_mass": false, + "conductivity": 0.13, + "density": 15, + "specific_heat": 1450.0, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6, + "capacity": 1.45 + } + }, + { + "MW01": { + "no_mass": false, + "conductivity": 5.4, + "density": 2038, + "specific_heat": 710.6, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6, + "capacity": 0.7106 + } + }, + { + "POSIDONIA": { + "no_mass": false, + "conductivity": 0.1548, + "density": 185, + "specific_heat": 800.0, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6, + "capacity": 0.8 + } + }, + { + "FF01": { + "no_mass": false, + "conductivity": 0.468, + "density": 500, + "specific_heat": 1600.0, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6, + "capacity": 1.6 + } + }, + { + "IM02": { + "no_mass": false, + "conductivity": 0.36, + "density": 1600, + "specific_heat": 1000, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6, + "capacity": 1 + } + }, + { + "AI09": { + "no_mass": false, + "conductivity": 0.144, + "density": 115, + "specific_heat": 1900.0, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6, + "capacity": 1.9 + } + }, + { + "AI05": { + "no_mass": false, + "conductivity": 0.14, + "density": 30, + "specific_heat": 2150.0, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6, + "capacity": 2.15 + } + }, + { + "AI08": { + "no_mass": false, + "conductivity": 0.144, + "density": 42.5, + "specific_heat": 1340.0, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6, + "capacity": 1.34 + } + }, + { + "AI10_N": { + "no_mass": false, + "conductivity": 0.122, + "density": 35, + "specific_heat": 1000, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6, + "capacity": 1 + } + }, + { + "AI03": { + "no_mass": false, + "conductivity": 0.16, + "density": 28, + "specific_heat": 840.0, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6, + "capacity": 0.84 + } + }, + { + "M04": { + "no_mass": false, + "conductivity": 0.1512, + "density": 350, + "specific_heat": 1100.0, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6, + "capacity": 1.1 + } + }, + { + "Y01": { + "no_mass": false, + "conductivity": 1.08, + "density": 800, + "specific_heat": 1000, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6, + "capacity": 1 + } + }, + { + "IM01": { + "no_mass": false, + "conductivity": 0.68, + "density": 1100, + "specific_heat": 1000, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6, + "capacity": 1 + } + }, + { + "AI02": { + "no_mass": false, + "conductivity": 0.14, + "density": 80, + "specific_heat": 1450.0, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6, + "capacity": 1.45 + } + }, + { + "M03": { + "no_mass": false, + "conductivity": 0.361, + "density": 600, + "specific_heat": 722.0, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6, + "capacity": 0.722 + } + }, + { + "M02": { + "no_mass": false, + "conductivity": 3.14, + "density": 1600, + "specific_heat": 830.0, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6, + "capacity": 0.83 + } + }, + { + "PF022": { + "no_mass": false, + "conductivity": 2.74, + "density": 1600, + "specific_heat": 1000, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6, + "capacity": 1 + } + }, + { + "IM03": { + "no_mass": false, + "conductivity": 0.828, + "density": 1600, + "specific_heat": 1000, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6, + "capacity": 1 + } + }, + { + "PAVIMENT_D": { + "no_mass": false, + "conductivity": 3.791, + "density": 2000, + "specific_heat": 830.0, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6, + "capacity": 0.83 + } + }, + { + "CAV16": { + "no_mass": true, + "thermal_resistance": 0.15, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.1 + } + }, + { + "CEMENT_MOR": { + "no_mass": false, + "conductivity": 5.04, + "density": 2000, + "specific_heat": 1000, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6, + "capacity": 1 + } + }, + { + "BAXI_MorteroCem": { + "no_mass": false, + "conductivity": 1.48, + "density": 1125, + "specific_heat": 1000, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6, + "capacity": 1 + } + }, + { + "BAXI_LadrilloPerf": { + "no_mass": false, + "conductivity": 3.57, + "density": 2140, + "specific_heat": 1000, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6, + "capacity": 1 + } + }, + { + "BAXI_EPS": { + "no_mass": false, + "conductivity": 0.13, + "density": 30, + "specific_heat": 1000, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6, + "capacity": 1 + } + }, + { + "BAXI_LadrilloHueco": { + "no_mass": false, + "conductivity": 1.6, + "density": 2140, + "specific_heat": 1000, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6, + "capacity": 1 + } + }, + { + "BAXI_Yeso": { + "no_mass": false, + "conductivity": 2.05, + "density": 1150, + "specific_heat": 1000, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6 + } + }, + { + "PG01": { + "no_mass": false, + "conductivity": 8.28, + "density": 2600, + "specific_heat": 1000, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6 + } + }, + { + "F01": { + "no_mass": false, + "conductivity": 4.5, + "density": 1500, + "specific_heat": 1000, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6 + } + }, + { + "RF_INSULATION": { + "no_mass": false, + "conductivity": 0.072, + "density": 25, + "specific_heat": 1800.0, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6 + } + }, + { + "RF_SLAB": { + "no_mass": false, + "conductivity": 4.32, + "density": 2000, + "specific_heat": 1100.0, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6 + } + }, + { + "RF_COVERING": { + "no_mass": false, + "conductivity": 0.72, + "density": 800, + "specific_heat": 1000, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6 + } + }, + { + "RF_PIPES": { + "no_mass": false, + "pspacing": 0.15, + "pdiameter": 0.016, + "pwallthickness": 0.002, + "conductivity": 1.26, + "cpfluid": 4.18, + "density": null, + "specific_heat": null, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6 + } + }, + { + "EF01": { + "no_mass": false, + "conductivity": 1.76, + "density": 1200, + "specific_heat": 920.0, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6 + } + }, + { + "PF01": { + "no_mass": false, + "conductivity": 1.76, + "density": 1200, + "specific_heat": 920.0, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6 + } + }, + { + "PF02": { + "no_mass": false, + "conductivity": 2.74, + "density": 1600, + "specific_heat": 1000, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6 + } + }, + { + "AI01": { + "no_mass": false, + "conductivity": 0.13, + "density": 15, + "specific_heat": 1450.0, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6 + } + }, + { + "AI02": { + "no_mass": false, + "conductivity": 0.14, + "density": 80, + "specific_heat": 1450.0, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6 + } + }, + { + "CA01": { + "no_mass": true, + "thermal_resistance": 0.05, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6 + } + }, + { + "FC01": { + "no_mass": false, + "conductivity": 1.19, + "density": 1000, + "specific_heat": 1000, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6 + } + }, + { + "AI06": { + "no_mass": false, + "conductivity": 7.2, + "density": 2000, + "specific_heat": 1000, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6 + } + }, + { + "PT01": { + "no_mass": false, + "conductivity": 5.87, + "density": 2400, + "specific_heat": 1000, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6 + } + }, + { + "CA02": { + "no_mass": true, + "thermal_resistance": 0.044, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6 + } + }, + { + "CA03": { + "no_mass": true, + "thermal_resistance": 0.047, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6 + } + }, + { + "CA04": { + "no_mass": true, + "thermal_resistance": 2, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6 + } + }, + { + "EF02": { + "no_mass": false, + "conductivity": 3.13, + "density": 1800, + "specific_heat": 1380.0, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6 + } + }, + { + "RI02": { + "no_mass": false, + "conductivity": 3.13, + "density": 1600, + "specific_heat": 1000, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6 + } + }, + { + "RI03": { + "no_mass": false, + "conductivity": 0.9, + "density": 900, + "specific_heat": 1000, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6 + } + }, + { + "RI04": { + "no_mass": false, + "conductivity": 0.72, + "density": 800, + "specific_heat": 1000, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6 + } + }, + { + "FG01": { + "no_mass": false, + "conductivity": 4.18, + "density": 2000, + "specific_heat": 1000, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6 + } + }, + { + "F02": { + "no_mass": false, + "conductivity": 2.4, + "density": 1250, + "specific_heat": 900.0, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6 + } + }, + { + "PM01": { + "no_mass": false, + "conductivity": 5.04, + "density": 2000, + "specific_heat": 1000, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6 + } + }, + { + "TC01": { + "no_mass": false, + "conductivity": 3.78, + "density": 2000, + "specific_heat": 800.0, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6 + } + }, + { + "CC01": { + "no_mass": false, + "conductivity": 3.78, + "density": 2000, + "specific_heat": 840.0, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6 + } + }, + { + "CF01": { + "no_mass": false, + "conductivity": 0.5, + "density": 600, + "specific_heat": 1600.0, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6 + } + }, + { + "RC01": { + "no_mass": false, + "conductivity": 2.09, + "density": 1500, + "specific_heat": 1000, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6 + } + }, + { + "RC02": { + "no_mass": false, + "conductivity": 2.92, + "density": 1700, + "specific_heat": 1000, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6 + } + }, + { + "SC01": { + "no_mass": false, + "conductivity": 1.76, + "density": 1200, + "specific_heat": 840.0, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6 + } + }, + { + "EPS": { + "no_mass": false, + "conductivity": 0.13, + "density": 30, + "specific_heat": 1000, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6 + } + }, + { + "ENGUIXAT": { + "no_mass": false, + "conductivity": 1.083, + "density": 800, + "specific_heat": 722.0, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6 + } + }, + { + "TOTXO_FOR": { + "no_mass": false, + "conductivity": 1.769, + "density": 1200, + "specific_heat": 830.0, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6 + } + }, + { + "ARREBOSSAT": { + "no_mass": false, + "conductivity": 3.14, + "density": 1600, + "specific_heat": 830.0, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6 + } + }, + { + "PTERRATZO": { + "no_mass": false, + "conductivity": 5.054, + "density": 2000, + "specific_heat": 830.0, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6 + } + }, + { + "MORTER": { + "no_mass": false, + "conductivity": 4.188, + "density": 2000, + "specific_heat": 830.0, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6 + } + }, + { + "XAPACOMP": { + "no_mass": false, + "conductivity": 5.884, + "density": 2400, + "specific_heat": 830.0, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6 + } + }, + { + "CASSETONS": { + "no_mass": false, + "conductivity": 5.7, + "density": 1033, + "specific_heat": 1000, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6 + } + }, + { + "FORMIGOARM": { + "no_mass": false, + "conductivity": 5.844, + "density": 2400, + "specific_heat": 866.0, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6 + } + }, + { + "DEEPCONCR": { + "no_mass": false, + "conductivity": 5.86, + "density": 2400, + "specific_heat": 1000, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6 + } + }, + { + "TERRA": { + "no_mass": false, + "conductivity": 0.68, + "density": 1000, + "specific_heat": 1000, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6 + } + }, + { + "AI08": { + "no_mass": false, + "conductivity": 0.144, + "density": 42.5, + "specific_heat": 1340.0, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6 + } + }, + { + "AI09": { + "no_mass": false, + "conductivity": 0.144, + "density": 115, + "specific_heat": 1900.0, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6 + } + }, + { + "FORMPENDEN": { + "no_mass": false, + "conductivity": 0.361, + "density": 600, + "specific_heat": 722.0, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6 + } + }, + { + "TELAASFALT": { + "no_mass": false, + "conductivity": 0.686, + "density": 1100, + "specific_heat": 1010.0, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6 + } + }, + { + "RAJOLACERA": { + "no_mass": false, + "conductivity": 3.79, + "density": 2000, + "specific_heat": 830.0, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6 + } + }, + { + "PH01": { + "no_mass": false, + "conductivity": 3.3228, + "density": 860, + "specific_heat": 1000, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6 + } + }, + { + "AI03": { + "no_mass": false, + "conductivity": 0.16, + "density": 28, + "specific_heat": 840.0, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6 + } + }, + { + "AI04": { + "no_mass": false, + "conductivity": 0.12, + "density": 22, + "specific_heat": 1000, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6 + } + }, + { + "IM02": { + "no_mass": false, + "conductivity": 0.36, + "density": 1600, + "specific_heat": 1000, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6 + } + }, + { + "IM03": { + "no_mass": false, + "conductivity": 0.828, + "density": 1600, + "specific_heat": 1000, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6 + } + }, + { + "RI05": { + "no_mass": false, + "conductivity": 1.083, + "density": 800, + "specific_heat": 722.0, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6 + } + }, + { + "PF012": { + "no_mass": false, + "conductivity": 1.769, + "density": 1200, + "specific_heat": 830.0, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6 + } + }, + { + "MAO_MASSIS": { + "no_mass": false, + "conductivity": 3.141, + "density": 1800, + "specific_heat": 830.0, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6 + } + }, + { + "F04": { + "no_mass": false, + "conductivity": 5.7, + "density": 1033, + "specific_heat": 1000, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6 + } + }, + { + "FC02": { + "no_mass": false, + "conductivity": 5.844, + "density": 2400, + "specific_heat": 866.0, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6 + } + }, + { + "PH02": { + "no_mass": false, + "conductivity": 5.7, + "density": 1033, + "specific_heat": 1000, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6 + } + }, + { + "PF013": { + "no_mass": false, + "conductivity": 1.769, + "density": 1200, + "specific_heat": 830.0, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6 + } + }, + { + "PT02": { + "no_mass": false, + "conductivity": 5.054, + "density": 2000, + "specific_heat": 830.0, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6 + } + }, + { + "ConceteBl": { + "no_mass": false, + "conductivity": 1.836, + "density": 1400, + "specific_heat": 1000, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6 + } + }, + { + "FoamInsul": { + "no_mass": false, + "conductivity": 0.144, + "density": 10, + "specific_heat": 1400.0, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6 + } + }, + { + "WoodSiding": { + "no_mass": false, + "conductivity": 0.504, + "density": 530, + "specific_heat": 900.0, + "thermal_emittance": 0.9, + "solar_absorptance": 0.6, + "visible_absorptance": 0.6 + } + } + ] +} \ No newline at end of file diff --git a/hub/data/energy_systems/palma_systems.xml b/hub/data/energy_systems/palma_systems.xml new file mode 100644 index 00000000..1b788dbf --- /dev/null +++ b/hub/data/energy_systems/palma_systems.xml @@ -0,0 +1,809 @@ + + + ./schemas/ + + + 1 + Water + + + + + + 981.0 + 4180.0 + 0.6 + + + + + 1 + Natural-Gas Boiler + boiler + + + + + + 0.7 + False + natural gas + + + + + + + + + + + + + + + + + + + + + + + True + + + False + + + 2 + Joule + joule + + + + + + 1 + False + electricity + + + + + + + + + + + + + + + + + + + + + + + True + + + False + + + 3 + Heat Pump + heat pump + + + + + + 2 + True + electricity + Air + Water + + + + 2 + + + + + + + + + + + + + + + + + False + + + False + + + 4 + Butane Heater + butane heater + + + + + + 0.7 + False + butane + + + + + + + + + + + + + + + + + + + + + + + True + + + False + + + 5 + Split + split + + + + + + + False + electricity + + + + + + 2 + + + + + + + + + + + + + + + + + False + + + False + + + 6 + Domestic Hot Water Heat Pump + heat pump + + + + + + 3 + False + electricity + Air + Water + + + + + + + + + + + + + + + + + + + + + True + + + + + + 7 + template Photovoltaic Module + Photovoltaic + + + + 0.2 + 20 + 45 + 800 + 25 + 1000 + 500 + + 2.0 + 1.0 + + + False + + + 8 + Photovoltaic Module + Photovoltaic + RE400CAA Pure 2 + REC + 305 + 0.206 + 20 + 44 + 800 + 25 + 1000 + 400 + 0.24 + 1.86 + 1.04 + + + False + + + 9 + Photovoltaic Module + Photovoltaic + RE410CAA Pure 2 + REC + 312 + 0.211 + 20 + 44 + 800 + 25 + 1000 + 410 + 0.24 + 1.86 + 1.04 + + + False + + + 10 + Photovoltaic Module + Photovoltaic + RE420CAA Pure 2 + REC + 320 + 0.217 + 20 + 44 + 800 + 25 + 1000 + 420 + 0.24 + 1.86 + 1.04 + + + False + + + 11 + Photovoltaic Module + Photovoltaic + RE430CAA Pure 2 + REC + 327 + 0.222 + 20 + 44 + 800 + 25 + 1000 + 430 + 0.24 + 1.86 + 1.04 + + + False + + + 12 + Photovoltaic Module + Photovoltaic + REC600AA Pro M + REC + 457 + 0.211 + 20 + 44 + 800 + 25 + 1000 + 600 + 0.24 + 2.17 + 1.3 + + + False + + + 13 + Photovoltaic Module + Photovoltaic + REC610AA Pro M + REC + 464 + 0.215 + 20 + 44 + 800 + 25 + 1000 + 610 + 0.24 + 2.17 + 1.3 + + + False + + + 14 + Photovoltaic Module + Photovoltaic + REC620AA Pro M + REC + 472 + 0.218 + 20 + 44 + 800 + 25 + 1000 + 620 + 0.24 + 2.17 + 1.3 + + + False + + + 15 + Photovoltaic Module + Photovoltaic + REC630AA Pro M + REC + 480 + 0.222 + 20 + 44 + 800 + 25 + 1000 + 630 + 0.24 + 2.17 + 1.3 + + + False + + + 16 + Photovoltaic Module + Photovoltaic + REC640AA Pro M + REC + 487 + 0.215 + 20 + 44 + 800 + 25 + 1000 + 640 + 0.24 + 2.17 + 1.3 + + + False + + + + + 6 + template Hot Water Storage Tank + thermal + + + 95.0 + + 1 + 90.0 + + + 2 + 0 + 1.5 + Steel + + + + 1 + + sensible + + + + + + 7 + template Hot Water Storage Tank with Heating Coil + thermal + + + 95.0 + + 1 + 90.0 + + + 2 + 0 + 1.5 + Steel + + + + 1 + + sensible + + + 5000 + + + + + 1 + Polyurethane + + + + + + + + 0.028 + + + 2 + Steel + + + + + + + + 18 + + + + + + + + + + + 1 + Central gas system + + + heating + domestic_hot_water + + + 1 + + + + 2 + Central Joule system + + + heating + domestic_hot_water + + + 2 + + + + 3 + Central butane system + + + heating + domestic_hot_water + + + 4 + + + + 4 + Single zone split system + + + cooling + + + 5 + + + + 5 + 4 pipe heat pump system + + + heating + cooling + + + 3 + + + + 6 + PV + + + electricity + + + 7 + + + + 7 + Gas heating + + + heating + + + 1 + + + + 8 + Electrical heating + + + heating + + + 2 + + + + 9 + Butane heating + + + heating + + + 4 + + + + 10 + Gas hot water system + + + domestic_hot_water + + + 1 + + + + 11 + Electrical hot water system + + + domestic_hot_water + + + 2 + + + + 12 + Butane hot water system + + + domestic_hot_water + + + 4 + + + + 13 + Heat Pump hot water system + + + domestic_hot_water + + + 6 + + + + + + + Gas boiler for heating and hot water heater with split cooling + + 1 + 4 + + + + Joule heater for heating and hot water heater with split cooling + + 2 + 4 + + + + Butane heater for heating and hot water heater with split cooling + + 3 + 4 + + + + Gas heating + + 1 + + + + Electrical joule heating + + 2 + + + + Butane heating + + 3 + + + + Heat pump with gas water heater + + 5 + 7 + + + + Heat pump with joule water heater + + 5 + 8 + + + + Heat pump with butane water heater + + 5 + 9 + + + + Heat pump with gas water heater and rooftop PV + + 5 + 7 + 6 + + + + Heat pump with joule water heater and rooftop PV + + 5 + 8 + 6 + + + + Rooftop PV + + 6 + + + + Joule heater with split cooling and gas hot water + + 4 + 8 + 10 + + + + Joule heater with split cooling and butane hot water + + 4 + 8 + 12 + + + + PV and heat pump + + 5 + 6 + 13 + + + + + diff --git a/hub/data/usage/palma_schedules.json b/hub/data/usage/palma_schedules.json new file mode 100644 index 00000000..a16d6e88 --- /dev/null +++ b/hub/data/usage/palma_schedules.json @@ -0,0 +1,904 @@ +{ + "tables": { + "schedules": { + "data_type": "table", + "refs": [ + "DBHE CTE Tabla b-Anejo D" + ], + "table": [ + { + + "name": "DBHE-CTE-Occupancy-sensible", + "category": "Occupancy", + "units": "FRACTION", + "day_types": "Default|Wkdy", + "start_date": "2014-01-01T00:00:00+00:00", + "end_date": "2014-12-31T00:00:00+00:00", + "type": "Hourly", + "notes": null, + "values": [ + 1, + 1, + 1, + 1, + 1, + 1, + 0.25, + 0.25, + 0.25, + 0.25, + 0.25, + 0.25, + 0.25, + 0.25, + 0.5, + 0.5, + 0.5, + 0.5, + 0.5, + 0.5, + 0.5, + 0.5, + 0.5, + 1 + ] + }, + { + + "name": "DBHE-CTE-Occupancy-sensible", + "category": "Occupancy", + "units": "FRACTION", + "day_types": "Sat", + "start_date": "2014-01-01T00:00:00+00:00", + "end_date": "2014-12-31T00:00:00+00:00", + "type": "Hourly", + "notes": null, + "values": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1 + ] + }, + { + + "name": "DBHE-CTE-Occupancy-sensible", + "category": "Occupancy", + "units": "FRACTION", + "day_types": "Sun|Hol", + "start_date": "2014-01-01T00:00:00+00:00", + "end_date": "2014-12-31T00:00:00+00:00", + "type": "Hourly", + "notes": null, + "values": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1 + ] + }, + { + + "name": "DBHE-CTE-Occupancy-latent", + "category": "Occupancy", + "units": "FRACTION", + "day_types": "Default|Wkdy", + "start_date": "2014-01-01T00:00:00+00:00", + "end_date": "2014-12-31T00:00:00+00:00", + "type": "Hourly", + "notes": null, + "values": [ + 1, + 1, + 1, + 1, + 1, + 1, + 0.25, + 0.25, + 0.25, + 0.25, + 0.25, + 0.25, + 0.25, + 0.25, + 0.5, + 0.5, + 0.5, + 0.5, + 0.5, + 0.5, + 0.5, + 0.5, + 0.5, + 1 + ] + }, + { + "name": "DBHE-CTE-Occupancy-latent", + "category": "Occupancy", + "units": "FRACTION", + "day_types": "Sat", + "start_date": "2014-01-01T00:00:00+00:00", + "end_date": "2014-12-31T00:00:00+00:00", + "type": "Hourly", + "notes": null, + "values": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1 + ] + }, + { + "name": "DBHE-CTE-Occupancy-latent", + "category": "Occupancy", + "units": "FRACTION", + "day_types": "Sun|Hol", + "start_date": "2014-01-01T00:00:00+00:00", + "end_date": "2014-12-31T00:00:00+00:00", + "type": "Hourly", + "notes": null, + "values": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1 + ] + }, + { + + "name": "DBHE-CTE-Lighting", + "category": "Lighting", + "units": "FRACTION", + "day_types": "Default|Wkdy", + "start_date": "2014-01-01T00:00:00+00:00", + "end_date": "2014-12-31T00:00:00+00:00", + "type": "Hourly", + "notes": null, + "values": [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.33, + 0.33, + 0.33, + 0.33, + 0.33, + 0.33, + 0.33, + 0.33, + 0.33, + 0.33, + 0.33, + 0.5, + 1, + 1, + 1, + 1, + 1, + 0.5 + ] + }, + { + "name": "DBHE-CTE-Lighting", + "category": "Lighting", + "units": "FRACTION", + "day_types": "Sat", + "start_date": "2014-01-01T00:00:00+00:00", + "end_date": "2014-12-31T00:00:00+00:00", + "type": "Hourly", + "notes": null, + "values": [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.33, + 0.33, + 0.33, + 0.33, + 0.33, + 0.33, + 0.33, + 0.33, + 0.33, + 0.33, + 0.33, + 0.5, + 1, + 1, + 1, + 1, + 1, + 0.5 + ] + }, + { + "name": "DBHE-CTE-Lighting", + "category": "Lighting", + "units": "FRACTION", + "day_types": "Sun|Hol", + "start_date": "2014-01-01T00:00:00+00:00", + "end_date": "2014-12-31T00:00:00+00:00", + "type": "Hourly", + "notes": null, + "values": [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.33, + 0.33, + 0.33, + 0.33, + 0.33, + 0.33, + 0.33, + 0.33, + 0.33, + 0.33, + 0.33, + 0.5, + 1, + 1, + 1, + 1, + 1, + 0.5 + ] + }, + { + + "name": "DBHE-CTE-Equipment", + "category": "Equipment", + "units": "FRACTION", + "day_types": "Default|Wkdy", + "start_date": "2014-01-01T00:00:00+00:00", + "end_date": "2014-12-31T00:00:00+00:00", + "type": "Hourly", + "notes": null, + "values": [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.33, + 0.33, + 0.33, + 0.33, + 0.33, + 0.33, + 0.33, + 0.33, + 0.33, + 0.33, + 0.33, + 0.5, + 1, + 1, + 1, + 1, + 1, + 0.5 + ] + }, + { + "name": "DBHE-CTE-Equipment", + "category": "Equipment", + "units": "FRACTION", + "day_types": "Sat", + "start_date": "2014-01-01T00:00:00+00:00", + "end_date": "2014-12-31T00:00:00+00:00", + "type": "Hourly", + "notes": null, + "values": [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.33, + 0.33, + 0.33, + 0.33, + 0.33, + 0.33, + 0.33, + 0.33, + 0.33, + 0.33, + 0.33, + 0.5, + 1, + 1, + 1, + 1, + 1, + 0.5 + ] + }, + { + "name": "DBHE-CTE-Equipment", + "category": "Equipment", + "units": "FRACTION", + "day_types": "Sun|Hol", + "start_date": "2014-01-01T00:00:00+00:00", + "end_date": "2014-12-31T00:00:00+00:00", + "type": "Hourly", + "notes": null, + "values": [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.33, + 0.33, + 0.33, + 0.33, + 0.33, + 0.33, + 0.33, + 0.33, + 0.33, + 0.33, + 0.33, + 0.5, + 1, + 1, + 1, + 1, + 1, + 0.5 + ] + }, + { + + "name": "DBHE-CTE-Thermostat Setpoint-Heating", + "category": "Thermostat Setpoint", + "units": "TEMPERATURE", + "day_types": "Default|Wkdy", + "start_date": "2014-01-01T00:00:00+00:00", + "end_date": "2014-12-31T00:00:00+00:00", + "type": "Hourly", + "notes": null, + "values": [ + 17.0, + 17.0, + 17.0, + 17.0, + 17.0, + 17.0, + 17.0, + 21.0, + 21.0, + 21.0, + 21.0, + 21.0, + 21.0, + 21.0, + 21.0, + 21.0, + 21.0, + 21.0, + 21.0, + 21.0, + 21.0, + 20.0, + 17.0, + 17.0 + ] + }, + { + + "name": "DBHE-CTE-Thermostat Setpoint-Heating", + "category": "Thermostat Setpoint", + "units": "TEMPERATURE", + "day_types": "Sat", + "start_date": "2014-01-01T00:00:00+00:00", + "end_date": "2014-12-31T00:00:00+00:00", + "type": "Hourly", + "notes": null, + "values": [ + 22.0, + 18.0, + 18.0, + 18.0, + 18.0, + 18.0, + 18.0, + 20.0, + 22.0, + 22.0, + 22.0, + 22.0, + 22.0, + 22.0, + 22.0, + 22.0, + 22.0, + 22.0, + 22.0, + 22.0, + 22.0, + 22.0, + 22.0, + 22.0 + ] + }, + { + + "name": "DBHE-CTE-Thermostat Setpoint-Heating", + "category": "Thermostat Setpoint", + "units": "TEMPERATURE", + "day_types": "Sun|Hol", + "start_date": "2014-01-01T00:00:00+00:00", + "end_date": "2014-12-31T00:00:00+00:00", + "type": "Hourly", + "notes": null, + "values": [ + 22.0, + 18.0, + 18.0, + 18.0, + 18.0, + 18.0, + 18.0, + 20.0, + 22.0, + 22.0, + 22.0, + 22.0, + 22.0, + 22.0, + 22.0, + 22.0, + 22.0, + 22.0, + 22.0, + 22.0, + 22.0, + 22.0, + 22.0, + 22.0 + ] + }, + { + "name": "DBHE-CTE-Thermostat Setpoint-Cooling", + "category": "Thermostat Setpoint", + "units": "TEMPERATURE", + "day_types": "Default|Wkdy", + "start_date": "2014-01-01T00:00:00+00:00", + "end_date": "2014-12-31T00:00:00+00:00", + "type": "Hourly", + "notes": null, + "values": [ + 28.0, + 28.0, + 28.0, + 28.0, + 28.0, + 28.0, + 28.0, + 25.0, + 25.0, + 25.0, + 25.0, + 25.0, + 25.0, + 25.0, + 25.0, + 25.0, + 25.0, + 25.0, + 25.0, + 25.0, + 25.0, + 25.0, + 28.0, + 28.0 + ] + }, + { + + "name": "DBHE-CTE-Thermostat Setpoint-Cooling", + "category": "Thermostat Setpoint", + "units": "TEMPERATURE", + "day_types": "Sat", + "start_date": "2014-01-01T00:00:00+00:00", + "end_date": "2014-12-31T00:00:00+00:00", + "type": "Hourly", + "notes": null, + "values": [ + 28.0, + 28.0, + 28.0, + 28.0, + 28.0, + 28.0, + 28.0, + 25.0, + 25.0, + 25.0, + 25.0, + 25.0, + 25.0, + 25.0, + 25.0, + 25.0, + 25.0, + 25.0, + 25.0, + 25.0, + 25.0, + 25.0, + 28.0, + 28.0 + ] + }, + { + + "name": "DBHE-CTE-Thermostat Setpoint-Cooling", + "category": "Thermostat Setpoint", + "units": "TEMPERATURE", + "day_types": "Sun|Hol", + "start_date": "2014-01-01T00:00:00+00:00", + "end_date": "2014-12-31T00:00:00+00:00", + "type": "Hourly", + "notes": null, + "values": [ + 28.0, + 28.0, + 28.0, + 28.0, + 28.0, + 28.0, + 28.0, + 25.0, + 25.0, + 25.0, + 25.0, + 25.0, + 25.0, + 25.0, + 25.0, + 25.0, + 25.0, + 25.0, + 25.0, + 25.0, + 25.0, + 25.0, + 28.0, + 28.0 + ] + }, + { + "name": "Always On", + "category": "Unknown", + "units": null, + "day_types": "Default", + "start_date": "2014-01-01T00:00:00+00:00", + "end_date": "2014-12-31T00:00:00+00:00", + "type": "Constant", + "notes": null, + "values": [ + 1.0 + ] + }, + { + + "name": "default_HVAC_schedule", + "category": "Fan", + "units": "ON_OFF", + "day_types": "Default|Wkdy", + "start_date": "2014-01-01T00:00:00+00:00", + "end_date": "2014-12-31T00:00:00+00:00", + "type": "Hourly", + "notes": null, + "values": [ + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0 + ] + }, + { + + "name": "default_HVAC_schedule", + "category": "Fan", + "units": "ON_OFF", + "day_types": "Sat", + "start_date": "2014-01-01T00:00:00+00:00", + "end_date": "2014-12-31T00:00:00+00:00", + "type": "Hourly", + "notes": null, + "values": [ + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0 + ] + }, + { + + "name": "default_HVAC_schedule", + "category": "Fan", + "units": "ON_OFF", + "day_types": "Sun|Hol", + "start_date": "2014-01-01T00:00:00+00:00", + "end_date": "2014-12-31T00:00:00+00:00", + "type": "Hourly", + "notes": null, + "values": [ + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0 + ] + }, + { + + "name": "DBHE-CTE-Service Water Heating", + "category": "Service Water Heating", + "units": "FRACTION", + "day_types": "Default|Wkdy", + "start_date": "2014-01-01T00:00:00+00:00", + "end_date": "2014-12-31T00:00:00+00:00", + "type": "Hourly", + "notes": null, + "values": [ + 0.01, + 0.00, + 0.00, + 0.00, + 0.00, + 0.01, + 0.03, + 0.1, + 0.07, + 0.07, + 0.06, + 0.06, + 0.05, + 0.05, + 0.04, + 0.03, + 0.04, + 0.04, + 0.05, + 0.07, + 0.06, + 0.06, + 0.05, + 0.05 + ] + }, + { + + "name": "DBHE-CTE-Service Water Heating", + "category": "Service Water Heating", + "units": "FRACTION", + "day_types": "Sat", + "start_date": "2014-01-01T00:00:00+00:00", + "end_date": "2014-12-31T00:00:00+00:00", + "type": "Hourly", + "notes": null, + "values": [ + 0.01, + 0.00, + 0.00, + 0.00, + 0.00, + 0.01, + 0.03, + 0.1, + 0.07, + 0.07, + 0.06, + 0.06, + 0.05, + 0.05, + 0.04, + 0.03, + 0.04, + 0.04, + 0.05, + 0.07, + 0.06, + 0.06, + 0.05, + 0.05 + ] + }, + { + + "name": "DBHE-CTE-Service Water Heating", + "category": "Service Water Heating", + "units": "FRACTION", + "day_types": "Sun|Hol", + "start_date": "2014-01-01T00:00:00+00:00", + "end_date": "2014-12-31T00:00:00+00:00", + "type": "Hourly", + "notes": null, + "values": [ + 0.01, + 0.00, + 0.00, + 0.00, + 0.00, + 0.01, + 0.03, + 0.1, + 0.07, + 0.07, + 0.06, + 0.06, + 0.05, + 0.05, + 0.04, + 0.03, + 0.04, + 0.04, + 0.05, + 0.07, + 0.06, + 0.06, + 0.05, + 0.05 + ] + } + ] + }}} \ No newline at end of file diff --git a/hub/data/usage/palma_space_compliance.json b/hub/data/usage/palma_space_compliance.json new file mode 100644 index 00000000..31ed06b8 --- /dev/null +++ b/hub/data/usage/palma_space_compliance.json @@ -0,0 +1,30 @@ +{ + "tables": { + "space_compliance": { + "data_type": "table", + "refs": { + "lighting_per_area_w_per_m2": "DBHE-CTE Tabla b-Anejo D", + "occupancy_per_area_people_per_m2": "DBHE CTE Tabla b-Anejo D", + "occupancy_schedule": "DBHE-CTE Tabla b-Anejo D", + "electric_equipment_per_area_w_per_m2": "DBHE CTE Tabla b-Anejo D" + }, + "tolerance": { + "lighting_per_area_w_per_m2": 1, + "occupancy_per_area_people_per_m2": 3, + "occupancy_schedule": null, + "electric_equipment_per_area_w_per_m2": 1 + }, + "table": [ + { + "template": "DBHE-CTE", + "building_type": "residential", + "space_type": "WholeBuilding", + "lighting_per_area_w_per_m2": 4.4, + "occupancy_per_area_people_per_m2": 0.014333333, + "occupancy_schedule": "DBHE-CTE-Occupancy", + "electric_equipment_per_area_w_per_m2": 4.4, + "service_water_heating_peak_flow_per_area": 0.02272990107962068 + }] + } + } +} \ No newline at end of file diff --git a/hub/data/usage/palma_space_types.json b/hub/data/usage/palma_space_types.json new file mode 100644 index 00000000..d12bfb27 --- /dev/null +++ b/hub/data/usage/palma_space_types.json @@ -0,0 +1,97 @@ +{ + "tables": { + "space_types": { + "data_type": "table", + "refs": [ + "assumption" + ], + "table": [ + { + "building_type": "residential", + "space_type": "WholeBuilding", + "rgb": "255_255_255", + "lighting_standard": "DBHE-CTE", + "lighting_primary_space_type": "residential", + "lighting_secondary_space_type": "WholeBuilding", + "lighting_per_area": 4.4, + "lighting_per_person": null, + "additional_lighting_per_area": null, + "rel_absence_occ": 0.0, + "personal_control": 0.0, + "occ_sense": 0.0, + "lighting_fraction_to_return_air": 0.0, + "lighting_fraction_radiant": 0.5, + "lighting_fraction_visible": 0.2, + "lighting_fraction_replaceable": null, + "lpd_fractionlinear_fluorescent": 1.0, + "lpd_fractioncompact_fluorescent": null, + "lpd_fractionhigh_bay": null, + "lpd_fractionspecialty_lighting": null, + "lpd_fractionexit_lighting": null, + "lighting_schedule": "DBHE-CTE-Lighting", + "compact_fluorescent_lighting_schedule": null, + "high_bay_lighting_schedule": null, + "specialty_lighting_schedule": null, + "exit_lighting_schedule": null, + "target_illuminance_setpoint": 125, + "target_illuminance_setpoint_ref": null, + "psa_nongeometry_fraction": null, + "ssa_nongeometry_fraction": null, + "ventilation_standard": null, + "ventilation_primary_space_type": "residential", + "ventilation_secondary_space_type": "WholeBuilding", + "ventilation_per_area": 0, + "ventilation_per_person": 0, + "ventilation_air_changes": 0.4, + "minimum_total_air_changes": null, + "occupancy_per_area": 2.15, + "occupancy_schedule": "DBHE-CTE-Occupancy-sensible", + "occupancy_activity_schedule": null, + "infiltration_per_exterior_area": 0.4, + "infiltration_per_exterior_wall_area": null, + "infiltration_air_changes": null, + "infiltration_schedule": "Always On", + "infiltration_schedule_perimeter": null, + "gas_equipment_per_area": null, + "gas_equipment_fraction_latent": null, + "gas_equipment_fraction_radiant": null, + "gas_equipment_fraction_lost": null, + "gas_equipment_schedule": null, + "electric_equipment_per_area": 4.4, + "electric_equipment_fraction_latent": 0.0, + "electric_equipment_fraction_radiant": 0.5, + "electric_equipment_fraction_lost": 0.0, + "electric_equipment_schedule": "DBHE-CTE-Equipment", + "additional_electric_equipment_schedule": null, + "additional_gas_equipment_schedule": null, + "heating_setpoint_schedule": "DBHE-CTE-Thermostat Setpoint-Heating", + "cooling_setpoint_schedule": "DBHE-CTE-Thermostat Setpoint-Cooling", + "service_water_heating_peak_flow_rate": null, + "service_water_heating_area": null, + "service_water_heating_peak_flow_per_area": 0.009385225, + "service_water_heating_target_temperature": 60.0, + "service_water_heating_fraction_sensible": null, + "service_water_heating_fraction_latent": null, + "service_water_heating_schedule": "DBHE-CTE-Service Water Heating", + "exhaust_per_area": null, + "exhaust_fan_efficiency": null, + "exhaust_fan_power": null, + "exhaust_fan_pressure_rise": null, + "exhaust_fan_maximum_flow_rate": null, + "exhaust_schedule": null, + "balanced_exhaust_fraction_schedule": null, + "is_residential": null, + "necb_hvac_system_selection_type": "residential", + "necb_schedule_type": "G", + "notes": null, + "ventilation_occupancy_rate_people_per_1000ft2": 10, + "ventilation_occupancy_standard": null, + "ventilation_standard_space_type": null, + "sensible_convective_internal_gain": 0.86, + "sensible_radiative_internal_gain": 1.29, + "latent_internal_gain": 1.36 + } + ] + } + } +} \ No newline at end of file diff --git a/hub/helpers/constants.py b/hub/helpers/constants.py index 39586c54..e06aec79 100644 --- a/hub/helpers/constants.py +++ b/hub/helpers/constants.py @@ -25,7 +25,6 @@ KILO_WATTS_HOUR_TO_JULES = 3600000 WATTS_HOUR_TO_JULES = 3600 GALLONS_TO_QUBIC_METERS = 0.0037854117954011185 - # time SECOND = 'second' MINUTE = 'minute' @@ -294,6 +293,7 @@ GAS = 'Gas' DIESEL = 'Diesel' COAL = 'Coal' BIOMASS = 'Biomass' +BUTANE = 'Butane' AIR = 'Air' WATER = 'Water' GEOTHERMAL = 'Geothermal' @@ -306,6 +306,9 @@ HEAT_PUMP = 'Heat Pump' BASEBOARD = 'Baseboard' ELECTRICITY_GENERATOR = 'Electricity generator' CHILLER = 'Chiller' +SPLIT = 'Split' +JOULE = 'Joule' +BUTANE_HEATER = 'Butane Heater' SENSIBLE = 'sensible' LATENT = 'Latent' LITHIUMION = 'Lithium Ion' diff --git a/hub/helpers/data/hub_function_to_palma_construction_function.py b/hub/helpers/data/hub_function_to_palma_construction_function.py new file mode 100644 index 00000000..13b07925 --- /dev/null +++ b/hub/helpers/data/hub_function_to_palma_construction_function.py @@ -0,0 +1,30 @@ +""" +Dictionaries module for hub function to Palma construction function +SPDX - License - Identifier: LGPL - 3.0 - or -later +Copyright © 2023 Concordia CERC group +Project Coder Cecilia Pérez cperez@irec.cat +""" + +import hub.helpers.constants as cte + + +class HubFunctionToPalmaConstructionFunction: + """ + Hub function to Palma construction function class + """ + def __init__(self): + self._dictionary = { + cte.RESIDENTIAL: 'V', + cte.SINGLE_FAMILY_HOUSE: 'Single family building', + cte.HIGH_RISE_APARTMENT: 'Large multifamily building', + cte.MID_RISE_APARTMENT: 'Medium multifamily building', + cte.MULTI_FAMILY_HOUSE: 'Small multifamily building' + } + + @property + def dictionary(self) -> dict: + """ + Get the dictionary + :return: {} + """ + return self._dictionary \ No newline at end of file diff --git a/hub/helpers/data/hub_usage_to_palma_usage.py b/hub/helpers/data/hub_usage_to_palma_usage.py new file mode 100644 index 00000000..834670f7 --- /dev/null +++ b/hub/helpers/data/hub_usage_to_palma_usage.py @@ -0,0 +1,51 @@ +""" +Dictionaries module for hub usage to Palma usage +SPDX - License - Identifier: LGPL - 3.0 - or -later +Copyright © 2022 Concordia CERC group +Project Coder Cecilia Pérez cperez@irec.cat +""" + +""" +Codification of uses from cadastre: +U: store-parking. Residential Use +S: store-parking. Industrial Use +V: Residential +I: Industrial +O: Offices +C: Comercial +K: Sportive center +T: Shows +G: Leisure and Hostelry +Y: Health and charity +E: Culture +R: Religion +M: Urbanization work, gardening and undeveloped land +P: Singular building +B: Farm warehouse +J: Farm Industry +Z: Farm-related +""" + +import hub.helpers.constants as cte + +class HubUsageToPalmaUsage: + """ + Hub usage to Palma usage class + """ + + def __init__(self): + self._dictionary = { + cte.RESIDENTIAL: 'residential', + cte.SINGLE_FAMILY_HOUSE: 'residential', + cte.HIGH_RISE_APARTMENT: 'residential', + cte.MID_RISE_APARTMENT: 'residential', + cte.MULTI_FAMILY_HOUSE: 'residential' + } + + @property + def dictionary(self) -> dict: + """ + Get the dictionary + :return: {} + """ + return self._dictionary diff --git a/hub/helpers/data/montreal_custom_fuel_to_hub_fuel.py b/hub/helpers/data/montreal_custom_fuel_to_hub_fuel.py index 14fd0fef..be65a012 100644 --- a/hub/helpers/data/montreal_custom_fuel_to_hub_fuel.py +++ b/hub/helpers/data/montreal_custom_fuel_to_hub_fuel.py @@ -12,12 +12,16 @@ class MontrealCustomFuelToHubFuel: """ Montreal custom fuel to hub fuel class """ + def __init__(self): self._dictionary = { - 'gas': cte.GAS, - 'electricity': cte.ELECTRICITY, - 'renewable': cte.RENEWABLE - } + 'gas': cte.GAS, + 'natural gas': cte.GAS, + 'electricity': cte.ELECTRICITY, + 'renewable': cte.RENEWABLE, + 'butane': cte.BUTANE, + 'diesel': cte.DIESEL + } @property def dictionary(self) -> dict: diff --git a/hub/helpers/data/montreal_generation_system_to_hub_energy_generation_system.py b/hub/helpers/data/montreal_generation_system_to_hub_energy_generation_system.py index 7a42c832..be85d7b6 100644 --- a/hub/helpers/data/montreal_generation_system_to_hub_energy_generation_system.py +++ b/hub/helpers/data/montreal_generation_system_to_hub_energy_generation_system.py @@ -18,8 +18,12 @@ class MontrealGenerationSystemToHubEnergyGenerationSystem: 'furnace': cte.BASEBOARD, 'cooler': cte.CHILLER, 'electricity generator': cte.ELECTRICITY_GENERATOR, - 'PV system': cte.PHOTOVOLTAIC, - 'heat pump': cte.HEAT_PUMP + 'Photovoltaic': cte.PHOTOVOLTAIC, + 'heat pump': cte.HEAT_PUMP, + 'joule': cte.JOULE, + 'split': cte.SPLIT, + 'butane heater': cte.BUTANE_HEATER + } @property diff --git a/hub/helpers/data/palma_function_to_hub_function.py b/hub/helpers/data/palma_function_to_hub_function.py new file mode 100644 index 00000000..5aae2822 --- /dev/null +++ b/hub/helpers/data/palma_function_to_hub_function.py @@ -0,0 +1,31 @@ +""" +Dictionaries module for Palma function to hub function +SPDX - License - Identifier: LGPL - 3.0 - or -later +Copyright © 2023 Concordia CERC group +Project Coder Cecilia Pérez cperez@irec.cat +""" + +import hub.helpers.constants as cte + + +class PalmaFunctionToHubFunction: + """ + Palma function to hub function class + """ + + def __init__(self): + self._dictionary = {'Residential': cte.RESIDENTIAL, + 'Single-family building': cte.SINGLE_FAMILY_HOUSE, + 'Large multifamily building': cte.HIGH_RISE_APARTMENT, + 'Medium multifamily building': cte.MID_RISE_APARTMENT, + 'Small multifamily building': cte.MULTI_FAMILY_HOUSE, + 'V': cte.RESIDENTIAL + } + + @property + def dictionary(self) -> dict: + """ + Get the dictionary + :return: {} + """ + return self._dictionary \ No newline at end of file diff --git a/hub/helpers/dictionaries.py b/hub/helpers/dictionaries.py index 107a543a..1775152a 100644 --- a/hub/helpers/dictionaries.py +++ b/hub/helpers/dictionaries.py @@ -26,6 +26,9 @@ from hub.helpers.data.north_america_demand_type_to_hub_energy_demand_type import from hub.helpers.data.north_america_system_to_hub_energy_generation_system import NorthAmericaSystemToHubEnergyGenerationSystem from hub.helpers.data.north_america_custom_fuel_to_hub_fuel import NorthAmericaCustomFuelToHubFuel from hub.helpers.data.north_america_storage_system_to_hub_storage import NorthAmericaStorageSystemToHubEnergyStorage +from hub.helpers.data.palma_function_to_hub_function import PalmaFunctionToHubFunction +from hub.helpers.data.hub_usage_to_palma_usage import HubUsageToPalmaUsage +from hub.helpers.data.hub_function_to_palma_construction_function import HubFunctionToPalmaConstructionFunction class Dictionaries: @@ -65,6 +68,14 @@ class Dictionaries: """ return HubUsageToEilatUsage().dictionary + @property + def hub_usage_to_palma_usage(self) -> dict: + """ + Hub usage to Palma usage, transformation dictionary + :return: dict + """ + return HubUsageToPalmaUsage().dictionary + @property def hub_function_to_nrcan_construction_function(self) -> dict: """ @@ -88,6 +99,13 @@ class Dictionaries: :return: dict """ return HubFunctionToNrelConstructionFunction().dictionary + @property + def hub_function_to_palma_construction_function(self) -> dict: + """ + Get hub function to Palma construction function, transformation dictionary + :return: dict + """ + return HubFunctionToPalmaConstructionFunction().dictionary @property def pluto_function_to_hub_function(self) -> dict: @@ -105,6 +123,14 @@ class Dictionaries: """ return HftFunctionToHubFunction().dictionary + @property + def palma_function_to_hub_function(self) -> dict: + """ + Get Palma function to hub function, transformation dictionary + :return: dict + """ + return PalmaFunctionToHubFunction().dictionary + @property def montreal_function_to_hub_function(self) -> dict: """ diff --git a/hub/imports/construction/helpers/construction_helper.py b/hub/imports/construction/helpers/construction_helper.py index d75d8424..bd8e731b 100644 --- a/hub/imports/construction/helpers/construction_helper.py +++ b/hub/imports/construction/helpers/construction_helper.py @@ -65,6 +65,11 @@ class ConstructionHelper: 'Eilat': 'BWh' } + _reference_city_to_palma_climate_zone = { + 'Palma': 'B3' + } + + @staticmethod def yoc_to_nrel_standard(year_of_construction): """ @@ -107,3 +112,12 @@ class ConstructionHelper: :return: str """ return ConstructionHelper._reference_city_to_israel_climate_zone[reference_city] + + @staticmethod + def city_to_palma_climate_zone(reference_city): + """ + City name to Palma climate zone + :param reference_city: str + :return: str + """ + return ConstructionHelper._reference_city_to_palma_climate_zone[reference_city] diff --git a/hub/imports/construction/palma_physics_parameters.py b/hub/imports/construction/palma_physics_parameters.py new file mode 100644 index 00000000..7f874b68 --- /dev/null +++ b/hub/imports/construction/palma_physics_parameters.py @@ -0,0 +1,104 @@ +""" +PalmaPhysicsParameters import the construction and material information defined by Palma +SPDX - License - Identifier: LGPL - 3.0 - or -later +Copyright © 2022 Concordia CERC group +Project Coder Cecilia Pérez Pérez cperez@irec.cat +""" +import logging + +from hub.catalog_factories.construction_catalog_factory import ConstructionCatalogFactory +from hub.city_model_structure.building_demand.thermal_archetype import ThermalArchetype +from hub.city_model_structure.building_demand.construction import Construction +from hub.city_model_structure.building_demand.layer import Layer +from hub.helpers.dictionaries import Dictionaries +from hub.imports.construction.helpers.construction_helper import ConstructionHelper + + +class PalmaPhysicsParameters: + """ + PalmaPhysicsParameters class + """ + + def __init__(self, city, divide_in_storeys=False): + self._city = city + self._divide_in_storeys = divide_in_storeys + self._climate_zone = ConstructionHelper.city_to_palma_climate_zone(city.climate_reference_city) + + def enrich_buildings(self): + """ + Returns the city with the construction parameters assigned to the buildings + """ + city = self._city + palma_catalog = ConstructionCatalogFactory('palma').catalog + for building in city.buildings: + if building.function not in Dictionaries().hub_function_to_palma_construction_function: + logging.error('Building %s has an unknown building function %s', building.name, building.function) + continue + function = Dictionaries().hub_function_to_palma_construction_function[building.function] + try: + archetype = self._search_archetype(palma_catalog, function, building.year_of_construction, self._climate_zone) + + except KeyError: + logging.error('Building %s has unknown construction archetype for building function: %s ' + '[%s], building year of construction: %s and climate zone %s', building.name, function, + building.function, building.year_of_construction, self._climate_zone) + continue + thermal_archetype = ThermalArchetype() + self._assign_values(thermal_archetype, archetype) + for internal_zone in building.internal_zones: + internal_zone.thermal_archetype = thermal_archetype + + @staticmethod + def _search_archetype(nrcan_catalog, function, year_of_construction, climate_zone): + nrcan_archetypes = nrcan_catalog.entries('archetypes') + for building_archetype in nrcan_archetypes: + construction_period_limits = building_archetype.construction_period.split('_') + if int(construction_period_limits[0]) <= int(year_of_construction) <= int(construction_period_limits[1]): + if str(function) == str(building_archetype.function) and climate_zone == str(building_archetype.climate_zone): + return building_archetype + raise KeyError('archetype not found') + + @staticmethod + def _assign_values(thermal_archetype, catalog_archetype): + thermal_archetype.average_storey_height = catalog_archetype.average_storey_height + thermal_archetype.extra_loses_due_to_thermal_bridges = catalog_archetype.extra_loses_due_to_thermal_bridges + thermal_archetype.thermal_capacity = catalog_archetype.thermal_capacity + thermal_archetype.indirect_heated_ratio = 0 + thermal_archetype.infiltration_rate_for_ventilation_system_on = catalog_archetype.infiltration_rate_for_ventilation_system_on + thermal_archetype.infiltration_rate_for_ventilation_system_off = catalog_archetype.infiltration_rate_for_ventilation_system_off + _constructions = [] + for catalog_construction in catalog_archetype.constructions: + construction = Construction() + construction.type = catalog_construction.type + construction.name = catalog_construction.name + if catalog_construction.window_ratio is not None: + for _orientation in catalog_construction.window_ratio: + if catalog_construction.window_ratio[_orientation] is None: + catalog_construction.window_ratio[_orientation] = 0 + construction.window_ratio = catalog_construction.window_ratio + _layers = [] + for layer_archetype in catalog_construction.layers: + layer = Layer() + layer.thickness = layer_archetype.thickness + archetype_material = layer_archetype.material + layer.material_name = archetype_material.name + layer.no_mass = archetype_material.no_mass + if archetype_material.no_mass: + layer.thermal_resistance = archetype_material.thermal_resistance + else: + layer.density = archetype_material.density + layer.conductivity = archetype_material.conductivity + layer.specific_heat = archetype_material.specific_heat + layer.solar_absorptance = archetype_material.solar_absorptance + layer.thermal_absorptance = archetype_material.thermal_absorptance + layer.visible_absorptance = archetype_material.visible_absorptance + _layers.append(layer) + construction.layers = _layers + + if catalog_construction.window is not None: + window_archetype = catalog_construction.window + construction.window_frame_ratio = window_archetype.frame_ratio + construction.window_g_value = window_archetype.g_value + construction.window_overall_u_value = window_archetype.overall_u_value + _constructions.append(construction) + thermal_archetype.constructions = _constructions diff --git a/hub/imports/construction_factory.py b/hub/imports/construction_factory.py index dcf8b054..bc97d245 100644 --- a/hub/imports/construction_factory.py +++ b/hub/imports/construction_factory.py @@ -10,6 +10,7 @@ from hub.helpers.utils import validate_import_export_type from hub.imports.construction.nrcan_physics_parameters import NrcanPhysicsParameters from hub.imports.construction.nrel_physics_parameters import NrelPhysicsParameters from hub.imports.construction.eilat_physics_parameters import EilatPhysicsParameters +from hub.imports.construction.palma_physics_parameters import PalmaPhysicsParameters class ConstructionFactory: @@ -48,6 +49,15 @@ class ConstructionFactory: for building in self._city.buildings: building.level_of_detail.construction = 2 + def _palma(self): + """ + Enrich the city by using Palma information + """ + PalmaPhysicsParameters(self._city).enrich_buildings() + self._city.level_of_detail.construction = 2 + for building in self._city.buildings: + building.level_of_detail.construction = 2 + def enrich(self): """ Enrich the city given to the class using the class given handler diff --git a/hub/imports/energy_systems/palma_energy_systems_parameters.py b/hub/imports/energy_systems/palma_energy_systems_parameters.py new file mode 100644 index 00000000..f61f5ea1 --- /dev/null +++ b/hub/imports/energy_systems/palma_energy_systems_parameters.py @@ -0,0 +1,216 @@ +""" +Montreal future system importer +SPDX - License - Identifier: LGPL - 3.0 - or -later +Copyright © 2023 Concordia CERC group +Project Coder Saeed Ranjbar saeed.ranjbar@concordia.ca + +""" + +import logging +import copy + +from hub.catalog_factories.energy_systems_catalog_factory import EnergySystemsCatalogFactory +from hub.city_model_structure.energy_systems.energy_system import EnergySystem +from hub.city_model_structure.energy_systems.distribution_system import DistributionSystem +from hub.city_model_structure.energy_systems.non_pv_generation_system import NonPvGenerationSystem +from hub.city_model_structure.energy_systems.pv_generation_system import PvGenerationSystem +from hub.city_model_structure.energy_systems.electrical_storage_system import ElectricalStorageSystem +from hub.city_model_structure.energy_systems.thermal_storage_system import ThermalStorageSystem +from hub.city_model_structure.energy_systems.emission_system import EmissionSystem +from hub.helpers.dictionaries import Dictionaries + + +class PalmaEnergySystemParameters: + """ + MontrealCustomEnergySystemParameters class + """ + + def __init__(self, city): + self._city = city + + def enrich_buildings(self): + """ + Returns the city with the system parameters assigned to the buildings + :return: + """ + city = self._city + montreal_custom_catalog = EnergySystemsCatalogFactory('palma').catalog + if city.generic_energy_systems is None: + _generic_energy_systems = {} + else: + _generic_energy_systems = city.generic_energy_systems + for building in city.buildings: + archetype_name = building.energy_systems_archetype_name + try: + archetype = self._search_archetypes(montreal_custom_catalog, archetype_name) + except KeyError: + logging.error('Building %s has unknown energy system archetype for system name %s', building.name, + archetype_name) + continue + + if archetype.name not in _generic_energy_systems: + _generic_energy_systems = self._create_generic_systems_list(archetype, _generic_energy_systems) + + city.generic_energy_systems = _generic_energy_systems + + self._assign_energy_systems_to_buildings(city) + + @staticmethod + def _search_archetypes(catalog, name): + archetypes = catalog.entries('archetypes') + for building_archetype in archetypes: + if str(name) == str(building_archetype.name): + return building_archetype + raise KeyError('archetype not found') + + def _create_generic_systems_list(self, archetype, _generic_energy_systems): + building_systems = [] + for archetype_system in archetype.systems: + energy_system = EnergySystem() + _hub_demand_types = [] + for demand_type in archetype_system.demand_types: + _hub_demand_types.append(Dictionaries().montreal_demand_type_to_hub_energy_demand_type[demand_type]) + energy_system.name = archetype_system.name + energy_system.demand_types = _hub_demand_types + energy_system.configuration_schema = archetype_system.configuration_schema + energy_system.generation_systems = self._create_generation_systems(archetype_system) + if energy_system.distribution_systems is not None: + energy_system.distribution_systems = self._create_distribution_systems(archetype_system) + building_systems.append(energy_system) + + _generic_energy_systems[archetype.name] = building_systems + + return _generic_energy_systems + + def _create_generation_systems(self, archetype_system): + _generation_systems = [] + archetype_generation_systems = archetype_system.generation_systems + if archetype_generation_systems is not None: + for archetype_generation_system in archetype_system.generation_systems: + if archetype_generation_system.system_type == 'Photovoltaic': + _generation_system = PvGenerationSystem() + _generation_system.name = archetype_generation_system.name + _generation_system.model_name = archetype_generation_system.model_name + _generation_system.manufacturer = archetype_generation_system.manufacturer + _type = archetype_generation_system.system_type + _generation_system.system_type = Dictionaries().montreal_generation_system_to_hub_energy_generation_system[_type] + _fuel_type = Dictionaries().montreal_custom_fuel_to_hub_fuel[archetype_generation_system.fuel_type] + _generation_system.fuel_type = _fuel_type + _generation_system.electricity_efficiency = archetype_generation_system.electricity_efficiency + _generation_system.nominal_electricity_output = archetype_generation_system.nominal_electricity_output + _generation_system.nominal_ambient_temperature = archetype_generation_system.nominal_ambient_temperature + _generation_system.nominal_cell_temperature = archetype_generation_system.nominal_cell_temperature + _generation_system.nominal_radiation = archetype_generation_system.nominal_radiation + _generation_system.standard_test_condition_cell_temperature = archetype_generation_system.standard_test_condition_cell_temperature + _generation_system.standard_test_condition_maximum_power = archetype_generation_system.standard_test_condition_maximum_power + _generation_system.standard_test_condition_radiation = archetype_generation_system.standard_test_condition_radiation + _generation_system.cell_temperature_coefficient = archetype_generation_system.cell_temperature_coefficient + _generation_system.width = archetype_generation_system.width + _generation_system.height = archetype_generation_system.height + _generation_system.tilt_angle = self._city.latitude + _generic_storage_system = None + if archetype_generation_system.energy_storage_systems is not None: + _storage_systems = [] + for storage_system in archetype_generation_system.energy_storage_systems: + if storage_system.type_energy_stored == 'electrical': + _generic_storage_system = ElectricalStorageSystem() + _generic_storage_system.type_energy_stored = 'electrical' + _storage_systems.append(_generic_storage_system) + _generation_system.energy_storage_systems = _storage_systems + + else: + _generation_system = NonPvGenerationSystem() + _generation_system.name = archetype_generation_system.name + _generation_system.model_name = archetype_generation_system.model_name + _generation_system.manufacturer = archetype_generation_system.manufacturer + _type = archetype_generation_system.system_type + _generation_system.system_type = Dictionaries().montreal_generation_system_to_hub_energy_generation_system[_type] + _fuel_type = Dictionaries().montreal_custom_fuel_to_hub_fuel[archetype_generation_system.fuel_type] + _generation_system.fuel_type = _fuel_type + _generation_system.nominal_heat_output = archetype_generation_system.nominal_heat_output + _generation_system.nominal_cooling_output = archetype_generation_system.nominal_cooling_output + _generation_system.maximum_heat_output = archetype_generation_system.maximum_heat_output + _generation_system.minimum_heat_output = archetype_generation_system.minimum_heat_output + _generation_system.maximum_cooling_output = archetype_generation_system.maximum_cooling_output + _generation_system.minimum_cooling_output = archetype_generation_system.minimum_cooling_output + _generation_system.source_temperature = archetype_generation_system.source_temperature + _generation_system.source_mass_flow = archetype_generation_system.source_mass_flow + _generation_system.supply_medium = archetype_generation_system.supply_medium + _generation_system.maximum_heat_supply_temperature = archetype_generation_system.maximum_heat_supply_temperature + _generation_system.maximum_cooling_supply_temperature = archetype_generation_system.maximum_cooling_supply_temperature + _generation_system.minimum_heat_supply_temperature = archetype_generation_system.minimum_heat_supply_temperature + _generation_system.minimum_cooling_supply_temperature = archetype_generation_system.minimum_cooling_supply_temperature + _generation_system.heat_output_curve = archetype_generation_system.heat_output_curve + _generation_system.heat_fuel_consumption_curve = archetype_generation_system.heat_fuel_consumption_curve + _generation_system.heat_efficiency_curve = archetype_generation_system.heat_efficiency_curve + _generation_system.cooling_output_curve = archetype_generation_system.cooling_output_curve + _generation_system.cooling_fuel_consumption_curve = archetype_generation_system.cooling_fuel_consumption_curve + _generation_system.cooling_efficiency_curve = archetype_generation_system.cooling_efficiency_curve + _generation_system.domestic_hot_water = archetype_generation_system.domestic_hot_water + _generation_system.nominal_electricity_output = archetype_generation_system.nominal_electricity_output + _generation_system.source_medium = archetype_generation_system.source_medium + _generation_system.heat_efficiency = archetype_generation_system.heat_efficiency + _generation_system.cooling_efficiency = archetype_generation_system.cooling_efficiency + _generation_system.electricity_efficiency = archetype_generation_system.electricity_efficiency + _generation_system.reversibility = archetype_generation_system.reversibility + _generic_storage_system = None + if archetype_generation_system.energy_storage_systems is not None: + _storage_systems = [] + for storage_system in archetype_generation_system.energy_storage_systems: + if storage_system.type_energy_stored == 'electrical': + _generic_storage_system = ElectricalStorageSystem() + _generic_storage_system.type_energy_stored = 'electrical' + else: + _generic_storage_system = ThermalStorageSystem() + _generic_storage_system.type_energy_stored = storage_system.type_energy_stored + _generic_storage_system.height = storage_system.height + _generic_storage_system.layers = storage_system.layers + _generic_storage_system.storage_medium = storage_system.storage_medium + _generic_storage_system.heating_coil_capacity = storage_system.heating_coil_capacity + _storage_systems.append(_generic_storage_system) + _generation_system.energy_storage_systems = _storage_systems + if archetype_generation_system.domestic_hot_water: + _generation_system.domestic_hot_water = True + if archetype_generation_system.reversibility: + _generation_system.reversibility = True + if archetype_generation_system.simultaneous_heat_cold: + _generation_system.simultaneous_heat_cold = True + _generation_systems.append(_generation_system) + return _generation_systems + + @staticmethod + def _create_distribution_systems(archetype_system): + _distribution_systems = [] + archetype_distribution_systems = archetype_system.distribution_systems + if archetype_distribution_systems is not None: + for archetype_distribution_system in archetype_system.distribution_systems: + _distribution_system = DistributionSystem() + _distribution_system.type = archetype_distribution_system.type + _distribution_system.distribution_consumption_fix_flow = \ + archetype_distribution_system.distribution_consumption_fix_flow + _distribution_system.distribution_consumption_variable_flow = \ + archetype_distribution_system.distribution_consumption_variable_flow + _distribution_system.heat_losses = archetype_distribution_system.heat_losses + _generic_emission_system = None + if archetype_distribution_system.emission_systems is not None: + _emission_systems = [] + for emission_system in archetype_distribution_system.emission_systems: + _generic_emission_system = EmissionSystem() + _generic_emission_system.parasitic_energy_consumption = emission_system.parasitic_energy_consumption + _emission_systems.append(_generic_emission_system) + _distribution_system.emission_systems = _emission_systems + _distribution_systems.append(_distribution_system) + return _distribution_systems + + @staticmethod + def _assign_energy_systems_to_buildings(city): + for building in city.buildings: + _building_energy_systems = [] + energy_systems_cluster_name = building.energy_systems_archetype_name + if str(energy_systems_cluster_name) == 'nan': + break + _generic_building_energy_systems = city.generic_energy_systems[energy_systems_cluster_name] + for _generic_building_energy_system in _generic_building_energy_systems: + _building_energy_systems.append(copy.deepcopy(_generic_building_energy_system)) + + building.energy_systems = _building_energy_systems diff --git a/hub/imports/energy_systems_factory.py b/hub/imports/energy_systems_factory.py index 5a9344b8..ea5ad89b 100644 --- a/hub/imports/energy_systems_factory.py +++ b/hub/imports/energy_systems_factory.py @@ -11,6 +11,7 @@ from hub.helpers.utils import validate_import_export_type from hub.imports.energy_systems.montreal_custom_energy_system_parameters import MontrealCustomEnergySystemParameters from hub.imports.energy_systems.north_america_custom_energy_system_parameters import NorthAmericaCustomEnergySystemParameters from hub.imports.energy_systems.montreal_future_energy_systems_parameters import MontrealFutureEnergySystemParameters +from hub.imports.energy_systems.palma_energy_systems_parameters import PalmaEnergySystemParameters class EnergySystemsFactory: """ @@ -52,6 +53,15 @@ class EnergySystemsFactory: for building in self._city.buildings: building.level_of_detail.energy_systems = 2 + def _palma(self): + """ + Enrich the city by using north america custom energy systems catalog information + """ + PalmaEnergySystemParameters(self._city).enrich_buildings() + self._city.level_of_detail.energy_systems = 2 + for building in self._city.buildings: + building.level_of_detail.energy_systems = 2 + def enrich(self): """ Enrich the city given to the class using the class given handler diff --git a/hub/imports/usage/palma_usage_parameters.py b/hub/imports/usage/palma_usage_parameters.py new file mode 100644 index 00000000..56cd80f3 --- /dev/null +++ b/hub/imports/usage/palma_usage_parameters.py @@ -0,0 +1,174 @@ +""" +PalmaUsageParameters extracts the usage properties from Palma catalog and assigns to each building +SPDX - License - Identifier: LGPL - 3.0 - or -later +Copyright © 2022 Concordia CERC group +Project Coder Cecilia Pérez cperez@irec.cat +""" + +import logging + +import hub.helpers.constants as cte +from hub.helpers.dictionaries import Dictionaries +from hub.city_model_structure.building_demand.usage import Usage +from hub.city_model_structure.building_demand.lighting import Lighting +from hub.city_model_structure.building_demand.occupancy import Occupancy +from hub.city_model_structure.building_demand.appliances import Appliances +from hub.city_model_structure.building_demand.thermal_control import ThermalControl +from hub.city_model_structure.building_demand.domestic_hot_water import DomesticHotWater +from hub.catalog_factories.usage_catalog_factory import UsageCatalogFactory + + +class PalmaUsageParameters: + """ + PalmaUsageParameters class + """ + def __init__(self, city): + self._city = city + + def enrich_buildings(self): + """ + Returns the city with the usage parameters assigned to the buildings + :return: + """ + city = self._city + palma_catalog = UsageCatalogFactory('palma').catalog + + for building in city.buildings: + palma_usage_name = Dictionaries().hub_usage_to_palma_usage[building.function] + try: + archetype_usage = self._search_archetypes(palma_catalog, palma_usage_name) + except KeyError: + logging.error('Building %s has unknown usage archetype for usage %s', building.name, palma_usage_name) + continue + + for internal_zone in building.internal_zones: + if len(building.internal_zones) > 1: + volume_per_area = 0 + if internal_zone.area is None: + logging.error('Building %s has internal zone area not defined, ACH cannot be calculated for usage %s', + building.name, palma_usage_name) + continue + if internal_zone.volume is None: + logging.error('Building %s has internal zone volume not defined, ACH cannot be calculated for usage %s', + building.name, palma_usage_name) + continue + if internal_zone.area <= 0: + logging.error('Building %s has internal zone area equal to 0, ACH cannot be calculated for usage %s', + building.name, palma_usage_name) + continue + volume_per_area += internal_zone.volume / internal_zone.area + else: + if building.storeys_above_ground is None: + logging.error('Building %s no number of storeys assigned, ACH cannot be calculated for usage %s', + building.name, palma_usage_name) + continue + volume_per_area = building.volume / building.floor_area / building.storeys_above_ground + + usage = Usage() + usage.name = palma_usage_name + self._assign_values(usage, archetype_usage, volume_per_area, building.cold_water_temperature) + usage.percentage = 1 + self._calculate_reduced_values_from_extended_library(usage, archetype_usage) + + internal_zone.usages = [usage] + + @staticmethod + def _search_archetypes(palma_catalog, usage_name): + archetypes = palma_catalog.entries('archetypes').usages + for building_archetype in archetypes: + if str(usage_name) == str(building_archetype.name): + return building_archetype + raise KeyError('archetype not found') + + @staticmethod + def _assign_values(usage, archetype, volume_per_area, cold_water_temperature): + if archetype.mechanical_air_change > 0: + # 1/s + usage.mechanical_air_change = archetype.mechanical_air_change + elif archetype.ventilation_rate > 0: + # m3/m2.s to 1/s + usage.mechanical_air_change = archetype.ventilation_rate / volume_per_area + else: + usage.mechanical_air_change = 0 + _occupancy = Occupancy() + _occupancy.occupancy_density = archetype.occupancy.occupancy_density + _occupancy.sensible_radiative_internal_gain = archetype.occupancy.sensible_radiative_internal_gain + _occupancy.latent_internal_gain = archetype.occupancy.latent_internal_gain + _occupancy.sensible_convective_internal_gain = archetype.occupancy.sensible_convective_internal_gain + _occupancy.occupancy_schedules = archetype.occupancy.schedules + usage.occupancy = _occupancy + _lighting = Lighting() + _lighting.density = archetype.lighting.density + _lighting.convective_fraction = archetype.lighting.convective_fraction + _lighting.radiative_fraction = archetype.lighting.radiative_fraction + _lighting.latent_fraction = archetype.lighting.latent_fraction + _lighting.schedules = archetype.lighting.schedules + usage.lighting = _lighting + _appliances = Appliances() + _appliances.density = archetype.appliances.density + _appliances.convective_fraction = archetype.appliances.convective_fraction + _appliances.radiative_fraction = archetype.appliances.radiative_fraction + _appliances.latent_fraction = archetype.appliances.latent_fraction + _appliances.schedules = archetype.appliances.schedules + usage.appliances = _appliances + _control = ThermalControl() + _control.cooling_set_point_schedules = archetype.thermal_control.cooling_set_point_schedules + _control.heating_set_point_schedules = archetype.thermal_control.heating_set_point_schedules + _control.hvac_availability_schedules = archetype.thermal_control.hvac_availability_schedules + usage.thermal_control = _control + _domestic_hot_water = DomesticHotWater() + _domestic_hot_water.peak_flow = archetype.domestic_hot_water.peak_flow + _domestic_hot_water.service_temperature = archetype.domestic_hot_water.service_temperature + density = None + if len(cold_water_temperature) > 0: + cold_temperature = cold_water_temperature[cte.YEAR][0] + density = ( + archetype.domestic_hot_water.peak_flow * cte.WATER_DENSITY * cte.WATER_HEAT_CAPACITY * + (archetype.domestic_hot_water.service_temperature - cold_temperature) + ) + _domestic_hot_water.density = density + _domestic_hot_water.schedules = archetype.domestic_hot_water.schedules + usage.domestic_hot_water = _domestic_hot_water + + @staticmethod + def _calculate_reduced_values_from_extended_library(usage, archetype): + number_of_days_per_type = {'WD': 251, 'Sat': 52, 'Sun': 62} + total = 0 + for schedule in archetype.thermal_control.hvac_availability_schedules: + if schedule.day_types[0] == cte.SATURDAY: + for value in schedule.values: + total += value * number_of_days_per_type['Sat'] + elif schedule.day_types[0] == cte.SUNDAY: + for value in schedule.values: + total += value * number_of_days_per_type['Sun'] + else: + for value in schedule.values: + total += value * number_of_days_per_type['WD'] + + usage.hours_day = total / 365 + usage.days_year = 365 + + max_heating_setpoint = cte.MIN_FLOAT + min_heating_setpoint = cte.MAX_FLOAT + + for schedule in archetype.thermal_control.heating_set_point_schedules: + if schedule.values is None: + max_heating_setpoint = None + min_heating_setpoint = None + break + if max(schedule.values) > max_heating_setpoint: + max_heating_setpoint = max(schedule.values) + if min(schedule.values) < min_heating_setpoint: + min_heating_setpoint = min(schedule.values) + + min_cooling_setpoint = cte.MAX_FLOAT + for schedule in archetype.thermal_control.cooling_set_point_schedules: + if schedule.values is None: + min_cooling_setpoint = None + break + if min(schedule.values) < min_cooling_setpoint: + min_cooling_setpoint = min(schedule.values) + + usage.thermal_control.mean_heating_set_point = max_heating_setpoint + usage.thermal_control.heating_set_back = min_heating_setpoint + usage.thermal_control.mean_cooling_set_point = min_cooling_setpoint diff --git a/hub/imports/usage_factory.py b/hub/imports/usage_factory.py index 8af57364..feadd5a9 100644 --- a/hub/imports/usage_factory.py +++ b/hub/imports/usage_factory.py @@ -10,6 +10,7 @@ from hub.helpers.utils import validate_import_export_type from hub.imports.usage.comnet_usage_parameters import ComnetUsageParameters from hub.imports.usage.nrcan_usage_parameters import NrcanUsageParameters from hub.imports.usage.eilat_usage_parameters import EilatUsageParameters +from hub.imports.usage.palma_usage_parameters import PalmaUsageParameters class UsageFactory: @@ -48,6 +49,15 @@ class UsageFactory: for building in self._city.buildings: building.level_of_detail.usage = 2 + def _palma(self): + """ + Enrich the city with Palma usage library + """ + PalmaUsageParameters(self._city).enrich_buildings() + self._city.level_of_detail.usage = 2 + for building in self._city.buildings: + building.level_of_detail.usage = 2 + def enrich(self): """ Enrich the city given to the class using the usage factory given handler diff --git a/tests/test_construction_catalog.py b/tests/test_construction_catalog.py index 5c5a0e9d..299fee9d 100644 --- a/tests/test_construction_catalog.py +++ b/tests/test_construction_catalog.py @@ -71,3 +71,23 @@ class TestConstructionCatalog(TestCase): with self.assertRaises(IndexError): catalog.get_entry('unknown') + + def test_palma_catalog(self): + catalog = ConstructionCatalogFactory('palma').catalog + catalog_categories = catalog.names() + constructions = catalog.names('constructions') + windows = catalog.names('windows') + materials = catalog.names('materials') + self.assertEqual(29, len(constructions['constructions'])) + self.assertEqual(9, len(windows['windows'])) + self.assertEqual(122, len(materials['materials'])) + with self.assertRaises(ValueError): + catalog.names('unknown') + + # retrieving all the entries should not raise any exceptions + for category in catalog_categories: + for value in catalog_categories[category]: + catalog.get_entry(value) + + with self.assertRaises(IndexError): + catalog.get_entry('unknown') diff --git a/tests/test_construction_factory.py b/tests/test_construction_factory.py index 710894bd..fad046f1 100644 --- a/tests/test_construction_factory.py +++ b/tests/test_construction_factory.py @@ -305,4 +305,30 @@ class TestConstructionFactory(TestCase): for thermal_boundary in thermal_zone.thermal_boundaries: self.assertIsNotNone(thermal_boundary.layers, 'layers is none') self._check_thermal_openings(thermal_boundary) - self._check_surfaces(thermal_boundary) \ No newline at end of file + self._check_surfaces(thermal_boundary) + + def test_palma_construction_factory(self): + """ + Enrich the city with the construction information from palma and verify it + """ + file = 'palma_test.geojson' + file_path = (self._example_path / file).resolve() + city = GeometryFactory('geojson', + path=file_path, + height_field='measuredHeight', + year_of_construction_field='yearOfConstruction', + function_field='usage', + function_to_hub=Dictionaries().palma_function_to_hub_function).city + + ConstructionFactory('palma', city).enrich() + + self._check_buildings(city) + for building in city.buildings: + for internal_zone in building.internal_zones: + self._check_thermal_zones(internal_zone) + for thermal_zone in internal_zone.thermal_zones_from_internal_zones: + self._check_thermal_boundaries(thermal_zone) + for thermal_boundary in thermal_zone.thermal_boundaries: + self.assertIsNotNone(thermal_boundary.layers, 'layers is none') + self._check_thermal_openings(thermal_boundary) + self._check_surfaces(thermal_boundary) diff --git a/tests/test_systems_catalog.py b/tests/test_systems_catalog.py index 612a8fe6..9086cafd 100644 --- a/tests/test_systems_catalog.py +++ b/tests/test_systems_catalog.py @@ -55,3 +55,24 @@ class TestSystemsCatalog(TestCase): with self.assertRaises(IndexError): catalog.get_entry('unknown') print(catalog.entries()) + + def test_palma_catalog(self): + catalog = EnergySystemsCatalogFactory('palma').catalog + catalog_categories = catalog.names() + archetypes = catalog.names() + self.assertEqual(15, len(archetypes['archetypes'])) + systems = catalog.names('systems') + self.assertEqual(13, len(systems['systems'])) + generation_equipments = catalog.names('generation_equipments') + self.assertEqual(16, len(generation_equipments['generation_equipments'])) + with self.assertRaises(ValueError): + catalog.names('unknown') + + # retrieving all the entries should not raise any exceptions + for category in catalog_categories: + for value in catalog_categories[category]: + catalog.get_entry(value) + + with self.assertRaises(IndexError): + catalog.get_entry('unknown') + diff --git a/tests/test_systems_factory.py b/tests/test_systems_factory.py index a8207a7a..37f69de9 100644 --- a/tests/test_systems_factory.py +++ b/tests/test_systems_factory.py @@ -127,6 +127,45 @@ class TestSystemsFactory(TestCase): _generation_system = cast(NonPvGenerationSystem, energy_system.generation_systems[0]) _generation_system.nominal_cooling_output = building.cooling_peak_load[cte.YEAR][0] + for building in self._city.buildings: + self.assertLess(0, building.heating_consumption[cte.YEAR][0]) + self.assertLess(0, building.cooling_consumption[cte.YEAR][0]) + self.assertLess(0, building.domestic_hot_water_consumption[cte.YEAR][0]) + self.assertLess(0, building.onsite_electrical_production[cte.YEAR][0]) + + def test_palma_system_results(self): + """ + Enrich the city with the construction information and verify it + """ + ConstructionFactory('nrcan', self._city).enrich() + UsageFactory('nrcan', self._city).enrich() + WeatherFactory('epw', self._city).enrich() + ExportsFactory('sra', self._city, self._output_path).export() + sra_path = (self._output_path / f'{self._city.name}_sra.xml').resolve() + subprocess.run(['sra', str(sra_path)]) + ResultFactory('sra', self._city, self._output_path).enrich() + EnergyBuildingsExportsFactory('insel_monthly_energy_balance', self._city, self._output_path).export() + for building in self._city.buildings: + insel_path = (self._output_path / f'{building.name}.insel') + subprocess.run(['insel', str(insel_path)]) + ResultFactory('insel_monthly_energy_balance', self._city, self._output_path).enrich() + + for building in self._city.buildings: + building.energy_systems_archetype_name = 'PV and heat pump' + EnergySystemsFactory('palma', self._city).enrich() + # Need to assign energy systems to buildings: + for building in self._city.buildings: + _building_energy_systems = [] + for energy_system in building.energy_systems: + if cte.HEATING in energy_system.demand_types: + _generation_system = cast(NonPvGenerationSystem, energy_system.generation_systems[0]) + _generation_system.nominal_heat_output = building.heating_peak_load[cte.YEAR][0] + if cte.COOLING in energy_system.demand_types: + _generation_system = cast(NonPvGenerationSystem, energy_system.generation_systems[0]) + _generation_system.nominal_cooling_output = building.cooling_peak_load[cte.YEAR][0] + + print('test') + for building in self._city.buildings: self.assertLess(0, building.heating_consumption[cte.YEAR][0]) self.assertLess(0, building.cooling_consumption[cte.YEAR][0]) diff --git a/tests/test_usage_catalog.py b/tests/test_usage_catalog.py index 2d927372..8149578a 100644 --- a/tests/test_usage_catalog.py +++ b/tests/test_usage_catalog.py @@ -20,4 +20,12 @@ class TestConstructionCatalog(TestCase): catalog = UsageCatalogFactory('nrcan').catalog self.assertIsNotNone(catalog, 'catalog is none') content = catalog.entries() + print(catalog.entries()) self.assertEqual(34, len(content.usages), 'Wrong number of usages') + + def test_palma_catalog(self): + catalog = UsageCatalogFactory('palma').catalog + self.assertIsNotNone(catalog, 'catalog is none') + content = catalog.entries() + #print(catalog.entries()) + self.assertEqual(1, len(content.usages), 'Wrong number of usages') diff --git a/tests/test_usage_factory.py b/tests/test_usage_factory.py index 5c180f09..f64f3ae6 100644 --- a/tests/test_usage_factory.py +++ b/tests/test_usage_factory.py @@ -182,3 +182,61 @@ class TestUsageFactory(TestCase): self.assertIsNotNone(usage.domestic_hot_water.service_temperature, 'domestic hot water service temperature is none') self.assertIsNotNone(usage.domestic_hot_water.schedules, 'domestic hot water schedules is none') + + def test_import_palma(self): + """ + Enrich the city with the usage information from palma and verify it + """ + file = 'palma_test.geojson' + file_path = (self._example_path / file).resolve() + city = GeometryFactory('geojson', + path=file_path, + height_field='measuredHeight', + year_of_construction_field='yearOfConstruction', + function_field='usage', + function_to_hub=Dictionaries().palma_function_to_hub_function).city + + ConstructionFactory('palma', city).enrich() + UsageFactory('palma', city).enrich() + self._check_buildings(city) + for building in city.buildings: + for internal_zone in building.internal_zones: + if internal_zone.usages is not None: + self.assertIsNot(len(internal_zone.usages), 0, 'no building usage defined') + for usage in internal_zone.usages: + self._check_usage(usage) + self.assertIsNotNone(usage.mechanical_air_change, 'mechanical air change is none') + self.assertIsNotNone(usage.thermal_control.heating_set_point_schedules, + 'control heating set point schedule is none') + self.assertIsNotNone(usage.thermal_control.cooling_set_point_schedules, + 'control cooling set point schedule is none') + self.assertIsNotNone(usage.occupancy, 'occupancy is none') + occupancy = usage.occupancy + self.assertIsNotNone(occupancy.occupancy_density, 'occupancy density is none') + self.assertIsNotNone(occupancy.latent_internal_gain, 'occupancy latent internal gain is none') + self.assertIsNotNone(occupancy.sensible_convective_internal_gain, + 'occupancy sensible convective internal gain is none') + self.assertIsNotNone(occupancy.sensible_radiative_internal_gain, + 'occupancy sensible radiant internal gain is none') + self.assertIsNotNone(occupancy.occupancy_schedules, 'occupancy schedule is none') + self.assertIsNotNone(usage.lighting, 'lighting is none') + lighting = usage.lighting + self.assertIsNotNone(lighting.density, 'lighting density is none') + self.assertIsNotNone(lighting.latent_fraction, 'lighting latent fraction is none') + self.assertIsNotNone(lighting.convective_fraction, 'lighting convective fraction is none') + self.assertIsNotNone(lighting.radiative_fraction, 'lighting radiant fraction is none') + self.assertIsNotNone(lighting.schedules, 'lighting schedule is none') + self.assertIsNotNone(usage.appliances, 'appliances is none') + appliances = usage.appliances + self.assertIsNotNone(appliances.density, 'appliances density is none') + self.assertIsNotNone(appliances.latent_fraction, 'appliances latent fraction is none') + self.assertIsNotNone(appliances.convective_fraction, 'appliances convective fraction is none') + self.assertIsNotNone(appliances.radiative_fraction, 'appliances radiant fraction is none') + self.assertIsNotNone(appliances.schedules, 'appliances schedule is none') + self.assertIsNotNone(usage.thermal_control.hvac_availability_schedules, + 'control hvac availability is none') + self.assertIsNotNone(usage.domestic_hot_water.peak_flow, 'domestic hot water peak flow is none') + self.assertIsNotNone(usage.domestic_hot_water.service_temperature, + 'domestic hot water service temperature is none') + self.assertIsNotNone(usage.domestic_hot_water.schedules, 'domestic hot water schedules is none') + diff --git a/tests/tests_data/palma_test.geojson b/tests/tests_data/palma_test.geojson new file mode 100644 index 00000000..b4a0d6a7 --- /dev/null +++ b/tests/tests_data/palma_test.geojson @@ -0,0 +1,48 @@ +{ + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "gml_id": "1701548DD7810B-1", + "name": "Build_1701548DD7810B-1", + "usage": "Single-family building", + "yearOfConstruction": 1903, + "measuredHeight": 4.01, + "id": 10000230 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 2.670232581277104, + 39.56952142176154, + 12.83 + ], + [ + 2.670223774973652, + 39.56943886109741, + 8.82 + ], + [ + 2.670329525337772, + 39.56943078141684, + 8.82 + ], + [ + 2.670338924541374, + 39.56951109114386, + 8.82 + ], + [ + 2.670232581277104, + 39.56952142176154, + 12.83 + ] + ] + ] + } + } + ] +} \ No newline at end of file From f42bb64b85224e64768ea3cdb3bbd912440a6ba8 Mon Sep 17 00:00:00 2001 From: Guille Gutierrez Date: Tue, 22 Oct 2024 14:27:35 -0400 Subject: [PATCH 42/42] revert 3dd64143ab4f125431dd6591dcf05d076eafdc73 revert Merge pull request 'feat: all the catalogues, importers, data and tests of palma are added' (#72) from feature/palma into main Reviewed-on: https://ngci.encs.concordia.ca/gitea/CERC/hub/pulls/72 --- .../construction/palma_catalog.py | 236 -- .../construction_catalog_factory.py | 8 - .../energy_systems/pv_generation_system.py | 16 +- .../energy_systems/palma_system_catalgue.py | 520 ----- .../energy_systems_catalog_factory.py | 8 - hub/catalog_factories/usage/palma_catalog.py | 227 -- .../usage_catalog_factory.py | 8 - hub/data/construction/palma_archetypes.json | 664 ------ .../construction/palma_constructions.json | 1895 ----------------- hub/data/energy_systems/palma_systems.xml | 809 ------- hub/data/usage/palma_schedules.json | 904 -------- hub/data/usage/palma_space_compliance.json | 30 - hub/data/usage/palma_space_types.json | 97 - hub/helpers/constants.py | 5 +- ...function_to_palma_construction_function.py | 30 - hub/helpers/data/hub_usage_to_palma_usage.py | 51 - .../data/montreal_custom_fuel_to_hub_fuel.py | 12 +- ..._system_to_hub_energy_generation_system.py | 8 +- .../data/palma_function_to_hub_function.py | 31 - hub/helpers/dictionaries.py | 26 - .../helpers/construction_helper.py | 14 - .../construction/palma_physics_parameters.py | 104 - hub/imports/construction_factory.py | 10 - .../palma_energy_systems_parameters.py | 216 -- hub/imports/energy_systems_factory.py | 10 - hub/imports/usage/palma_usage_parameters.py | 174 -- hub/imports/usage_factory.py | 10 - tests/test_construction_catalog.py | 20 - tests/test_construction_factory.py | 28 +- tests/test_systems_catalog.py | 21 - tests/test_systems_factory.py | 39 - tests/test_usage_catalog.py | 8 - tests/test_usage_factory.py | 58 - tests/tests_data/palma_test.geojson | 48 - 34 files changed, 10 insertions(+), 6335 deletions(-) delete mode 100644 hub/catalog_factories/construction/palma_catalog.py delete mode 100644 hub/catalog_factories/energy_systems/palma_system_catalgue.py delete mode 100644 hub/catalog_factories/usage/palma_catalog.py delete mode 100644 hub/data/construction/palma_archetypes.json delete mode 100644 hub/data/construction/palma_constructions.json delete mode 100644 hub/data/energy_systems/palma_systems.xml delete mode 100644 hub/data/usage/palma_schedules.json delete mode 100644 hub/data/usage/palma_space_compliance.json delete mode 100644 hub/data/usage/palma_space_types.json delete mode 100644 hub/helpers/data/hub_function_to_palma_construction_function.py delete mode 100644 hub/helpers/data/hub_usage_to_palma_usage.py delete mode 100644 hub/helpers/data/palma_function_to_hub_function.py delete mode 100644 hub/imports/construction/palma_physics_parameters.py delete mode 100644 hub/imports/energy_systems/palma_energy_systems_parameters.py delete mode 100644 hub/imports/usage/palma_usage_parameters.py delete mode 100644 tests/tests_data/palma_test.geojson diff --git a/hub/catalog_factories/construction/palma_catalog.py b/hub/catalog_factories/construction/palma_catalog.py deleted file mode 100644 index 3a0d3809..00000000 --- a/hub/catalog_factories/construction/palma_catalog.py +++ /dev/null @@ -1,236 +0,0 @@ -""" -Palma construction catalog -SPDX - License - Identifier: LGPL - 3.0 - or -later -Copyright © 2023 Concordia CERC group -Project Coder Cecilia Pérez Pérez cperez@irec.cat -""" - -import json -from pathlib import Path -from hub.catalog_factories.catalog import Catalog -from hub.catalog_factories.data_models.construction.content import Content -from hub.catalog_factories.construction.construction_helper import ConstructionHelper -from hub.catalog_factories.data_models.construction.construction import Construction -from hub.catalog_factories.data_models.construction.archetype import Archetype -from hub.catalog_factories.data_models.construction.window import Window -from hub.catalog_factories.data_models.construction.material import Material -from hub.catalog_factories.data_models.construction.layer import Layer -import hub.helpers.constants as cte - - -class PalmaCatalog(Catalog): - """ - Palma catalog class - """ - def __init__(self, path): - _path_archetypes = Path(path / 'palma_archetypes.json').resolve() - _path_constructions = (path / 'palma_constructions.json').resolve() - with open(_path_archetypes, 'r', encoding='utf-8') as file: - self._archetypes = json.load(file) - with open(_path_constructions, 'r', encoding='utf-8') as file: - self._constructions = json.load(file) - - self._catalog_windows = self._load_windows() - self._catalog_materials = self._load_materials() - self._catalog_constructions = self._load_constructions() - self._catalog_archetypes = self._load_archetypes() - - # store the full catalog data model in self._content - self._content = Content(self._catalog_archetypes, - self._catalog_constructions, - self._catalog_materials, - self._catalog_windows) - - def _load_windows(self): - _catalog_windows = [] - windows = self._constructions['transparent_surfaces'] - for window in windows: - name = list(window.keys())[0] - window_id = name - g_value = window[name]['shgc'] - window_type = window[name]['type'] - frame_ratio = window[name]['frame_ratio'] - overall_u_value = window[name]['u_value'] - _catalog_windows.append(Window(window_id, frame_ratio, g_value, overall_u_value, name, window_type)) - return _catalog_windows - - def _load_materials(self): - _catalog_materials = [] - materials = self._constructions['materials'] - for material in materials: - name = list(material.keys())[0] - material_id = name - no_mass = material[name]['no_mass'] - thermal_resistance = None - conductivity = None - density = None - specific_heat = None - solar_absorptance = None - thermal_absorptance = None - visible_absorptance = None - if no_mass: - thermal_resistance = material[name]['thermal_resistance'] - else: - solar_absorptance = material[name]['solar_absorptance'] - thermal_absorptance = str(1 - float(material[name]['thermal_emittance'])) - visible_absorptance = material[name]['visible_absorptance'] - conductivity = material[name]['conductivity'] - density = material[name]['density'] - specific_heat = material[name]['specific_heat'] - _material = Material(material_id, - name, - solar_absorptance, - thermal_absorptance, - visible_absorptance, - no_mass, - thermal_resistance, - conductivity, - density, - specific_heat) - _catalog_materials.append(_material) - return _catalog_materials - - def _load_constructions(self): - _catalog_constructions = [] - constructions = self._constructions['opaque_surfaces'] - for construction in constructions: - name = list(construction.keys())[0] - construction_id = name - construction_type = ConstructionHelper().nrcan_surfaces_types_to_hub_types[construction[name]['type']] - layers = [] - for layer in construction[name]['layers']: - layer_id = layer - layer_name = layer - material_id = layer - thickness = construction[name]['layers'][layer] - for material in self._catalog_materials: - if str(material_id) == str(material.id): - layers.append(Layer(layer_id, layer_name, material, thickness)) - break - _catalog_constructions.append(Construction(construction_id, construction_type, name, layers)) - return _catalog_constructions - - def _load_archetypes(self): - _catalog_archetypes = [] - archetypes = self._archetypes['archetypes'] - for archetype in archetypes: - archetype_id = f'{archetype["function"]}_{archetype["period_of_construction"]}_{archetype["climate_zone"]}' - function = archetype['function'] - name = archetype_id - climate_zone = archetype['climate_zone'] - construction_period = archetype['period_of_construction'] - average_storey_height = archetype['average_storey_height'] - thermal_capacity = float(archetype['thermal_capacity']) * 1000 - extra_loses_due_to_thermal_bridges = archetype['extra_loses_due_thermal_bridges'] - infiltration_rate_for_ventilation_system_off = archetype['infiltration_rate_for_ventilation_system_off'] / cte.HOUR_TO_SECONDS - infiltration_rate_for_ventilation_system_on = archetype['infiltration_rate_for_ventilation_system_on'] / cte.HOUR_TO_SECONDS - - archetype_constructions = [] - for archetype_construction in archetype['constructions']: - archetype_construction_type = ConstructionHelper().nrcan_surfaces_types_to_hub_types[archetype_construction] - archetype_construction_name = archetype['constructions'][archetype_construction]['opaque_surface_name'] - for construction in self._catalog_constructions: - if archetype_construction_type == construction.type and construction.name == archetype_construction_name: - _construction = None - _window = None - _window_ratio = None - if 'transparent_surface_name' in archetype['constructions'][archetype_construction].keys(): - _window_ratio = archetype['constructions'][archetype_construction]['transparent_ratio'] - _window_id = archetype['constructions'][archetype_construction]['transparent_surface_name'] - for window in self._catalog_windows: - if _window_id == window.id: - _window = window - break - _construction = Construction(construction.id, - construction.type, - construction.name, - construction.layers, - _window_ratio, - _window) - archetype_constructions.append(_construction) - break - - _catalog_archetypes.append(Archetype(archetype_id, - name, - function, - climate_zone, - construction_period, - archetype_constructions, - average_storey_height, - thermal_capacity, - extra_loses_due_to_thermal_bridges, - None, - infiltration_rate_for_ventilation_system_off, - infiltration_rate_for_ventilation_system_on, - None, - None)) - return _catalog_archetypes - - def names(self, category=None): - """ - Get the catalog elements names - :parm: optional category filter - """ - if category is None: - _names = {'archetypes': [], 'constructions': [], 'materials': [], 'windows': []} - for archetype in self._content.archetypes: - _names['archetypes'].append(archetype.name) - for construction in self._content.constructions: - _names['constructions'].append(construction.name) - for material in self._content.materials: - _names['materials'].append(material.name) - for window in self._content.windows: - _names['windows'].append(window.name) - else: - _names = {category: []} - if category.lower() == 'archetypes': - for archetype in self._content.archetypes: - _names[category].append(archetype.name) - elif category.lower() == 'constructions': - for construction in self._content.constructions: - _names[category].append(construction.name) - elif category.lower() == 'materials': - for material in self._content.materials: - _names[category].append(material.name) - elif category.lower() == 'windows': - for window in self._content.windows: - _names[category].append(window.name) - else: - raise ValueError(f'Unknown category [{category}]') - return _names - - def entries(self, category=None): - """ - Get the catalog elements - :parm: optional category filter - """ - if category is None: - return self._content - if category.lower() == 'archetypes': - return self._content.archetypes - if category.lower() == 'constructions': - return self._content.constructions - if category.lower() == 'materials': - return self._content.materials - if category.lower() == 'windows': - return self._content.windows - raise ValueError(f'Unknown category [{category}]') - - def get_entry(self, name): - """ - Get one catalog element by names - :parm: entry name - """ - for entry in self._content.archetypes: - if entry.name.lower() == name.lower(): - return entry - for entry in self._content.constructions: - if entry.name.lower() == name.lower(): - return entry - for entry in self._content.materials: - if entry.name.lower() == name.lower(): - return entry - for entry in self._content.windows: - if entry.name.lower() == name.lower(): - return entry - raise IndexError(f"{name} doesn't exists in the catalog") \ No newline at end of file diff --git a/hub/catalog_factories/construction_catalog_factory.py b/hub/catalog_factories/construction_catalog_factory.py index 270cb1b4..b1c8a45b 100644 --- a/hub/catalog_factories/construction_catalog_factory.py +++ b/hub/catalog_factories/construction_catalog_factory.py @@ -11,7 +11,6 @@ from typing import TypeVar from hub.catalog_factories.construction.nrcan_catalog import NrcanCatalog from hub.catalog_factories.construction.nrel_catalog import NrelCatalog from hub.catalog_factories.construction.eilat_catalog import EilatCatalog -from hub.catalog_factories.construction.palma_catalog import PalmaCatalog from hub.helpers.utils import validate_import_export_type Catalog = TypeVar('Catalog') @@ -49,13 +48,6 @@ class ConstructionCatalogFactory: """ return EilatCatalog(self._path) - @property - def _palma(self): - """ - Retrieve Palma catalog - """ - return PalmaCatalog(self._path) - @property def catalog(self) -> Catalog: """ diff --git a/hub/catalog_factories/data_models/energy_systems/pv_generation_system.py b/hub/catalog_factories/data_models/energy_systems/pv_generation_system.py index 68ac1460..87228afa 100644 --- a/hub/catalog_factories/data_models/energy_systems/pv_generation_system.py +++ b/hub/catalog_factories/data_models/energy_systems/pv_generation_system.py @@ -17,9 +17,8 @@ class PvGenerationSystem(GenerationSystem): def __init__(self, system_id, name, system_type, model_name=None, manufacturer=None, electricity_efficiency=None, nominal_electricity_output=None, nominal_ambient_temperature=None, nominal_cell_temperature=None, nominal_radiation=None, standard_test_condition_cell_temperature=None, - standard_test_condition_maximum_power=None, standard_test_condition_radiation=None, - cell_temperature_coefficient=None, width=None, height=None, distribution_systems=None, - energy_storage_systems=None): + standard_test_condition_maximum_power=None, cell_temperature_coefficient=None, width=None, height=None, + distribution_systems=None, energy_storage_systems=None): super().__init__(system_id=system_id, name=name, model_name=model_name, manufacturer=manufacturer, fuel_type='renewable', distribution_systems=distribution_systems, energy_storage_systems=energy_storage_systems) @@ -31,7 +30,6 @@ class PvGenerationSystem(GenerationSystem): self._nominal_radiation = nominal_radiation self._standard_test_condition_cell_temperature = standard_test_condition_cell_temperature self._standard_test_condition_maximum_power = standard_test_condition_maximum_power - self._standard_test_condition_radiation = standard_test_condition_radiation self._cell_temperature_coefficient = cell_temperature_coefficient self._width = width self._height = height @@ -100,15 +98,6 @@ class PvGenerationSystem(GenerationSystem): """ return self._standard_test_condition_maximum_power - @property - def standard_test_condition_radiation(self): - """ - Get standard test condition cell temperature of PV panels in W/m2 - :return: float - """ - return self._standard_test_condition_radiation - - @property def cell_temperature_coefficient(self): """ @@ -154,7 +143,6 @@ class PvGenerationSystem(GenerationSystem): 'nominal radiation [W/m2]': self.nominal_radiation, 'standard test condition cell temperature [Celsius]': self.standard_test_condition_cell_temperature, 'standard test condition maximum power [W]': self.standard_test_condition_maximum_power, - 'standard test condition radiation [W/m2]': self.standard_test_condition_radiation, 'cell temperature coefficient': self.cell_temperature_coefficient, 'width': self.width, 'height': self.height, diff --git a/hub/catalog_factories/energy_systems/palma_system_catalgue.py b/hub/catalog_factories/energy_systems/palma_system_catalgue.py deleted file mode 100644 index d83c9836..00000000 --- a/hub/catalog_factories/energy_systems/palma_system_catalgue.py +++ /dev/null @@ -1,520 +0,0 @@ -""" -Palma energy system catalog -SPDX - License - Identifier: LGPL - 3.0 - or -later -Copyright © 2022 Concordia CERC group -Project Coder Saeed Ranjbar saeed.ranjbar@concordia.ca -""" - -import xmltodict -from pathlib import Path -from hub.catalog_factories.catalog import Catalog -from hub.catalog_factories.data_models.energy_systems.distribution_system import DistributionSystem -from hub.catalog_factories.data_models.energy_systems.emission_system import EmissionSystem -from hub.catalog_factories.data_models.energy_systems.system import System -from hub.catalog_factories.data_models.energy_systems.content import Content -from hub.catalog_factories.data_models.energy_systems.non_pv_generation_system import NonPvGenerationSystem -from hub.catalog_factories.data_models.energy_systems.pv_generation_system import PvGenerationSystem -from hub.catalog_factories.data_models.energy_systems.thermal_storage_system import ThermalStorageSystem -from hub.catalog_factories.data_models.energy_systems.performance_curves import PerformanceCurves -from hub.catalog_factories.data_models.energy_systems.archetype import Archetype -from hub.catalog_factories.data_models.construction.material import Material -from hub.catalog_factories.data_models.construction.layer import Layer - - -class PalmaSystemCatalogue(Catalog): - """ - North america energy system catalog class - """ - - def __init__(self, path): - path = str(path / 'palma_systems.xml') - with open(path, 'r', encoding='utf-8') as xml: - self._archetypes = xmltodict.parse(xml.read(), - force_list=['pv_generation_component', 'demand']) - - self._storage_components = self._load_storage_components() - self._generation_components = self._load_generation_components() - self._energy_emission_components = self._load_emission_equipments() - self._distribution_components = self._load_distribution_equipments() - self._systems = self._load_systems() - self._system_archetypes = self._load_archetypes() - self._content = Content(self._system_archetypes, - self._systems, - generations=self._generation_components, - distributions=self._distribution_components) - - def _load_generation_components(self): - generation_components = [] - non_pv_generation_components = self._archetypes['EnergySystemCatalog']['energy_generation_components'][ - 'non_pv_generation_component'] - if non_pv_generation_components is not None: - for non_pv in non_pv_generation_components: - system_id = non_pv['system_id'] - name = non_pv['name'] - system_type = non_pv['system_type'] - model_name = non_pv['model_name'] - manufacturer = non_pv['manufacturer'] - fuel_type = non_pv['fuel_type'] - distribution_systems = non_pv['distribution_systems'] - energy_storage_systems = None - if non_pv['energy_storage_systems'] is not None: - storage_component = non_pv['energy_storage_systems']['storage_id'] - storage_systems = self._search_storage_equipment(self._load_storage_components(), storage_component) - energy_storage_systems = storage_systems - nominal_heat_output = non_pv['nominal_heat_output'] - maximum_heat_output = non_pv['maximum_heat_output'] - minimum_heat_output = non_pv['minimum_heat_output'] - source_medium = non_pv['source_medium'] - supply_medium = non_pv['supply_medium'] - heat_efficiency = non_pv['heat_efficiency'] - nominal_cooling_output = non_pv['nominal_cooling_output'] - maximum_cooling_output = non_pv['maximum_cooling_output'] - minimum_cooling_output = non_pv['minimum_cooling_output'] - cooling_efficiency = non_pv['cooling_efficiency'] - electricity_efficiency = non_pv['electricity_efficiency'] - source_temperature = non_pv['source_temperature'] - source_mass_flow = non_pv['source_mass_flow'] - nominal_electricity_output = non_pv['nominal_electricity_output'] - maximum_heat_supply_temperature = non_pv['maximum_heat_supply_temperature'] - minimum_heat_supply_temperature = non_pv['minimum_heat_supply_temperature'] - maximum_cooling_supply_temperature = non_pv['maximum_cooling_supply_temperature'] - minimum_cooling_supply_temperature = non_pv['minimum_cooling_supply_temperature'] - heat_output_curve = None - heat_fuel_consumption_curve = None - heat_efficiency_curve = None - cooling_output_curve = None - cooling_fuel_consumption_curve = None - cooling_efficiency_curve = None - if non_pv['heat_output_curve'] is not None: - curve_type = non_pv['heat_output_curve']['curve_type'] - dependant_variable = non_pv['heat_output_curve']['dependant_variable'] - parameters = non_pv['heat_output_curve']['parameters'] - coefficients = list(non_pv['heat_output_curve']['coefficients'].values()) - heat_output_curve = PerformanceCurves(curve_type, dependant_variable, parameters, coefficients) - if non_pv['heat_fuel_consumption_curve'] is not None: - curve_type = non_pv['heat_fuel_consumption_curve']['curve_type'] - dependant_variable = non_pv['heat_fuel_consumption_curve']['dependant_variable'] - parameters = non_pv['heat_fuel_consumption_curve']['parameters'] - coefficients = list(non_pv['heat_fuel_consumption_curve']['coefficients'].values()) - heat_fuel_consumption_curve = PerformanceCurves(curve_type, dependant_variable, parameters, coefficients) - if non_pv['heat_efficiency_curve'] is not None: - curve_type = non_pv['heat_efficiency_curve']['curve_type'] - dependant_variable = non_pv['heat_efficiency_curve']['dependant_variable'] - parameters = non_pv['heat_efficiency_curve']['parameters'] - coefficients = list(non_pv['heat_efficiency_curve']['coefficients'].values()) - heat_efficiency_curve = PerformanceCurves(curve_type, dependant_variable, parameters, coefficients) - if non_pv['cooling_output_curve'] is not None: - curve_type = non_pv['cooling_output_curve']['curve_type'] - dependant_variable = non_pv['cooling_output_curve']['dependant_variable'] - parameters = non_pv['cooling_output_curve']['parameters'] - coefficients = list(non_pv['cooling_output_curve']['coefficients'].values()) - cooling_output_curve = PerformanceCurves(curve_type, dependant_variable, parameters, coefficients) - if non_pv['cooling_fuel_consumption_curve'] is not None: - curve_type = non_pv['cooling_fuel_consumption_curve']['curve_type'] - dependant_variable = non_pv['cooling_fuel_consumption_curve']['dependant_variable'] - parameters = non_pv['cooling_fuel_consumption_curve']['parameters'] - coefficients = list(non_pv['cooling_fuel_consumption_curve']['coefficients'].values()) - cooling_fuel_consumption_curve = PerformanceCurves(curve_type, dependant_variable, parameters, coefficients) - if non_pv['cooling_efficiency_curve'] is not None: - curve_type = non_pv['cooling_efficiency_curve']['curve_type'] - dependant_variable = non_pv['cooling_efficiency_curve']['dependant_variable'] - parameters = non_pv['cooling_efficiency_curve']['parameters'] - coefficients = list(non_pv['cooling_efficiency_curve']['coefficients'].values()) - cooling_efficiency_curve = PerformanceCurves(curve_type, dependant_variable, parameters, coefficients) - dhw = None - if non_pv['domestic_hot_water'] is not None: - if non_pv['domestic_hot_water'] == 'True': - dhw = True - else: - dhw = False - - reversible = None - if non_pv['reversible'] is not None: - if non_pv['reversible'] == 'True': - reversible = True - else: - reversible = False - - dual_supply = None - if non_pv['simultaneous_heat_cold'] is not None: - if non_pv['simultaneous_heat_cold'] == 'True': - dual_supply = True - else: - dual_supply = False - non_pv_component = NonPvGenerationSystem(system_id=system_id, - name=name, - system_type=system_type, - model_name=model_name, - manufacturer=manufacturer, - fuel_type=fuel_type, - nominal_heat_output=nominal_heat_output, - maximum_heat_output=maximum_heat_output, - minimum_heat_output=minimum_heat_output, - source_medium=source_medium, - supply_medium=supply_medium, - heat_efficiency=heat_efficiency, - nominal_cooling_output=nominal_cooling_output, - maximum_cooling_output=maximum_cooling_output, - minimum_cooling_output=minimum_cooling_output, - cooling_efficiency=cooling_efficiency, - electricity_efficiency=electricity_efficiency, - source_temperature=source_temperature, - source_mass_flow=source_mass_flow, - nominal_electricity_output=nominal_electricity_output, - maximum_heat_supply_temperature=maximum_heat_supply_temperature, - minimum_heat_supply_temperature=minimum_heat_supply_temperature, - maximum_cooling_supply_temperature=maximum_cooling_supply_temperature, - minimum_cooling_supply_temperature=minimum_cooling_supply_temperature, - heat_output_curve=heat_output_curve, - heat_fuel_consumption_curve=heat_fuel_consumption_curve, - heat_efficiency_curve=heat_efficiency_curve, - cooling_output_curve=cooling_output_curve, - cooling_fuel_consumption_curve=cooling_fuel_consumption_curve, - cooling_efficiency_curve=cooling_efficiency_curve, - distribution_systems=distribution_systems, - energy_storage_systems=energy_storage_systems, - domestic_hot_water=dhw, - reversible=reversible, - simultaneous_heat_cold=dual_supply) - generation_components.append(non_pv_component) - pv_generation_components = self._archetypes['EnergySystemCatalog']['energy_generation_components'][ - 'pv_generation_component'] - if pv_generation_components is not None: - for pv in pv_generation_components: - system_id = pv['system_id'] - name = pv['name'] - system_type = pv['system_type'] - model_name = pv['model_name'] - manufacturer = pv['manufacturer'] - electricity_efficiency = pv['electricity_efficiency'] - nominal_electricity_output = pv['nominal_electricity_output'] - nominal_ambient_temperature = pv['nominal_ambient_temperature'] - nominal_cell_temperature = pv['nominal_cell_temperature'] - nominal_radiation = pv['nominal_radiation'] - standard_test_condition_cell_temperature = pv['standard_test_condition_cell_temperature'] - standard_test_condition_maximum_power = pv['standard_test_condition_maximum_power'] - standard_test_condition_radiation = pv['standard_test_condition_radiation'] - cell_temperature_coefficient = pv['cell_temperature_coefficient'] - width = pv['width'] - height = pv['height'] - distribution_systems = pv['distribution_systems'] - energy_storage_systems = None - if pv['energy_storage_systems'] is not None: - storage_component = pv['energy_storage_systems']['storage_id'] - storage_systems = self._search_storage_equipment(self._load_storage_components(), storage_component) - energy_storage_systems = storage_systems - pv_component = PvGenerationSystem(system_id=system_id, - name=name, - system_type=system_type, - model_name=model_name, - manufacturer=manufacturer, - electricity_efficiency=electricity_efficiency, - nominal_electricity_output=nominal_electricity_output, - nominal_ambient_temperature=nominal_ambient_temperature, - nominal_cell_temperature=nominal_cell_temperature, - nominal_radiation=nominal_radiation, - standard_test_condition_cell_temperature= - standard_test_condition_cell_temperature, - standard_test_condition_maximum_power=standard_test_condition_maximum_power, - standard_test_condition_radiation=standard_test_condition_radiation, - cell_temperature_coefficient=cell_temperature_coefficient, - width=width, - height=height, - distribution_systems=distribution_systems, - energy_storage_systems=energy_storage_systems) - generation_components.append(pv_component) - - return generation_components - - def _load_distribution_equipments(self): - _equipments = [] - distribution_systems = self._archetypes['EnergySystemCatalog']['distribution_systems']['distribution_system'] - if distribution_systems is not None: - for distribution_system in distribution_systems: - system_id = None - model_name = None - system_type = None - supply_temperature = None - distribution_consumption_fix_flow = None - distribution_consumption_variable_flow = None - heat_losses = None - generation_systems = None - energy_storage_systems = None - emission_systems = None - distribution_equipment = DistributionSystem(system_id=system_id, - model_name=model_name, - system_type=system_type, - supply_temperature=supply_temperature, - distribution_consumption_fix_flow=distribution_consumption_fix_flow, - distribution_consumption_variable_flow= - distribution_consumption_variable_flow, - heat_losses=heat_losses, - generation_systems=generation_systems, - energy_storage_systems=energy_storage_systems, - emission_systems=emission_systems - ) - _equipments.append(distribution_equipment) - return _equipments - - def _load_emission_equipments(self): - _equipments = [] - dissipation_systems = self._archetypes['EnergySystemCatalog']['dissipation_systems']['dissipation_system'] - if dissipation_systems is not None: - for dissipation_system in dissipation_systems: - system_id = None - model_name = None - system_type = None - parasitic_energy_consumption = 0 - emission_system = EmissionSystem(system_id=system_id, - model_name=model_name, - system_type=system_type, - parasitic_energy_consumption=parasitic_energy_consumption) - _equipments.append(emission_system) - return _equipments - - def _load_storage_components(self): - storage_components = [] - thermal_storages = self._archetypes['EnergySystemCatalog']['energy_storage_components']['thermalStorages'] - for tes in thermal_storages: - storage_id = tes['storage_id'] - type_energy_stored = tes['type_energy_stored'] - model_name = tes['model_name'] - manufacturer = tes['manufacturer'] - storage_type = tes['storage_type'] - volume = tes['physical_characteristics']['volume'] - height = tes['physical_characteristics']['height'] - maximum_operating_temperature = tes['maximum_operating_temperature'] - materials = self._load_materials() - insulation_material_id = tes['insulation']['material_id'] - insulation_material = self._search_material(materials, insulation_material_id) - material_id = tes['physical_characteristics']['material_id'] - tank_material = self._search_material(materials, material_id) - thickness = float(tes['insulation']['insulationThickness']) / 100 # from cm to m - insulation_layer = Layer(None, 'insulation', insulation_material, thickness) - thickness = float(tes['physical_characteristics']['tankThickness']) / 100 # from cm to m - tank_layer = Layer(None, 'tank', tank_material, thickness) - media = self._load_media() - media_id = tes['storage_medium']['medium_id'] - medium = self._search_media(media, media_id) - layers = [insulation_layer, tank_layer] - nominal_capacity = tes['nominal_capacity'] - losses_ratio = tes['losses_ratio'] - heating_coil_capacity = tes['heating_coil_capacity'] - storage_component = ThermalStorageSystem(storage_id=storage_id, - model_name=model_name, - type_energy_stored=type_energy_stored, - manufacturer=manufacturer, - storage_type=storage_type, - nominal_capacity=nominal_capacity, - losses_ratio=losses_ratio, - volume=volume, - height=height, - layers=layers, - maximum_operating_temperature=maximum_operating_temperature, - storage_medium=medium, - heating_coil_capacity=heating_coil_capacity) - storage_components.append(storage_component) - return storage_components - - def _load_systems(self): - base_path = Path(Path(__file__).parent.parent.parent / 'data/energy_systems') - _catalog_systems = [] - systems = self._archetypes['EnergySystemCatalog']['systems']['system'] - for system in systems: - system_id = system['id'] - name = system['name'] - demands = system['demands']['demand'] - generation_components = system['components']['generation_id'] - generation_systems = self._search_generation_equipment(self._load_generation_components(), generation_components) - configuration_schema = None - if system['schema'] is not None: - configuration_schema = Path(base_path / system['schema']) - energy_system = System(system_id=system_id, - name=name, - demand_types=demands, - generation_systems=generation_systems, - distribution_systems=None, - configuration_schema=configuration_schema) - _catalog_systems.append(energy_system) - return _catalog_systems - - def _load_archetypes(self): - _system_archetypes = [] - system_clusters = self._archetypes['EnergySystemCatalog']['system_archetypes']['system_archetype'] - for system_cluster in system_clusters: - name = system_cluster['name'] - systems = system_cluster['systems']['system_id'] - integer_system_ids = [int(item) for item in systems] - _systems = [] - for system_archetype in self._systems: - if int(system_archetype.id) in integer_system_ids: - _systems.append(system_archetype) - _system_archetypes.append(Archetype(name=name, systems=_systems)) - return _system_archetypes - - def _load_materials(self): - materials = [] - _materials = self._archetypes['EnergySystemCatalog']['materials']['material'] - for _material in _materials: - material_id = _material['material_id'] - name = _material['name'] - conductivity = _material['conductivity'] - solar_absorptance = _material['solar_absorptance'] - thermal_absorptance = _material['thermal_absorptance'] - density = _material['density'] - specific_heat = _material['specific_heat'] - no_mass = _material['no_mass'] - visible_absorptance = _material['visible_absorptance'] - thermal_resistance = _material['thermal_resistance'] - - material = Material(material_id, - name, - solar_absorptance=solar_absorptance, - thermal_absorptance=thermal_absorptance, - density=density, - conductivity=conductivity, - thermal_resistance=thermal_resistance, - visible_absorptance=visible_absorptance, - no_mass=no_mass, - specific_heat=specific_heat) - materials.append(material) - return materials - - @staticmethod - def _search_material(materials, material_id): - _material = None - for material in materials: - if int(material.id) == int(material_id): - _material = material - break - if _material is None: - raise ValueError(f'Material with the id = [{material_id}] not found in catalog ') - return _material - - def _load_media(self): - media = [] - _media = [self._archetypes['EnergySystemCatalog']['media']['medium']] - for _medium in _media: - medium_id = _medium['medium_id'] - density = _medium['density'] - name = _medium['name'] - conductivity = _medium['conductivity'] - solar_absorptance = _medium['solar_absorptance'] - thermal_absorptance = _medium['thermal_absorptance'] - specific_heat = _medium['specific_heat'] - no_mass = _medium['no_mass'] - visible_absorptance = _medium['visible_absorptance'] - thermal_resistance = _medium['thermal_resistance'] - medium = Material(material_id=medium_id, - name=name, - solar_absorptance=solar_absorptance, - thermal_absorptance=thermal_absorptance, - visible_absorptance=visible_absorptance, - no_mass=no_mass, - thermal_resistance=thermal_resistance, - conductivity=conductivity, - density=density, - specific_heat=specific_heat) - media.append(medium) - return media - - @staticmethod - def _search_media(media, medium_id): - _medium = None - for medium in media: - if int(medium.id) == int(medium_id): - _medium = medium - break - if _medium is None: - raise ValueError(f'media with the id = [{medium_id}] not found in catalog ') - return _medium - - @staticmethod - def _search_generation_equipment(generation_systems, generation_id): - _generation_systems = [] - - if isinstance(generation_id, list): - integer_ids = [int(item) for item in generation_id] - for generation in generation_systems: - if int(generation.id) in integer_ids: - _generation_systems.append(generation) - else: - integer_id = int(generation_id) - for generation in generation_systems: - if int(generation.id) == integer_id: - _generation_systems.append(generation) - - if len(_generation_systems) == 0: - _generation_systems = None - raise ValueError(f'The system with the following id is not found in catalog [{generation_id}]') - return _generation_systems - - @staticmethod - def _search_storage_equipment(storage_systems, storage_id): - _storage_systems = [] - for storage in storage_systems: - if storage.id in storage_id: - _storage_systems.append(storage) - if len(_storage_systems) == 0: - _storage_systems = None - raise ValueError(f'The system with the following id is not found in catalog [{storage_id}]') - return _storage_systems - - def names(self, category=None): - """ - Get the catalog elements names - :parm: optional category filter - """ - if category is None: - _names = {'archetypes': [], 'systems': [], 'generation_equipments': [], 'storage_equipments': []} - for archetype in self._content.archetypes: - _names['archetypes'].append(archetype.name) - for system in self._content.systems: - _names['systems'].append(system.name) - for equipment in self._content.generation_equipments: - _names['generation_equipments'].append(equipment.name) - else: - _names = {category: []} - if category.lower() == 'archetypes': - for archetype in self._content.archetypes: - _names[category].append(archetype.name) - elif category.lower() == 'systems': - for system in self._content.systems: - _names[category].append(system.name) - elif category.lower() == 'generation_equipments': - for system in self._content.generation_equipments: - _names[category].append(system.name) - else: - raise ValueError(f'Unknown category [{category}]') - return _names - - def entries(self, category=None): - """ - Get the catalog elements - :parm: optional category filter - """ - if category is None: - return self._content - if category.lower() == 'archetypes': - return self._content.archetypes - if category.lower() == 'systems': - return self._content.systems - if category.lower() == 'generation_equipments': - return self._content.generation_equipments - raise ValueError(f'Unknown category [{category}]') - - def get_entry(self, name): - """ - Get one catalog element by names - :parm: entry name - """ - for entry in self._content.archetypes: - if entry.name.lower() == name.lower(): - return entry - for entry in self._content.systems: - if entry.name.lower() == name.lower(): - return entry - for entry in self._content.generation_equipments: - if entry.name.lower() == name.lower(): - return entry - raise IndexError(f"{name} doesn't exists in the catalog") diff --git a/hub/catalog_factories/energy_systems_catalog_factory.py b/hub/catalog_factories/energy_systems_catalog_factory.py index ecc6004b..ffd36d10 100644 --- a/hub/catalog_factories/energy_systems_catalog_factory.py +++ b/hub/catalog_factories/energy_systems_catalog_factory.py @@ -10,7 +10,6 @@ from typing import TypeVar from hub.catalog_factories.energy_systems.montreal_custom_catalog import MontrealCustomCatalog from hub.catalog_factories.energy_systems.montreal_future_system_catalogue import MontrealFutureSystemCatalogue -from hub.catalog_factories.energy_systems.palma_system_catalgue import PalmaSystemCatalogue from hub.helpers.utils import validate_import_export_type Catalog = TypeVar('Catalog') @@ -41,13 +40,6 @@ class EnergySystemsCatalogFactory: """ return MontrealFutureSystemCatalogue(self._path) - @property - def _palma(self): - """ - Retrieve Palma catalog - """ - return PalmaSystemCatalogue(self._path) - @property def catalog(self) -> Catalog: """ diff --git a/hub/catalog_factories/usage/palma_catalog.py b/hub/catalog_factories/usage/palma_catalog.py deleted file mode 100644 index ee8ab4d1..00000000 --- a/hub/catalog_factories/usage/palma_catalog.py +++ /dev/null @@ -1,227 +0,0 @@ -""" -Palma usage catalog -SPDX - License - Identifier: LGPL - 3.0 - or -later -Copyright © 2022 Concordia CERC group -Project Coder Cecilia Pérez cperez@irec.cat -""" - -import json -import urllib.request -from pathlib import Path - -import xmltodict - -import hub.helpers.constants as cte -from hub.catalog_factories.catalog import Catalog -from hub.catalog_factories.data_models.usages.appliances import Appliances -from hub.catalog_factories.data_models.usages.content import Content -from hub.catalog_factories.data_models.usages.lighting import Lighting -from hub.catalog_factories.data_models.usages.occupancy import Occupancy -from hub.catalog_factories.data_models.usages.domestic_hot_water import DomesticHotWater -from hub.catalog_factories.data_models.usages.schedule import Schedule -from hub.catalog_factories.data_models.usages.thermal_control import ThermalControl -from hub.catalog_factories.data_models.usages.usage import Usage -from hub.catalog_factories.usage.usage_helper import UsageHelper - - -class PalmaCatalog(Catalog): - """ - Palma catalog class - """ - def __init__(self, path): - self._schedules_path = Path(path / 'palma_schedules.json').resolve() - self._space_types_path = Path(path / 'palma_space_types.json').resolve() - self._space_compliance_path = Path(path / 'palma_space_compliance.json').resolve() - self._content = None - self._schedules = {} - self._load_schedules() - self._content = Content(self._load_archetypes()) - - @staticmethod - def _extract_schedule(raw): - nrcan_schedule_type = raw['category'] - if 'Heating' in raw['name'] and 'Water' not in raw['name']: - nrcan_schedule_type = f'{nrcan_schedule_type} Heating' - elif 'Cooling' in raw['name']: - nrcan_schedule_type = f'{nrcan_schedule_type} Cooling' - if nrcan_schedule_type not in UsageHelper().nrcan_schedule_type_to_hub_schedule_type: - return None - hub_type = UsageHelper().nrcan_schedule_type_to_hub_schedule_type[nrcan_schedule_type] - data_type = UsageHelper().nrcan_data_type_to_hub_data_type[raw['units']] - time_step = UsageHelper().nrcan_time_to_hub_time[raw['type']] - # nrcan only uses daily range for the schedules - time_range = cte.DAY - day_types = UsageHelper().nrcan_day_type_to_hub_days[raw['day_types']] - return Schedule(hub_type, raw['values'], data_type, time_step, time_range, day_types) - - def _load_schedules(self): - _schedule_types = [] - with open(self._schedules_path, 'r') as f: - schedules_type = json.load(f) - for schedule_type in schedules_type['tables']['schedules']['table']: - schedule = PalmaCatalog._extract_schedule(schedule_type) - if schedule_type['name'] not in _schedule_types: - _schedule_types.append(schedule_type['name']) - if schedule is not None: - self._schedules[schedule_type['name']] = [schedule] - else: - if schedule is not None: - _schedules = self._schedules[schedule_type['name']] - _schedules.append(schedule) - self._schedules[schedule_type['name']] = _schedules - - def _get_schedules(self, name): - schedule = None - if name in self._schedules: - schedule = self._schedules[name] - return schedule - - def _load_archetypes(self): - usages = [] - with open(self._space_types_path, 'r') as f: - space_types = json.load(f)['tables']['space_types']['table'] - space_types = [st for st in space_types if st['space_type'] == 'WholeBuilding'] - with open(self._space_compliance_path, 'r') as f: - space_types_compliance = json.load(f)['tables']['space_compliance']['table'] - space_types_compliance = [st for st in space_types_compliance if st['space_type'] == 'WholeBuilding'] - space_types_dictionary = {} - for space_type in space_types_compliance: - usage_type = space_type['building_type'] - # people/m2 - occupancy_density = space_type['occupancy_per_area_people_per_m2'] - # W/m2 - lighting_density = space_type['lighting_per_area_w_per_m2'] - # W/m2 - appliances_density = space_type['electric_equipment_per_area_w_per_m2'] - # peak flow in gallons/h/m2 - domestic_hot_water_peak_flow = ( - space_type['service_water_heating_peak_flow_per_area'] * - cte.GALLONS_TO_QUBIC_METERS / cte.HOUR_TO_SECONDS - ) - space_types_dictionary[usage_type] = {'occupancy_per_area': occupancy_density, - 'lighting_per_area': lighting_density, - 'electric_equipment_per_area': appliances_density, - 'service_water_heating_peak_flow_per_area': domestic_hot_water_peak_flow - } - - for space_type in space_types: - usage_type = space_type['building_type'] - space_type_compliance = space_types_dictionary[usage_type] - occupancy_density = space_type_compliance['occupancy_per_area'] - sensible_convective_internal_gain = space_type['sensible_convective_internal_gain'] - sensible_radiative_internal_gain = space_type['sensible_radiative_internal_gain'] - latent_internal_gain = space_type['latent_internal_gain'] - lighting_density = space_type_compliance['lighting_per_area'] - appliances_density = space_type_compliance['electric_equipment_per_area'] - domestic_hot_water_peak_flow = space_type_compliance['service_water_heating_peak_flow_per_area'] - - occupancy_schedule_name = space_type['occupancy_schedule'] - lighting_schedule_name = space_type['lighting_schedule'] - appliance_schedule_name = space_type['electric_equipment_schedule'] - hvac_schedule_name = space_type['exhaust_schedule'] - if hvac_schedule_name and 'FAN' in hvac_schedule_name: - hvac_schedule_name = hvac_schedule_name.replace('FAN', 'Fan') - if not hvac_schedule_name: - hvac_schedule_name = 'default_HVAC_schedule' - heating_setpoint_schedule_name = space_type['heating_setpoint_schedule'] - cooling_setpoint_schedule_name = space_type['cooling_setpoint_schedule'] - domestic_hot_water_schedule_name = space_type['service_water_heating_schedule'] - occupancy_schedule = self._get_schedules(occupancy_schedule_name) - lighting_schedule = self._get_schedules(lighting_schedule_name) - appliance_schedule = self._get_schedules(appliance_schedule_name) - heating_schedule = self._get_schedules(heating_setpoint_schedule_name) - cooling_schedule = self._get_schedules(cooling_setpoint_schedule_name) - hvac_availability = self._get_schedules(hvac_schedule_name) - domestic_hot_water_load_schedule = self._get_schedules(domestic_hot_water_schedule_name) - - # ACH -> 1/s - mechanical_air_change = space_type['ventilation_air_changes'] / cte.HOUR_TO_SECONDS - # cfm/ft2 to m3/m2.s - ventilation_rate = space_type['ventilation_per_area'] / (cte.METERS_TO_FEET * cte.MINUTES_TO_SECONDS) - # cfm/person to m3/m2.s - ventilation_rate += space_type['ventilation_per_person'] / ( - pow(cte.METERS_TO_FEET, 3) * cte.MINUTES_TO_SECONDS - ) * occupancy_density - - lighting_radiative_fraction = space_type['lighting_fraction_radiant'] - lighting_convective_fraction = 0 - if lighting_radiative_fraction is not None: - lighting_convective_fraction = 1 - lighting_radiative_fraction - lighting_latent_fraction = 0 - appliances_radiative_fraction = space_type['electric_equipment_fraction_radiant'] - appliances_latent_fraction = space_type['electric_equipment_fraction_latent'] - appliances_convective_fraction = 0 - if appliances_radiative_fraction is not None and appliances_latent_fraction is not None: - appliances_convective_fraction = 1 - appliances_radiative_fraction - appliances_latent_fraction - - domestic_hot_water_service_temperature = space_type['service_water_heating_target_temperature'] - - occupancy = Occupancy(occupancy_density, - sensible_convective_internal_gain, - sensible_radiative_internal_gain, - latent_internal_gain, - occupancy_schedule) - lighting = Lighting(lighting_density, - lighting_convective_fraction, - lighting_radiative_fraction, - lighting_latent_fraction, - lighting_schedule) - appliances = Appliances(appliances_density, - appliances_convective_fraction, - appliances_radiative_fraction, - appliances_latent_fraction, - appliance_schedule) - thermal_control = ThermalControl(None, - None, - None, - hvac_availability, - heating_schedule, - cooling_schedule) - domestic_hot_water = DomesticHotWater(None, - domestic_hot_water_peak_flow, - domestic_hot_water_service_temperature, - domestic_hot_water_load_schedule) - - hours_day = None - days_year = None - - usages.append(Usage(usage_type, - hours_day, - days_year, - mechanical_air_change, - ventilation_rate, - occupancy, - lighting, - appliances, - thermal_control, - domestic_hot_water)) - - - return usages - - def names(self, category=None): - """ - Get the catalog elements names - :parm: for usage catalog category filter does nothing as there is only one category (usages) - """ - _names = {'usages': []} - for usage in self._content.usages: - _names['usages'].append(usage.name) - return _names - - def entries(self, category=None): - """ - Get the catalog elements - :parm: for usage catalog category filter does nothing as there is only one category (usages) - """ - return self._content - - def get_entry(self, name): - """ - Get one catalog element by names - :parm: entry name - """ - for usage in self._content.usages: - if usage.name.lower() == name.lower(): - return usage - raise IndexError(f"{name} doesn't exists in the catalog") \ No newline at end of file diff --git a/hub/catalog_factories/usage_catalog_factory.py b/hub/catalog_factories/usage_catalog_factory.py index b5412bd2..ce015a35 100644 --- a/hub/catalog_factories/usage_catalog_factory.py +++ b/hub/catalog_factories/usage_catalog_factory.py @@ -11,7 +11,6 @@ from typing import TypeVar from hub.catalog_factories.usage.comnet_catalog import ComnetCatalog from hub.catalog_factories.usage.nrcan_catalog import NrcanCatalog from hub.catalog_factories.usage.eilat_catalog import EilatCatalog -from hub.catalog_factories.usage.palma_catalog import PalmaCatalog from hub.helpers.utils import validate_import_export_type Catalog = TypeVar('Catalog') @@ -50,13 +49,6 @@ class UsageCatalogFactory: """ return EilatCatalog(self._path) - @property - def _palma(self): - """ - Retrieve Palma catalog - """ - return PalmaCatalog(self._path) - @property def catalog(self) -> Catalog: """ diff --git a/hub/data/construction/palma_archetypes.json b/hub/data/construction/palma_archetypes.json deleted file mode 100644 index 5781ceaa..00000000 --- a/hub/data/construction/palma_archetypes.json +++ /dev/null @@ -1,664 +0,0 @@ -{ - "archetypes": [ - { - "function": "Large multifamily building", - "period_of_construction": "2021_2050", - "climate_zone": "B3", - "average_storey_height": 3.57, - "thermal_capacity": 83.018, - "extra_loses_due_thermal_bridges": 0.1, - "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.9, - "constructions": { - "OutdoorsWall": { - "opaque_surface_name": "PA1_PA2_2021_2050_FACEXT", - "transparent_surface_name": "PA1_PA2_2021_2050_WIN1", - "transparent_ratio": { - "north": "60", - "east": "5", - "south": "60", - "west": "5" - } - }, - "OutdoorsRoofCeiling": { - "opaque_surface_name": "PA1_PA2_2021_2050_ROOF", - "transparent_surface_name": null, - "transparent_ratio": { - "north": null, - "east": null, - "south": null, - "west": null - } - }, - "GroundFloor": { - "opaque_surface_name": "PA1_PA2_2021_2050_FLOOR" - }, - "GroundWall": { - "opaque_surface_name": "PA1_PA2_2021_2050_FACEXT" - }, - "GroundRoofCeiling": { - "opaque_surface_name": "PA1_PA2_2021_2050_FLOORINT" - } - } - }, - { - "function": "Medium multifamily building", - "period_of_construction": "2021_2050", - "climate_zone": "B3", - "average_storey_height": 3.57, - "thermal_capacity": 83.018, - "extra_loses_due_thermal_bridges": 0.1, - "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.9, - "constructions": { - "OutdoorsWall": { - "opaque_surface_name": "PA1_PA2_2021_2050_FACEXT", - "transparent_surface_name": "PA1_PA2_2021_2050_WIN1", - "transparent_ratio": { - "north": "60", - "east": "5", - "south": "60", - "west": "5" - } - }, - "OutdoorsRoofCeiling": { - "opaque_surface_name": "PA1_PA2_2021_2050_ROOF", - "transparent_surface_name": null, - "transparent_ratio": { - "north": null, - "east": null, - "south": null, - "west": null - } - }, - "GroundFloor": { - "opaque_surface_name": "PA1_PA2_2021_2050_FLOOR" - }, - "GroundWall": { - "opaque_surface_name": "PA1_PA2_2021_2050_FACEXT" - }, - "GroundRoofCeiling": { - "opaque_surface_name": "PA1_PA2_2021_2050_FLOORINT" - } - } - }, - { - "function": "Small multifamily building", - "period_of_construction": "2021_2050", - "climate_zone": "B3", - "average_storey_height": 3.57, - "thermal_capacity": 83.018, - "extra_loses_due_thermal_bridges": 0.1, - "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.9, - "constructions": { - "OutdoorsWall": { - "opaque_surface_name": "PA1_PA2_2021_2050_FACEXT", - "transparent_surface_name": "PA1_PA2_2021_2050_WIN1", - "transparent_ratio": { - "north": "60", - "east": "5", - "south": "60", - "west": "5" - } - }, - "OutdoorsRoofCeiling": { - "opaque_surface_name": "PA1_PA2_2021_2050_ROOF", - "transparent_surface_name": null, - "transparent_ratio": { - "north": null, - "east": null, - "south": null, - "west": null - } - }, - "GroundFloor": { - "opaque_surface_name": "PA1_PA2_2021_2050_FLOOR" - }, - "GroundWall": { - "opaque_surface_name": "PA1_PA2_2021_2050_FACEXT" - }, - "GroundRoofCeiling": { - "opaque_surface_name": "PA1_PA2_2021_2050_FLOORINT" - } - } - }, - { - "function": "Single family building", - "period_of_construction": "2021_2050", - "climate_zone": "B3", - "average_storey_height": 3.57, - "thermal_capacity": 83.018, - "extra_loses_due_thermal_bridges": 0.1, - "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.9, - "constructions": { - "OutdoorsWall": { - "opaque_surface_name": "PA1_PA2_2021_2050_FACEXT", - "transparent_surface_name": "PA1_PA2_2021_2050_WIN1", - "transparent_ratio": { - "north": "60", - "east": "5", - "south": "60", - "west": "5" - } - }, - "OutdoorsRoofCeiling": { - "opaque_surface_name": "PA1_PA2_2021_2050_ROOF", - "transparent_surface_name": null, - "transparent_ratio": { - "north": null, - "east": null, - "south": null, - "west": null - } - }, - "GroundFloor": { - "opaque_surface_name": "PA1_PA2_2021_2050_FLOOR" - }, - "GroundWall": { - "opaque_surface_name": "PA1_PA2_2021_2050_FACEXT" - }, - "GroundRoofCeiling": { - "opaque_surface_name": "PA1_PA2_2021_2050_FLOORINT" - } - } - }, - { - "function": "Large multifamily building", - "period_of_construction": "1961_1980", - "climate_zone": "B3", - "average_storey_height": 3.57, - "thermal_capacity": 3000, - "extra_loses_due_thermal_bridges": 0.1, - "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.9, - "constructions": { - "OutdoorsWall": { - "opaque_surface_name": "PA1_PA2_1961_1980_FACEXT1", - "transparent_surface_name": "PA1_PA2_1961_1980_WIN1", - "transparent_ratio": { - "north": "60", - "east": "60", - "south": "60", - "west": "60" - } - }, - "OutdoorsRoofCeiling": { - "opaque_surface_name": "PA1_PA2_1961_1980_ROOF1", - "transparent_surface_name": null, - "transparent_ratio": { - "north": null, - "east": null, - "south": null, - "west": null - } - }, - "GroundFloor": { - "opaque_surface_name": "PA1_PA2_1961_1980_FLOOR1" - }, - "GroundWall": { - "opaque_surface_name": "PA1_PA2_1961_1980_FACEXT1" - }, - "GroundRoofCeiling": { - "opaque_surface_name": "PA1_PA2_1961_1980_FLOOR4" - } - } - }, - { - "function": "Medium multifamily building", - "period_of_construction": "1800_1900", - "climate_zone": "B3", - "average_storey_height": 4.39, - "thermal_capacity": 3330, - "extra_loses_due_thermal_bridges": 0.1, - "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.9, - "constructions": { - "OutdoorsWall": { - "opaque_surface_name": "A_B1900_FACEXT1", - "transparent_surface_name": "A_B1900_WIN2", - "transparent_ratio": { - "north": "20", - "east": "20", - "south": "20", - "west": "20" - } - }, - "OutdoorsRoofCeiling": { - "opaque_surface_name": "A_B1900_ROOF1", - "transparent_surface_name": null, - "transparent_ratio": { - "north": null, - "east": null, - "south": null, - "west": null - } - }, - "GroundFloor": { - "opaque_surface_name": "A_B1900_FLOORGR1" - } - } - }, - { - "function": "Medium multifamily building", - "period_of_construction": "1901_1940", - "climate_zone": "B3", - "average_storey_height": 3.65, - "thermal_capacity": 3420, - "extra_loses_due_thermal_bridges": 0.1, - "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.9, - "constructions": { - "OutdoorsWall": { - "opaque_surface_name": "B_1901_1940_FACEXT1", - "transparent_surface_name": "B_1901_1940_WIN1", - "transparent_ratio": { - "north": "40", - "east": "40", - "south": "40", - "west": "40" - } - }, - "OutdoorsRoofCeiling": { - "opaque_surface_name": "B_1901_1940_ROOF1", - "transparent_surface_name": null, - "transparent_ratio": { - "north": null, - "east": null, - "south": null, - "west": null - } - }, - "GroundFloor": { - "opaque_surface_name": "B_1901_1940_FLOORGR1" - } - } - }, - { - "function": "Medium multifamily building", - "period_of_construction": "1941_1960", - "climate_zone": "B3", - "average_storey_height": 3.6, - "thermal_capacity": 3000, - "extra_loses_due_thermal_bridges": 0.1, - "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.9, - "constructions": { - "OutdoorsWall": { - "opaque_surface_name": " C_1941_1960_FACEXT1", - "transparent_surface_name": "C_1941_1960_WIN1", - "transparent_ratio": { - "north": "30", - "east": "30", - "south": "30", - "west": "30" - } - }, - "OutdoorsRoofCeiling": { - "opaque_surface_name": "C_1941_1960_ROOF1", - "transparent_surface_name": null, - "transparent_ratio": { - "north": null, - "east": null, - "south": null, - "west": null - } - }, - "GroundFloor": { - "opaque_surface_name": "C_1941_1960_FLOORGR1" - } - } - }, - { - "function": "Medium multifamily building", - "period_of_construction": "1961_1980", - "climate_zone": "B3", - "average_storey_height": 4.5, - "thermal_capacity": 3540, - "extra_loses_due_thermal_bridges": 0.1, - "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.9, - "constructions": { - "OutdoorsWall": { - "opaque_surface_name": "PA1_PA2_1961_1980_FACEXT1", - "transparent_surface_name": "PA1_PA2_1961_1980_WIN1", - "transparent_ratio": { - "north": "55", - "east": "55", - "south": "55", - "west": "55" - } - }, - "OutdoorsRoofCeiling": { - "opaque_surface_name": "PA1_PA2_1961_1980_ROOF1", - "transparent_surface_name": null, - "transparent_ratio": { - "north": null, - "east": null, - "south": null, - "west": null - } - }, - "GroundFloor": { - "opaque_surface_name": "PA1_PA2_1961_1980_FLOOR1" - } - } - }, - { - "function": "Medium multifamily building", - "period_of_construction": "1981_2007", - "climate_zone": "B3", - "average_storey_height": 3.2, - "thermal_capacity": 3179, - "extra_loses_due_thermal_bridges": 0.1, - "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.9, - "constructions": { - "OutdoorsWall": { - "opaque_surface_name": "E_1981_2007_FACEXT1", - "transparent_surface_name": "E_1981_2007_WIN1", - "transparent_ratio": { - "north": "45", - "east": "45", - "south": "45", - "west": "45" - } - }, - "OutdoorsRoofCeiling": { - "opaque_surface_name": "E_1981_2007_ROOF1", - "transparent_surface_name": null, - "transparent_ratio": { - "north": null, - "east": null, - "south": null, - "west": null - } - }, - "GroundFloor": { - "opaque_surface_name": "E_1981_2007_FLOORGR1" - } - } - }, - { - "function": "Small multifamily building", - "period_of_construction": "1800_1980", - "climate_zone": "B3", - "average_storey_height": 3.8, - "thermal_capacity": 3527.9, - "extra_loses_due_thermal_bridges": 0.1, - "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.9, - "constructions": { - "OutdoorsWall": { - "opaque_surface_name": "PA3_PA4_1901_1940_FACEXT1", - "transparent_surface_name": "PA3_PA4_1901_1940_WIN1", - "transparent_ratio": { - "north": "40", - "east": "40", - "south": "40", - "west": "40" - } - }, - "OutdoorsRoofCeiling": { - "opaque_surface_name": "PA3_PA4_1901_1940_ROOF1", - "transparent_surface_name": null, - "transparent_ratio": { - "north": null, - "east": null, - "south": null, - "west": null - } - }, - "GroundFloor": { - "opaque_surface_name": "PA3_PA4_1901_1940_FLOORGR1" - } - } - }, - { - "function": "Small multifamily building", - "period_of_construction": "1981_2007", - "climate_zone": "B3", - "average_storey_height": 3.2, - "thermal_capacity": 3179, - "extra_loses_due_thermal_bridges": 0.1, - "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.9, - "constructions": { - "OutdoorsWall": { - "opaque_surface_name": "E_1981_2007_FACEXT1", - "transparent_surface_name": "E_1981_2007_WIN1", - "transparent_ratio": { - "north": "45", - "east": "45", - "south": "45", - "west": "45" - } - }, - "OutdoorsRoofCeiling": { - "opaque_surface_name": "E_1981_2007_ROOF1", - "transparent_surface_name": null, - "transparent_ratio": { - "north": null, - "east": null, - "south": null, - "west": null - } - }, - "GroundFloor": { - "opaque_surface_name": "E_1981_2007_FLOORGR1" - } - } - }, - { - "function": "Small multifamily building", - "period_of_construction": "2008_2014", - "climate_zone": "B3", - "average_storey_height": 2.75, - "thermal_capacity": 3290, - "extra_loses_due_thermal_bridges": 0.1, - "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.9, - "constructions": { - "OutdoorsWall": { - "opaque_surface_name": "F_2008_2014_FACEXT1", - "transparent_surface_name": "F_2008_2014_WIN1", - "transparent_ratio": { - "north": "40", - "east": "40", - "south": "40", - "west": "40" - } - }, - "OutdoorsRoofCeiling": { - "opaque_surface_name": "F_2008_2014_ROOF1", - "transparent_surface_name": null, - "transparent_ratio": { - "north": null, - "east": null, - "south": null, - "west": null - } - }, - "GroundFloor": { - "opaque_surface_name": "F_2008_2014_FLOORGR1" - } - } - }, - { - "function": "Small multifamily building", - "period_of_construction": "2015_2019", - "climate_zone": "B3", - "average_storey_height": 2.75, - "thermal_capacity": 3290, - "extra_loses_due_thermal_bridges": 0.1, - "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.9, - "constructions": { - "OutdoorsWall": { - "opaque_surface_name": "G_2015_2019_FACEXT1", - "transparent_surface_name": "G_2015_2019_WIN1", - "transparent_ratio": { - "north": "40", - "east": "40", - "south": "40", - "west": "40" - } - }, - "OutdoorsRoofCeiling": { - "opaque_surface_name": "G_2015_2019_ROOF1", - "transparent_surface_name": null, - "transparent_ratio": { - "north": null, - "east": null, - "south": null, - "west": null - } - }, - "GroundFloor": { - "opaque_surface_name": "G_2015_2019_FLOORGR1" - } - } - }, - { - "function": "Single family building", - "period_of_construction": "1800_1980", - "climate_zone": "B3", - "average_storey_height": 3.68, - "thermal_capacity": 4400, - "extra_loses_due_thermal_bridges": 0.1, - "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.9, - "constructions": { - "OutdoorsWall": { - "opaque_surface_name": "PA3_PA4_1901_1940_FACEXT1", - "transparent_surface_name": "PA3_PA4_1901_1940_WIN1", - "transparent_ratio": { - "north": "40", - "east": "40", - "south": "40", - "west": "40" - } - }, - "OutdoorsRoofCeiling": { - "opaque_surface_name": "PA3_PA4_1901_1940_ROOF1", - "transparent_surface_name": null, - "transparent_ratio": { - "north": null, - "east": null, - "south": null, - "west": null - } - }, - "GroundFloor": { - "opaque_surface_name": "PA3_PA4_1901_1940_FLOORGR1" - } - } - }, - { - "function": "Single family building", - "period_of_construction": "1981_2007", - "climate_zone": "B3", - "average_storey_height": 3.2, - "thermal_capacity": 3179, - "extra_loses_due_thermal_bridges": 0.1, - "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.9, - "constructions": { - "OutdoorsWall": { - "opaque_surface_name": "E_1981_2007_FACEXT1", - "transparent_surface_name": "E_1981_2007_WIN1", - "transparent_ratio": { - "north": "45", - "east": "45", - "south": "45", - "west": "45" - } - }, - "OutdoorsRoofCeiling": { - "opaque_surface_name": "E_1981_2007_ROOF1", - "transparent_surface_name": null, - "transparent_ratio": { - "north": null, - "east": null, - "south": null, - "west": null - } - }, - "GroundFloor": { - "opaque_surface_name": "E_1981_2007_FLOORGR1" - } - } - }, - { - "function": "Single family building", - "period_of_construction": "2008_2014", - "climate_zone": "B3", - "average_storey_height": 3.75, - "thermal_capacity": 3200, - "extra_loses_due_thermal_bridges": 0.1, - "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.9, - "constructions": { - "OutdoorsWall": { - "opaque_surface_name": "F_2008_2014_FACEXT1", - "transparent_surface_name": "F_2008_2014_WIN1", - "transparent_ratio": { - "north": "60", - "east": "60", - "south": "60", - "west": "60" - } - }, - "OutdoorsRoofCeiling": { - "opaque_surface_name": "F_2008_2014_ROOF1", - "transparent_surface_name": null, - "transparent_ratio": { - "north": null, - "east": null, - "south": null, - "west": null - } - }, - "GroundFloor": { - "opaque_surface_name": "F_2008_2014_FLOORGR1" - } - } - }, - { - "function": "Single family building", - "period_of_construction": "2015_2019", - "climate_zone": "B3", - "average_storey_height": 3.75, - "thermal_capacity": 3200, - "extra_loses_due_thermal_bridges": 0.1, - "infiltration_rate_for_ventilation_system_on": 0, - "infiltration_rate_for_ventilation_system_off": 0.9, - "constructions": { - "OutdoorsWall": { - "opaque_surface_name": "G_2015_2019_FACEXT1", - "transparent_surface_name": "G_2015_2019_WIN1", - "transparent_ratio": { - "north": "60", - "east": "60", - "south": "60", - "west": "60" - } - }, - "OutdoorsRoofCeiling": { - "opaque_surface_name": "G_2015_2019_ROOF1", - "transparent_surface_name": null, - "transparent_ratio": { - "north": null, - "east": null, - "south": null, - "west": null - } - }, - "GroundFloor": { - "opaque_surface_name": "G_2015_2019_FLOORGR1" - } - } - } - ] - } \ No newline at end of file diff --git a/hub/data/construction/palma_constructions.json b/hub/data/construction/palma_constructions.json deleted file mode 100644 index 4ddeeff2..00000000 --- a/hub/data/construction/palma_constructions.json +++ /dev/null @@ -1,1895 +0,0 @@ -{ - "opaque_surfaces": [ - { - "PA1_PA2_1961_1980_FLOOR1": { - "period_of_construction": "1961_1980", - "climate_zone": "B3", - "type": "GroundFloor", - "u_value": 0.921, - "layers": { - "RI01": 0.01, - "F02": 0.2, - "M01": 0.02, - "PT01": 0.03 - } - } - }, - { - "PA1_PA2_1961_1980_ROOF1": { - "period_of_construction": "1961_1980", - "climate_zone": "B3", - "type": "OutdoorsRoofCeiling", - "u_value": 1.926, - "layers": { - "IM01": 0.003, - "F02": 0.2, - "RI01": 0.01 - } - } - }, - { - "PA1_PA2_1961_1980_FACEXT1": { - "period_of_construction": "1961_1980", - "climate_zone": "B3", - "type": "OutdoorsWall", - "u_value": 2.207, - "layers": { - "RI05": 0.01, - "PH01": 0.2 - } - } - }, - { - "PA1_PA2_1961_1980_FLOOR4": { - "period_of_construction": "1961_1980", - "climate_zone": "B3", - "type": "GroundRoofCeiling", - "u_value": 2.603, - "layers": { - "RI05": 0.01, - "F02": 0.2, - "PT02": 0.03 - } - } - }, - { - "PA3_PA4_1901_1940_FLOORGR1": { - "period_of_construction": "1800_1980", - "climate_zone": "B3", - "type": "GroundFloor", - "u_value": 1.142, - "layers": { - "RP01": 0.4, - "M01": 0.01, - "PC01": 0.01 - } - } - }, - { - "PA3_PA4_1901_1940_ROOF1": { - "period_of_construction": "1800_1980", - "climate_zone": "B3", - "type": "OutdoorsRoofCeiling", - "u_value": 1.227, - "layers": { - "ECGX": 0.02, - "CA_50": 0, - "F03": 0.2, - "PC01": 0.06 - } - } - }, - { - "PA3_PA4_1901_1940_FACEXT1": { - "period_of_construction": "1800_1980", - "climate_zone": "B3", - "type": "OutdoorsWall", - "u_value": 2.703, - "layers": { - "RI01": 0.01, - "MW01": 0.25, - "RE01": 0.02 - } - } - }, - { - "A_B1900_FACEXT1": { - "period_of_construction": "1800_1900", - "climate_zone": "B3", - "type": "OutdoorsWall", - "u_value": 1.65, - "layers": { - "RI01": 0.02, - "PF033": 0.38, - "RE01": 0.02 - } - } - }, - { - "A_B1900_ROOF1": { - "period_of_construction": "1800_1900", - "climate_zone": "B3", - "type": "OutdoorsRoofCeiling", - "u_value": 1.28, - "layers": { - "ECGX": 0.02, - "CA02": 0.2, - "F03": 0.2, - "CAV20": 0.2, - "PC01": 0.06 - } - } - }, - { - "A_B1900_FLOORGR1": { - "period_of_construction": "1800_1900", - "climate_zone": "B3", - "type": "GroundFloor", - "u_value": 1.39, - "layers": { - "RP01": 0.4, - "M01": 0.04, - "PC01": 0.03 - } - } - }, - { - "B_1901_1940_FACEXT1": { - "period_of_construction": "1901_1940", - "climate_zone": "B3", - "type": "OutdoorsWall", - "u_value": 1.8, - "layers": { - "RI01": 0.01, - "PF033": 0.29, - "RE01": 0.02 - } - } - }, - { - "B_1901_1940_ROOF1": { - "period_of_construction": "1901_1940", - "climate_zone": "B3", - "type": "OutdoorsRoofCeiling", - "u_value": 1.28, - "layers": { - "ECGX": 0.02, - "CA02": 0.2, - "F03": 0.2, - "CAV20": 0.2, - "PC01": 0.06 - } - } - }, - { - "B_1901_1940_FLOORGR1": { - "period_of_construction": "1901_1940", - "climate_zone": "B3", - "type": "GroundFloor", - "u_value": 1.28, - "layers": { - "ECGX": 0.02, - "CA02": 0.2, - "F03": 0.2, - "CAV20": 0.2, - "PC01": 0.06 - } - } - }, - { - "C_1941_1960_FACEXT1": { - "period_of_construction": "1941_1960", - "climate_zone": "B3", - "type": "OutdoorsWall", - "u_value": 1.82, - "layers": { - "RI01": 0.01, - "PF012": 0.04, - "CA10": 0.1, - "PF021": 0.14, - "RE01": 0.02 - } - } - }, - { - "C_1941_1960_ROOF1": { - "period_of_construction": "1941_1960", - "climate_zone": "B3", - "type": "OutdoorsRoofCeiling", - "u_value": 1.4, - "layers": { - "RI01": 0.01, - "F03": 0.2, - "CAV16": 0.16, - "SC01": 0.05, - "M01": 0.04, - "PC01": 0.03 - } - } - }, - { - "C_1941_1960_FLOORGR1": { - "period_of_construction": "1941_1960", - "climate_zone": "B3", - "type": "GroundFloor", - "u_value": 1.47, - "layers": { - "AI06": 0.2, - "M02": 0.2, - "M01": 0.04, - "PC01": 0.03 - } - } - }, - { - "E_1981_2007_FACEXT1": { - "period_of_construction": "1981_2007", - "climate_zone": "B3", - "type": "OutdoorsWall", - "u_value": 0.73, - "layers": { - "RI01": 0.02, - "F02": 0.3, - "AI02": 0.04, - "M02": 0.1, - "PC01": 0.04 - } - } - }, - { - "E_1981_2007_ROOF1": { - "period_of_construction": "1981_2007", - "climate_zone": "B3", - "type": "OutdoorsRoofCeiling", - "u_value": 0.46, - "layers": { - "RI01": 0.02, - "PF022": 0.04, - "AI01": 0.02, - "CA7": 0.07, - "PF021": 0.14, - "M01": 0.02 - } - } - }, - { - "E_1981_2007_FLOORGR1": { - "period_of_construction": "1981_2007", - "climate_zone": "B3", - "type": "GroundFloor", - "u_value": 1.69, - "layers": { - "F02": 0.25, - "M01": 0.025, - "PT01": 0.025 - } - } - }, - { - "F_2008_2014_FACEXT1": { - "period_of_construction": "2008_2014", - "climate_zone": "B3", - "type": "OutdoorsWall", - "u_value": 0.6, - "layers": { - "RI01": 0.02, - "PF022": 0.05, - "AI01": 0.03, - "CAV16": 0.05, - "PF021": 0.14, - "RE01": 0.02 - } - } - }, - { - "F_2008_2014_ROOF1": { - "period_of_construction": "2008_2014", - "climate_zone": "B3", - "type": "OutdoorsRoofCeiling", - "u_value": 0.46, - "layers": { - "RI01": 0.02, - "F02": 0.3, - "AI02": 0.07, - "M02": 0.1, - "M01": 0.01, - "PC01": 0.01 - } - } - }, - { - "F_2008_2014_FLOORGR1": { - "period_of_construction": "2008_2014", - "climate_zone": "B3", - "type": "GroundFloor", - "u_value": 1.59, - "layers": { - "F02": 0.3, - "AI02": 0.05, - "M01": 0.025, - "PT01": 0.025 - } - } - }, - { - "G_2015_2019_FACEXT1": { - "period_of_construction": "2015_2019", - "climate_zone": "B3", - "type": "OutdoorsWall", - "u_value": 0.6, - "layers": { - "RI01": 0.01, - "PF022": 0.09, - "AI01": 0.04, - "CAV16": 0.06, - "PF021": 0.14, - "M01": 0.02 - } - } - }, - { - "G_2015_2019_ROOF1": { - "period_of_construction": "2015_2019", - "climate_zone": "B3", - "type": "OutdoorsRoofCeiling", - "u_value": 0.37, - "layers": { - "RI01": 0.02, - "F02": 0.3, - "AI02": 0.07, - "M02": 0.1, - "M01": 0.01, - "PC01": 0.01 - } - } - }, - { - "G_2015_2019_FLOORGR1": { - "period_of_construction": "2015_2019", - "climate_zone": "B3", - "type": "GroundFloor", - "u_value": 0.57, - "layers": { - "F02": 0.3, - "AI02": 0.05, - "M01": 0.025, - "PT01": 0.025 - } - } - }, - { - "PA1_PA2_2021_2050_FLOOR": { - "period_of_construction": "2021_2050", - "climate_zone": "B3", - "type": "GroundFloor", - "u_value": 0.75, - "layers": { - "PT02": 0.03, - "CA04": 0, - "X01": 0.03, - "F04": 0.3, - "RI05": 0.01 - } - } - }, - { - "PA1_PA2_2021_2050_ROOF": { - "period_of_construction": "2021_2050", - "climate_zone": "B3", - "type": "OutdoorsRoofCeiling", - "u_value": 0.44, - "layers": { - "RI05": 0.01, - "F04": 0.3, - "CA04": 0, - "M04": 0.02, - "PC01": 0.04 - } - } - }, - { - "PA1_PA2_2021_2050_FACEXT": { - "period_of_construction": "2021_2050", - "climate_zone": "B3", - "type": "OutdoorsWall", - "u_value": 0.56, - "layers": { - "RI05": 0.01, - "CA04": 0 - } - } - }, - { - "PA1_PA2_2021_2050_FLOORINT": { - "period_of_construction": "2021_2050", - "climate_zone": "B3", - "type": "GroundRoofCeiling", - "u_value": 2.207, - "layers": { - "RI05": 0.01, - "F04": 0.3, - "IM01": 0.005, - "M04": 0.02, - "PC01": 0.04 - } - } - } - ], - "transparent_surfaces": [ - { - "PA1_PA2_2021_2050_WIN1": { - "period_of_construction": "2021_2050", - "climate_zone": "B3", - "shgc": 0.65, - "type": "Window", - "frame_ratio": 0.15, - "u_value": 2.3 - } - }, - { - "PA1_PA2_1961_1980_WIN1": { - "period_of_construction": "1961_1980", - "climate_zone": "B3", - "shgc": 0.823, - "type": "Window", - "frame_ratio": 0.3, - "u_value": 5.69 - } - }, - { - "PA3_PA4_1901_1940_WIN1": { - "period_of_construction": "1800_1980", - "climate_zone": "B3", - "shgc": 0.76, - "type": "Window", - "frame_ratio": 0.3, - "u_value": 3.44 - } - }, - { - "A_B1900_WIN2": { - "period_of_construction": "1800_1900", - "climate_zone": "B3", - "shgc": 0.76, - "type": "Window", - "frame_ratio": 0.3, - "u_value": 4.02 - } - }, - { - "B_1901_1940_WIN1": { - "period_of_construction": "1901_1940", - "climate_zone": "B3", - "shgc": 0.76, - "type": "Window", - "frame_ratio": 0.3, - "u_value": 3.44 - } - }, - { - "C_1941_1960_WIN1": { - "period_of_construction": "1941_1960", - "climate_zone": "B3", - "shgc": 0.76, - "type": "Window", - "frame_ratio": 0.3, - "u_value": 3.44 - } - }, - { - "E_1981_2007_WIN1": { - "period_of_construction": "1981_2007", - "climate_zone": "B3", - "shgc": 0.76, - "type": "Window", - "frame_ratio": 0.3, - "u_value": 3.44 - } - }, - { - "F_2008_2014_WIN1": { - "period_of_construction": "2008_2014", - "climate_zone": "B3", - "shgc": 0.76, - "type": "Window", - "frame_ratio": 0.3, - "u_value": 3.44 - } - }, - { - "G_2015_2019_WIN1": { - "period_of_construction": "2015_2019", - "climate_zone": "B3", - "shgc": 0.706, - "type": "Window", - "frame_ratio": 0.26, - "u_value": 3.44 - } - } - ], - "materials": [ - { - "PUTZ": { - "no_mass": false, - "conductivity": 2.52, - "density": 1400, - "specific_heat": 1000, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6, - "capacity": 1 - } - }, - { - "KST": { - "no_mass": false, - "conductivity": 3.564, - "density": 1600, - "specific_heat": 1000, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6, - "capacity": 1 - } - }, - { - "DAEMA": { - "no_mass": false, - "conductivity": 0.173, - "density": 60, - "specific_heat": 1000, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6, - "capacity": 1 - } - }, - { - "GIPS": { - "no_mass": false, - "conductivity": 0.756, - "density": 900, - "specific_heat": 1000, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6, - "capacity": 1 - } - }, - { - "HOLZ": { - "no_mass": false, - "conductivity": 0.468, - "density": 600, - "specific_heat": 2100.0, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6, - "capacity": 2.1 - } - }, - { - "BET": { - "no_mass": false, - "conductivity": 7.56, - "density": 2200, - "specific_heat": 1000, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6, - "capacity": 1 - } - }, - { - "TEPP": { - "no_mass": false, - "conductivity": 0.288, - "density": 700, - "specific_heat": 1300.0, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6, - "capacity": 1.3 - } - }, - { - "ESTR": { - "no_mass": false, - "conductivity": 5.04, - "density": 2000, - "specific_heat": 1000, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6, - "capacity": 1 - } - }, - { - "MIWO": { - "no_mass": false, - "conductivity": 0.144, - "density": 60, - "specific_heat": 1000, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6, - "capacity": 1 - } - }, - { - "DAEMM": { - "no_mass": false, - "conductivity": 0.144, - "density": 60, - "specific_heat": 1000, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6, - "capacity": 1 - } - }, - { - "RI01": { - "no_mass": false, - "conductivity": 1.08, - "density": 800, - "specific_heat": 1000, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6, - "capacity": 1 - } - }, - { - "X01": { - "no_mass": false, - "conductivity": 5.884, - "density": 2400, - "specific_heat": 1000, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6 - } - }, - { - "PM01": { - "no_mass": false, - "conductivity": 5.04, - "density": 2000, - "specific_heat": 1000, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6, - "capacity": 1 - } - }, - { - "RE01": { - "no_mass": false, - "conductivity": 3.13, - "density": 1600, - "specific_heat": 1000, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6, - "capacity": 1 - } - }, - { - "ENGUIXAT": { - "no_mass": false, - "conductivity": 1.083, - "density": 800, - "specific_heat": 722.0, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6, - "capacity": 0.722 - } - }, - { - "TOTXOMASS": { - "no_mass": false, - "conductivity": 3.14, - "density": 1800, - "specific_heat": 830.0, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6, - "capacity": 0.83 - } - }, - { - "ARREBOSSAT": { - "no_mass": false, - "conductivity": 3.14, - "density": 1600, - "specific_heat": 830.0, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6, - "capacity": 0.83 - } - }, - { - "PC01": { - "no_mass": false, - "conductivity": 3.78, - "density": 2000, - "specific_heat": 840.0, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6, - "capacity": 0.84 - } - }, - { - "M01": { - "no_mass": false, - "conductivity": 5.04, - "density": 2000, - "specific_heat": 1000, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6, - "capacity": 1 - } - }, - { - "RP01": { - "no_mass": false, - "conductivity": 2.09, - "density": 1500, - "specific_heat": 1000, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6, - "capacity": 1 - } - }, - { - "EMBLANQUIN": { - "no_mass": false, - "conductivity": 1.083, - "density": 800, - "specific_heat": 722.0, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6, - "capacity": 0.722 - } - }, - { - "MAO_CALAT": { - "no_mass": false, - "conductivity": 2.744, - "density": 1600, - "specific_heat": 830.0, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6, - "capacity": 0.83 - } - }, - { - "ECGX": { - "no_mass": false, - "conductivity": 0.9, - "density": 900, - "specific_heat": 1000, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6, - "capacity": 1 - } - }, - { - "CAV20": { - "no_mass": true, - "thermal_resistance": 0.022, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6 - } - }, - { - "CA7": { - "no_mass": true, - "thermal_resistance": 0.15, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.16 - } - }, - { - "F03": { - "no_mass": false, - "conductivity": 2.0623, - "density": 1290, - "specific_heat": 1000, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6, - "capacity": 1 - } - }, - { - "PF021": { - "no_mass": false, - "conductivity": 2.74, - "density": 1600, - "specific_heat": 1000, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6, - "capacity": 1 - } - }, - { - "PF033": { - "no_mass": false, - "conductivity": 3.13, - "density": 1800, - "specific_heat": 1380.0, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6, - "capacity": 1.38 - } - }, - { - "PF02": { - "no_mass": false, - "conductivity": 2.74, - "density": 1600, - "specific_heat": 1000, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6, - "capacity": 1 - } - }, - { - "PF032": { - "no_mass": false, - "conductivity": 3.13, - "density": 1800, - "specific_heat": 1380.0, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6, - "capacity": 1.38 - } - }, - { - "FF02": { - "no_mass": false, - "conductivity": 0.505, - "density": 600, - "specific_heat": 722.0, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6, - "capacity": 0.722 - } - }, - { - "MARES": { - "no_mass": false, - "conductivity": 5.4, - "density": 2038, - "specific_heat": 710.6, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6, - "capacity": 0.7106 - } - }, - { - "CA_50": { - "no_mass": true, - "thermal_resistance": 0.05, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6 - } - }, - { - "AI01": { - "no_mass": false, - "conductivity": 0.13, - "density": 15, - "specific_heat": 1450.0, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6, - "capacity": 1.45 - } - }, - { - "MW01": { - "no_mass": false, - "conductivity": 5.4, - "density": 2038, - "specific_heat": 710.6, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6, - "capacity": 0.7106 - } - }, - { - "POSIDONIA": { - "no_mass": false, - "conductivity": 0.1548, - "density": 185, - "specific_heat": 800.0, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6, - "capacity": 0.8 - } - }, - { - "FF01": { - "no_mass": false, - "conductivity": 0.468, - "density": 500, - "specific_heat": 1600.0, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6, - "capacity": 1.6 - } - }, - { - "IM02": { - "no_mass": false, - "conductivity": 0.36, - "density": 1600, - "specific_heat": 1000, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6, - "capacity": 1 - } - }, - { - "AI09": { - "no_mass": false, - "conductivity": 0.144, - "density": 115, - "specific_heat": 1900.0, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6, - "capacity": 1.9 - } - }, - { - "AI05": { - "no_mass": false, - "conductivity": 0.14, - "density": 30, - "specific_heat": 2150.0, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6, - "capacity": 2.15 - } - }, - { - "AI08": { - "no_mass": false, - "conductivity": 0.144, - "density": 42.5, - "specific_heat": 1340.0, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6, - "capacity": 1.34 - } - }, - { - "AI10_N": { - "no_mass": false, - "conductivity": 0.122, - "density": 35, - "specific_heat": 1000, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6, - "capacity": 1 - } - }, - { - "AI03": { - "no_mass": false, - "conductivity": 0.16, - "density": 28, - "specific_heat": 840.0, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6, - "capacity": 0.84 - } - }, - { - "M04": { - "no_mass": false, - "conductivity": 0.1512, - "density": 350, - "specific_heat": 1100.0, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6, - "capacity": 1.1 - } - }, - { - "Y01": { - "no_mass": false, - "conductivity": 1.08, - "density": 800, - "specific_heat": 1000, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6, - "capacity": 1 - } - }, - { - "IM01": { - "no_mass": false, - "conductivity": 0.68, - "density": 1100, - "specific_heat": 1000, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6, - "capacity": 1 - } - }, - { - "AI02": { - "no_mass": false, - "conductivity": 0.14, - "density": 80, - "specific_heat": 1450.0, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6, - "capacity": 1.45 - } - }, - { - "M03": { - "no_mass": false, - "conductivity": 0.361, - "density": 600, - "specific_heat": 722.0, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6, - "capacity": 0.722 - } - }, - { - "M02": { - "no_mass": false, - "conductivity": 3.14, - "density": 1600, - "specific_heat": 830.0, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6, - "capacity": 0.83 - } - }, - { - "PF022": { - "no_mass": false, - "conductivity": 2.74, - "density": 1600, - "specific_heat": 1000, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6, - "capacity": 1 - } - }, - { - "IM03": { - "no_mass": false, - "conductivity": 0.828, - "density": 1600, - "specific_heat": 1000, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6, - "capacity": 1 - } - }, - { - "PAVIMENT_D": { - "no_mass": false, - "conductivity": 3.791, - "density": 2000, - "specific_heat": 830.0, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6, - "capacity": 0.83 - } - }, - { - "CAV16": { - "no_mass": true, - "thermal_resistance": 0.15, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.1 - } - }, - { - "CEMENT_MOR": { - "no_mass": false, - "conductivity": 5.04, - "density": 2000, - "specific_heat": 1000, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6, - "capacity": 1 - } - }, - { - "BAXI_MorteroCem": { - "no_mass": false, - "conductivity": 1.48, - "density": 1125, - "specific_heat": 1000, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6, - "capacity": 1 - } - }, - { - "BAXI_LadrilloPerf": { - "no_mass": false, - "conductivity": 3.57, - "density": 2140, - "specific_heat": 1000, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6, - "capacity": 1 - } - }, - { - "BAXI_EPS": { - "no_mass": false, - "conductivity": 0.13, - "density": 30, - "specific_heat": 1000, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6, - "capacity": 1 - } - }, - { - "BAXI_LadrilloHueco": { - "no_mass": false, - "conductivity": 1.6, - "density": 2140, - "specific_heat": 1000, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6, - "capacity": 1 - } - }, - { - "BAXI_Yeso": { - "no_mass": false, - "conductivity": 2.05, - "density": 1150, - "specific_heat": 1000, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6 - } - }, - { - "PG01": { - "no_mass": false, - "conductivity": 8.28, - "density": 2600, - "specific_heat": 1000, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6 - } - }, - { - "F01": { - "no_mass": false, - "conductivity": 4.5, - "density": 1500, - "specific_heat": 1000, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6 - } - }, - { - "RF_INSULATION": { - "no_mass": false, - "conductivity": 0.072, - "density": 25, - "specific_heat": 1800.0, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6 - } - }, - { - "RF_SLAB": { - "no_mass": false, - "conductivity": 4.32, - "density": 2000, - "specific_heat": 1100.0, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6 - } - }, - { - "RF_COVERING": { - "no_mass": false, - "conductivity": 0.72, - "density": 800, - "specific_heat": 1000, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6 - } - }, - { - "RF_PIPES": { - "no_mass": false, - "pspacing": 0.15, - "pdiameter": 0.016, - "pwallthickness": 0.002, - "conductivity": 1.26, - "cpfluid": 4.18, - "density": null, - "specific_heat": null, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6 - } - }, - { - "EF01": { - "no_mass": false, - "conductivity": 1.76, - "density": 1200, - "specific_heat": 920.0, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6 - } - }, - { - "PF01": { - "no_mass": false, - "conductivity": 1.76, - "density": 1200, - "specific_heat": 920.0, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6 - } - }, - { - "PF02": { - "no_mass": false, - "conductivity": 2.74, - "density": 1600, - "specific_heat": 1000, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6 - } - }, - { - "AI01": { - "no_mass": false, - "conductivity": 0.13, - "density": 15, - "specific_heat": 1450.0, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6 - } - }, - { - "AI02": { - "no_mass": false, - "conductivity": 0.14, - "density": 80, - "specific_heat": 1450.0, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6 - } - }, - { - "CA01": { - "no_mass": true, - "thermal_resistance": 0.05, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6 - } - }, - { - "FC01": { - "no_mass": false, - "conductivity": 1.19, - "density": 1000, - "specific_heat": 1000, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6 - } - }, - { - "AI06": { - "no_mass": false, - "conductivity": 7.2, - "density": 2000, - "specific_heat": 1000, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6 - } - }, - { - "PT01": { - "no_mass": false, - "conductivity": 5.87, - "density": 2400, - "specific_heat": 1000, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6 - } - }, - { - "CA02": { - "no_mass": true, - "thermal_resistance": 0.044, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6 - } - }, - { - "CA03": { - "no_mass": true, - "thermal_resistance": 0.047, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6 - } - }, - { - "CA04": { - "no_mass": true, - "thermal_resistance": 2, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6 - } - }, - { - "EF02": { - "no_mass": false, - "conductivity": 3.13, - "density": 1800, - "specific_heat": 1380.0, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6 - } - }, - { - "RI02": { - "no_mass": false, - "conductivity": 3.13, - "density": 1600, - "specific_heat": 1000, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6 - } - }, - { - "RI03": { - "no_mass": false, - "conductivity": 0.9, - "density": 900, - "specific_heat": 1000, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6 - } - }, - { - "RI04": { - "no_mass": false, - "conductivity": 0.72, - "density": 800, - "specific_heat": 1000, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6 - } - }, - { - "FG01": { - "no_mass": false, - "conductivity": 4.18, - "density": 2000, - "specific_heat": 1000, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6 - } - }, - { - "F02": { - "no_mass": false, - "conductivity": 2.4, - "density": 1250, - "specific_heat": 900.0, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6 - } - }, - { - "PM01": { - "no_mass": false, - "conductivity": 5.04, - "density": 2000, - "specific_heat": 1000, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6 - } - }, - { - "TC01": { - "no_mass": false, - "conductivity": 3.78, - "density": 2000, - "specific_heat": 800.0, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6 - } - }, - { - "CC01": { - "no_mass": false, - "conductivity": 3.78, - "density": 2000, - "specific_heat": 840.0, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6 - } - }, - { - "CF01": { - "no_mass": false, - "conductivity": 0.5, - "density": 600, - "specific_heat": 1600.0, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6 - } - }, - { - "RC01": { - "no_mass": false, - "conductivity": 2.09, - "density": 1500, - "specific_heat": 1000, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6 - } - }, - { - "RC02": { - "no_mass": false, - "conductivity": 2.92, - "density": 1700, - "specific_heat": 1000, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6 - } - }, - { - "SC01": { - "no_mass": false, - "conductivity": 1.76, - "density": 1200, - "specific_heat": 840.0, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6 - } - }, - { - "EPS": { - "no_mass": false, - "conductivity": 0.13, - "density": 30, - "specific_heat": 1000, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6 - } - }, - { - "ENGUIXAT": { - "no_mass": false, - "conductivity": 1.083, - "density": 800, - "specific_heat": 722.0, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6 - } - }, - { - "TOTXO_FOR": { - "no_mass": false, - "conductivity": 1.769, - "density": 1200, - "specific_heat": 830.0, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6 - } - }, - { - "ARREBOSSAT": { - "no_mass": false, - "conductivity": 3.14, - "density": 1600, - "specific_heat": 830.0, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6 - } - }, - { - "PTERRATZO": { - "no_mass": false, - "conductivity": 5.054, - "density": 2000, - "specific_heat": 830.0, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6 - } - }, - { - "MORTER": { - "no_mass": false, - "conductivity": 4.188, - "density": 2000, - "specific_heat": 830.0, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6 - } - }, - { - "XAPACOMP": { - "no_mass": false, - "conductivity": 5.884, - "density": 2400, - "specific_heat": 830.0, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6 - } - }, - { - "CASSETONS": { - "no_mass": false, - "conductivity": 5.7, - "density": 1033, - "specific_heat": 1000, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6 - } - }, - { - "FORMIGOARM": { - "no_mass": false, - "conductivity": 5.844, - "density": 2400, - "specific_heat": 866.0, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6 - } - }, - { - "DEEPCONCR": { - "no_mass": false, - "conductivity": 5.86, - "density": 2400, - "specific_heat": 1000, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6 - } - }, - { - "TERRA": { - "no_mass": false, - "conductivity": 0.68, - "density": 1000, - "specific_heat": 1000, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6 - } - }, - { - "AI08": { - "no_mass": false, - "conductivity": 0.144, - "density": 42.5, - "specific_heat": 1340.0, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6 - } - }, - { - "AI09": { - "no_mass": false, - "conductivity": 0.144, - "density": 115, - "specific_heat": 1900.0, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6 - } - }, - { - "FORMPENDEN": { - "no_mass": false, - "conductivity": 0.361, - "density": 600, - "specific_heat": 722.0, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6 - } - }, - { - "TELAASFALT": { - "no_mass": false, - "conductivity": 0.686, - "density": 1100, - "specific_heat": 1010.0, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6 - } - }, - { - "RAJOLACERA": { - "no_mass": false, - "conductivity": 3.79, - "density": 2000, - "specific_heat": 830.0, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6 - } - }, - { - "PH01": { - "no_mass": false, - "conductivity": 3.3228, - "density": 860, - "specific_heat": 1000, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6 - } - }, - { - "AI03": { - "no_mass": false, - "conductivity": 0.16, - "density": 28, - "specific_heat": 840.0, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6 - } - }, - { - "AI04": { - "no_mass": false, - "conductivity": 0.12, - "density": 22, - "specific_heat": 1000, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6 - } - }, - { - "IM02": { - "no_mass": false, - "conductivity": 0.36, - "density": 1600, - "specific_heat": 1000, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6 - } - }, - { - "IM03": { - "no_mass": false, - "conductivity": 0.828, - "density": 1600, - "specific_heat": 1000, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6 - } - }, - { - "RI05": { - "no_mass": false, - "conductivity": 1.083, - "density": 800, - "specific_heat": 722.0, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6 - } - }, - { - "PF012": { - "no_mass": false, - "conductivity": 1.769, - "density": 1200, - "specific_heat": 830.0, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6 - } - }, - { - "MAO_MASSIS": { - "no_mass": false, - "conductivity": 3.141, - "density": 1800, - "specific_heat": 830.0, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6 - } - }, - { - "F04": { - "no_mass": false, - "conductivity": 5.7, - "density": 1033, - "specific_heat": 1000, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6 - } - }, - { - "FC02": { - "no_mass": false, - "conductivity": 5.844, - "density": 2400, - "specific_heat": 866.0, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6 - } - }, - { - "PH02": { - "no_mass": false, - "conductivity": 5.7, - "density": 1033, - "specific_heat": 1000, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6 - } - }, - { - "PF013": { - "no_mass": false, - "conductivity": 1.769, - "density": 1200, - "specific_heat": 830.0, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6 - } - }, - { - "PT02": { - "no_mass": false, - "conductivity": 5.054, - "density": 2000, - "specific_heat": 830.0, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6 - } - }, - { - "ConceteBl": { - "no_mass": false, - "conductivity": 1.836, - "density": 1400, - "specific_heat": 1000, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6 - } - }, - { - "FoamInsul": { - "no_mass": false, - "conductivity": 0.144, - "density": 10, - "specific_heat": 1400.0, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6 - } - }, - { - "WoodSiding": { - "no_mass": false, - "conductivity": 0.504, - "density": 530, - "specific_heat": 900.0, - "thermal_emittance": 0.9, - "solar_absorptance": 0.6, - "visible_absorptance": 0.6 - } - } - ] -} \ No newline at end of file diff --git a/hub/data/energy_systems/palma_systems.xml b/hub/data/energy_systems/palma_systems.xml deleted file mode 100644 index 1b788dbf..00000000 --- a/hub/data/energy_systems/palma_systems.xml +++ /dev/null @@ -1,809 +0,0 @@ - - - ./schemas/ - - - 1 - Water - - - - - - 981.0 - 4180.0 - 0.6 - - - - - 1 - Natural-Gas Boiler - boiler - - - - - - 0.7 - False - natural gas - - - - - - - - - - - - - - - - - - - - - - - True - - - False - - - 2 - Joule - joule - - - - - - 1 - False - electricity - - - - - - - - - - - - - - - - - - - - - - - True - - - False - - - 3 - Heat Pump - heat pump - - - - - - 2 - True - electricity - Air - Water - - - - 2 - - - - - - - - - - - - - - - - - False - - - False - - - 4 - Butane Heater - butane heater - - - - - - 0.7 - False - butane - - - - - - - - - - - - - - - - - - - - - - - True - - - False - - - 5 - Split - split - - - - - - - False - electricity - - - - - - 2 - - - - - - - - - - - - - - - - - False - - - False - - - 6 - Domestic Hot Water Heat Pump - heat pump - - - - - - 3 - False - electricity - Air - Water - - - - - - - - - - - - - - - - - - - - - True - - - - - - 7 - template Photovoltaic Module - Photovoltaic - - - - 0.2 - 20 - 45 - 800 - 25 - 1000 - 500 - - 2.0 - 1.0 - - - False - - - 8 - Photovoltaic Module - Photovoltaic - RE400CAA Pure 2 - REC - 305 - 0.206 - 20 - 44 - 800 - 25 - 1000 - 400 - 0.24 - 1.86 - 1.04 - - - False - - - 9 - Photovoltaic Module - Photovoltaic - RE410CAA Pure 2 - REC - 312 - 0.211 - 20 - 44 - 800 - 25 - 1000 - 410 - 0.24 - 1.86 - 1.04 - - - False - - - 10 - Photovoltaic Module - Photovoltaic - RE420CAA Pure 2 - REC - 320 - 0.217 - 20 - 44 - 800 - 25 - 1000 - 420 - 0.24 - 1.86 - 1.04 - - - False - - - 11 - Photovoltaic Module - Photovoltaic - RE430CAA Pure 2 - REC - 327 - 0.222 - 20 - 44 - 800 - 25 - 1000 - 430 - 0.24 - 1.86 - 1.04 - - - False - - - 12 - Photovoltaic Module - Photovoltaic - REC600AA Pro M - REC - 457 - 0.211 - 20 - 44 - 800 - 25 - 1000 - 600 - 0.24 - 2.17 - 1.3 - - - False - - - 13 - Photovoltaic Module - Photovoltaic - REC610AA Pro M - REC - 464 - 0.215 - 20 - 44 - 800 - 25 - 1000 - 610 - 0.24 - 2.17 - 1.3 - - - False - - - 14 - Photovoltaic Module - Photovoltaic - REC620AA Pro M - REC - 472 - 0.218 - 20 - 44 - 800 - 25 - 1000 - 620 - 0.24 - 2.17 - 1.3 - - - False - - - 15 - Photovoltaic Module - Photovoltaic - REC630AA Pro M - REC - 480 - 0.222 - 20 - 44 - 800 - 25 - 1000 - 630 - 0.24 - 2.17 - 1.3 - - - False - - - 16 - Photovoltaic Module - Photovoltaic - REC640AA Pro M - REC - 487 - 0.215 - 20 - 44 - 800 - 25 - 1000 - 640 - 0.24 - 2.17 - 1.3 - - - False - - - - - 6 - template Hot Water Storage Tank - thermal - - - 95.0 - - 1 - 90.0 - - - 2 - 0 - 1.5 - Steel - - - - 1 - - sensible - - - - - - 7 - template Hot Water Storage Tank with Heating Coil - thermal - - - 95.0 - - 1 - 90.0 - - - 2 - 0 - 1.5 - Steel - - - - 1 - - sensible - - - 5000 - - - - - 1 - Polyurethane - - - - - - - - 0.028 - - - 2 - Steel - - - - - - - - 18 - - - - - - - - - - - 1 - Central gas system - - - heating - domestic_hot_water - - - 1 - - - - 2 - Central Joule system - - - heating - domestic_hot_water - - - 2 - - - - 3 - Central butane system - - - heating - domestic_hot_water - - - 4 - - - - 4 - Single zone split system - - - cooling - - - 5 - - - - 5 - 4 pipe heat pump system - - - heating - cooling - - - 3 - - - - 6 - PV - - - electricity - - - 7 - - - - 7 - Gas heating - - - heating - - - 1 - - - - 8 - Electrical heating - - - heating - - - 2 - - - - 9 - Butane heating - - - heating - - - 4 - - - - 10 - Gas hot water system - - - domestic_hot_water - - - 1 - - - - 11 - Electrical hot water system - - - domestic_hot_water - - - 2 - - - - 12 - Butane hot water system - - - domestic_hot_water - - - 4 - - - - 13 - Heat Pump hot water system - - - domestic_hot_water - - - 6 - - - - - - - Gas boiler for heating and hot water heater with split cooling - - 1 - 4 - - - - Joule heater for heating and hot water heater with split cooling - - 2 - 4 - - - - Butane heater for heating and hot water heater with split cooling - - 3 - 4 - - - - Gas heating - - 1 - - - - Electrical joule heating - - 2 - - - - Butane heating - - 3 - - - - Heat pump with gas water heater - - 5 - 7 - - - - Heat pump with joule water heater - - 5 - 8 - - - - Heat pump with butane water heater - - 5 - 9 - - - - Heat pump with gas water heater and rooftop PV - - 5 - 7 - 6 - - - - Heat pump with joule water heater and rooftop PV - - 5 - 8 - 6 - - - - Rooftop PV - - 6 - - - - Joule heater with split cooling and gas hot water - - 4 - 8 - 10 - - - - Joule heater with split cooling and butane hot water - - 4 - 8 - 12 - - - - PV and heat pump - - 5 - 6 - 13 - - - - - diff --git a/hub/data/usage/palma_schedules.json b/hub/data/usage/palma_schedules.json deleted file mode 100644 index a16d6e88..00000000 --- a/hub/data/usage/palma_schedules.json +++ /dev/null @@ -1,904 +0,0 @@ -{ - "tables": { - "schedules": { - "data_type": "table", - "refs": [ - "DBHE CTE Tabla b-Anejo D" - ], - "table": [ - { - - "name": "DBHE-CTE-Occupancy-sensible", - "category": "Occupancy", - "units": "FRACTION", - "day_types": "Default|Wkdy", - "start_date": "2014-01-01T00:00:00+00:00", - "end_date": "2014-12-31T00:00:00+00:00", - "type": "Hourly", - "notes": null, - "values": [ - 1, - 1, - 1, - 1, - 1, - 1, - 0.25, - 0.25, - 0.25, - 0.25, - 0.25, - 0.25, - 0.25, - 0.25, - 0.5, - 0.5, - 0.5, - 0.5, - 0.5, - 0.5, - 0.5, - 0.5, - 0.5, - 1 - ] - }, - { - - "name": "DBHE-CTE-Occupancy-sensible", - "category": "Occupancy", - "units": "FRACTION", - "day_types": "Sat", - "start_date": "2014-01-01T00:00:00+00:00", - "end_date": "2014-12-31T00:00:00+00:00", - "type": "Hourly", - "notes": null, - "values": [ - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1 - ] - }, - { - - "name": "DBHE-CTE-Occupancy-sensible", - "category": "Occupancy", - "units": "FRACTION", - "day_types": "Sun|Hol", - "start_date": "2014-01-01T00:00:00+00:00", - "end_date": "2014-12-31T00:00:00+00:00", - "type": "Hourly", - "notes": null, - "values": [ - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1 - ] - }, - { - - "name": "DBHE-CTE-Occupancy-latent", - "category": "Occupancy", - "units": "FRACTION", - "day_types": "Default|Wkdy", - "start_date": "2014-01-01T00:00:00+00:00", - "end_date": "2014-12-31T00:00:00+00:00", - "type": "Hourly", - "notes": null, - "values": [ - 1, - 1, - 1, - 1, - 1, - 1, - 0.25, - 0.25, - 0.25, - 0.25, - 0.25, - 0.25, - 0.25, - 0.25, - 0.5, - 0.5, - 0.5, - 0.5, - 0.5, - 0.5, - 0.5, - 0.5, - 0.5, - 1 - ] - }, - { - "name": "DBHE-CTE-Occupancy-latent", - "category": "Occupancy", - "units": "FRACTION", - "day_types": "Sat", - "start_date": "2014-01-01T00:00:00+00:00", - "end_date": "2014-12-31T00:00:00+00:00", - "type": "Hourly", - "notes": null, - "values": [ - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1 - ] - }, - { - "name": "DBHE-CTE-Occupancy-latent", - "category": "Occupancy", - "units": "FRACTION", - "day_types": "Sun|Hol", - "start_date": "2014-01-01T00:00:00+00:00", - "end_date": "2014-12-31T00:00:00+00:00", - "type": "Hourly", - "notes": null, - "values": [ - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1 - ] - }, - { - - "name": "DBHE-CTE-Lighting", - "category": "Lighting", - "units": "FRACTION", - "day_types": "Default|Wkdy", - "start_date": "2014-01-01T00:00:00+00:00", - "end_date": "2014-12-31T00:00:00+00:00", - "type": "Hourly", - "notes": null, - "values": [ - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.33, - 0.33, - 0.33, - 0.33, - 0.33, - 0.33, - 0.33, - 0.33, - 0.33, - 0.33, - 0.33, - 0.5, - 1, - 1, - 1, - 1, - 1, - 0.5 - ] - }, - { - "name": "DBHE-CTE-Lighting", - "category": "Lighting", - "units": "FRACTION", - "day_types": "Sat", - "start_date": "2014-01-01T00:00:00+00:00", - "end_date": "2014-12-31T00:00:00+00:00", - "type": "Hourly", - "notes": null, - "values": [ - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.33, - 0.33, - 0.33, - 0.33, - 0.33, - 0.33, - 0.33, - 0.33, - 0.33, - 0.33, - 0.33, - 0.5, - 1, - 1, - 1, - 1, - 1, - 0.5 - ] - }, - { - "name": "DBHE-CTE-Lighting", - "category": "Lighting", - "units": "FRACTION", - "day_types": "Sun|Hol", - "start_date": "2014-01-01T00:00:00+00:00", - "end_date": "2014-12-31T00:00:00+00:00", - "type": "Hourly", - "notes": null, - "values": [ - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.33, - 0.33, - 0.33, - 0.33, - 0.33, - 0.33, - 0.33, - 0.33, - 0.33, - 0.33, - 0.33, - 0.5, - 1, - 1, - 1, - 1, - 1, - 0.5 - ] - }, - { - - "name": "DBHE-CTE-Equipment", - "category": "Equipment", - "units": "FRACTION", - "day_types": "Default|Wkdy", - "start_date": "2014-01-01T00:00:00+00:00", - "end_date": "2014-12-31T00:00:00+00:00", - "type": "Hourly", - "notes": null, - "values": [ - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.33, - 0.33, - 0.33, - 0.33, - 0.33, - 0.33, - 0.33, - 0.33, - 0.33, - 0.33, - 0.33, - 0.5, - 1, - 1, - 1, - 1, - 1, - 0.5 - ] - }, - { - "name": "DBHE-CTE-Equipment", - "category": "Equipment", - "units": "FRACTION", - "day_types": "Sat", - "start_date": "2014-01-01T00:00:00+00:00", - "end_date": "2014-12-31T00:00:00+00:00", - "type": "Hourly", - "notes": null, - "values": [ - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.33, - 0.33, - 0.33, - 0.33, - 0.33, - 0.33, - 0.33, - 0.33, - 0.33, - 0.33, - 0.33, - 0.5, - 1, - 1, - 1, - 1, - 1, - 0.5 - ] - }, - { - "name": "DBHE-CTE-Equipment", - "category": "Equipment", - "units": "FRACTION", - "day_types": "Sun|Hol", - "start_date": "2014-01-01T00:00:00+00:00", - "end_date": "2014-12-31T00:00:00+00:00", - "type": "Hourly", - "notes": null, - "values": [ - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.33, - 0.33, - 0.33, - 0.33, - 0.33, - 0.33, - 0.33, - 0.33, - 0.33, - 0.33, - 0.33, - 0.5, - 1, - 1, - 1, - 1, - 1, - 0.5 - ] - }, - { - - "name": "DBHE-CTE-Thermostat Setpoint-Heating", - "category": "Thermostat Setpoint", - "units": "TEMPERATURE", - "day_types": "Default|Wkdy", - "start_date": "2014-01-01T00:00:00+00:00", - "end_date": "2014-12-31T00:00:00+00:00", - "type": "Hourly", - "notes": null, - "values": [ - 17.0, - 17.0, - 17.0, - 17.0, - 17.0, - 17.0, - 17.0, - 21.0, - 21.0, - 21.0, - 21.0, - 21.0, - 21.0, - 21.0, - 21.0, - 21.0, - 21.0, - 21.0, - 21.0, - 21.0, - 21.0, - 20.0, - 17.0, - 17.0 - ] - }, - { - - "name": "DBHE-CTE-Thermostat Setpoint-Heating", - "category": "Thermostat Setpoint", - "units": "TEMPERATURE", - "day_types": "Sat", - "start_date": "2014-01-01T00:00:00+00:00", - "end_date": "2014-12-31T00:00:00+00:00", - "type": "Hourly", - "notes": null, - "values": [ - 22.0, - 18.0, - 18.0, - 18.0, - 18.0, - 18.0, - 18.0, - 20.0, - 22.0, - 22.0, - 22.0, - 22.0, - 22.0, - 22.0, - 22.0, - 22.0, - 22.0, - 22.0, - 22.0, - 22.0, - 22.0, - 22.0, - 22.0, - 22.0 - ] - }, - { - - "name": "DBHE-CTE-Thermostat Setpoint-Heating", - "category": "Thermostat Setpoint", - "units": "TEMPERATURE", - "day_types": "Sun|Hol", - "start_date": "2014-01-01T00:00:00+00:00", - "end_date": "2014-12-31T00:00:00+00:00", - "type": "Hourly", - "notes": null, - "values": [ - 22.0, - 18.0, - 18.0, - 18.0, - 18.0, - 18.0, - 18.0, - 20.0, - 22.0, - 22.0, - 22.0, - 22.0, - 22.0, - 22.0, - 22.0, - 22.0, - 22.0, - 22.0, - 22.0, - 22.0, - 22.0, - 22.0, - 22.0, - 22.0 - ] - }, - { - "name": "DBHE-CTE-Thermostat Setpoint-Cooling", - "category": "Thermostat Setpoint", - "units": "TEMPERATURE", - "day_types": "Default|Wkdy", - "start_date": "2014-01-01T00:00:00+00:00", - "end_date": "2014-12-31T00:00:00+00:00", - "type": "Hourly", - "notes": null, - "values": [ - 28.0, - 28.0, - 28.0, - 28.0, - 28.0, - 28.0, - 28.0, - 25.0, - 25.0, - 25.0, - 25.0, - 25.0, - 25.0, - 25.0, - 25.0, - 25.0, - 25.0, - 25.0, - 25.0, - 25.0, - 25.0, - 25.0, - 28.0, - 28.0 - ] - }, - { - - "name": "DBHE-CTE-Thermostat Setpoint-Cooling", - "category": "Thermostat Setpoint", - "units": "TEMPERATURE", - "day_types": "Sat", - "start_date": "2014-01-01T00:00:00+00:00", - "end_date": "2014-12-31T00:00:00+00:00", - "type": "Hourly", - "notes": null, - "values": [ - 28.0, - 28.0, - 28.0, - 28.0, - 28.0, - 28.0, - 28.0, - 25.0, - 25.0, - 25.0, - 25.0, - 25.0, - 25.0, - 25.0, - 25.0, - 25.0, - 25.0, - 25.0, - 25.0, - 25.0, - 25.0, - 25.0, - 28.0, - 28.0 - ] - }, - { - - "name": "DBHE-CTE-Thermostat Setpoint-Cooling", - "category": "Thermostat Setpoint", - "units": "TEMPERATURE", - "day_types": "Sun|Hol", - "start_date": "2014-01-01T00:00:00+00:00", - "end_date": "2014-12-31T00:00:00+00:00", - "type": "Hourly", - "notes": null, - "values": [ - 28.0, - 28.0, - 28.0, - 28.0, - 28.0, - 28.0, - 28.0, - 25.0, - 25.0, - 25.0, - 25.0, - 25.0, - 25.0, - 25.0, - 25.0, - 25.0, - 25.0, - 25.0, - 25.0, - 25.0, - 25.0, - 25.0, - 28.0, - 28.0 - ] - }, - { - "name": "Always On", - "category": "Unknown", - "units": null, - "day_types": "Default", - "start_date": "2014-01-01T00:00:00+00:00", - "end_date": "2014-12-31T00:00:00+00:00", - "type": "Constant", - "notes": null, - "values": [ - 1.0 - ] - }, - { - - "name": "default_HVAC_schedule", - "category": "Fan", - "units": "ON_OFF", - "day_types": "Default|Wkdy", - "start_date": "2014-01-01T00:00:00+00:00", - "end_date": "2014-12-31T00:00:00+00:00", - "type": "Hourly", - "notes": null, - "values": [ - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0 - ] - }, - { - - "name": "default_HVAC_schedule", - "category": "Fan", - "units": "ON_OFF", - "day_types": "Sat", - "start_date": "2014-01-01T00:00:00+00:00", - "end_date": "2014-12-31T00:00:00+00:00", - "type": "Hourly", - "notes": null, - "values": [ - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0 - ] - }, - { - - "name": "default_HVAC_schedule", - "category": "Fan", - "units": "ON_OFF", - "day_types": "Sun|Hol", - "start_date": "2014-01-01T00:00:00+00:00", - "end_date": "2014-12-31T00:00:00+00:00", - "type": "Hourly", - "notes": null, - "values": [ - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0 - ] - }, - { - - "name": "DBHE-CTE-Service Water Heating", - "category": "Service Water Heating", - "units": "FRACTION", - "day_types": "Default|Wkdy", - "start_date": "2014-01-01T00:00:00+00:00", - "end_date": "2014-12-31T00:00:00+00:00", - "type": "Hourly", - "notes": null, - "values": [ - 0.01, - 0.00, - 0.00, - 0.00, - 0.00, - 0.01, - 0.03, - 0.1, - 0.07, - 0.07, - 0.06, - 0.06, - 0.05, - 0.05, - 0.04, - 0.03, - 0.04, - 0.04, - 0.05, - 0.07, - 0.06, - 0.06, - 0.05, - 0.05 - ] - }, - { - - "name": "DBHE-CTE-Service Water Heating", - "category": "Service Water Heating", - "units": "FRACTION", - "day_types": "Sat", - "start_date": "2014-01-01T00:00:00+00:00", - "end_date": "2014-12-31T00:00:00+00:00", - "type": "Hourly", - "notes": null, - "values": [ - 0.01, - 0.00, - 0.00, - 0.00, - 0.00, - 0.01, - 0.03, - 0.1, - 0.07, - 0.07, - 0.06, - 0.06, - 0.05, - 0.05, - 0.04, - 0.03, - 0.04, - 0.04, - 0.05, - 0.07, - 0.06, - 0.06, - 0.05, - 0.05 - ] - }, - { - - "name": "DBHE-CTE-Service Water Heating", - "category": "Service Water Heating", - "units": "FRACTION", - "day_types": "Sun|Hol", - "start_date": "2014-01-01T00:00:00+00:00", - "end_date": "2014-12-31T00:00:00+00:00", - "type": "Hourly", - "notes": null, - "values": [ - 0.01, - 0.00, - 0.00, - 0.00, - 0.00, - 0.01, - 0.03, - 0.1, - 0.07, - 0.07, - 0.06, - 0.06, - 0.05, - 0.05, - 0.04, - 0.03, - 0.04, - 0.04, - 0.05, - 0.07, - 0.06, - 0.06, - 0.05, - 0.05 - ] - } - ] - }}} \ No newline at end of file diff --git a/hub/data/usage/palma_space_compliance.json b/hub/data/usage/palma_space_compliance.json deleted file mode 100644 index 31ed06b8..00000000 --- a/hub/data/usage/palma_space_compliance.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "tables": { - "space_compliance": { - "data_type": "table", - "refs": { - "lighting_per_area_w_per_m2": "DBHE-CTE Tabla b-Anejo D", - "occupancy_per_area_people_per_m2": "DBHE CTE Tabla b-Anejo D", - "occupancy_schedule": "DBHE-CTE Tabla b-Anejo D", - "electric_equipment_per_area_w_per_m2": "DBHE CTE Tabla b-Anejo D" - }, - "tolerance": { - "lighting_per_area_w_per_m2": 1, - "occupancy_per_area_people_per_m2": 3, - "occupancy_schedule": null, - "electric_equipment_per_area_w_per_m2": 1 - }, - "table": [ - { - "template": "DBHE-CTE", - "building_type": "residential", - "space_type": "WholeBuilding", - "lighting_per_area_w_per_m2": 4.4, - "occupancy_per_area_people_per_m2": 0.014333333, - "occupancy_schedule": "DBHE-CTE-Occupancy", - "electric_equipment_per_area_w_per_m2": 4.4, - "service_water_heating_peak_flow_per_area": 0.02272990107962068 - }] - } - } -} \ No newline at end of file diff --git a/hub/data/usage/palma_space_types.json b/hub/data/usage/palma_space_types.json deleted file mode 100644 index d12bfb27..00000000 --- a/hub/data/usage/palma_space_types.json +++ /dev/null @@ -1,97 +0,0 @@ -{ - "tables": { - "space_types": { - "data_type": "table", - "refs": [ - "assumption" - ], - "table": [ - { - "building_type": "residential", - "space_type": "WholeBuilding", - "rgb": "255_255_255", - "lighting_standard": "DBHE-CTE", - "lighting_primary_space_type": "residential", - "lighting_secondary_space_type": "WholeBuilding", - "lighting_per_area": 4.4, - "lighting_per_person": null, - "additional_lighting_per_area": null, - "rel_absence_occ": 0.0, - "personal_control": 0.0, - "occ_sense": 0.0, - "lighting_fraction_to_return_air": 0.0, - "lighting_fraction_radiant": 0.5, - "lighting_fraction_visible": 0.2, - "lighting_fraction_replaceable": null, - "lpd_fractionlinear_fluorescent": 1.0, - "lpd_fractioncompact_fluorescent": null, - "lpd_fractionhigh_bay": null, - "lpd_fractionspecialty_lighting": null, - "lpd_fractionexit_lighting": null, - "lighting_schedule": "DBHE-CTE-Lighting", - "compact_fluorescent_lighting_schedule": null, - "high_bay_lighting_schedule": null, - "specialty_lighting_schedule": null, - "exit_lighting_schedule": null, - "target_illuminance_setpoint": 125, - "target_illuminance_setpoint_ref": null, - "psa_nongeometry_fraction": null, - "ssa_nongeometry_fraction": null, - "ventilation_standard": null, - "ventilation_primary_space_type": "residential", - "ventilation_secondary_space_type": "WholeBuilding", - "ventilation_per_area": 0, - "ventilation_per_person": 0, - "ventilation_air_changes": 0.4, - "minimum_total_air_changes": null, - "occupancy_per_area": 2.15, - "occupancy_schedule": "DBHE-CTE-Occupancy-sensible", - "occupancy_activity_schedule": null, - "infiltration_per_exterior_area": 0.4, - "infiltration_per_exterior_wall_area": null, - "infiltration_air_changes": null, - "infiltration_schedule": "Always On", - "infiltration_schedule_perimeter": null, - "gas_equipment_per_area": null, - "gas_equipment_fraction_latent": null, - "gas_equipment_fraction_radiant": null, - "gas_equipment_fraction_lost": null, - "gas_equipment_schedule": null, - "electric_equipment_per_area": 4.4, - "electric_equipment_fraction_latent": 0.0, - "electric_equipment_fraction_radiant": 0.5, - "electric_equipment_fraction_lost": 0.0, - "electric_equipment_schedule": "DBHE-CTE-Equipment", - "additional_electric_equipment_schedule": null, - "additional_gas_equipment_schedule": null, - "heating_setpoint_schedule": "DBHE-CTE-Thermostat Setpoint-Heating", - "cooling_setpoint_schedule": "DBHE-CTE-Thermostat Setpoint-Cooling", - "service_water_heating_peak_flow_rate": null, - "service_water_heating_area": null, - "service_water_heating_peak_flow_per_area": 0.009385225, - "service_water_heating_target_temperature": 60.0, - "service_water_heating_fraction_sensible": null, - "service_water_heating_fraction_latent": null, - "service_water_heating_schedule": "DBHE-CTE-Service Water Heating", - "exhaust_per_area": null, - "exhaust_fan_efficiency": null, - "exhaust_fan_power": null, - "exhaust_fan_pressure_rise": null, - "exhaust_fan_maximum_flow_rate": null, - "exhaust_schedule": null, - "balanced_exhaust_fraction_schedule": null, - "is_residential": null, - "necb_hvac_system_selection_type": "residential", - "necb_schedule_type": "G", - "notes": null, - "ventilation_occupancy_rate_people_per_1000ft2": 10, - "ventilation_occupancy_standard": null, - "ventilation_standard_space_type": null, - "sensible_convective_internal_gain": 0.86, - "sensible_radiative_internal_gain": 1.29, - "latent_internal_gain": 1.36 - } - ] - } - } -} \ No newline at end of file diff --git a/hub/helpers/constants.py b/hub/helpers/constants.py index e06aec79..39586c54 100644 --- a/hub/helpers/constants.py +++ b/hub/helpers/constants.py @@ -25,6 +25,7 @@ KILO_WATTS_HOUR_TO_JULES = 3600000 WATTS_HOUR_TO_JULES = 3600 GALLONS_TO_QUBIC_METERS = 0.0037854117954011185 + # time SECOND = 'second' MINUTE = 'minute' @@ -293,7 +294,6 @@ GAS = 'Gas' DIESEL = 'Diesel' COAL = 'Coal' BIOMASS = 'Biomass' -BUTANE = 'Butane' AIR = 'Air' WATER = 'Water' GEOTHERMAL = 'Geothermal' @@ -306,9 +306,6 @@ HEAT_PUMP = 'Heat Pump' BASEBOARD = 'Baseboard' ELECTRICITY_GENERATOR = 'Electricity generator' CHILLER = 'Chiller' -SPLIT = 'Split' -JOULE = 'Joule' -BUTANE_HEATER = 'Butane Heater' SENSIBLE = 'sensible' LATENT = 'Latent' LITHIUMION = 'Lithium Ion' diff --git a/hub/helpers/data/hub_function_to_palma_construction_function.py b/hub/helpers/data/hub_function_to_palma_construction_function.py deleted file mode 100644 index 13b07925..00000000 --- a/hub/helpers/data/hub_function_to_palma_construction_function.py +++ /dev/null @@ -1,30 +0,0 @@ -""" -Dictionaries module for hub function to Palma construction function -SPDX - License - Identifier: LGPL - 3.0 - or -later -Copyright © 2023 Concordia CERC group -Project Coder Cecilia Pérez cperez@irec.cat -""" - -import hub.helpers.constants as cte - - -class HubFunctionToPalmaConstructionFunction: - """ - Hub function to Palma construction function class - """ - def __init__(self): - self._dictionary = { - cte.RESIDENTIAL: 'V', - cte.SINGLE_FAMILY_HOUSE: 'Single family building', - cte.HIGH_RISE_APARTMENT: 'Large multifamily building', - cte.MID_RISE_APARTMENT: 'Medium multifamily building', - cte.MULTI_FAMILY_HOUSE: 'Small multifamily building' - } - - @property - def dictionary(self) -> dict: - """ - Get the dictionary - :return: {} - """ - return self._dictionary \ No newline at end of file diff --git a/hub/helpers/data/hub_usage_to_palma_usage.py b/hub/helpers/data/hub_usage_to_palma_usage.py deleted file mode 100644 index 834670f7..00000000 --- a/hub/helpers/data/hub_usage_to_palma_usage.py +++ /dev/null @@ -1,51 +0,0 @@ -""" -Dictionaries module for hub usage to Palma usage -SPDX - License - Identifier: LGPL - 3.0 - or -later -Copyright © 2022 Concordia CERC group -Project Coder Cecilia Pérez cperez@irec.cat -""" - -""" -Codification of uses from cadastre: -U: store-parking. Residential Use -S: store-parking. Industrial Use -V: Residential -I: Industrial -O: Offices -C: Comercial -K: Sportive center -T: Shows -G: Leisure and Hostelry -Y: Health and charity -E: Culture -R: Religion -M: Urbanization work, gardening and undeveloped land -P: Singular building -B: Farm warehouse -J: Farm Industry -Z: Farm-related -""" - -import hub.helpers.constants as cte - -class HubUsageToPalmaUsage: - """ - Hub usage to Palma usage class - """ - - def __init__(self): - self._dictionary = { - cte.RESIDENTIAL: 'residential', - cte.SINGLE_FAMILY_HOUSE: 'residential', - cte.HIGH_RISE_APARTMENT: 'residential', - cte.MID_RISE_APARTMENT: 'residential', - cte.MULTI_FAMILY_HOUSE: 'residential' - } - - @property - def dictionary(self) -> dict: - """ - Get the dictionary - :return: {} - """ - return self._dictionary diff --git a/hub/helpers/data/montreal_custom_fuel_to_hub_fuel.py b/hub/helpers/data/montreal_custom_fuel_to_hub_fuel.py index be65a012..14fd0fef 100644 --- a/hub/helpers/data/montreal_custom_fuel_to_hub_fuel.py +++ b/hub/helpers/data/montreal_custom_fuel_to_hub_fuel.py @@ -12,16 +12,12 @@ class MontrealCustomFuelToHubFuel: """ Montreal custom fuel to hub fuel class """ - def __init__(self): self._dictionary = { - 'gas': cte.GAS, - 'natural gas': cte.GAS, - 'electricity': cte.ELECTRICITY, - 'renewable': cte.RENEWABLE, - 'butane': cte.BUTANE, - 'diesel': cte.DIESEL - } + 'gas': cte.GAS, + 'electricity': cte.ELECTRICITY, + 'renewable': cte.RENEWABLE + } @property def dictionary(self) -> dict: diff --git a/hub/helpers/data/montreal_generation_system_to_hub_energy_generation_system.py b/hub/helpers/data/montreal_generation_system_to_hub_energy_generation_system.py index be85d7b6..7a42c832 100644 --- a/hub/helpers/data/montreal_generation_system_to_hub_energy_generation_system.py +++ b/hub/helpers/data/montreal_generation_system_to_hub_energy_generation_system.py @@ -18,12 +18,8 @@ class MontrealGenerationSystemToHubEnergyGenerationSystem: 'furnace': cte.BASEBOARD, 'cooler': cte.CHILLER, 'electricity generator': cte.ELECTRICITY_GENERATOR, - 'Photovoltaic': cte.PHOTOVOLTAIC, - 'heat pump': cte.HEAT_PUMP, - 'joule': cte.JOULE, - 'split': cte.SPLIT, - 'butane heater': cte.BUTANE_HEATER - + 'PV system': cte.PHOTOVOLTAIC, + 'heat pump': cte.HEAT_PUMP } @property diff --git a/hub/helpers/data/palma_function_to_hub_function.py b/hub/helpers/data/palma_function_to_hub_function.py deleted file mode 100644 index 5aae2822..00000000 --- a/hub/helpers/data/palma_function_to_hub_function.py +++ /dev/null @@ -1,31 +0,0 @@ -""" -Dictionaries module for Palma function to hub function -SPDX - License - Identifier: LGPL - 3.0 - or -later -Copyright © 2023 Concordia CERC group -Project Coder Cecilia Pérez cperez@irec.cat -""" - -import hub.helpers.constants as cte - - -class PalmaFunctionToHubFunction: - """ - Palma function to hub function class - """ - - def __init__(self): - self._dictionary = {'Residential': cte.RESIDENTIAL, - 'Single-family building': cte.SINGLE_FAMILY_HOUSE, - 'Large multifamily building': cte.HIGH_RISE_APARTMENT, - 'Medium multifamily building': cte.MID_RISE_APARTMENT, - 'Small multifamily building': cte.MULTI_FAMILY_HOUSE, - 'V': cte.RESIDENTIAL - } - - @property - def dictionary(self) -> dict: - """ - Get the dictionary - :return: {} - """ - return self._dictionary \ No newline at end of file diff --git a/hub/helpers/dictionaries.py b/hub/helpers/dictionaries.py index 1775152a..107a543a 100644 --- a/hub/helpers/dictionaries.py +++ b/hub/helpers/dictionaries.py @@ -26,9 +26,6 @@ from hub.helpers.data.north_america_demand_type_to_hub_energy_demand_type import from hub.helpers.data.north_america_system_to_hub_energy_generation_system import NorthAmericaSystemToHubEnergyGenerationSystem from hub.helpers.data.north_america_custom_fuel_to_hub_fuel import NorthAmericaCustomFuelToHubFuel from hub.helpers.data.north_america_storage_system_to_hub_storage import NorthAmericaStorageSystemToHubEnergyStorage -from hub.helpers.data.palma_function_to_hub_function import PalmaFunctionToHubFunction -from hub.helpers.data.hub_usage_to_palma_usage import HubUsageToPalmaUsage -from hub.helpers.data.hub_function_to_palma_construction_function import HubFunctionToPalmaConstructionFunction class Dictionaries: @@ -68,14 +65,6 @@ class Dictionaries: """ return HubUsageToEilatUsage().dictionary - @property - def hub_usage_to_palma_usage(self) -> dict: - """ - Hub usage to Palma usage, transformation dictionary - :return: dict - """ - return HubUsageToPalmaUsage().dictionary - @property def hub_function_to_nrcan_construction_function(self) -> dict: """ @@ -99,13 +88,6 @@ class Dictionaries: :return: dict """ return HubFunctionToNrelConstructionFunction().dictionary - @property - def hub_function_to_palma_construction_function(self) -> dict: - """ - Get hub function to Palma construction function, transformation dictionary - :return: dict - """ - return HubFunctionToPalmaConstructionFunction().dictionary @property def pluto_function_to_hub_function(self) -> dict: @@ -123,14 +105,6 @@ class Dictionaries: """ return HftFunctionToHubFunction().dictionary - @property - def palma_function_to_hub_function(self) -> dict: - """ - Get Palma function to hub function, transformation dictionary - :return: dict - """ - return PalmaFunctionToHubFunction().dictionary - @property def montreal_function_to_hub_function(self) -> dict: """ diff --git a/hub/imports/construction/helpers/construction_helper.py b/hub/imports/construction/helpers/construction_helper.py index bd8e731b..d75d8424 100644 --- a/hub/imports/construction/helpers/construction_helper.py +++ b/hub/imports/construction/helpers/construction_helper.py @@ -65,11 +65,6 @@ class ConstructionHelper: 'Eilat': 'BWh' } - _reference_city_to_palma_climate_zone = { - 'Palma': 'B3' - } - - @staticmethod def yoc_to_nrel_standard(year_of_construction): """ @@ -112,12 +107,3 @@ class ConstructionHelper: :return: str """ return ConstructionHelper._reference_city_to_israel_climate_zone[reference_city] - - @staticmethod - def city_to_palma_climate_zone(reference_city): - """ - City name to Palma climate zone - :param reference_city: str - :return: str - """ - return ConstructionHelper._reference_city_to_palma_climate_zone[reference_city] diff --git a/hub/imports/construction/palma_physics_parameters.py b/hub/imports/construction/palma_physics_parameters.py deleted file mode 100644 index 7f874b68..00000000 --- a/hub/imports/construction/palma_physics_parameters.py +++ /dev/null @@ -1,104 +0,0 @@ -""" -PalmaPhysicsParameters import the construction and material information defined by Palma -SPDX - License - Identifier: LGPL - 3.0 - or -later -Copyright © 2022 Concordia CERC group -Project Coder Cecilia Pérez Pérez cperez@irec.cat -""" -import logging - -from hub.catalog_factories.construction_catalog_factory import ConstructionCatalogFactory -from hub.city_model_structure.building_demand.thermal_archetype import ThermalArchetype -from hub.city_model_structure.building_demand.construction import Construction -from hub.city_model_structure.building_demand.layer import Layer -from hub.helpers.dictionaries import Dictionaries -from hub.imports.construction.helpers.construction_helper import ConstructionHelper - - -class PalmaPhysicsParameters: - """ - PalmaPhysicsParameters class - """ - - def __init__(self, city, divide_in_storeys=False): - self._city = city - self._divide_in_storeys = divide_in_storeys - self._climate_zone = ConstructionHelper.city_to_palma_climate_zone(city.climate_reference_city) - - def enrich_buildings(self): - """ - Returns the city with the construction parameters assigned to the buildings - """ - city = self._city - palma_catalog = ConstructionCatalogFactory('palma').catalog - for building in city.buildings: - if building.function not in Dictionaries().hub_function_to_palma_construction_function: - logging.error('Building %s has an unknown building function %s', building.name, building.function) - continue - function = Dictionaries().hub_function_to_palma_construction_function[building.function] - try: - archetype = self._search_archetype(palma_catalog, function, building.year_of_construction, self._climate_zone) - - except KeyError: - logging.error('Building %s has unknown construction archetype for building function: %s ' - '[%s], building year of construction: %s and climate zone %s', building.name, function, - building.function, building.year_of_construction, self._climate_zone) - continue - thermal_archetype = ThermalArchetype() - self._assign_values(thermal_archetype, archetype) - for internal_zone in building.internal_zones: - internal_zone.thermal_archetype = thermal_archetype - - @staticmethod - def _search_archetype(nrcan_catalog, function, year_of_construction, climate_zone): - nrcan_archetypes = nrcan_catalog.entries('archetypes') - for building_archetype in nrcan_archetypes: - construction_period_limits = building_archetype.construction_period.split('_') - if int(construction_period_limits[0]) <= int(year_of_construction) <= int(construction_period_limits[1]): - if str(function) == str(building_archetype.function) and climate_zone == str(building_archetype.climate_zone): - return building_archetype - raise KeyError('archetype not found') - - @staticmethod - def _assign_values(thermal_archetype, catalog_archetype): - thermal_archetype.average_storey_height = catalog_archetype.average_storey_height - thermal_archetype.extra_loses_due_to_thermal_bridges = catalog_archetype.extra_loses_due_to_thermal_bridges - thermal_archetype.thermal_capacity = catalog_archetype.thermal_capacity - thermal_archetype.indirect_heated_ratio = 0 - thermal_archetype.infiltration_rate_for_ventilation_system_on = catalog_archetype.infiltration_rate_for_ventilation_system_on - thermal_archetype.infiltration_rate_for_ventilation_system_off = catalog_archetype.infiltration_rate_for_ventilation_system_off - _constructions = [] - for catalog_construction in catalog_archetype.constructions: - construction = Construction() - construction.type = catalog_construction.type - construction.name = catalog_construction.name - if catalog_construction.window_ratio is not None: - for _orientation in catalog_construction.window_ratio: - if catalog_construction.window_ratio[_orientation] is None: - catalog_construction.window_ratio[_orientation] = 0 - construction.window_ratio = catalog_construction.window_ratio - _layers = [] - for layer_archetype in catalog_construction.layers: - layer = Layer() - layer.thickness = layer_archetype.thickness - archetype_material = layer_archetype.material - layer.material_name = archetype_material.name - layer.no_mass = archetype_material.no_mass - if archetype_material.no_mass: - layer.thermal_resistance = archetype_material.thermal_resistance - else: - layer.density = archetype_material.density - layer.conductivity = archetype_material.conductivity - layer.specific_heat = archetype_material.specific_heat - layer.solar_absorptance = archetype_material.solar_absorptance - layer.thermal_absorptance = archetype_material.thermal_absorptance - layer.visible_absorptance = archetype_material.visible_absorptance - _layers.append(layer) - construction.layers = _layers - - if catalog_construction.window is not None: - window_archetype = catalog_construction.window - construction.window_frame_ratio = window_archetype.frame_ratio - construction.window_g_value = window_archetype.g_value - construction.window_overall_u_value = window_archetype.overall_u_value - _constructions.append(construction) - thermal_archetype.constructions = _constructions diff --git a/hub/imports/construction_factory.py b/hub/imports/construction_factory.py index bc97d245..dcf8b054 100644 --- a/hub/imports/construction_factory.py +++ b/hub/imports/construction_factory.py @@ -10,7 +10,6 @@ from hub.helpers.utils import validate_import_export_type from hub.imports.construction.nrcan_physics_parameters import NrcanPhysicsParameters from hub.imports.construction.nrel_physics_parameters import NrelPhysicsParameters from hub.imports.construction.eilat_physics_parameters import EilatPhysicsParameters -from hub.imports.construction.palma_physics_parameters import PalmaPhysicsParameters class ConstructionFactory: @@ -49,15 +48,6 @@ class ConstructionFactory: for building in self._city.buildings: building.level_of_detail.construction = 2 - def _palma(self): - """ - Enrich the city by using Palma information - """ - PalmaPhysicsParameters(self._city).enrich_buildings() - self._city.level_of_detail.construction = 2 - for building in self._city.buildings: - building.level_of_detail.construction = 2 - def enrich(self): """ Enrich the city given to the class using the class given handler diff --git a/hub/imports/energy_systems/palma_energy_systems_parameters.py b/hub/imports/energy_systems/palma_energy_systems_parameters.py deleted file mode 100644 index f61f5ea1..00000000 --- a/hub/imports/energy_systems/palma_energy_systems_parameters.py +++ /dev/null @@ -1,216 +0,0 @@ -""" -Montreal future system importer -SPDX - License - Identifier: LGPL - 3.0 - or -later -Copyright © 2023 Concordia CERC group -Project Coder Saeed Ranjbar saeed.ranjbar@concordia.ca - -""" - -import logging -import copy - -from hub.catalog_factories.energy_systems_catalog_factory import EnergySystemsCatalogFactory -from hub.city_model_structure.energy_systems.energy_system import EnergySystem -from hub.city_model_structure.energy_systems.distribution_system import DistributionSystem -from hub.city_model_structure.energy_systems.non_pv_generation_system import NonPvGenerationSystem -from hub.city_model_structure.energy_systems.pv_generation_system import PvGenerationSystem -from hub.city_model_structure.energy_systems.electrical_storage_system import ElectricalStorageSystem -from hub.city_model_structure.energy_systems.thermal_storage_system import ThermalStorageSystem -from hub.city_model_structure.energy_systems.emission_system import EmissionSystem -from hub.helpers.dictionaries import Dictionaries - - -class PalmaEnergySystemParameters: - """ - MontrealCustomEnergySystemParameters class - """ - - def __init__(self, city): - self._city = city - - def enrich_buildings(self): - """ - Returns the city with the system parameters assigned to the buildings - :return: - """ - city = self._city - montreal_custom_catalog = EnergySystemsCatalogFactory('palma').catalog - if city.generic_energy_systems is None: - _generic_energy_systems = {} - else: - _generic_energy_systems = city.generic_energy_systems - for building in city.buildings: - archetype_name = building.energy_systems_archetype_name - try: - archetype = self._search_archetypes(montreal_custom_catalog, archetype_name) - except KeyError: - logging.error('Building %s has unknown energy system archetype for system name %s', building.name, - archetype_name) - continue - - if archetype.name not in _generic_energy_systems: - _generic_energy_systems = self._create_generic_systems_list(archetype, _generic_energy_systems) - - city.generic_energy_systems = _generic_energy_systems - - self._assign_energy_systems_to_buildings(city) - - @staticmethod - def _search_archetypes(catalog, name): - archetypes = catalog.entries('archetypes') - for building_archetype in archetypes: - if str(name) == str(building_archetype.name): - return building_archetype - raise KeyError('archetype not found') - - def _create_generic_systems_list(self, archetype, _generic_energy_systems): - building_systems = [] - for archetype_system in archetype.systems: - energy_system = EnergySystem() - _hub_demand_types = [] - for demand_type in archetype_system.demand_types: - _hub_demand_types.append(Dictionaries().montreal_demand_type_to_hub_energy_demand_type[demand_type]) - energy_system.name = archetype_system.name - energy_system.demand_types = _hub_demand_types - energy_system.configuration_schema = archetype_system.configuration_schema - energy_system.generation_systems = self._create_generation_systems(archetype_system) - if energy_system.distribution_systems is not None: - energy_system.distribution_systems = self._create_distribution_systems(archetype_system) - building_systems.append(energy_system) - - _generic_energy_systems[archetype.name] = building_systems - - return _generic_energy_systems - - def _create_generation_systems(self, archetype_system): - _generation_systems = [] - archetype_generation_systems = archetype_system.generation_systems - if archetype_generation_systems is not None: - for archetype_generation_system in archetype_system.generation_systems: - if archetype_generation_system.system_type == 'Photovoltaic': - _generation_system = PvGenerationSystem() - _generation_system.name = archetype_generation_system.name - _generation_system.model_name = archetype_generation_system.model_name - _generation_system.manufacturer = archetype_generation_system.manufacturer - _type = archetype_generation_system.system_type - _generation_system.system_type = Dictionaries().montreal_generation_system_to_hub_energy_generation_system[_type] - _fuel_type = Dictionaries().montreal_custom_fuel_to_hub_fuel[archetype_generation_system.fuel_type] - _generation_system.fuel_type = _fuel_type - _generation_system.electricity_efficiency = archetype_generation_system.electricity_efficiency - _generation_system.nominal_electricity_output = archetype_generation_system.nominal_electricity_output - _generation_system.nominal_ambient_temperature = archetype_generation_system.nominal_ambient_temperature - _generation_system.nominal_cell_temperature = archetype_generation_system.nominal_cell_temperature - _generation_system.nominal_radiation = archetype_generation_system.nominal_radiation - _generation_system.standard_test_condition_cell_temperature = archetype_generation_system.standard_test_condition_cell_temperature - _generation_system.standard_test_condition_maximum_power = archetype_generation_system.standard_test_condition_maximum_power - _generation_system.standard_test_condition_radiation = archetype_generation_system.standard_test_condition_radiation - _generation_system.cell_temperature_coefficient = archetype_generation_system.cell_temperature_coefficient - _generation_system.width = archetype_generation_system.width - _generation_system.height = archetype_generation_system.height - _generation_system.tilt_angle = self._city.latitude - _generic_storage_system = None - if archetype_generation_system.energy_storage_systems is not None: - _storage_systems = [] - for storage_system in archetype_generation_system.energy_storage_systems: - if storage_system.type_energy_stored == 'electrical': - _generic_storage_system = ElectricalStorageSystem() - _generic_storage_system.type_energy_stored = 'electrical' - _storage_systems.append(_generic_storage_system) - _generation_system.energy_storage_systems = _storage_systems - - else: - _generation_system = NonPvGenerationSystem() - _generation_system.name = archetype_generation_system.name - _generation_system.model_name = archetype_generation_system.model_name - _generation_system.manufacturer = archetype_generation_system.manufacturer - _type = archetype_generation_system.system_type - _generation_system.system_type = Dictionaries().montreal_generation_system_to_hub_energy_generation_system[_type] - _fuel_type = Dictionaries().montreal_custom_fuel_to_hub_fuel[archetype_generation_system.fuel_type] - _generation_system.fuel_type = _fuel_type - _generation_system.nominal_heat_output = archetype_generation_system.nominal_heat_output - _generation_system.nominal_cooling_output = archetype_generation_system.nominal_cooling_output - _generation_system.maximum_heat_output = archetype_generation_system.maximum_heat_output - _generation_system.minimum_heat_output = archetype_generation_system.minimum_heat_output - _generation_system.maximum_cooling_output = archetype_generation_system.maximum_cooling_output - _generation_system.minimum_cooling_output = archetype_generation_system.minimum_cooling_output - _generation_system.source_temperature = archetype_generation_system.source_temperature - _generation_system.source_mass_flow = archetype_generation_system.source_mass_flow - _generation_system.supply_medium = archetype_generation_system.supply_medium - _generation_system.maximum_heat_supply_temperature = archetype_generation_system.maximum_heat_supply_temperature - _generation_system.maximum_cooling_supply_temperature = archetype_generation_system.maximum_cooling_supply_temperature - _generation_system.minimum_heat_supply_temperature = archetype_generation_system.minimum_heat_supply_temperature - _generation_system.minimum_cooling_supply_temperature = archetype_generation_system.minimum_cooling_supply_temperature - _generation_system.heat_output_curve = archetype_generation_system.heat_output_curve - _generation_system.heat_fuel_consumption_curve = archetype_generation_system.heat_fuel_consumption_curve - _generation_system.heat_efficiency_curve = archetype_generation_system.heat_efficiency_curve - _generation_system.cooling_output_curve = archetype_generation_system.cooling_output_curve - _generation_system.cooling_fuel_consumption_curve = archetype_generation_system.cooling_fuel_consumption_curve - _generation_system.cooling_efficiency_curve = archetype_generation_system.cooling_efficiency_curve - _generation_system.domestic_hot_water = archetype_generation_system.domestic_hot_water - _generation_system.nominal_electricity_output = archetype_generation_system.nominal_electricity_output - _generation_system.source_medium = archetype_generation_system.source_medium - _generation_system.heat_efficiency = archetype_generation_system.heat_efficiency - _generation_system.cooling_efficiency = archetype_generation_system.cooling_efficiency - _generation_system.electricity_efficiency = archetype_generation_system.electricity_efficiency - _generation_system.reversibility = archetype_generation_system.reversibility - _generic_storage_system = None - if archetype_generation_system.energy_storage_systems is not None: - _storage_systems = [] - for storage_system in archetype_generation_system.energy_storage_systems: - if storage_system.type_energy_stored == 'electrical': - _generic_storage_system = ElectricalStorageSystem() - _generic_storage_system.type_energy_stored = 'electrical' - else: - _generic_storage_system = ThermalStorageSystem() - _generic_storage_system.type_energy_stored = storage_system.type_energy_stored - _generic_storage_system.height = storage_system.height - _generic_storage_system.layers = storage_system.layers - _generic_storage_system.storage_medium = storage_system.storage_medium - _generic_storage_system.heating_coil_capacity = storage_system.heating_coil_capacity - _storage_systems.append(_generic_storage_system) - _generation_system.energy_storage_systems = _storage_systems - if archetype_generation_system.domestic_hot_water: - _generation_system.domestic_hot_water = True - if archetype_generation_system.reversibility: - _generation_system.reversibility = True - if archetype_generation_system.simultaneous_heat_cold: - _generation_system.simultaneous_heat_cold = True - _generation_systems.append(_generation_system) - return _generation_systems - - @staticmethod - def _create_distribution_systems(archetype_system): - _distribution_systems = [] - archetype_distribution_systems = archetype_system.distribution_systems - if archetype_distribution_systems is not None: - for archetype_distribution_system in archetype_system.distribution_systems: - _distribution_system = DistributionSystem() - _distribution_system.type = archetype_distribution_system.type - _distribution_system.distribution_consumption_fix_flow = \ - archetype_distribution_system.distribution_consumption_fix_flow - _distribution_system.distribution_consumption_variable_flow = \ - archetype_distribution_system.distribution_consumption_variable_flow - _distribution_system.heat_losses = archetype_distribution_system.heat_losses - _generic_emission_system = None - if archetype_distribution_system.emission_systems is not None: - _emission_systems = [] - for emission_system in archetype_distribution_system.emission_systems: - _generic_emission_system = EmissionSystem() - _generic_emission_system.parasitic_energy_consumption = emission_system.parasitic_energy_consumption - _emission_systems.append(_generic_emission_system) - _distribution_system.emission_systems = _emission_systems - _distribution_systems.append(_distribution_system) - return _distribution_systems - - @staticmethod - def _assign_energy_systems_to_buildings(city): - for building in city.buildings: - _building_energy_systems = [] - energy_systems_cluster_name = building.energy_systems_archetype_name - if str(energy_systems_cluster_name) == 'nan': - break - _generic_building_energy_systems = city.generic_energy_systems[energy_systems_cluster_name] - for _generic_building_energy_system in _generic_building_energy_systems: - _building_energy_systems.append(copy.deepcopy(_generic_building_energy_system)) - - building.energy_systems = _building_energy_systems diff --git a/hub/imports/energy_systems_factory.py b/hub/imports/energy_systems_factory.py index ea5ad89b..5a9344b8 100644 --- a/hub/imports/energy_systems_factory.py +++ b/hub/imports/energy_systems_factory.py @@ -11,7 +11,6 @@ from hub.helpers.utils import validate_import_export_type from hub.imports.energy_systems.montreal_custom_energy_system_parameters import MontrealCustomEnergySystemParameters from hub.imports.energy_systems.north_america_custom_energy_system_parameters import NorthAmericaCustomEnergySystemParameters from hub.imports.energy_systems.montreal_future_energy_systems_parameters import MontrealFutureEnergySystemParameters -from hub.imports.energy_systems.palma_energy_systems_parameters import PalmaEnergySystemParameters class EnergySystemsFactory: """ @@ -53,15 +52,6 @@ class EnergySystemsFactory: for building in self._city.buildings: building.level_of_detail.energy_systems = 2 - def _palma(self): - """ - Enrich the city by using north america custom energy systems catalog information - """ - PalmaEnergySystemParameters(self._city).enrich_buildings() - self._city.level_of_detail.energy_systems = 2 - for building in self._city.buildings: - building.level_of_detail.energy_systems = 2 - def enrich(self): """ Enrich the city given to the class using the class given handler diff --git a/hub/imports/usage/palma_usage_parameters.py b/hub/imports/usage/palma_usage_parameters.py deleted file mode 100644 index 56cd80f3..00000000 --- a/hub/imports/usage/palma_usage_parameters.py +++ /dev/null @@ -1,174 +0,0 @@ -""" -PalmaUsageParameters extracts the usage properties from Palma catalog and assigns to each building -SPDX - License - Identifier: LGPL - 3.0 - or -later -Copyright © 2022 Concordia CERC group -Project Coder Cecilia Pérez cperez@irec.cat -""" - -import logging - -import hub.helpers.constants as cte -from hub.helpers.dictionaries import Dictionaries -from hub.city_model_structure.building_demand.usage import Usage -from hub.city_model_structure.building_demand.lighting import Lighting -from hub.city_model_structure.building_demand.occupancy import Occupancy -from hub.city_model_structure.building_demand.appliances import Appliances -from hub.city_model_structure.building_demand.thermal_control import ThermalControl -from hub.city_model_structure.building_demand.domestic_hot_water import DomesticHotWater -from hub.catalog_factories.usage_catalog_factory import UsageCatalogFactory - - -class PalmaUsageParameters: - """ - PalmaUsageParameters class - """ - def __init__(self, city): - self._city = city - - def enrich_buildings(self): - """ - Returns the city with the usage parameters assigned to the buildings - :return: - """ - city = self._city - palma_catalog = UsageCatalogFactory('palma').catalog - - for building in city.buildings: - palma_usage_name = Dictionaries().hub_usage_to_palma_usage[building.function] - try: - archetype_usage = self._search_archetypes(palma_catalog, palma_usage_name) - except KeyError: - logging.error('Building %s has unknown usage archetype for usage %s', building.name, palma_usage_name) - continue - - for internal_zone in building.internal_zones: - if len(building.internal_zones) > 1: - volume_per_area = 0 - if internal_zone.area is None: - logging.error('Building %s has internal zone area not defined, ACH cannot be calculated for usage %s', - building.name, palma_usage_name) - continue - if internal_zone.volume is None: - logging.error('Building %s has internal zone volume not defined, ACH cannot be calculated for usage %s', - building.name, palma_usage_name) - continue - if internal_zone.area <= 0: - logging.error('Building %s has internal zone area equal to 0, ACH cannot be calculated for usage %s', - building.name, palma_usage_name) - continue - volume_per_area += internal_zone.volume / internal_zone.area - else: - if building.storeys_above_ground is None: - logging.error('Building %s no number of storeys assigned, ACH cannot be calculated for usage %s', - building.name, palma_usage_name) - continue - volume_per_area = building.volume / building.floor_area / building.storeys_above_ground - - usage = Usage() - usage.name = palma_usage_name - self._assign_values(usage, archetype_usage, volume_per_area, building.cold_water_temperature) - usage.percentage = 1 - self._calculate_reduced_values_from_extended_library(usage, archetype_usage) - - internal_zone.usages = [usage] - - @staticmethod - def _search_archetypes(palma_catalog, usage_name): - archetypes = palma_catalog.entries('archetypes').usages - for building_archetype in archetypes: - if str(usage_name) == str(building_archetype.name): - return building_archetype - raise KeyError('archetype not found') - - @staticmethod - def _assign_values(usage, archetype, volume_per_area, cold_water_temperature): - if archetype.mechanical_air_change > 0: - # 1/s - usage.mechanical_air_change = archetype.mechanical_air_change - elif archetype.ventilation_rate > 0: - # m3/m2.s to 1/s - usage.mechanical_air_change = archetype.ventilation_rate / volume_per_area - else: - usage.mechanical_air_change = 0 - _occupancy = Occupancy() - _occupancy.occupancy_density = archetype.occupancy.occupancy_density - _occupancy.sensible_radiative_internal_gain = archetype.occupancy.sensible_radiative_internal_gain - _occupancy.latent_internal_gain = archetype.occupancy.latent_internal_gain - _occupancy.sensible_convective_internal_gain = archetype.occupancy.sensible_convective_internal_gain - _occupancy.occupancy_schedules = archetype.occupancy.schedules - usage.occupancy = _occupancy - _lighting = Lighting() - _lighting.density = archetype.lighting.density - _lighting.convective_fraction = archetype.lighting.convective_fraction - _lighting.radiative_fraction = archetype.lighting.radiative_fraction - _lighting.latent_fraction = archetype.lighting.latent_fraction - _lighting.schedules = archetype.lighting.schedules - usage.lighting = _lighting - _appliances = Appliances() - _appliances.density = archetype.appliances.density - _appliances.convective_fraction = archetype.appliances.convective_fraction - _appliances.radiative_fraction = archetype.appliances.radiative_fraction - _appliances.latent_fraction = archetype.appliances.latent_fraction - _appliances.schedules = archetype.appliances.schedules - usage.appliances = _appliances - _control = ThermalControl() - _control.cooling_set_point_schedules = archetype.thermal_control.cooling_set_point_schedules - _control.heating_set_point_schedules = archetype.thermal_control.heating_set_point_schedules - _control.hvac_availability_schedules = archetype.thermal_control.hvac_availability_schedules - usage.thermal_control = _control - _domestic_hot_water = DomesticHotWater() - _domestic_hot_water.peak_flow = archetype.domestic_hot_water.peak_flow - _domestic_hot_water.service_temperature = archetype.domestic_hot_water.service_temperature - density = None - if len(cold_water_temperature) > 0: - cold_temperature = cold_water_temperature[cte.YEAR][0] - density = ( - archetype.domestic_hot_water.peak_flow * cte.WATER_DENSITY * cte.WATER_HEAT_CAPACITY * - (archetype.domestic_hot_water.service_temperature - cold_temperature) - ) - _domestic_hot_water.density = density - _domestic_hot_water.schedules = archetype.domestic_hot_water.schedules - usage.domestic_hot_water = _domestic_hot_water - - @staticmethod - def _calculate_reduced_values_from_extended_library(usage, archetype): - number_of_days_per_type = {'WD': 251, 'Sat': 52, 'Sun': 62} - total = 0 - for schedule in archetype.thermal_control.hvac_availability_schedules: - if schedule.day_types[0] == cte.SATURDAY: - for value in schedule.values: - total += value * number_of_days_per_type['Sat'] - elif schedule.day_types[0] == cte.SUNDAY: - for value in schedule.values: - total += value * number_of_days_per_type['Sun'] - else: - for value in schedule.values: - total += value * number_of_days_per_type['WD'] - - usage.hours_day = total / 365 - usage.days_year = 365 - - max_heating_setpoint = cte.MIN_FLOAT - min_heating_setpoint = cte.MAX_FLOAT - - for schedule in archetype.thermal_control.heating_set_point_schedules: - if schedule.values is None: - max_heating_setpoint = None - min_heating_setpoint = None - break - if max(schedule.values) > max_heating_setpoint: - max_heating_setpoint = max(schedule.values) - if min(schedule.values) < min_heating_setpoint: - min_heating_setpoint = min(schedule.values) - - min_cooling_setpoint = cte.MAX_FLOAT - for schedule in archetype.thermal_control.cooling_set_point_schedules: - if schedule.values is None: - min_cooling_setpoint = None - break - if min(schedule.values) < min_cooling_setpoint: - min_cooling_setpoint = min(schedule.values) - - usage.thermal_control.mean_heating_set_point = max_heating_setpoint - usage.thermal_control.heating_set_back = min_heating_setpoint - usage.thermal_control.mean_cooling_set_point = min_cooling_setpoint diff --git a/hub/imports/usage_factory.py b/hub/imports/usage_factory.py index feadd5a9..8af57364 100644 --- a/hub/imports/usage_factory.py +++ b/hub/imports/usage_factory.py @@ -10,7 +10,6 @@ from hub.helpers.utils import validate_import_export_type from hub.imports.usage.comnet_usage_parameters import ComnetUsageParameters from hub.imports.usage.nrcan_usage_parameters import NrcanUsageParameters from hub.imports.usage.eilat_usage_parameters import EilatUsageParameters -from hub.imports.usage.palma_usage_parameters import PalmaUsageParameters class UsageFactory: @@ -49,15 +48,6 @@ class UsageFactory: for building in self._city.buildings: building.level_of_detail.usage = 2 - def _palma(self): - """ - Enrich the city with Palma usage library - """ - PalmaUsageParameters(self._city).enrich_buildings() - self._city.level_of_detail.usage = 2 - for building in self._city.buildings: - building.level_of_detail.usage = 2 - def enrich(self): """ Enrich the city given to the class using the usage factory given handler diff --git a/tests/test_construction_catalog.py b/tests/test_construction_catalog.py index 299fee9d..5c5a0e9d 100644 --- a/tests/test_construction_catalog.py +++ b/tests/test_construction_catalog.py @@ -71,23 +71,3 @@ class TestConstructionCatalog(TestCase): with self.assertRaises(IndexError): catalog.get_entry('unknown') - - def test_palma_catalog(self): - catalog = ConstructionCatalogFactory('palma').catalog - catalog_categories = catalog.names() - constructions = catalog.names('constructions') - windows = catalog.names('windows') - materials = catalog.names('materials') - self.assertEqual(29, len(constructions['constructions'])) - self.assertEqual(9, len(windows['windows'])) - self.assertEqual(122, len(materials['materials'])) - with self.assertRaises(ValueError): - catalog.names('unknown') - - # retrieving all the entries should not raise any exceptions - for category in catalog_categories: - for value in catalog_categories[category]: - catalog.get_entry(value) - - with self.assertRaises(IndexError): - catalog.get_entry('unknown') diff --git a/tests/test_construction_factory.py b/tests/test_construction_factory.py index fad046f1..710894bd 100644 --- a/tests/test_construction_factory.py +++ b/tests/test_construction_factory.py @@ -305,30 +305,4 @@ class TestConstructionFactory(TestCase): for thermal_boundary in thermal_zone.thermal_boundaries: self.assertIsNotNone(thermal_boundary.layers, 'layers is none') self._check_thermal_openings(thermal_boundary) - self._check_surfaces(thermal_boundary) - - def test_palma_construction_factory(self): - """ - Enrich the city with the construction information from palma and verify it - """ - file = 'palma_test.geojson' - file_path = (self._example_path / file).resolve() - city = GeometryFactory('geojson', - path=file_path, - height_field='measuredHeight', - year_of_construction_field='yearOfConstruction', - function_field='usage', - function_to_hub=Dictionaries().palma_function_to_hub_function).city - - ConstructionFactory('palma', city).enrich() - - self._check_buildings(city) - for building in city.buildings: - for internal_zone in building.internal_zones: - self._check_thermal_zones(internal_zone) - for thermal_zone in internal_zone.thermal_zones_from_internal_zones: - self._check_thermal_boundaries(thermal_zone) - for thermal_boundary in thermal_zone.thermal_boundaries: - self.assertIsNotNone(thermal_boundary.layers, 'layers is none') - self._check_thermal_openings(thermal_boundary) - self._check_surfaces(thermal_boundary) + self._check_surfaces(thermal_boundary) \ No newline at end of file diff --git a/tests/test_systems_catalog.py b/tests/test_systems_catalog.py index 9086cafd..612a8fe6 100644 --- a/tests/test_systems_catalog.py +++ b/tests/test_systems_catalog.py @@ -55,24 +55,3 @@ class TestSystemsCatalog(TestCase): with self.assertRaises(IndexError): catalog.get_entry('unknown') print(catalog.entries()) - - def test_palma_catalog(self): - catalog = EnergySystemsCatalogFactory('palma').catalog - catalog_categories = catalog.names() - archetypes = catalog.names() - self.assertEqual(15, len(archetypes['archetypes'])) - systems = catalog.names('systems') - self.assertEqual(13, len(systems['systems'])) - generation_equipments = catalog.names('generation_equipments') - self.assertEqual(16, len(generation_equipments['generation_equipments'])) - with self.assertRaises(ValueError): - catalog.names('unknown') - - # retrieving all the entries should not raise any exceptions - for category in catalog_categories: - for value in catalog_categories[category]: - catalog.get_entry(value) - - with self.assertRaises(IndexError): - catalog.get_entry('unknown') - diff --git a/tests/test_systems_factory.py b/tests/test_systems_factory.py index 37f69de9..a8207a7a 100644 --- a/tests/test_systems_factory.py +++ b/tests/test_systems_factory.py @@ -127,45 +127,6 @@ class TestSystemsFactory(TestCase): _generation_system = cast(NonPvGenerationSystem, energy_system.generation_systems[0]) _generation_system.nominal_cooling_output = building.cooling_peak_load[cte.YEAR][0] - for building in self._city.buildings: - self.assertLess(0, building.heating_consumption[cte.YEAR][0]) - self.assertLess(0, building.cooling_consumption[cte.YEAR][0]) - self.assertLess(0, building.domestic_hot_water_consumption[cte.YEAR][0]) - self.assertLess(0, building.onsite_electrical_production[cte.YEAR][0]) - - def test_palma_system_results(self): - """ - Enrich the city with the construction information and verify it - """ - ConstructionFactory('nrcan', self._city).enrich() - UsageFactory('nrcan', self._city).enrich() - WeatherFactory('epw', self._city).enrich() - ExportsFactory('sra', self._city, self._output_path).export() - sra_path = (self._output_path / f'{self._city.name}_sra.xml').resolve() - subprocess.run(['sra', str(sra_path)]) - ResultFactory('sra', self._city, self._output_path).enrich() - EnergyBuildingsExportsFactory('insel_monthly_energy_balance', self._city, self._output_path).export() - for building in self._city.buildings: - insel_path = (self._output_path / f'{building.name}.insel') - subprocess.run(['insel', str(insel_path)]) - ResultFactory('insel_monthly_energy_balance', self._city, self._output_path).enrich() - - for building in self._city.buildings: - building.energy_systems_archetype_name = 'PV and heat pump' - EnergySystemsFactory('palma', self._city).enrich() - # Need to assign energy systems to buildings: - for building in self._city.buildings: - _building_energy_systems = [] - for energy_system in building.energy_systems: - if cte.HEATING in energy_system.demand_types: - _generation_system = cast(NonPvGenerationSystem, energy_system.generation_systems[0]) - _generation_system.nominal_heat_output = building.heating_peak_load[cte.YEAR][0] - if cte.COOLING in energy_system.demand_types: - _generation_system = cast(NonPvGenerationSystem, energy_system.generation_systems[0]) - _generation_system.nominal_cooling_output = building.cooling_peak_load[cte.YEAR][0] - - print('test') - for building in self._city.buildings: self.assertLess(0, building.heating_consumption[cte.YEAR][0]) self.assertLess(0, building.cooling_consumption[cte.YEAR][0]) diff --git a/tests/test_usage_catalog.py b/tests/test_usage_catalog.py index 8149578a..2d927372 100644 --- a/tests/test_usage_catalog.py +++ b/tests/test_usage_catalog.py @@ -20,12 +20,4 @@ class TestConstructionCatalog(TestCase): catalog = UsageCatalogFactory('nrcan').catalog self.assertIsNotNone(catalog, 'catalog is none') content = catalog.entries() - print(catalog.entries()) self.assertEqual(34, len(content.usages), 'Wrong number of usages') - - def test_palma_catalog(self): - catalog = UsageCatalogFactory('palma').catalog - self.assertIsNotNone(catalog, 'catalog is none') - content = catalog.entries() - #print(catalog.entries()) - self.assertEqual(1, len(content.usages), 'Wrong number of usages') diff --git a/tests/test_usage_factory.py b/tests/test_usage_factory.py index f64f3ae6..5c180f09 100644 --- a/tests/test_usage_factory.py +++ b/tests/test_usage_factory.py @@ -182,61 +182,3 @@ class TestUsageFactory(TestCase): self.assertIsNotNone(usage.domestic_hot_water.service_temperature, 'domestic hot water service temperature is none') self.assertIsNotNone(usage.domestic_hot_water.schedules, 'domestic hot water schedules is none') - - def test_import_palma(self): - """ - Enrich the city with the usage information from palma and verify it - """ - file = 'palma_test.geojson' - file_path = (self._example_path / file).resolve() - city = GeometryFactory('geojson', - path=file_path, - height_field='measuredHeight', - year_of_construction_field='yearOfConstruction', - function_field='usage', - function_to_hub=Dictionaries().palma_function_to_hub_function).city - - ConstructionFactory('palma', city).enrich() - UsageFactory('palma', city).enrich() - self._check_buildings(city) - for building in city.buildings: - for internal_zone in building.internal_zones: - if internal_zone.usages is not None: - self.assertIsNot(len(internal_zone.usages), 0, 'no building usage defined') - for usage in internal_zone.usages: - self._check_usage(usage) - self.assertIsNotNone(usage.mechanical_air_change, 'mechanical air change is none') - self.assertIsNotNone(usage.thermal_control.heating_set_point_schedules, - 'control heating set point schedule is none') - self.assertIsNotNone(usage.thermal_control.cooling_set_point_schedules, - 'control cooling set point schedule is none') - self.assertIsNotNone(usage.occupancy, 'occupancy is none') - occupancy = usage.occupancy - self.assertIsNotNone(occupancy.occupancy_density, 'occupancy density is none') - self.assertIsNotNone(occupancy.latent_internal_gain, 'occupancy latent internal gain is none') - self.assertIsNotNone(occupancy.sensible_convective_internal_gain, - 'occupancy sensible convective internal gain is none') - self.assertIsNotNone(occupancy.sensible_radiative_internal_gain, - 'occupancy sensible radiant internal gain is none') - self.assertIsNotNone(occupancy.occupancy_schedules, 'occupancy schedule is none') - self.assertIsNotNone(usage.lighting, 'lighting is none') - lighting = usage.lighting - self.assertIsNotNone(lighting.density, 'lighting density is none') - self.assertIsNotNone(lighting.latent_fraction, 'lighting latent fraction is none') - self.assertIsNotNone(lighting.convective_fraction, 'lighting convective fraction is none') - self.assertIsNotNone(lighting.radiative_fraction, 'lighting radiant fraction is none') - self.assertIsNotNone(lighting.schedules, 'lighting schedule is none') - self.assertIsNotNone(usage.appliances, 'appliances is none') - appliances = usage.appliances - self.assertIsNotNone(appliances.density, 'appliances density is none') - self.assertIsNotNone(appliances.latent_fraction, 'appliances latent fraction is none') - self.assertIsNotNone(appliances.convective_fraction, 'appliances convective fraction is none') - self.assertIsNotNone(appliances.radiative_fraction, 'appliances radiant fraction is none') - self.assertIsNotNone(appliances.schedules, 'appliances schedule is none') - self.assertIsNotNone(usage.thermal_control.hvac_availability_schedules, - 'control hvac availability is none') - self.assertIsNotNone(usage.domestic_hot_water.peak_flow, 'domestic hot water peak flow is none') - self.assertIsNotNone(usage.domestic_hot_water.service_temperature, - 'domestic hot water service temperature is none') - self.assertIsNotNone(usage.domestic_hot_water.schedules, 'domestic hot water schedules is none') - diff --git a/tests/tests_data/palma_test.geojson b/tests/tests_data/palma_test.geojson deleted file mode 100644 index b4a0d6a7..00000000 --- a/tests/tests_data/palma_test.geojson +++ /dev/null @@ -1,48 +0,0 @@ -{ - "type": "FeatureCollection", - "features": [ - { - "type": "Feature", - "properties": { - "gml_id": "1701548DD7810B-1", - "name": "Build_1701548DD7810B-1", - "usage": "Single-family building", - "yearOfConstruction": 1903, - "measuredHeight": 4.01, - "id": 10000230 - }, - "geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - 2.670232581277104, - 39.56952142176154, - 12.83 - ], - [ - 2.670223774973652, - 39.56943886109741, - 8.82 - ], - [ - 2.670329525337772, - 39.56943078141684, - 8.82 - ], - [ - 2.670338924541374, - 39.56951109114386, - 8.82 - ], - [ - 2.670232581277104, - 39.56952142176154, - 12.83 - ] - ] - ] - } - } - ] -} \ No newline at end of file