Coverage for teaser/logic/archetypebuildings/bmvbs/custom/institute.py: 100%
13 statements
« prev ^ index » next coverage.py v7.4.4, created at 2025-04-29 16:01 +0000
« prev ^ index » next coverage.py v7.4.4, created at 2025-04-29 16:01 +0000
1# created June 2015
2# by TEASER4 Development Team
5from teaser.logic.archetypebuildings.bmvbs.office import Office
8class Institute(Office):
9 """Type Institute Building
11 The institute module contains a multi zone building which is based on an
12 office building with an additional laboratory zone. The zonal
13 distribution is based on investigations of the Forschungszentrum Juelich
14 :cite:`Lauster.2018`. According to the dataset from Juelich,
15 the typebuilding institute is based on the buildingsclass of BWZK with
16 the number 2000 and all subsets, which represents all institute buildings
17 which are not institute type 4 (2230, 2240 and 2250) or institute type 8 (
18 2280)
19 :cite:`Bauministerkonferenz.Dezember2010`. The estimation of exterior
20 wall surfaces follows the approach for office buildings, but with adapted
21 parameters :cite:`Lauster.2018`.
23 In detail the net leased area is divided into the following thermal zone
24 areas:
26 #. Office (16% of net leased area)
27 #. Floor (19% of net leased area)
28 #. Storage (40% of net leased area)
29 #. Meeting (4% of net leased area)
30 #. Restroom (4% of net leased area)
31 #. ICT (2% of net leased area)
32 #. Laboratory (15% of the net leased area)
34 Parameters
35 ----------
37 parent: Project()
38 The parent class of this object, the Project the Building belongs to.
39 Allows for better control of hierarchical structures. If not None it
40 adds this Building instance to Project.buildings.
41 (default: None)
42 name : str
43 Individual name
44 year_of_construction : int
45 Year of first construction
46 height_of_floors : float [m]
47 Average height of the buildings' floors
48 number_of_floors : int
49 Number of building's floors above ground
50 net_leased_area : float [m2]
51 Total net leased area of building. This is area is NOT the footprint
52 of a building
53 with_ahu : Boolean
54 If set to True, an empty instance of BuildingAHU is instantiated and
55 assigned to attribute central_ahu. This instance holds information for
56 central Air Handling units. Default is False.
57 internal_gains_mode: int [1, 2, 3]
58 mode for the internal gains calculation done in AixLib:
60 1. Temperature and activity degree dependent heat flux calculation for persons. The
61 calculation is based on SIA 2024 (default)
62 2. Temperature and activity degree independent heat flux calculation for persons, the max.
63 heatflowrate is prescribed by the parameter
64 fixed_heat_flow_rate_persons.
65 3. Temperature and activity degree dependent calculation with
66 consideration of moisture and co2. The moisture calculation is
67 based on SIA 2024 (2015) and regards persons and non-persons, the co2 calculation is based on
68 Engineering ToolBox (2004) and regards only persons.
70 office_layout : int
71 Structure of the floor plan of office buildings, default is 1,
72 which is representative for one elongated floor.
74 1. elongated 1 floor
75 2. elongated 2 floors
76 3. compact (e.g. for a square base building)
78 inner_wall_approximation_approach : str
79 'teaser_default' (default) sets length of inner walls = typical
80 length * height of floors + 2 * typical width * height of floors
81 'typical_minus_outer' sets length of inner walls = 2 * typical
82 length * height of floors + 2 * typical width * height of floors
83 - length of outer or interzonal walls
84 'typical_minus_outer_extended' like 'typical_minus_outer', but also
85 considers that
86 a) a non-complete "average room" reduces its circumference
87 proportional to the square root of the area
88 b) rooftops, windows and ground floors (= walls with border to
89 soil) may have a vertical share
91 window_layout : int
92 Structure of the window facade type, default is 1, which is
93 representative for a punctuated facade.
95 1. punctuated facade (individual windows)
96 2. banner facade (continuous windows)
97 3. full glazing
99 construction_data : str
100 Construction type of used wall constructions default is "heavy")
102 - heavy: heavy construction
103 - light: light construction
105 Notes
106 -----
107 The listed attributes are just the ones that are set by the user
108 calculated values are not included in this list. Changing these values is
109 expert mode.
111 Attributes
112 ----------
114 zone_area_factors : dict
115 This dictionary contains the name of the zone (str), the
116 zone area factor (float), the zone usage from BoundaryConditions json
117 (str) (Default see doc string above), and may contain a dictionary with
118 keyword-attribute-like changes to zone parameters that are usually
119 inherited from parent: 'number_of_floors', 'height_of_floors'
120 outer_wall_names : dict
121 This dictionary contains a random name for the outer walls,
122 their orientation and tilt. Default is a building in north-south
123 orientation)
124 roof_names : dict
125 This dictionary contains the name of the roofs, their orientation
126 and tilt. Default is one flat roof.
127 ground_floor_names : dict
128 This dictionary contains the name of the ground floors, their
129 orientation and tilt. Default is one ground floor.
130 window_names : dict
131 This dictionary contains the name of the window, their
132 orientation and tilt. Default is a building in north-south
133 orientation)
134 inner_wall_names : dict
135 This dictionary contains the name of the inner walls, their
136 orientation and tilt. Default is one cumulated inner wall.
137 ceiling_names : dict
138 This dictionary contains the name of the ceilings, their
139 orientation and tilt. Default is one cumulated ceiling.
140 floor_names : dict
141 This dictionary contains the name of the floors, their
142 orientation and tilt. Default is one cumulated floor.
143 gross_factor : float
144 gross factor used to correct the rooftop and floor area (default is
145 1.15)
146 est_factor_wall_area : float
147 estimation factor to calculate outer wall area
148 est_exponent_wall : float
149 estimation factor exponent to calculate outer wall area
150 est_factor_win_area : float
151 estimation factor to calculate window area
152 est_exponent_win : float
153 estimation factor exponent to calculate window area
154 """
156 def __init__(
157 self,
158 parent,
159 name=None,
160 year_of_construction=None,
161 number_of_floors=None,
162 height_of_floors=None,
163 net_leased_area=None,
164 with_ahu=True,
165 internal_gains_mode=1,
166 office_layout=None,
167 inner_wall_approximation_approach='teaser_default',
168 window_layout=None,
169 construction_data=None,
170 ):
171 """Constructor of Institute
173 Adds an additional zone "Laboratory"
175 """
177 super(Institute, self).__init__(
178 parent,
179 name,
180 year_of_construction,
181 number_of_floors,
182 height_of_floors,
183 net_leased_area,
184 with_ahu,
185 internal_gains_mode,
186 office_layout,
187 inner_wall_approximation_approach,
188 window_layout,
189 construction_data,
190 )
192 self.zone_area_factors["Office"] = [
193 0.16,
194 "Group Office (between 2 and 6 employees)",
195 ]
196 self.zone_area_factors["Floor"] = [0.19, "Traffic area"]
197 self.zone_area_factors["Laboratory"] = [0.15, "Laboratory"]
198 self.zone_area_factors["Storage"] = [
199 0.4,
200 "Stock, technical equipment, archives",
201 ]
202 self.zone_area_factors["Meeting"] = [0.04, "Meeting, Conference, seminar"]
203 self.zone_area_factors["Restroom"] = [
204 0.04,
205 "WC and sanitary rooms in non-residential buildings",
206 ]
207 self.zone_area_factors["ICT"] = [0.02, "Data center"]
209 self.est_exponent_wall = 0.6601
210 self.est_factor_wall_area = 11.243