system_assignation/city_model_structure/building_demand/layer.py

63 lines
1.2 KiB
Python
Raw Normal View History

2020-10-28 13:42:58 -04:00
"""
Layers module
SPDX - License - Identifier: LGPL - 3.0 - or -later
Copyright © 2022 Concordia CERC group
Project Coder Guille Gutierrez guillermo.gutierrezmorote@concordia.ca
2020-10-28 13:42:58 -04:00
"""
import uuid
2021-09-14 13:46:48 -04:00
from typing import Union
from city_model_structure.building_demand.material import Material
2020-10-28 13:42:58 -04:00
class Layer:
"""
Layer class
"""
def __init__(self):
self._material = None
self._thickness = None
self._id = None
@property
def id(self):
"""
Get layer id, an universally unique identifier randomly generated
:return: str
"""
if self._id is None:
self._id = uuid.uuid4()
return self._id
2020-10-28 13:42:58 -04:00
@property
def material(self) -> Material:
"""
Get layer material
:return: Material
"""
return self._material
@material.setter
def material(self, value):
"""
Set layer material
:param value: Material
"""
self._material = value
@property
2021-09-14 13:46:48 -04:00
def thickness(self) -> Union[None, float]:
2020-10-28 13:42:58 -04:00
"""
Get layer thickness in meters
2021-09-14 13:46:48 -04:00
:return: None or float
2020-10-28 13:42:58 -04:00
"""
return self._thickness
@thickness.setter
def thickness(self, value):
"""
Get layer thickness in meters
:param value: float
"""
2021-09-14 13:46:48 -04:00
if value is not None:
self._thickness = float(value)