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

1# created June 2015 

2# by TEASER4 Development Team 

3 

4 

5from teaser.logic.archetypebuildings.bmvbs.office import Office 

6 

7 

8class Institute(Office): 

9 """Type Institute Building 

10 

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`. 

22 

23 In detail the net leased area is divided into the following thermal zone 

24 areas: 

25 

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) 

33 

34 Parameters 

35 ---------- 

36 

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: 

59 

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. 

69 

70 office_layout : int 

71 Structure of the floor plan of office buildings, default is 1, 

72 which is representative for one elongated floor. 

73 

74 1. elongated 1 floor 

75 2. elongated 2 floors 

76 3. compact (e.g. for a square base building) 

77 

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 

90 

91 window_layout : int 

92 Structure of the window facade type, default is 1, which is 

93 representative for a punctuated facade. 

94 

95 1. punctuated facade (individual windows) 

96 2. banner facade (continuous windows) 

97 3. full glazing 

98 

99 construction_data : str 

100 Construction type of used wall constructions default is "heavy") 

101 

102 - heavy: heavy construction 

103 - light: light construction 

104 

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. 

110 

111 Attributes 

112 ---------- 

113 

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 """ 

155 

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 

172 

173 Adds an additional zone "Laboratory" 

174 

175 """ 

176 

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 ) 

191 

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"] 

208 

209 self.est_exponent_wall = 0.6601 

210 self.est_factor_wall_area = 11.243