from typing import List from city_model_structure.thermal_boundary import ThermalBoundary class ThermalZone: def __init__(self, surfaces, heated=True, cooled=True): self._surfaces = surfaces self._floor_area = None self._bounded = None self._heated = heated self._cooled = cooled self._additional_thermal_bridge_u_value = None self._effective_thermal_capacity = None self._indirectly_heated_area_ratio = None self._infiltration_rate_system_on = None self._infiltration_rate_system_off = None @property def heated(self): return self._heated @property def cooled(self): return self._cooled @property def floor_area(self): if self._floor_area is None: self._floor_area = 0 for s in self._surfaces: if s.type == 'Ground': self._floor_area += s.area return self._floor_area @property def bounded(self) -> List[ThermalBoundary]: return self._bounded @bounded.setter def bounded(self, value): self._bounded = value @property def surfaces(self): return self._surfaces @property def additional_thermal_bridge_u_value(self): return self._additional_thermal_bridge_u_value @additional_thermal_bridge_u_value.setter def additional_thermal_bridge_u_value(self, value): self._additional_thermal_bridge_u_value = value @property def effective_thermal_capacity(self): return self._effective_thermal_capacity @effective_thermal_capacity.setter def effective_thermal_capacity(self, value): self._effective_thermal_capacity = value @property def indirectly_heated_area_ratio(self): return self._indirectly_heated_area_ratio @indirectly_heated_area_ratio.setter def indirectly_heated_area_ratio(self, value): self._indirectly_heated_area_ratio = value @property def infiltration_rate_system_on(self): return self._infiltration_rate_system_on @infiltration_rate_system_on.setter def infiltration_rate_system_on(self, value): self._infiltration_rate_system_on = value @property def infiltration_rate_system_off(self): return self._infiltration_rate_system_off @infiltration_rate_system_off.setter def infiltration_rate_system_off(self, value): self._infiltration_rate_system_off = value