Source code for teaser.logic.buildingobjects.buildingphysics.layer

# created June 2015
# by TEASER4 Development Team


import random


[docs]class Layer(object): """Layer class This class holds information of a layer of a specific building element. Parameters ---------- parent : BuildingElement The parent class of this object, the Building Element the layer belongs to. Allows for better control of hierarchical structures. If not None this adds the Layer to BuildingElement.layers. Default is None Attributes ---------- id : int Position (starting from 0 and the inner side) material : Material() Material class of TEASER thickness : float [m] Thickness of the layer """ def __init__(self, parent=None, id=0): """Constructor of Layer. """ self.parent = parent self.internal_id = random.random() self.id = id self._material = None self._thickness = 0.0 @property def parent(self): return self.__parent @parent.setter def parent(self, value): if value is not None: ass_error_1 = "Parent has to be an instance of a BE" assert type(value).__name__ == "OuterWall" \ or type(value).__name__ == "Rooftop" \ or type(value).__name__ == "GroundFloor" \ or type(value).__name__ == "InnerWall" \ or type(value).__name__ == "Ceiling" \ or type(value).__name__ == "Floor" \ or type(value).__name__ == "Door" \ or type(value).__name__ == "Window", ass_error_1 self.__parent = value self.__parent.layer.append(self) else: self.__parent = None @property def material(self): return self._material @material.setter def material(self, value): ass_error_1 = "Material has to be an instance of Material()" assert type(value).__name__ == ("Material"), ass_error_1 self._material = value @property def thickness(self): return self._thickness @thickness.setter def thickness(self, value): if isinstance(value, float): pass elif value is None: pass else: try: value = float(value) except: raise ValueError("Can't convert thickness to float") if value is not None: self._thickness = float(value) if self.material is not None and self.parent is not None: if vars(self.material)['_thermal_conduc'] != 0: self.parent.calc_ua_value()