openstudio-standards 0.1.3 → 0.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/data/standards/OpenStudio_Standards.xlsx +0 -0
- data/data/standards/OpenStudio_Standards_chillers.json +5 -5
- data/data/standards/OpenStudio_Standards_construction_sets.json +2 -2
- data/data/standards/OpenStudio_Standards_curve_cubics.json +12 -0
- data/data/standards/OpenStudio_Standards_heat_pumps.json +2126 -72
- data/data/standards/OpenStudio_Standards_heat_pumps_heating.json +766 -14
- data/data/standards/OpenStudio_Standards_heat_rejection.json +172 -0
- data/data/standards/OpenStudio_Standards_prototype_inputs.json +355 -267
- data/data/standards/OpenStudio_Standards_schedules.json +262 -10
- data/data/standards/OpenStudio_Standards_space_types.json +1466 -794
- data/data/standards/manage_OpenStudio_Standards.rb +19 -21
- data/data/weather/weather_info.csv +96 -0
- data/lib/openstudio-standards/btap/btap.rb +1 -1
- data/lib/openstudio-standards/btap/compliance.rb +135 -40
- data/lib/openstudio-standards/btap/envelope.rb +26 -5
- data/lib/openstudio-standards/btap/geometry.rb +11 -1
- data/lib/openstudio-standards/btap/hvac.rb +489 -56
- data/lib/openstudio-standards/btap/simmanager.rb +1 -1
- data/lib/openstudio-standards/hvac_sizing/HVACSizing.CoilHeatingDXMultiSpeed.rb +120 -0
- data/lib/openstudio-standards/hvac_sizing/Siz.CoilCoolingDXMultiSpeed.rb +151 -7
- data/lib/openstudio-standards/hvac_sizing/Siz.CoilHeatingGasMultiStage.rb +48 -7
- data/lib/openstudio-standards/hvac_sizing/Siz.Model.rb +14 -12
- data/lib/openstudio-standards/prototypes/Prototype.AirTerminalSingleDuctVAVReheat.rb +33 -7
- data/lib/openstudio-standards/prototypes/Prototype.Model.hvac.rb +123 -91
- data/lib/openstudio-standards/prototypes/Prototype.Model.rb +130 -45
- data/lib/openstudio-standards/prototypes/Prototype.Model.swh.rb +13 -7
- data/lib/openstudio-standards/prototypes/Prototype.full_service_restaurant.rb +332 -324
- data/lib/openstudio-standards/prototypes/Prototype.hospital.rb +401 -99
- data/lib/openstudio-standards/prototypes/Prototype.hvac_systems.rb +309 -222
- data/lib/openstudio-standards/prototypes/Prototype.large_hotel.rb +100 -80
- data/lib/openstudio-standards/prototypes/Prototype.large_office.rb +37 -22
- data/lib/openstudio-standards/prototypes/Prototype.medium_office.rb +68 -53
- data/lib/openstudio-standards/prototypes/Prototype.mid_rise_apartment.rb +109 -88
- data/lib/openstudio-standards/prototypes/Prototype.outpatient.rb +52 -4
- data/lib/openstudio-standards/prototypes/Prototype.primary_school.rb +230 -213
- data/lib/openstudio-standards/prototypes/Prototype.quick_service_restaurant.rb +225 -218
- data/lib/openstudio-standards/prototypes/Prototype.retail_standalone.rb +29 -17
- data/lib/openstudio-standards/prototypes/Prototype.retail_stripmall.rb +42 -32
- data/lib/openstudio-standards/prototypes/Prototype.secondary_school.rb +331 -314
- data/lib/openstudio-standards/prototypes/Prototype.small_hotel.rb +233 -219
- data/lib/openstudio-standards/prototypes/Prototype.small_office.rb +40 -32
- data/lib/openstudio-standards/prototypes/Prototype.warehouse.rb +19 -6
- data/lib/openstudio-standards/standards/Standards.AirLoopHVAC.rb +576 -555
- data/lib/openstudio-standards/standards/Standards.AirTerminalSingleDuctVAVReheat.rb +3 -1
- data/lib/openstudio-standards/standards/Standards.BoilerHotWater.rb +35 -17
- data/lib/openstudio-standards/standards/Standards.ChillerElectricEIR.rb +51 -23
- data/lib/openstudio-standards/standards/Standards.CoilCoolingDXMultiSpeed.rb +255 -0
- data/lib/openstudio-standards/standards/Standards.CoilHeatingDXMultiSpeed.rb +192 -0
- data/lib/openstudio-standards/standards/Standards.CoilHeatingGasMultiStage.rb +65 -0
- data/lib/openstudio-standards/standards/Standards.Fan.rb +37 -6
- data/lib/openstudio-standards/standards/Standards.Model.rb +28 -3
- data/lib/openstudio-standards/standards/Standards.SpaceType.rb +3 -1
- data/lib/openstudio-standards/standards/Standards.WaterHeaterMixed.rb +41 -15
- data/lib/openstudio-standards/version.rb +1 -1
- data/lib/openstudio-standards/weather/Weather.Model.rb +509 -5
- data/lib/openstudio-standards/weather/Weather.stat_file.rb +145 -5
- metadata +8 -3
- data/lib/openstudio-standards/btap/environment.rb +0 -718
@@ -3,7 +3,23 @@
|
|
3
3
|
class OpenStudio::Model::Model
|
4
4
|
|
5
5
|
def define_space_type_map(building_type, building_vintage, climate_zone)
|
6
|
-
space_type_map =
|
6
|
+
space_type_map = nil
|
7
|
+
case building_vintage
|
8
|
+
when 'NECB 2011'
|
9
|
+
space_type_map ={
|
10
|
+
"Hotel/Motel - dining" => ["Banquet_Flr_6", "Dining_Flr_6"],
|
11
|
+
"Storage area" => ["Basement", "Storage_Flr_1"],
|
12
|
+
"Retail - mall concourse" => ["Cafe_Flr_1"],
|
13
|
+
"Corr. >= 2.4m wide" => ["Corridor_Flr_3", "Corridor_Flr_6"],
|
14
|
+
"Food preparation" => ["Kitchen_Flr_6"],
|
15
|
+
"Hospital - laundry/washing" => ["Laundry_Flr_1"],
|
16
|
+
"Hotel/Motel - lobby" => ["Lobby_Flr_1"],
|
17
|
+
"Electrical/Mechanical" => ["Mech_Flr_1"],
|
18
|
+
"Retail - sales" => ["Retail_1_Flr_1", "Retail_2_Flr_1"],
|
19
|
+
"Hotel/Motel - rooms" => ["Room_1_Flr_3", "Room_1_Flr_6", "Room_2_Flr_3", "Room_2_Flr_6", "Room_3_Mult19_Flr_3", "Room_3_Mult9_Flr_6", "Room_4_Mult19_Flr_3", "Room_5_Flr_3", "Room_6_Flr_3"]
|
20
|
+
}
|
21
|
+
else
|
22
|
+
space_type_map = {
|
7
23
|
'Banquet' => ['Banquet_Flr_6','Dining_Flr_6'],
|
8
24
|
'Basement'=>['Basement'],
|
9
25
|
'Cafe' => ['Cafe_Flr_1'],
|
@@ -20,78 +36,82 @@ class OpenStudio::Model::Model
|
|
20
36
|
'Retail'=> ['Retail_1_Flr_1'],
|
21
37
|
'Retail2'=> ['Retail_2_Flr_1'],
|
22
38
|
'Storage'=> ['Storage_Flr_1']
|
23
|
-
|
39
|
+
}
|
40
|
+
end
|
41
|
+
|
42
|
+
|
43
|
+
|
24
44
|
|
25
45
|
return space_type_map
|
26
46
|
end
|
27
47
|
|
28
48
|
def define_hvac_system_map(building_type, building_vintage, climate_zone)
|
29
49
|
system_to_space_map = [
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
50
|
+
{
|
51
|
+
'type' => 'VAV',
|
52
|
+
'name' => 'VAV WITH REHEAT',
|
53
|
+
'space_names' =>
|
54
|
+
[
|
55
|
+
'Basement',
|
56
|
+
'Retail_1_Flr_1',
|
57
|
+
'Retail_2_Flr_1',
|
58
|
+
'Mech_Flr_1',
|
59
|
+
'Storage_Flr_1',
|
60
|
+
'Laundry_Flr_1',
|
61
|
+
'Cafe_Flr_1',
|
62
|
+
'Lobby_Flr_1',
|
63
|
+
'Corridor_Flr_3',
|
64
|
+
'Banquet_Flr_6',
|
65
|
+
'Dining_Flr_6',
|
66
|
+
'Corridor_Flr_6',
|
67
|
+
'Kitchen_Flr_6'
|
68
|
+
]
|
69
|
+
},
|
70
|
+
{
|
71
|
+
'type' => 'DOAS',
|
72
|
+
'space_names' =>
|
73
|
+
[
|
74
|
+
'Room_1_Flr_3','Room_2_Flr_3','Room_3_Mult19_Flr_3','Room_4_Mult19_Flr_3','Room_5_Flr_3','Room_6_Flr_3','Room_1_Flr_6','Room_2_Flr_6','Room_3_Mult9_Flr_6'
|
75
|
+
]
|
76
|
+
},
|
77
|
+
{
|
78
|
+
'type' => 'Refrigeration',
|
79
|
+
'case_type' => 'Walkin Freezer',
|
80
|
+
'cooling_capacity_per_length' => 367.0,
|
81
|
+
'length' => 7.32,
|
82
|
+
'evaporator_fan_pwr_per_length' => 34.0,
|
83
|
+
'lighting_per_length' => 16.4,
|
84
|
+
'lighting_sch_name' => 'HotelLarge BLDG_LIGHT_SCH',
|
85
|
+
'defrost_pwr_per_length' => 273.0,
|
86
|
+
'restocking_sch_name' => 'HotelLarge Kitchen_Flr_6_Case:1_WALKINFREEZER_WalkInStockingSched',
|
87
|
+
'cop' => 1.5,
|
88
|
+
'cop_f_of_t_curve_name' => 'RACK1_RackCOPfTCurve',
|
89
|
+
'condenser_fan_pwr' => 350.0,
|
90
|
+
'condenser_fan_pwr_curve_name' => 'RACK1_RackCondFanCurve2',
|
91
|
+
'space_names' =>
|
92
|
+
[
|
93
|
+
'Kitchen_Flr_6'
|
94
|
+
]
|
95
|
+
},
|
96
|
+
{
|
97
|
+
'type' => 'Refrigeration',
|
98
|
+
'case_type' => 'Display Case',
|
99
|
+
'cooling_capacity_per_length' => 734.0,
|
100
|
+
'length' => 3.66,
|
101
|
+
'evaporator_fan_pwr_per_length' => 55.0,
|
102
|
+
'lighting_per_length' => 33.0,
|
103
|
+
'lighting_sch_name' => 'HotelLarge BLDG_LIGHT_SCH',
|
104
|
+
'defrost_pwr_per_length' => 0.0,
|
105
|
+
'restocking_sch_name' => 'HotelLarge Kitchen_Flr_6_Case:2_SELFCONTAINEDDISPLAYCASE_CaseStockingSched',
|
106
|
+
'cop' => 3.0,
|
107
|
+
'cop_f_of_t_curve_name' => 'RACK2_RackCOPfTCurve',
|
108
|
+
'condenser_fan_pwr' => 750.0,
|
109
|
+
'condenser_fan_pwr_curve_name' => 'RACK1_RackCondFanCurve2',
|
110
|
+
'space_names' =>
|
111
|
+
[
|
112
|
+
'Kitchen_Flr_6'
|
113
|
+
]
|
114
|
+
}
|
95
115
|
]
|
96
116
|
return system_to_space_map
|
97
117
|
end
|
@@ -99,14 +119,14 @@ class OpenStudio::Model::Model
|
|
99
119
|
def define_space_multiplier
|
100
120
|
# This map define the multipliers for spaces with multipliers not equals to 1
|
101
121
|
space_multiplier_map = {
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
122
|
+
'Room_1_Flr_3' => 4,
|
123
|
+
'Room_2_Flr_3' => 4,
|
124
|
+
'Room_3_Mult19_Flr_3' => 76,
|
125
|
+
'Room_4_Mult19_Flr_3' => 76,
|
126
|
+
'Room_5_Flr_3' => 4,
|
127
|
+
'Room_6_Flr_3' => 4,
|
128
|
+
'Corridor_Flr_3' => 4,
|
129
|
+
'Room_3_Mult9_Flr_6' => 9
|
110
130
|
}
|
111
131
|
return space_multiplier_map
|
112
132
|
end
|
@@ -192,11 +212,11 @@ class OpenStudio::Model::Model
|
|
192
212
|
|
193
213
|
# Add the daylighting controls for lobby, cafe, dinning and banquet
|
194
214
|
def add_daylighting_controls(building_vintage)
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
215
|
+
space_names = ['Banquet_Flr_6','Dining_Flr_6','Cafe_Flr_1','Lobby_Flr_1']
|
216
|
+
space_names.each do |space_name|
|
217
|
+
space = self.getSpaceByName(space_name).get
|
218
|
+
space.addDaylightingControls(building_vintage, false, false)
|
219
|
+
end
|
200
220
|
end
|
201
221
|
|
202
222
|
def custom_swh_tweaks(building_type, building_vintage, climate_zone, prototype_input)
|
@@ -27,6 +27,20 @@ class OpenStudio::Model::Model
|
|
27
27
|
'DataCenter_basement_ZN_6'
|
28
28
|
]
|
29
29
|
}
|
30
|
+
when 'NECB 2011'
|
31
|
+
space_type_map = {
|
32
|
+
"Electrical/Mechanical" => ["Basement"],
|
33
|
+
|
34
|
+
"Office - open plan" => [ "Core_bottom", "Core_mid", "Core_top", "MidFloor_Plenum",
|
35
|
+
"Perimeter_bot_ZN_1", "Perimeter_bot_ZN_2", "Perimeter_bot_ZN_3",
|
36
|
+
"Perimeter_bot_ZN_4", "Perimeter_mid_ZN_1", "Perimeter_mid_ZN_2",
|
37
|
+
"Perimeter_mid_ZN_3", "Perimeter_mid_ZN_4", "Perimeter_top_ZN_1",
|
38
|
+
"Perimeter_top_ZN_2", "Perimeter_top_ZN_3", "Perimeter_top_ZN_4",
|
39
|
+
"DataCenter_basement_ZN_6", "DataCenter_bot_ZN_6", "DataCenter_mid_ZN_6",
|
40
|
+
"DataCenter_top_ZN_6"],
|
41
|
+
|
42
|
+
"- undefined -" => ["GroundFloor_Plenum", "TopFloor_Plenum"]
|
43
|
+
}
|
30
44
|
end
|
31
45
|
return space_type_map
|
32
46
|
end
|
@@ -85,8 +99,8 @@ class OpenStudio::Model::Model
|
|
85
99
|
}
|
86
100
|
]
|
87
101
|
when '90.1-2004','90.1-2007','90.1-2010','90.1-2013'
|
88
|
-
|
89
|
-
|
102
|
+
system_to_space_map = [
|
103
|
+
{
|
90
104
|
'type' => 'VAV',
|
91
105
|
'name' => 'VAV_bot WITH REHEAT',
|
92
106
|
'space_names' =>
|
@@ -126,11 +140,12 @@ class OpenStudio::Model::Model
|
|
126
140
|
'return_plenum' => 'TopFloor_Plenum'
|
127
141
|
},
|
128
142
|
{
|
143
|
+
|
129
144
|
'type' => 'CAV',
|
130
145
|
'name' => 'CAV_bas',
|
131
146
|
'space_names' =>
|
132
|
-
|
133
|
-
|
147
|
+
[
|
148
|
+
'Basement'
|
134
149
|
]
|
135
150
|
},
|
136
151
|
{
|
@@ -170,10 +185,11 @@ class OpenStudio::Model::Model
|
|
170
185
|
'main_data_center' => false
|
171
186
|
}
|
172
187
|
]
|
188
|
+
|
173
189
|
end
|
174
190
|
|
175
191
|
return system_to_space_map
|
176
|
-
|
192
|
+
|
177
193
|
end
|
178
194
|
|
179
195
|
def define_space_multiplier
|
@@ -200,19 +216,19 @@ class OpenStudio::Model::Model
|
|
200
216
|
#find all zones associated with these spaces
|
201
217
|
thermal_zones = []
|
202
218
|
system['space_names'].each do |space_name|
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
end
|
208
|
-
space = space.get
|
209
|
-
zone = space.thermalZone
|
210
|
-
if zone.empty?
|
211
|
-
OpenStudio::logFree(OpenStudio::Error, 'openstudio.model.Model', "No thermal zone was created for the space called #{space_name}")
|
212
|
-
return false
|
213
|
-
end
|
214
|
-
thermal_zones << zone.get
|
219
|
+
space = self.getSpaceByName(space_name)
|
220
|
+
if space.empty?
|
221
|
+
OpenStudio::logFree(OpenStudio::Error, 'openstudio.model.Model', "No space called #{space_name} was found in the model")
|
222
|
+
return false
|
215
223
|
end
|
224
|
+
space = space.get
|
225
|
+
zone = space.thermalZone
|
226
|
+
if zone.empty?
|
227
|
+
OpenStudio::logFree(OpenStudio::Error, 'openstudio.model.Model', "No thermal zone was created for the space called #{space_name}")
|
228
|
+
return false
|
229
|
+
end
|
230
|
+
thermal_zones << zone.get
|
231
|
+
end
|
216
232
|
|
217
233
|
return_plenum = nil
|
218
234
|
unless system['return_plenum'].nil?
|
@@ -238,18 +254,17 @@ class OpenStudio::Model::Model
|
|
238
254
|
|
239
255
|
def update_waterheater_loss_coefficient(building_vintage)
|
240
256
|
case building_vintage
|
241
|
-
when '90.1-2004', '90.1-2007', '90.1-2010', '90.1-2013'
|
257
|
+
when '90.1-2004', '90.1-2007', '90.1-2010', '90.1-2013', 'NECB 2011'
|
242
258
|
self.getWaterHeaterMixeds.sort.each do |water_heater|
|
243
259
|
water_heater.setOffCycleLossCoefficienttoAmbientTemperature(11.25413987)
|
244
260
|
water_heater.setOnCycleLossCoefficienttoAmbientTemperature(11.25413987)
|
245
261
|
end
|
246
|
-
end
|
247
|
-
end
|
248
|
-
|
262
|
+
end
|
263
|
+
end
|
264
|
+
|
249
265
|
def custom_swh_tweaks(building_type, building_vintage, climate_zone, prototype_input)
|
250
266
|
|
251
267
|
self.update_waterheater_loss_coefficient(building_vintage)
|
252
|
-
|
253
268
|
return true
|
254
269
|
|
255
270
|
end
|
@@ -3,13 +3,27 @@
|
|
3
3
|
class OpenStudio::Model::Model
|
4
4
|
|
5
5
|
def define_space_type_map(building_type, building_vintage, climate_zone)
|
6
|
-
space_type_map =
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
6
|
+
space_type_map = nil
|
7
|
+
case building_vintage
|
8
|
+
when 'NECB 2011'
|
9
|
+
space_type_map ={
|
10
|
+
"Office - open plan" => ["Core_bottom", "Core_mid", "Core_top",
|
11
|
+
"Perimeter_bot_ZN_1", "Perimeter_bot_ZN_2", "Perimeter_bot_ZN_3",
|
12
|
+
"Perimeter_bot_ZN_4", "Perimeter_mid_ZN_1", "Perimeter_mid_ZN_2",
|
13
|
+
"Perimeter_mid_ZN_3", "Perimeter_mid_ZN_4", "Perimeter_top_ZN_1",
|
14
|
+
"Perimeter_top_ZN_2", "Perimeter_top_ZN_3", "Perimeter_top_ZN_4"],
|
15
|
+
|
16
|
+
"- undefined -" => ["FirstFloor_Plenum", "TopFloor_Plenum", "MidFloor_Plenum"]
|
17
|
+
}
|
18
|
+
else
|
19
|
+
space_type_map = {
|
20
|
+
'WholeBuilding - Md Office' => [
|
21
|
+
'Perimeter_bot_ZN_1', 'Perimeter_bot_ZN_2', 'Perimeter_bot_ZN_3', 'Perimeter_bot_ZN_4', 'Core_bottom',
|
22
|
+
'Perimeter_mid_ZN_1', 'Perimeter_mid_ZN_2', 'Perimeter_mid_ZN_3', 'Perimeter_mid_ZN_4', 'Core_mid',
|
23
|
+
'Perimeter_top_ZN_1', 'Perimeter_top_ZN_2', 'Perimeter_top_ZN_3', 'Perimeter_top_ZN_4', 'Core_top'
|
24
|
+
]
|
25
|
+
}
|
26
|
+
end
|
13
27
|
return space_type_map
|
14
28
|
end
|
15
29
|
|
@@ -19,63 +33,64 @@ class OpenStudio::Model::Model
|
|
19
33
|
system_to_space_map = [
|
20
34
|
{
|
21
35
|
'type' => 'PSZ-AC',
|
36
|
+
|
22
37
|
'space_names' =>
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
38
|
+
[
|
39
|
+
'Perimeter_bot_ZN_1',
|
40
|
+
'Perimeter_bot_ZN_2',
|
41
|
+
'Perimeter_bot_ZN_3',
|
42
|
+
'Perimeter_bot_ZN_4',
|
43
|
+
'Core_bottom',
|
44
|
+
'Perimeter_mid_ZN_1',
|
45
|
+
'Perimeter_mid_ZN_2',
|
46
|
+
'Perimeter_mid_ZN_3',
|
47
|
+
'Perimeter_mid_ZN_4',
|
48
|
+
'Core_mid',
|
49
|
+
'Perimeter_top_ZN_1',
|
50
|
+
'Perimeter_top_ZN_2',
|
51
|
+
'Perimeter_top_ZN_3',
|
52
|
+
'Perimeter_top_ZN_4',
|
53
|
+
'Core_top'
|
39
54
|
]
|
40
|
-
|
41
|
-
|
55
|
+
}
|
56
|
+
]
|
42
57
|
else
|
43
58
|
system_to_space_map = [
|
44
59
|
{
|
45
|
-
|
46
|
-
|
60
|
+
'type' => 'PVAV',
|
61
|
+
'space_names' =>
|
47
62
|
[
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
63
|
+
'Perimeter_bot_ZN_1',
|
64
|
+
'Perimeter_bot_ZN_2',
|
65
|
+
'Perimeter_bot_ZN_3',
|
66
|
+
'Perimeter_bot_ZN_4',
|
67
|
+
'Core_bottom'
|
68
|
+
],
|
69
|
+
'return_plenum' => 'FirstFloor_Plenum'
|
55
70
|
},
|
56
71
|
{
|
57
|
-
|
58
|
-
|
72
|
+
'type' => 'PVAV',
|
73
|
+
'space_names' =>
|
59
74
|
[
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
75
|
+
'Perimeter_mid_ZN_1',
|
76
|
+
'Perimeter_mid_ZN_2',
|
77
|
+
'Perimeter_mid_ZN_3',
|
78
|
+
'Perimeter_mid_ZN_4',
|
79
|
+
'Core_mid'
|
80
|
+
],
|
81
|
+
'return_plenum' => 'MidFloor_Plenum'
|
67
82
|
},
|
68
83
|
{
|
69
|
-
|
70
|
-
|
84
|
+
'type' => 'PVAV',
|
85
|
+
'space_names' =>
|
71
86
|
[
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
87
|
+
'Perimeter_top_ZN_1',
|
88
|
+
'Perimeter_top_ZN_2',
|
89
|
+
'Perimeter_top_ZN_3',
|
90
|
+
'Perimeter_top_ZN_4',
|
91
|
+
'Core_top'
|
92
|
+
],
|
93
|
+
'return_plenum' => 'TopFloor_Plenum'
|
79
94
|
}
|
80
95
|
]
|
81
96
|
end
|
@@ -109,7 +124,7 @@ class OpenStudio::Model::Model
|
|
109
124
|
|
110
125
|
def update_waterheater_loss_coefficient(building_vintage)
|
111
126
|
case building_vintage
|
112
|
-
when '90.1-2004', '90.1-2007', '90.1-2010', '90.1-2013'
|
127
|
+
when '90.1-2004', '90.1-2007', '90.1-2010', '90.1-2013', 'NECB 2011'
|
113
128
|
self.getWaterHeaterMixeds.sort.each do |water_heater|
|
114
129
|
water_heater.setOffCycleLossCoefficienttoAmbientTemperature(7.561562668)
|
115
130
|
water_heater.setOnCycleLossCoefficienttoAmbientTemperature(7.561562668)
|