complete the data model for the construction catalog
This commit is contained in:
parent
0592f2ce04
commit
6299cdfe48
|
@ -6,5 +6,105 @@ Project Coder Guille Gutierrez guillermo.gutierrezmorote@concordia.ca
|
|||
"""
|
||||
|
||||
class Archetype:
|
||||
def __init__(self):
|
||||
pass
|
||||
def __init__(self, archetype_id,
|
||||
function,
|
||||
construction_period,
|
||||
constructions,
|
||||
average_storey_height,
|
||||
number_of_storeys,
|
||||
thermal_capacity,
|
||||
extra_loses_due_to_thermal_bridges,
|
||||
indirect_heated_ratio,
|
||||
infiltration_rate_for_ventilation_system_off,
|
||||
infiltration_rate_for_ventilation_system_on):
|
||||
|
||||
self._id = archetype_id
|
||||
self._function = function
|
||||
self._construction_period = construction_period
|
||||
self._constructions = constructions
|
||||
self._average_storey_height = average_storey_height
|
||||
self._number_of_storeys = number_of_storeys
|
||||
self._thermal_capacity = thermal_capacity
|
||||
self._extra_loses_due_to_thermal_bridges = extra_loses_due_to_thermal_bridges
|
||||
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
|
||||
|
||||
@property
|
||||
def id(self):
|
||||
"""
|
||||
Get archetype id
|
||||
:return: int
|
||||
"""
|
||||
return self._id
|
||||
|
||||
def function(self):
|
||||
"""
|
||||
Get archetype function
|
||||
:return: str
|
||||
"""
|
||||
return self._function
|
||||
|
||||
@property
|
||||
def construction_period(self):
|
||||
"""
|
||||
Get archetype construction period
|
||||
:return: str
|
||||
"""
|
||||
return self._construction_period
|
||||
|
||||
@property
|
||||
def average_storey_height(self):
|
||||
"""
|
||||
Get archetype average storey height
|
||||
:return: float
|
||||
"""
|
||||
return self._average_storey_height
|
||||
|
||||
@property
|
||||
def number_of_storeys(self):
|
||||
"""
|
||||
Get archetype number of storeys
|
||||
:return: int
|
||||
"""
|
||||
return self._number_of_storeys
|
||||
|
||||
@property
|
||||
def thermal_capacity(self):
|
||||
"""
|
||||
Get archetype thermal capacity
|
||||
:return: int
|
||||
"""
|
||||
return self._thermal_capacity
|
||||
|
||||
@property
|
||||
def extra_loses_due_to_thermal_bridges(self):
|
||||
"""
|
||||
Get archetype extra loses due to thermal bridges
|
||||
:return: int
|
||||
"""
|
||||
return self._extra_loses_due_to_thermal_bridges
|
||||
|
||||
@property
|
||||
def indirect_heated_ratio(self):
|
||||
"""
|
||||
Get archetype indirect heat ratio
|
||||
:return: float
|
||||
"""
|
||||
return self._indirect_heated_ratio
|
||||
|
||||
@property
|
||||
def infiltration_rate_for_ventilation_system_off(self):
|
||||
"""
|
||||
Get archetype infiltration rate for ventilation system off
|
||||
:return: float
|
||||
"""
|
||||
return self._infiltration_rate_for_ventilation_system_off
|
||||
|
||||
@property
|
||||
def infiltration_rate_for_ventilation_system_on(self):
|
||||
"""
|
||||
Get archetype infiltration rate for ventilation system on
|
||||
:return: float
|
||||
"""
|
||||
return self._infiltration_rate_for_ventilation_system_on
|
||||
|
|
|
@ -1,10 +1,63 @@
|
|||
"""
|
||||
Construction catalog contruction
|
||||
Construction catalog construction
|
||||
SPDX - License - Identifier: LGPL - 3.0 - or -later
|
||||
Copyright © 2022 Concordia CERC group
|
||||
Project Coder Guille Gutierrez guillermo.gutierrezmorote@concordia.ca
|
||||
"""
|
||||
|
||||
class Construction:
|
||||
def __init__(self):
|
||||
pass
|
||||
def __init__(self, construction_id, construction_type, name, layers, window_ratio=None, window=None):
|
||||
self._id = construction_id
|
||||
self._type = construction_type
|
||||
self._name = name
|
||||
self._layers = layers
|
||||
self._window_ratio = window_ratio
|
||||
self._window = window
|
||||
|
||||
@property
|
||||
def id(self):
|
||||
"""
|
||||
Get construction id
|
||||
:return: int
|
||||
"""
|
||||
return self._id
|
||||
|
||||
@property
|
||||
def type(self):
|
||||
"""
|
||||
Get construction type
|
||||
:return: str
|
||||
"""
|
||||
return self._type
|
||||
|
||||
@property
|
||||
def name(self):
|
||||
"""
|
||||
Get construction name
|
||||
:return: str
|
||||
"""
|
||||
return self._name
|
||||
|
||||
@property
|
||||
def layers(self):
|
||||
"""
|
||||
Get construction layers
|
||||
:return: [layer]
|
||||
"""
|
||||
return self._layers
|
||||
|
||||
@property
|
||||
def window_ratio(self):
|
||||
"""
|
||||
Get construction window ratio (only when used as archetype construction)
|
||||
:return: (0..1) or None
|
||||
"""
|
||||
return self._window_ratio
|
||||
|
||||
@property
|
||||
def window(self):
|
||||
"""
|
||||
Get construction window (only when used as archetype construction)
|
||||
:return: window or None
|
||||
"""
|
||||
return self._window
|
||||
|
|
45
catalogs/data_models/construction/layer.py
Normal file
45
catalogs/data_models/construction/layer.py
Normal file
|
@ -0,0 +1,45 @@
|
|||
"""
|
||||
Construction catalog layer
|
||||
SPDX - License - Identifier: LGPL - 3.0 - or -later
|
||||
Copyright © 2022 Concordia CERC group
|
||||
Project Coder Guille Gutierrez guillermo.gutierrezmorote@concordia.ca
|
||||
"""
|
||||
|
||||
class Layer:
|
||||
def __init__(self, layer_id, name, material, thickness):
|
||||
self._id = layer_id
|
||||
self._name = name
|
||||
self._material = material
|
||||
self._thickness = thickness
|
||||
|
||||
@property
|
||||
def id(self):
|
||||
"""
|
||||
Get layer id
|
||||
:return: int
|
||||
"""
|
||||
return self._id
|
||||
|
||||
@property
|
||||
def name(self):
|
||||
"""
|
||||
Get layer name
|
||||
:return: str
|
||||
"""
|
||||
return self._name
|
||||
|
||||
@property
|
||||
def material(self):
|
||||
"""
|
||||
Get layer material
|
||||
:return: Material
|
||||
"""
|
||||
return self._material
|
||||
|
||||
@property
|
||||
def thickness(self):
|
||||
"""
|
||||
Get layer thickness in meters
|
||||
:return: None or float
|
||||
"""
|
||||
return self._thickness
|
|
@ -5,9 +5,104 @@ Copyright © 2022 Concordia CERC group
|
|||
Project Coder Guille Gutierrez guillermo.gutierrezmorote@concordia.ca
|
||||
"""
|
||||
|
||||
from city_model_structure.building_demand.material import Material as LibsMaterial
|
||||
class Material:
|
||||
def __init__(self, material_id,
|
||||
name,
|
||||
solar_absorptance,
|
||||
thermal_absorptance,
|
||||
visible_absorptance,
|
||||
no_mass=False,
|
||||
thermal_resistance=None,
|
||||
conductivity=None,
|
||||
density=None,
|
||||
specific_heat=None):
|
||||
self._id = material_id
|
||||
self._name = name
|
||||
self._solar_absorptance = solar_absorptance
|
||||
self._thermal_absorptance = thermal_absorptance
|
||||
self._visible_absorptance = visible_absorptance
|
||||
self._no_mass = no_mass
|
||||
self._thermal_resistance = thermal_resistance
|
||||
self._conductivity = conductivity
|
||||
self._density = density
|
||||
self._specific_heat = specific_heat
|
||||
|
||||
class Material(LibsMaterial):
|
||||
def __init__(self):
|
||||
# Inherit normal material directly if needed additional transformations will be done to this class
|
||||
super().__init__()
|
||||
@property
|
||||
def id(self):
|
||||
"""
|
||||
Get material id
|
||||
:return: int
|
||||
"""
|
||||
return self._id
|
||||
|
||||
@property
|
||||
def name(self):
|
||||
"""
|
||||
Get material name
|
||||
:return: str
|
||||
"""
|
||||
return self._name
|
||||
|
||||
@property
|
||||
def conductivity(self):
|
||||
"""
|
||||
Get material conductivity in W/mK
|
||||
:return: None or float
|
||||
"""
|
||||
return self._conductivity
|
||||
|
||||
@property
|
||||
def specific_heat(self):
|
||||
"""
|
||||
Get material conductivity in J/kgK
|
||||
:return: None or float
|
||||
"""
|
||||
return self._specific_heat
|
||||
|
||||
@property
|
||||
def density(self):
|
||||
"""
|
||||
Get material density in kg/m3
|
||||
:return: None or float
|
||||
"""
|
||||
return self._density
|
||||
|
||||
@property
|
||||
def solar_absorptance(self):
|
||||
"""
|
||||
Get material solar absorptance
|
||||
:return: None or float
|
||||
"""
|
||||
return self._solar_absorptance
|
||||
|
||||
@property
|
||||
def thermal_absorptance(self):
|
||||
"""
|
||||
Get material thermal absorptance
|
||||
:return: None or float
|
||||
"""
|
||||
return self._thermal_absorptance
|
||||
|
||||
@property
|
||||
def visible_absorptance(self):
|
||||
"""
|
||||
Get material visible absorptance
|
||||
:return: None or float
|
||||
"""
|
||||
return self._visible_absorptance
|
||||
|
||||
@property
|
||||
def no_mass(self):
|
||||
"""
|
||||
Get material no mass flag
|
||||
:return: None or Boolean
|
||||
"""
|
||||
return self._no_mass
|
||||
|
||||
@property
|
||||
def thermal_resistance(self):
|
||||
"""
|
||||
Get material thermal resistance in m2K/W
|
||||
:return: None or float
|
||||
"""
|
||||
return self._thermal_resistance
|
||||
|
|
Loading…
Reference in New Issue
Block a user