268 lines
5.1 KiB
Python
268 lines
5.1 KiB
Python
|
"""
|
||
|
Properties module to be used by mockup building
|
||
|
SPDX - License - Identifier: LGPL - 3.0 - or -later
|
||
|
Copyright © 2023 Concordia CERC group
|
||
|
Project Coder Pilar Monsalvete Alvarez de Uribarri pilar.monsalvete@concordia.ca
|
||
|
"""
|
||
|
|
||
|
from __future__ import annotations
|
||
|
|
||
|
|
||
|
class EnergySystem:
|
||
|
"""
|
||
|
EnergySystem class
|
||
|
"""
|
||
|
def __init__(self):
|
||
|
self._generation_system = None
|
||
|
self._demand_types = None
|
||
|
|
||
|
@property
|
||
|
def generation_system(self) -> GenerationSystem:
|
||
|
"""
|
||
|
Get building generation system
|
||
|
:return: GenerationSystem
|
||
|
"""
|
||
|
return self._generation_system
|
||
|
|
||
|
@generation_system.setter
|
||
|
def generation_system(self, value):
|
||
|
"""
|
||
|
Set building generation system
|
||
|
:param value: GenerationSystem
|
||
|
"""
|
||
|
self._generation_system = value
|
||
|
|
||
|
@property
|
||
|
def demand_types(self):
|
||
|
"""
|
||
|
Get demand types covered by an energy system
|
||
|
:return: [str]
|
||
|
"""
|
||
|
return self._demand_types
|
||
|
|
||
|
@demand_types.setter
|
||
|
def demand_types(self, value):
|
||
|
"""
|
||
|
Set demand types covered by an energy system
|
||
|
:param value: [str]
|
||
|
"""
|
||
|
self._demand_types = value
|
||
|
|
||
|
|
||
|
class GenerationSystem:
|
||
|
"""
|
||
|
GenerationSystem class
|
||
|
"""
|
||
|
|
||
|
def __init__(self):
|
||
|
self._generic_generation_system = None
|
||
|
|
||
|
@property
|
||
|
def generic_generation_system(self) -> GenericGenerationSystem:
|
||
|
"""
|
||
|
Get generic generation system
|
||
|
:return: GenericGenerationSystem
|
||
|
"""
|
||
|
return self._generic_generation_system
|
||
|
|
||
|
@generic_generation_system.setter
|
||
|
def generic_generation_system(self, value):
|
||
|
"""
|
||
|
Set generic generation system
|
||
|
:param value: GenericGenerationSystem
|
||
|
"""
|
||
|
self._generic_generation_system = value
|
||
|
|
||
|
|
||
|
class GenericGenerationSystem:
|
||
|
"""
|
||
|
GenericGenerationSystem class
|
||
|
"""
|
||
|
|
||
|
def __init__(self):
|
||
|
self._fuel_type = None
|
||
|
|
||
|
@property
|
||
|
def fuel_type(self):
|
||
|
"""
|
||
|
Get fuel type of generic generation system
|
||
|
:return: str
|
||
|
"""
|
||
|
return self._fuel_type
|
||
|
|
||
|
@fuel_type.setter
|
||
|
def fuel_type(self, value):
|
||
|
"""
|
||
|
Set fuel type of generic generation system
|
||
|
:param value: str
|
||
|
"""
|
||
|
self._fuel_type = value
|
||
|
|
||
|
|
||
|
class ThermalZone:
|
||
|
"""
|
||
|
ThermalZone class
|
||
|
"""
|
||
|
|
||
|
def __init__(self):
|
||
|
self._thermal_boundaries = None
|
||
|
self._total_floor_area = None
|
||
|
|
||
|
@property
|
||
|
def thermal_boundaries(self) -> [ThermalBoundary]:
|
||
|
"""
|
||
|
Get thermal boundaries
|
||
|
:return: [ThermalBoundary]
|
||
|
"""
|
||
|
return self._thermal_boundaries
|
||
|
|
||
|
@thermal_boundaries.setter
|
||
|
def thermal_boundaries(self, value):
|
||
|
"""
|
||
|
Set thermal boundaries
|
||
|
:param value: [ThermalBoundary]
|
||
|
"""
|
||
|
self._thermal_boundaries = value
|
||
|
|
||
|
@property
|
||
|
def total_floor_area(self):
|
||
|
"""
|
||
|
Get total floor area in m2
|
||
|
:return: float
|
||
|
"""
|
||
|
return self._total_floor_area
|
||
|
|
||
|
@total_floor_area.setter
|
||
|
def total_floor_area(self, value):
|
||
|
"""
|
||
|
Get total floor area in m2
|
||
|
:param value: float
|
||
|
"""
|
||
|
self._total_floor_area = value
|
||
|
|
||
|
|
||
|
class ThermalBoundary:
|
||
|
"""
|
||
|
ThermalBoundary class
|
||
|
"""
|
||
|
|
||
|
def __init__(self):
|
||
|
self._type = None
|
||
|
self._opaque_area = None
|
||
|
self._window_ratio = None
|
||
|
|
||
|
@property
|
||
|
def type(self):
|
||
|
"""
|
||
|
Get thermal boundary type
|
||
|
:return: str
|
||
|
"""
|
||
|
return self._type
|
||
|
|
||
|
@type.setter
|
||
|
def type(self, value):
|
||
|
"""
|
||
|
Set thermal boundary type
|
||
|
:param value: str
|
||
|
"""
|
||
|
self._type = value
|
||
|
|
||
|
@property
|
||
|
def opaque_area(self):
|
||
|
"""
|
||
|
Get thermal boundary opaque area in m2
|
||
|
:return: float
|
||
|
"""
|
||
|
return self._opaque_area
|
||
|
|
||
|
@opaque_area.setter
|
||
|
def opaque_area(self, value):
|
||
|
"""
|
||
|
Set thermal boundary opaque area in m2
|
||
|
:param value: float
|
||
|
"""
|
||
|
self._opaque_area = value
|
||
|
|
||
|
@property
|
||
|
def window_ratio(self):
|
||
|
"""
|
||
|
Get thermal boundary window ratio
|
||
|
:return: float
|
||
|
"""
|
||
|
return self._window_ratio
|
||
|
|
||
|
@window_ratio.setter
|
||
|
def window_ratio(self, value):
|
||
|
"""
|
||
|
Set thermal boundary window ratio
|
||
|
:param value: float
|
||
|
"""
|
||
|
self._window_ratio = value
|
||
|
|
||
|
|
||
|
class Roof:
|
||
|
"""
|
||
|
Roof class
|
||
|
"""
|
||
|
|
||
|
def __init__(self):
|
||
|
self._solid_polygon = None
|
||
|
self._solar_collectors_area_reduction_factor = None
|
||
|
|
||
|
@property
|
||
|
def solid_polygon(self) -> Polygon:
|
||
|
"""
|
||
|
Get solid polygon
|
||
|
:return: Polygon
|
||
|
"""
|
||
|
return self._solid_polygon
|
||
|
|
||
|
@solid_polygon.setter
|
||
|
def solid_polygon(self, value):
|
||
|
"""
|
||
|
Set solid polygon
|
||
|
:param value: Polygon
|
||
|
"""
|
||
|
self._solid_polygon = value
|
||
|
|
||
|
@property
|
||
|
def solar_collectors_area_reduction_factor(self):
|
||
|
"""
|
||
|
Get solar-collectors-area reduction factor
|
||
|
:return: float
|
||
|
"""
|
||
|
return self._solar_collectors_area_reduction_factor
|
||
|
|
||
|
@solar_collectors_area_reduction_factor.setter
|
||
|
def solar_collectors_area_reduction_factor(self, value):
|
||
|
"""
|
||
|
Set solar-collectors-area reduction factor
|
||
|
:param value: float
|
||
|
"""
|
||
|
self._solar_collectors_area_reduction_factor = value
|
||
|
|
||
|
|
||
|
class Polygon:
|
||
|
"""
|
||
|
Polygon class
|
||
|
"""
|
||
|
|
||
|
def __init__(self):
|
||
|
self._area = None
|
||
|
|
||
|
@property
|
||
|
def area(self):
|
||
|
"""
|
||
|
Get polygon area in m2
|
||
|
:return: float
|
||
|
"""
|
||
|
return self._area
|
||
|
|
||
|
@area.setter
|
||
|
def area(self, value):
|
||
|
"""
|
||
|
Set polygon area in m2
|
||
|
:param value: float
|
||
|
"""
|
||
|
self._area = value
|