bug in idf.py and added uuid to building_name in geojson importer

This commit is contained in:
Pilar Monsalvete 2023-06-09 13:12:00 -04:00
parent 7eafd33b33
commit db1d2362c8
2 changed files with 20 additions and 24 deletions

View File

@ -446,31 +446,24 @@ class Idf:
) )
def _add_infiltration(self, thermal_zone, zone_name): def _add_infiltration(self, thermal_zone, zone_name):
schedule = f'Infiltration schedules {thermal_zone.usage_name}'
for zone in self._idf.idfobjects["ZONE"]: self._idf.newidfobject(self._INFILTRATION,
if zone.Name == f'{zone_name}_infiltration': Name=f'{zone_name}_infiltration',
return Zone_or_ZoneList_Name=zone_name,
schedule = f'Infiltration schedules {thermal_zone.usage_name}' Schedule_Name=schedule,
self._idf.newidfobject(self._INFILTRATION, Design_Flow_Rate_Calculation_Method='AirChanges/Hour',
Name=f'{zone_name}_infiltration', Air_Changes_per_Hour=thermal_zone.infiltration_rate_system_off
Zone_or_ZoneList_Name=zone_name, )
Schedule_Name=schedule,
Design_Flow_Rate_Calculation_Method='AirChanges/Hour',
Air_Changes_per_Hour=thermal_zone.infiltration_rate_system_off
)
def _add_ventilation(self, thermal_zone, zone_name): def _add_ventilation(self, thermal_zone, zone_name):
for zone in self._idf.idfobjects["ZONE"]: schedule = f'Ventilation schedules {thermal_zone.usage_name}'
if zone.Name == f'{zone_name}_ventilation': self._idf.newidfobject(self._VENTILATION,
return Name=f'{zone_name}_ventilation',
schedule = f'Ventilation schedules {thermal_zone.usage_name}' Zone_or_ZoneList_Name=zone_name,
self._idf.newidfobject(self._VENTILATION, Schedule_Name=schedule,
Name=f'{zone_name}_ventilation', Design_Flow_Rate_Calculation_Method='AirChanges/Hour',
Zone_or_ZoneList_Name=zone_name, Air_Changes_per_Hour=thermal_zone.mechanical_air_change
Schedule_Name=schedule, )
Design_Flow_Rate_Calculation_Method='AirChanges/Hour',
Air_Changes_per_Hour=thermal_zone.mechanical_air_change
)
def _add_dhw(self, thermal_zone, zone_name): def _add_dhw(self, thermal_zone, zone_name):
peak_flow_rate = thermal_zone.domestic_hot_water.peak_flow * thermal_zone.total_floor_area peak_flow_rate = thermal_zone.domestic_hot_water.peak_flow * thermal_zone.total_floor_area
@ -514,6 +507,7 @@ class Idf:
self._rename_building(self._city.name) self._rename_building(self._city.name)
self._lod = self._city.level_of_detail.geometry self._lod = self._city.level_of_detail.geometry
for building in self._city.buildings: for building in self._city.buildings:
print('building name', building.name)
for internal_zone in building.internal_zones: for internal_zone in building.internal_zones:
if internal_zone.thermal_zones is None: if internal_zone.thermal_zones is None:
continue continue

View File

@ -5,6 +5,7 @@ Copyright © 2022 Concordia CERC group
Project Coder Guillermo Gutierrez Guillermo.GutierrezMorote@concordia.ca Project Coder Guillermo Gutierrez Guillermo.GutierrezMorote@concordia.ca
""" """
import uuid
import json import json
import numpy as np import numpy as np
@ -126,10 +127,11 @@ class Geojson:
if function in self._function_to_hub: if function in self._function_to_hub:
function = self._function_to_hub[function] function = self._function_to_hub[function]
geometry = feature['geometry'] geometry = feature['geometry']
building_name = ''
building_aliases = [] building_aliases = []
if 'id' in feature: if 'id' in feature:
building_name = feature['id'] building_name = feature['id']
else:
building_name = uuid.uuid4()
if self._aliases_field is not None: if self._aliases_field is not None:
for alias_field in self._aliases_field: for alias_field in self._aliases_field: