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.
Files changed (59) hide show
  1. checksums.yaml +4 -4
  2. data/data/standards/OpenStudio_Standards.xlsx +0 -0
  3. data/data/standards/OpenStudio_Standards_chillers.json +5 -5
  4. data/data/standards/OpenStudio_Standards_construction_sets.json +2 -2
  5. data/data/standards/OpenStudio_Standards_curve_cubics.json +12 -0
  6. data/data/standards/OpenStudio_Standards_heat_pumps.json +2126 -72
  7. data/data/standards/OpenStudio_Standards_heat_pumps_heating.json +766 -14
  8. data/data/standards/OpenStudio_Standards_heat_rejection.json +172 -0
  9. data/data/standards/OpenStudio_Standards_prototype_inputs.json +355 -267
  10. data/data/standards/OpenStudio_Standards_schedules.json +262 -10
  11. data/data/standards/OpenStudio_Standards_space_types.json +1466 -794
  12. data/data/standards/manage_OpenStudio_Standards.rb +19 -21
  13. data/data/weather/weather_info.csv +96 -0
  14. data/lib/openstudio-standards/btap/btap.rb +1 -1
  15. data/lib/openstudio-standards/btap/compliance.rb +135 -40
  16. data/lib/openstudio-standards/btap/envelope.rb +26 -5
  17. data/lib/openstudio-standards/btap/geometry.rb +11 -1
  18. data/lib/openstudio-standards/btap/hvac.rb +489 -56
  19. data/lib/openstudio-standards/btap/simmanager.rb +1 -1
  20. data/lib/openstudio-standards/hvac_sizing/HVACSizing.CoilHeatingDXMultiSpeed.rb +120 -0
  21. data/lib/openstudio-standards/hvac_sizing/Siz.CoilCoolingDXMultiSpeed.rb +151 -7
  22. data/lib/openstudio-standards/hvac_sizing/Siz.CoilHeatingGasMultiStage.rb +48 -7
  23. data/lib/openstudio-standards/hvac_sizing/Siz.Model.rb +14 -12
  24. data/lib/openstudio-standards/prototypes/Prototype.AirTerminalSingleDuctVAVReheat.rb +33 -7
  25. data/lib/openstudio-standards/prototypes/Prototype.Model.hvac.rb +123 -91
  26. data/lib/openstudio-standards/prototypes/Prototype.Model.rb +130 -45
  27. data/lib/openstudio-standards/prototypes/Prototype.Model.swh.rb +13 -7
  28. data/lib/openstudio-standards/prototypes/Prototype.full_service_restaurant.rb +332 -324
  29. data/lib/openstudio-standards/prototypes/Prototype.hospital.rb +401 -99
  30. data/lib/openstudio-standards/prototypes/Prototype.hvac_systems.rb +309 -222
  31. data/lib/openstudio-standards/prototypes/Prototype.large_hotel.rb +100 -80
  32. data/lib/openstudio-standards/prototypes/Prototype.large_office.rb +37 -22
  33. data/lib/openstudio-standards/prototypes/Prototype.medium_office.rb +68 -53
  34. data/lib/openstudio-standards/prototypes/Prototype.mid_rise_apartment.rb +109 -88
  35. data/lib/openstudio-standards/prototypes/Prototype.outpatient.rb +52 -4
  36. data/lib/openstudio-standards/prototypes/Prototype.primary_school.rb +230 -213
  37. data/lib/openstudio-standards/prototypes/Prototype.quick_service_restaurant.rb +225 -218
  38. data/lib/openstudio-standards/prototypes/Prototype.retail_standalone.rb +29 -17
  39. data/lib/openstudio-standards/prototypes/Prototype.retail_stripmall.rb +42 -32
  40. data/lib/openstudio-standards/prototypes/Prototype.secondary_school.rb +331 -314
  41. data/lib/openstudio-standards/prototypes/Prototype.small_hotel.rb +233 -219
  42. data/lib/openstudio-standards/prototypes/Prototype.small_office.rb +40 -32
  43. data/lib/openstudio-standards/prototypes/Prototype.warehouse.rb +19 -6
  44. data/lib/openstudio-standards/standards/Standards.AirLoopHVAC.rb +576 -555
  45. data/lib/openstudio-standards/standards/Standards.AirTerminalSingleDuctVAVReheat.rb +3 -1
  46. data/lib/openstudio-standards/standards/Standards.BoilerHotWater.rb +35 -17
  47. data/lib/openstudio-standards/standards/Standards.ChillerElectricEIR.rb +51 -23
  48. data/lib/openstudio-standards/standards/Standards.CoilCoolingDXMultiSpeed.rb +255 -0
  49. data/lib/openstudio-standards/standards/Standards.CoilHeatingDXMultiSpeed.rb +192 -0
  50. data/lib/openstudio-standards/standards/Standards.CoilHeatingGasMultiStage.rb +65 -0
  51. data/lib/openstudio-standards/standards/Standards.Fan.rb +37 -6
  52. data/lib/openstudio-standards/standards/Standards.Model.rb +28 -3
  53. data/lib/openstudio-standards/standards/Standards.SpaceType.rb +3 -1
  54. data/lib/openstudio-standards/standards/Standards.WaterHeaterMixed.rb +41 -15
  55. data/lib/openstudio-standards/version.rb +1 -1
  56. data/lib/openstudio-standards/weather/Weather.Model.rb +509 -5
  57. data/lib/openstudio-standards/weather/Weather.stat_file.rb +145 -5
  58. metadata +8 -3
  59. data/lib/openstudio-standards/btap/environment.rb +0 -718
@@ -3,129 +3,147 @@
3
3
  class OpenStudio::Model::Model
4
4
 
5
5
  def define_space_type_map(building_type, building_vintage, climate_zone)
6
-
6
+
7
+ space_type_map = nil
8
+
7
9
  case building_vintage
8
10
  when '90.1-2004', '90.1-2007', '90.1-2010', '90.1-2013'
9
11
  space_type_map = {
10
- 'Office' => ['Office'],
11
- 'Corridor' => ['G Corridor', 'M Corridor'],
12
- 'Corridor_topfloor' => ['T Corridor'],
13
- 'Apartment' => [
14
- 'G SW Apartment',
15
- 'G NW Apartment',
16
- 'G NE Apartment',
17
- 'G N1 Apartment',
18
- 'G N2 Apartment',
19
- 'G S1 Apartment',
20
- 'G S2 Apartment',
21
- 'M SW Apartment',
22
- 'M NW Apartment',
23
- 'M SE Apartment',
24
- 'M NE Apartment',
25
- 'M N1 Apartment',
26
- 'M N2 Apartment',
27
- 'M S1 Apartment',
28
- 'M S2 Apartment'
29
- ],
30
- 'Apartment_topfloor_WE' => [
31
- 'T SW Apartment',
32
- 'T NW Apartment',
33
- 'T SE Apartment',
34
- 'T NE Apartment'
35
- ],
36
- 'Apartment_topfloor_NS' => [
37
- 'T N1 Apartment',
38
- 'T N2 Apartment',
39
- 'T S1 Apartment',
40
- 'T S2 Apartment'
41
- ]
42
- }
12
+ 'Office' => ['Office'],
13
+ 'Corridor' => ['G Corridor', 'M Corridor'],
14
+ 'Corridor_topfloor' => ['T Corridor'],
15
+ 'Apartment' => [
16
+ 'G SW Apartment',
17
+ 'G NW Apartment',
18
+ 'G NE Apartment',
19
+ 'G N1 Apartment',
20
+ 'G N2 Apartment',
21
+ 'G S1 Apartment',
22
+ 'G S2 Apartment',
23
+ 'M SW Apartment',
24
+ 'M NW Apartment',
25
+ 'M SE Apartment',
26
+ 'M NE Apartment',
27
+ 'M N1 Apartment',
28
+ 'M N2 Apartment',
29
+ 'M S1 Apartment',
30
+ 'M S2 Apartment'
31
+ ],
32
+ 'Apartment_topfloor_WE' => [
33
+ 'T SW Apartment',
34
+ 'T NW Apartment',
35
+ 'T SE Apartment',
36
+ 'T NE Apartment'
37
+ ],
38
+ 'Apartment_topfloor_NS' => [
39
+ 'T N1 Apartment',
40
+ 'T N2 Apartment',
41
+ 'T S1 Apartment',
42
+ 'T S2 Apartment'
43
+ ]
44
+ }
43
45
  when 'DOE Ref 1980-2004', 'DOE Ref Pre-1980'
44
46
  space_type_map = {
45
- 'Office' => ['Office'],
46
- 'Corridor' => ['G Corridor', 'M Corridor', 'T Corridor'],
47
- 'Apartment' => [
48
- 'G SW Apartment',
49
- 'G NW Apartment',
50
- 'G NE Apartment',
51
- 'G N1 Apartment',
52
- 'G N2 Apartment',
53
- 'G S1 Apartment',
54
- 'G S2 Apartment',
55
- 'M SW Apartment',
56
- 'M NW Apartment',
57
- 'M SE Apartment',
58
- 'M NE Apartment',
59
- 'M N1 Apartment',
60
- 'M N2 Apartment',
61
- 'M S1 Apartment',
62
- 'M S2 Apartment',
63
- 'T SW Apartment',
64
- 'T NW Apartment',
65
- 'T SE Apartment',
66
- 'T NE Apartment',
67
- 'T N1 Apartment',
68
- 'T N2 Apartment',
69
- 'T S1 Apartment',
70
- 'T S2 Apartment'
71
- ]
72
- }
47
+ 'Office' => ['Office'],
48
+ 'Corridor' => ['G Corridor', 'M Corridor', 'T Corridor'],
49
+ 'Apartment' => [
50
+ 'G SW Apartment',
51
+ 'G NW Apartment',
52
+ 'G NE Apartment',
53
+ 'G N1 Apartment',
54
+ 'G N2 Apartment',
55
+ 'G S1 Apartment',
56
+ 'G S2 Apartment',
57
+ 'M SW Apartment',
58
+ 'M NW Apartment',
59
+ 'M SE Apartment',
60
+ 'M NE Apartment',
61
+ 'M N1 Apartment',
62
+ 'M N2 Apartment',
63
+ 'M S1 Apartment',
64
+ 'M S2 Apartment',
65
+ 'T SW Apartment',
66
+ 'T NW Apartment',
67
+ 'T SE Apartment',
68
+ 'T NE Apartment',
69
+ 'T N1 Apartment',
70
+ 'T N2 Apartment',
71
+ 'T S1 Apartment',
72
+ 'T S2 Apartment'
73
+ ]
74
+ }
75
+
76
+ when 'NECB 2011'
77
+ space_type_map ={
78
+ "Corr. < 2.4m wide" => ["G Corridor", "M Corridor", "T Corridor"],
79
+
80
+ "Dormitory - living quarters" => ["G N1 Apartment", "G N2 Apartment", "G NE Apartment",
81
+ "G NW Apartment", "G S1 Apartment", "G S2 Apartment",
82
+ "G SW Apartment", "M N1 Apartment", "M N2 Apartment",
83
+ "M NE Apartment", "M NW Apartment", "M S1 Apartment",
84
+ "M S2 Apartment", "M SE Apartment", "M SW Apartment",
85
+ "T N1 Apartment", "T N2 Apartment", "T NE Apartment",
86
+ "T NW Apartment", "T S1 Apartment", "T S2 Apartment",
87
+ "T SE Apartment", "T SW Apartment"],
88
+ "Office - enclosed" => ["Office"]
89
+ }
73
90
  end
74
91
 
75
92
  return space_type_map
76
93
  end
77
94
 
95
+
78
96
  def define_hvac_system_map(building_type, building_vintage, climate_zone)
79
97
  system_to_space_map = [
80
98
  {'type' => 'SAC',
81
- 'space_names' => ['G SW Apartment']},
99
+ 'space_names' => ['G SW Apartment']},
82
100
  {'type' => 'SAC',
83
- 'space_names' => ['G NW Apartment']},
101
+ 'space_names' => ['G NW Apartment']},
84
102
  {'type' => 'SAC',
85
- 'space_names' => ['G NE Apartment']},
103
+ 'space_names' => ['G NE Apartment']},
86
104
  {'type' => 'SAC',
87
- 'space_names' => ['G N1 Apartment']},
105
+ 'space_names' => ['G N1 Apartment']},
88
106
  {'type' => 'SAC',
89
- 'space_names' => ['G N2 Apartment']},
107
+ 'space_names' => ['G N2 Apartment']},
90
108
  {'type' => 'SAC',
91
- 'space_names' => ['G S1 Apartment']},
109
+ 'space_names' => ['G S1 Apartment']},
92
110
  {'type' => 'SAC',
93
- 'space_names' => ['G S2 Apartment']},
111
+ 'space_names' => ['G S2 Apartment']},
94
112
  {'type' => 'SAC',
95
- 'space_names' => ['M SW Apartment']},
113
+ 'space_names' => ['M SW Apartment']},
96
114
  {'type' => 'SAC',
97
- 'space_names' => ['M NW Apartment']},
115
+ 'space_names' => ['M NW Apartment']},
98
116
  {'type' => 'SAC',
99
- 'space_names' => ['M SE Apartment']},
117
+ 'space_names' => ['M SE Apartment']},
100
118
  {'type' => 'SAC',
101
- 'space_names' => ['M NE Apartment']},
119
+ 'space_names' => ['M NE Apartment']},
102
120
  {'type' => 'SAC',
103
- 'space_names' => ['M N1 Apartment']},
121
+ 'space_names' => ['M N1 Apartment']},
104
122
  {'type' => 'SAC',
105
- 'space_names' => ['M N2 Apartment']},
123
+ 'space_names' => ['M N2 Apartment']},
106
124
  {'type' => 'SAC',
107
- 'space_names' => ['M S1 Apartment']},
125
+ 'space_names' => ['M S1 Apartment']},
108
126
  {'type' => 'SAC',
109
- 'space_names' => ['M S2 Apartment']},
127
+ 'space_names' => ['M S2 Apartment']},
110
128
  {'type' => 'SAC',
111
- 'space_names' => ['T SW Apartment']},
129
+ 'space_names' => ['T SW Apartment']},
112
130
  {'type' => 'SAC',
113
- 'space_names' => ['T NW Apartment']},
131
+ 'space_names' => ['T NW Apartment']},
114
132
  {'type' => 'SAC',
115
- 'space_names' => ['T SE Apartment']},
133
+ 'space_names' => ['T SE Apartment']},
116
134
  {'type' => 'SAC',
117
- 'space_names' => ['T NE Apartment']},
135
+ 'space_names' => ['T NE Apartment']},
118
136
  {'type' => 'SAC',
119
- 'space_names' => ['T N1 Apartment']},
137
+ 'space_names' => ['T N1 Apartment']},
120
138
  {'type' => 'SAC',
121
- 'space_names' => ['T N2 Apartment']},
139
+ 'space_names' => ['T N2 Apartment']},
122
140
  {'type' => 'SAC',
123
- 'space_names' => ['T S1 Apartment']},
141
+ 'space_names' => ['T S1 Apartment']},
124
142
  {'type' => 'SAC',
125
- 'space_names' => ['T S2 Apartment']},
143
+ 'space_names' => ['T S2 Apartment']},
126
144
  {'type' => 'SAC',
127
- 'space_names' => ['Office']}
128
- ]
145
+ 'space_names' => ['Office']}
146
+ ]
129
147
 
130
148
  case building_vintage
131
149
  when 'DOE Ref 1980-2004', 'DOE Ref Pre-1980'
@@ -157,12 +175,14 @@ class OpenStudio::Model::Model
157
175
 
158
176
  OpenStudio::logFree(OpenStudio::Info, 'openstudio.model.Model', 'Started building type specific adjustments')
159
177
 
178
+
160
179
  # adjust the cooling setpoint
161
180
  self.adjust_clg_setpoint(building_vintage,climate_zone)
162
181
  # add elevator and lights&fans for the ground floor corridor
163
182
  self.add_extra_equip_corridor(building_vintage)
164
183
  # add extra infiltration for ground floor corridor
165
184
  self.add_door_infiltration(building_vintage,climate_zone)
185
+
166
186
 
167
187
  OpenStudio::logFree(OpenStudio::Info, 'openstudio.model.Model', 'Finished building type specific adjustments')
168
188
 
@@ -184,6 +204,7 @@ class OpenStudio::Model::Model
184
204
  end
185
205
  end
186
206
 
207
+
187
208
  # add elevator and lights&fans for the ground floor corridor
188
209
  def add_extra_equip_corridor(building_vintage)
189
210
  corridor_ground_space = self.getSpaceByName('G Corridor').get
@@ -236,7 +257,7 @@ class OpenStudio::Model::Model
236
257
 
237
258
  def update_waterheater_loss_coefficient(building_vintage)
238
259
  case building_vintage
239
- when '90.1-2004', '90.1-2007', '90.1-2010', '90.1-2013'
260
+ when '90.1-2004', '90.1-2007', '90.1-2010', '90.1-2013', 'NECB 2011'
240
261
  self.getWaterHeaterMixeds.sort.each do |water_heater|
241
262
  water_heater.setOffCycleLossCoefficienttoAmbientTemperature(46.288874618)
242
263
  water_heater.setOnCycleLossCoefficienttoAmbientTemperature(46.288874618)
@@ -3,8 +3,50 @@
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
- # 'Floor 1 Anesthesia', 'Floor 1 Bio Haz', 'Floor 1 Cafe', 'Floor 1 Clean', 'Floor 1 Clean Work', 'Floor 1 Dictation', 'Floor 1 Dressing Room', 'Floor 1 Electrical Room', 'Floor 1 Elevator Pump Room', 'Floor 1 Humid', 'Floor 1 IT Hall', 'Floor 1 IT Room', 'Floor 1 Lobby', 'Floor 1 Lobby Hall', 'Floor 1 Lobby Toilet', 'Floor 1 Locker Room', 'Floor 1 Locker Room Hall', 'Floor 1 Lounge', 'Floor 1 Med Gas', 'Floor 1 MRI Control Room', 'Floor 1 MRI Hall', 'Floor 1 MRI Room', 'Floor 1 MRI Toilet', 'Floor 1 Nourishment', 'Floor 1 Nurse Hall', 'Floor 1 Nurse Janitor', 'Floor 1 Nurse Station', 'Floor 1 Nurse Toilet', 'Floor 1 Office', 'Floor 1 Operating Room 1', 'Floor 1 Operating Room 2', 'Floor 1 Operating Room 3', 'Floor 1 PACU', 'Floor 1 Pre-Op Hall', 'Floor 1 Pre-Op Room 1', 'Floor 1 Pre-Op Room 2', 'Floor 1 Pre-Op Toilet', 'Floor 1 Procedure Room', 'Floor 1 Reception', 'Floor 1 Reception Hall', 'Floor 1 Recovery Room', 'Floor 1 Scheduling', 'Floor 1 Scrub', 'Floor 1 Soil', 'Floor 1 Soil Hold', 'Floor 1 Soil Work', 'Floor 1 Step Down', 'Floor 1 Sterile Hall', 'Floor 1 Sterile Storage', 'Floor 1 Storage', 'Floor 1 Sub-Sterile', 'Floor 1 Utility Hall', 'Floor 1 Utility Janitor', 'Floor 1 Utility Room', 'Floor 1 Vestibule', 'Floor 2 Conference', 'Floor 2 Conference Toilet', 'Floor 2 Dictation', 'Floor 2 Exam 1', 'Floor 2 Exam 2', 'Floor 2 Exam 3', 'Floor 2 Exam 4', 'Floor 2 Exam 5', 'Floor 2 Exam 6', 'Floor 2 Exam 7', 'Floor 2 Exam 8', 'Floor 2 Exam 9', 'Floor 2 Exam Hall 1', 'Floor 2 Exam Hall 2', 'Floor 2 Exam Hall 3', 'Floor 2 Exam Hall 4', 'Floor 2 Exam Hall 5', 'Floor 2 Exam Hall 6', 'Floor 2 Janitor', 'Floor 2 Lounge', 'Floor 2 Nurse Station 1', 'Floor 2 Nurse Station 2', 'Floor 2 Office', 'Floor 2 Office Hall', 'Floor 2 Reception', 'Floor 2 Reception Hall', 'Floor 2 Reception Toilet', 'Floor 2 Scheduling 1', 'Floor 2 Scheduling 2', 'Floor 2 Storage 1', 'Floor 2 Storage 2', 'Floor 2 Storage 3', 'Floor 2 Utility', 'Floor 2 Work', 'Floor 2 Work Hall', 'Floor 2 Work Toilet', 'Floor 2 X-Ray', 'Floor 3 Dressing Room', 'Floor 3 Elevator Hall', 'Floor 3 Humid', 'Floor 3 Janitor', 'Floor 3 Locker', 'Floor 3 Lounge', 'Floor 3 Lounge Toilet', 'Floor 3 Mechanical', 'Floor 3 Mechanical Hall', 'Floor 3 Office', 'Floor 3 Office Hall', 'Floor 3 Office Toilet', 'Floor 3 Physical Therapy 1', 'Floor 3 Physical Therapy 2', 'Floor 3 Physical Therapy Toilet', 'Floor 3 Storage 1', 'Floor 3 Storage 2', 'Floor 3 Treatment', 'Floor 3 Undeveloped 1', 'Floor 3 Undeveloped 2', 'Floor 3 Utility', 'Floor 3 Work', 'NE Stair', 'NW Elevator', 'NW Stair', 'SW Stair'
6
+
7
+
8
+ space_type_map = nil
9
+ case building_vintage
10
+ when 'NECB 2011'
11
+ space_type_map ={
12
+ "Dormitory - living quarters" => ["Floor 1 Anesthesia", "Floor 1 Bio Haz", "Floor 1 Cafe",
13
+ "Floor 1 Clean", "Floor 1 Clean Work", "Floor 1 Dictation",
14
+ "Floor 1 Dressing Room", "Floor 1 Electrical Room", "Floor 1 Elevator Pump Room",
15
+ "Floor 1 Operating Room 1", "Floor 1 Operating Room 2", "Floor 1 Operating Room 3",
16
+ "Floor 1 Humid", "Floor 1 IT Hall", "Floor 1 IT Room", "Floor 1 Lobby Hall",
17
+ "Floor 1 Lobby", "Floor 1 Lobby Toilet", "Floor 1 Locker Room Hall",
18
+ "Floor 1 Locker Room", "Floor 1 Lounge", "Floor 1 Med Gas",
19
+ "Floor 1 MRI Control Room", "Floor 1 MRI Hall", "Floor 1 MRI Room", "Floor 1 MRI Toilet",
20
+ "Floor 1 Nourishment", "Floor 1 Nurse Hall", "Floor 1 Nurse Janitor",
21
+ "Floor 1 Nurse Station", "Floor 1 Nurse Toilet", "Floor 1 Office",
22
+ "Floor 1 PACU", "Floor 1 Pre-Op Hall", "Floor 1 Pre-Op Room 1", "Floor 1 Pre-Op Room 2",
23
+ "Floor 1 Pre-Op Toilet", "Floor 1 Procedure Room", "Floor 1 Reception Hall",
24
+ "Floor 1 Reception", "Floor 1 Recovery Room", "Floor 1 Scheduling", "Floor 1 Scrub",
25
+ "Floor 1 Soil Hold", "Floor 1 Soil", "Floor 1 Soil Work", "Floor 1 Step Down",
26
+ "Floor 1 Sterile Hall", "Floor 1 Sterile Storage", "Floor 1 Storage",
27
+ "Floor 1 Sub-Sterile", "Floor 1 Utility Hall", "Floor 1 Utility Janitor",
28
+ "Floor 1 Utility Room", "Floor 1 Vestibule", "Floor 2 Conference",
29
+ "Floor 2 Conference Toilet", "Floor 2 Dictation", "Floor 2 Exam 1", "Floor 2 Exam 2",
30
+ "Floor 2 Exam 3", "Floor 2 Exam 4", "Floor 2 Exam 5", "Floor 2 Exam 6", "Floor 2 Exam 7",
31
+ "Floor 2 Exam 8", "Floor 2 Exam 9", "Floor 2 Exam Hall 1", "Floor 2 Exam Hall 2",
32
+ "Floor 2 Exam Hall 3", "Floor 2 Exam Hall 4", "Floor 2 Exam Hall 5",
33
+ "Floor 2 Exam Hall 6", "Floor 2 Janitor", "Floor 2 Lounge", "Floor 2 Nurse Station 1",
34
+ "Floor 2 Nurse Station 2", "Floor 2 Office Hall", "Floor 2 Office", "Floor 2 Reception Hall",
35
+ "Floor 2 Reception", "Floor 2 Reception Toilet", "Floor 2 Scheduling 1",
36
+ "Floor 2 Scheduling 2", "Floor 2 Storage 1", "Floor 2 Storage 2",
37
+ "Floor 2 Storage 3", "Floor 2 Utility", "Floor 2 Work Hall",
38
+ "Floor 2 Work", "Floor 2 Work Toilet", "Floor 2 X-Ray", "Floor 3 Dressing Room",
39
+ "Floor 3 Elevator Hall", "Floor 3 Humid", "Floor 3 Janitor", "Floor 3 Locker",
40
+ "Floor 3 Lounge", "Floor 3 Lounge Toilet", "Floor 3 Mechanical Hall",
41
+ "Floor 3 Mechanical", "Floor 3 Office Hall", "Floor 3 Office", "Floor 3 Office Toilet",
42
+ "Floor 3 Physical Therapy 1", "Floor 3 Physical Therapy 2", "Floor 3 Physical Therapy Toilet",
43
+ "Floor 3 Storage 1", "Floor 3 Storage 2", "Floor 3 Treatment",
44
+ "Floor 3 Undeveloped 1", "Floor 3 Undeveloped 2",
45
+ "Floor 3 Utility", "Floor 3 Work", "NE Stair", "NW Elevator", "NW Stair", "SW Stair"]
46
+ }
47
+ else
48
+ space_type_map = {
49
+ # 'Floor 1 Anesthesia', 'Floor 1 Bio Haz', 'Floor 1 Cafe', 'Floor 1 Clean', 'Floor 1 Clean Work', 'Floor 1 Dictation', 'Floor 1 Dressing Room', 'Floor 1 Electrical Room', 'Floor 1 Elevator Pump Room', 'Floor 1 Humid', 'Floor 1 IT Hall', 'Floor 1 IT Room', 'Floor 1 Lobby', 'Floor 1 Lobby Hall', 'Floor 1 Lobby Toilet', 'Floor 1 Locker Room', 'Floor 1 Locker Room Hall', 'Floor 1 Lounge', 'Floor 1 Med Gas', 'Floor 1 MRI Control Room', 'Floor 1 MRI Hall', 'Floor 1 MRI Room', 'Floor 1 MRI Toilet', 'Floor 1 Nourishment', 'Floor 1 Nurse Hall', 'Floor 1 Nurse Janitor', 'Floor 1 Nurse Station', 'Floor 1 Nurse Toilet', 'Floor 1 Office', 'Floor 1 Operating Room 1', 'Floor 1 Operating Room 2', 'Floor 1 Operating Room 3', 'Floor 1 PACU', 'Floor 1 Pre-Op Hall', 'Floor 1 Pre-Op Room 1', 'Floor 1 Pre-Op Room 2', 'Floor 1 Pre-Op Toilet', 'Floor 1 Procedure Room', 'Floor 1 Reception', 'Floor 1 Reception Hall', 'Floor 1 Recovery Room', 'Floor 1 Scheduling', 'Floor 1 Scrub', 'Floor 1 Soil', 'Floor 1 Soil Hold', 'Floor 1 Soil Work', 'Floor 1 Step Down', 'Floor 1 Sterile Hall', 'Floor 1 Sterile Storage', 'Floor 1 Storage', 'Floor 1 Sub-Sterile', 'Floor 1 Utility Hall', 'Floor 1 Utility Janitor', 'Floor 1 Utility Room', 'Floor 1 Vestibule', 'Floor 2 Conference', 'Floor 2 Conference Toilet', 'Floor 2 Dictation', 'Floor 2 Exam 1', 'Floor 2 Exam 2', 'Floor 2 Exam 3', 'Floor 2 Exam 4', 'Floor 2 Exam 5', 'Floor 2 Exam 6', 'Floor 2 Exam 7', 'Floor 2 Exam 8', 'Floor 2 Exam 9', 'Floor 2 Exam Hall 1', 'Floor 2 Exam Hall 2', 'Floor 2 Exam Hall 3', 'Floor 2 Exam Hall 4', 'Floor 2 Exam Hall 5', 'Floor 2 Exam Hall 6', 'Floor 2 Janitor', 'Floor 2 Lounge', 'Floor 2 Nurse Station 1', 'Floor 2 Nurse Station 2', 'Floor 2 Office', 'Floor 2 Office Hall', 'Floor 2 Reception', 'Floor 2 Reception Hall', 'Floor 2 Reception Toilet', 'Floor 2 Scheduling 1', 'Floor 2 Scheduling 2', 'Floor 2 Storage 1', 'Floor 2 Storage 2', 'Floor 2 Storage 3', 'Floor 2 Utility', 'Floor 2 Work', 'Floor 2 Work Hall', 'Floor 2 Work Toilet', 'Floor 2 X-Ray', 'Floor 3 Dressing Room', 'Floor 3 Elevator Hall', 'Floor 3 Humid', 'Floor 3 Janitor', 'Floor 3 Locker', 'Floor 3 Lounge', 'Floor 3 Lounge Toilet', 'Floor 3 Mechanical', 'Floor 3 Mechanical Hall', 'Floor 3 Office', 'Floor 3 Office Hall', 'Floor 3 Office Toilet', 'Floor 3 Physical Therapy 1', 'Floor 3 Physical Therapy 2', 'Floor 3 Physical Therapy Toilet', 'Floor 3 Storage 1', 'Floor 3 Storage 2', 'Floor 3 Treatment', 'Floor 3 Undeveloped 1', 'Floor 3 Undeveloped 2', 'Floor 3 Utility', 'Floor 3 Work', 'NE Stair', 'NW Elevator', 'NW Stair', 'SW Stair'
8
50
 
9
51
  # TODO: still need to put these into their space types...
10
52
  # all zones mapped
@@ -61,10 +103,14 @@ class OpenStudio::Model::Model
61
103
  # Add new space type 'Undeveloped'
62
104
  'Undeveloped' => ['Floor 3 Undeveloped 1', 'Floor 3 Undeveloped 2']
63
105
  }
106
+ end
107
+
64
108
  return space_type_map
109
+
65
110
  end
66
111
 
67
112
  def define_hvac_system_map(building_type, building_vintage, climate_zone)
113
+
68
114
  case building_vintage
69
115
  when '90.1-2004', '90.1-2007', '90.1-2010', '90.1-2013'
70
116
  system_to_space_map = [
@@ -230,7 +276,6 @@ class OpenStudio::Model::Model
230
276
  ]
231
277
  end
232
278
 
233
-
234
279
  return system_to_space_map
235
280
  end
236
281
 
@@ -294,6 +339,7 @@ class OpenStudio::Model::Model
294
339
  return true
295
340
  end
296
341
 
342
+
297
343
  def adjust_clg_setpoint(building_vintage,climate_zone)
298
344
  self.getSpaceTypes.sort.each do |space_type|
299
345
  space_type_name = space_type.name.get
@@ -349,6 +395,7 @@ class OpenStudio::Model::Model
349
395
  end
350
396
  end
351
397
 
398
+
352
399
  def add_door_infiltration(building_vintage,climate_zone)
353
400
  # add extra infiltration for vestibule door
354
401
  case building_vintage
@@ -380,7 +427,7 @@ class OpenStudio::Model::Model
380
427
 
381
428
  def update_waterheater_loss_coefficient(building_vintage)
382
429
  case building_vintage
383
- when '90.1-2004', '90.1-2007', '90.1-2010', '90.1-2013'
430
+ when '90.1-2004', '90.1-2007', '90.1-2010', '90.1-2013', 'NECB 2011'
384
431
  self.getWaterHeaterMixeds.sort.each do |water_heater|
385
432
  if water_heater.name.to_s.include?("Booster")
386
433
  water_heater.setOffCycleLossCoefficienttoAmbientTemperature(1.053159296)
@@ -542,3 +589,4 @@ class OpenStudio::Model::Model
542
589
  end
543
590
 
544
591
  end
592
+
@@ -2,40 +2,57 @@
2
2
  # Extend the class to add Secondary School specific stuff
3
3
  class OpenStudio::Model::Model
4
4
 
5
- def define_space_type_map(building_type, building_vintage, climate_zone)
6
-
7
- space_type_map = {
8
- 'Office' => ['Offices_ZN_1_FLR_1'],
9
- 'Lobby' => ['Lobby_ZN_1_FLR_1'],
10
- 'Gym' => ['Gym_ZN_1_FLR_1'],
11
- 'Mechanical' => ['Mech_ZN_1_FLR_1'],
12
- 'Cafeteria' => ['Cafeteria_ZN_1_FLR_1'],
13
- 'Kitchen' => ['Kitchen_ZN_1_FLR_1'],
14
- 'Restroom' => ['Bath_ZN_1_FLR_1', 'Bathrooms_ZN_1_FLR_1'],
15
- 'Corridor' => [
16
- 'Corridor_Pod_1_ZN_1_FLR_1',
17
- 'Corridor_Pod_2_ZN_1_FLR_1',
18
- 'Corridor_Pod_3_ZN_1_FLR_1',
19
- 'Main_Corridor_ZN_1_FLR_1'
20
- ],
21
- 'Classroom' => [
22
- 'Computer_Class_ZN_1_FLR_1',
23
- 'Corner_Class_1_Pod_1_ZN_1_FLR_1',
24
- 'Corner_Class_1_Pod_2_ZN_1_FLR_1',
25
- 'Corner_Class_1_Pod_3_ZN_1_FLR_1',
26
- 'Corner_Class_2_Pod_1_ZN_1_FLR_1',
27
- 'Corner_Class_2_Pod_2_ZN_1_FLR_1',
28
- 'Corner_Class_2_Pod_3_ZN_1_FLR_1',
29
- 'Library_Media_Center_ZN_1_FLR_1',
30
- 'Mult_Class_1_Pod_1_ZN_1_FLR_1',
31
- 'Mult_Class_1_Pod_2_ZN_1_FLR_1',
32
- 'Mult_Class_1_Pod_3_ZN_1_FLR_1',
33
- 'Mult_Class_2_Pod_1_ZN_1_FLR_1',
34
- 'Mult_Class_2_Pod_2_ZN_1_FLR_1',
35
- 'Mult_Class_2_Pod_3_ZN_1_FLR_1'
36
- ]
37
- }
38
-
5
+ def define_space_type_map(building_type, building_vintage, climate_zone)
6
+
7
+ space_type_map = nil
8
+ case building_vintage
9
+ when 'NECB 2011'
10
+ space_type_map ={
11
+ "Washroom" => ["Bath_ZN_1_FLR_1"],
12
+ "Conf./meet./multi-purpose" => ["Cafeteria_ZN_1_FLR_1"],
13
+ "Lab - classrooms" => ["Computer_Class_ZN_1_FLR_1"],
14
+ "Classroom/lecture/training" => ["Corner_Class_1_Pod_1_ZN_1_FLR_1", "Corner_Class_1_Pod_2_ZN_1_FLR_1", "Corner_Class_1_Pod_3_ZN_1_FLR_1", "Corner_Class_2_Pod_1_ZN_1_FLR_1", "Corner_Class_2_Pod_2_ZN_1_FLR_1", "Corner_Class_2_Pod_3_ZN_1_FLR_1", "Mult_Class_1_Pod_1_ZN_1_FLR_1", "Mult_Class_1_Pod_2_ZN_1_FLR_1", "Mult_Class_1_Pod_3_ZN_1_FLR_1", "Mult_Class_2_Pod_1_ZN_1_FLR_1", "Mult_Class_2_Pod_2_ZN_1_FLR_1", "Mult_Class_2_Pod_3_ZN_1_FLR_1"],
15
+ "Corr. >= 2.4m wide" => ["Corridor_Pod_1_ZN_1_FLR_1", "Corridor_Pod_2_ZN_1_FLR_1", "Corridor_Pod_3_ZN_1_FLR_1", "Main_Corridor_ZN_1_FLR_1"],
16
+ "Gym - play" => ["Gym_ZN_1_FLR_1"],
17
+ "Food preparation" => ["Kitchen_ZN_1_FLR_1"],
18
+ "Library - reading" => ["Library_Media_Center_ZN_1_FLR_1"],
19
+ "Lobby - elevator" => ["Lobby_ZN_1_FLR_1"],
20
+ "Electrical/Mechanical" => ["Mech_ZN_1_FLR_1"],
21
+ "Office - enclosed" => ["Offices_ZN_1_FLR_1"]
22
+ }
23
+ else
24
+ space_type_map = {
25
+ 'Office' => ['Offices_ZN_1_FLR_1'],
26
+ 'Lobby' => ['Lobby_ZN_1_FLR_1'],
27
+ 'Gym' => ['Gym_ZN_1_FLR_1'],
28
+ 'Mechanical' => ['Mech_ZN_1_FLR_1'],
29
+ 'Cafeteria' => ['Cafeteria_ZN_1_FLR_1'],
30
+ 'Kitchen' => ['Kitchen_ZN_1_FLR_1'],
31
+ 'Restroom' => ['Bath_ZN_1_FLR_1', 'Bathrooms_ZN_1_FLR_1'],
32
+ 'Corridor' => [
33
+ 'Corridor_Pod_1_ZN_1_FLR_1',
34
+ 'Corridor_Pod_2_ZN_1_FLR_1',
35
+ 'Corridor_Pod_3_ZN_1_FLR_1',
36
+ 'Main_Corridor_ZN_1_FLR_1'
37
+ ],
38
+ 'Classroom' => [
39
+ 'Computer_Class_ZN_1_FLR_1',
40
+ 'Corner_Class_1_Pod_1_ZN_1_FLR_1',
41
+ 'Corner_Class_1_Pod_2_ZN_1_FLR_1',
42
+ 'Corner_Class_1_Pod_3_ZN_1_FLR_1',
43
+ 'Corner_Class_2_Pod_1_ZN_1_FLR_1',
44
+ 'Corner_Class_2_Pod_2_ZN_1_FLR_1',
45
+ 'Corner_Class_2_Pod_3_ZN_1_FLR_1',
46
+ 'Library_Media_Center_ZN_1_FLR_1',
47
+ 'Mult_Class_1_Pod_1_ZN_1_FLR_1',
48
+ 'Mult_Class_1_Pod_2_ZN_1_FLR_1',
49
+ 'Mult_Class_1_Pod_3_ZN_1_FLR_1',
50
+ 'Mult_Class_2_Pod_1_ZN_1_FLR_1',
51
+ 'Mult_Class_2_Pod_2_ZN_1_FLR_1',
52
+ 'Mult_Class_2_Pod_3_ZN_1_FLR_1'
53
+ ]
54
+ }
55
+ end
39
56
  return space_type_map
40
57
 
41
58
  end
@@ -46,220 +63,220 @@ class OpenStudio::Model::Model
46
63
 
47
64
  #case building_vintage
48
65
  #when 'DOE Ref Pre-1980', 'DOE Ref 1980-2004'
49
- # system_to_space_map = [
50
- # {
51
- # 'type' => 'PVAV',
52
- # 'name' => 'PVAV_POD_1',
53
- # 'space_names' =>
54
- # [
55
- # 'Corner_Class_1_Pod_1_ZN_1_FLR_1',
56
- # 'Mult_Class_1_Pod_1_ZN_1_FLR_1',
57
- # 'Corridor_Pod_1_ZN_1_FLR_1',
58
- # 'Corner_Class_2_Pod_1_ZN_1_FLR_1',
59
- # 'Mult_Class_2_Pod_1_ZN_1_FLR_1',
60
- # 'Corner_Class_1_Pod_2_ZN_1_FLR_1'
61
- # ]
62
- # },
63
- # {
64
- # 'type' => 'PVAV',
65
- # 'name' => 'PVAV_POD_2',
66
- # 'space_names' =>
67
- # [
68
- # 'Mult_Class_1_Pod_2_ZN_1_FLR_1',
69
- # 'Corridor_Pod_2_ZN_1_FLR_1',
70
- # 'Corner_Class_2_Pod_2_ZN_1_FLR_1',
71
- # 'Mult_Class_2_Pod_2_ZN_1_FLR_1'
72
- # ]
73
- # },
74
- # {
75
- # 'type' => 'PVAV',
76
- # 'name' => 'PVAV_POD_3',
77
- # 'space_names' =>
78
- # [
79
- # 'Corner_Class_1_Pod_3_ZN_1_FLR_1',
80
- # 'Mult_Class_1_Pod_3_ZN_1_FLR_1',
81
- # 'Corridor_Pod_3_ZN_1_FLR_1',
82
- # 'Corner_Class_2_Pod_3_ZN_1_FLR_1',
83
- # 'Mult_Class_2_Pod_3_ZN_1_FLR_1'
84
- # ]
85
- # },
86
- # {
87
- # 'type' => 'PVAV',
88
- # 'name' => 'PVAV_OTHER',
89
- # 'space_names' =>
90
- # [
91
- # 'Computer_Class_ZN_1_FLR_1',
92
- # 'Main_Corridor_ZN_1_FLR_1',
93
- # 'Lobby_ZN_1_FLR_1',
94
- # 'Mech_ZN_1_FLR_1',
95
- # 'Bath_ZN_1_FLR_1',
96
- # 'Offices_ZN_1_FLR_1',
97
- # 'Library_Media_Center_ZN_1_FLR_1'
98
- # ]
99
- # },
100
- # {
101
- # 'type' => 'PSZ-AC',
102
- # 'name' => 'PSZ-AC_1-6',
103
- # 'space_names' =>
104
- # [
105
- # 'Kitchen_ZN_1_FLR_1'
106
- # ]
107
- # },
108
- # {
109
- # 'type' => 'PSZ-AC',
110
- # 'name' => 'PSZ-AC_2-5',
111
- # 'space_names' =>
112
- # [
113
- # 'Gym_ZN_1_FLR_1'
114
- # ]
115
- # },
116
- # {
117
- # 'type' => 'PSZ-AC',
118
- # 'name' => 'PSZ-AC_2-7',
119
- # 'space_names' =>
120
- # [
121
- # 'Cafeteria_ZN_1_FLR_1'
122
- # ]
123
- # }
124
- # ]
66
+ # system_to_space_map = [
67
+ # {
68
+ # 'type' => 'PVAV',
69
+ # 'name' => 'PVAV_POD_1',
70
+ # 'space_names' =>
71
+ # [
72
+ # 'Corner_Class_1_Pod_1_ZN_1_FLR_1',
73
+ # 'Mult_Class_1_Pod_1_ZN_1_FLR_1',
74
+ # 'Corridor_Pod_1_ZN_1_FLR_1',
75
+ # 'Corner_Class_2_Pod_1_ZN_1_FLR_1',
76
+ # 'Mult_Class_2_Pod_1_ZN_1_FLR_1',
77
+ # 'Corner_Class_1_Pod_2_ZN_1_FLR_1'
78
+ # ]
79
+ # },
80
+ # {
81
+ # 'type' => 'PVAV',
82
+ # 'name' => 'PVAV_POD_2',
83
+ # 'space_names' =>
84
+ # [
85
+ # 'Mult_Class_1_Pod_2_ZN_1_FLR_1',
86
+ # 'Corridor_Pod_2_ZN_1_FLR_1',
87
+ # 'Corner_Class_2_Pod_2_ZN_1_FLR_1',
88
+ # 'Mult_Class_2_Pod_2_ZN_1_FLR_1'
89
+ # ]
90
+ # },
91
+ # {
92
+ # 'type' => 'PVAV',
93
+ # 'name' => 'PVAV_POD_3',
94
+ # 'space_names' =>
95
+ # [
96
+ # 'Corner_Class_1_Pod_3_ZN_1_FLR_1',
97
+ # 'Mult_Class_1_Pod_3_ZN_1_FLR_1',
98
+ # 'Corridor_Pod_3_ZN_1_FLR_1',
99
+ # 'Corner_Class_2_Pod_3_ZN_1_FLR_1',
100
+ # 'Mult_Class_2_Pod_3_ZN_1_FLR_1'
101
+ # ]
102
+ # },
103
+ # {
104
+ # 'type' => 'PVAV',
105
+ # 'name' => 'PVAV_OTHER',
106
+ # 'space_names' =>
107
+ # [
108
+ # 'Computer_Class_ZN_1_FLR_1',
109
+ # 'Main_Corridor_ZN_1_FLR_1',
110
+ # 'Lobby_ZN_1_FLR_1',
111
+ # 'Mech_ZN_1_FLR_1',
112
+ # 'Bath_ZN_1_FLR_1',
113
+ # 'Offices_ZN_1_FLR_1',
114
+ # 'Library_Media_Center_ZN_1_FLR_1'
115
+ # ]
116
+ # },
117
+ # {
118
+ # 'type' => 'PSZ-AC',
119
+ # 'name' => 'PSZ-AC_1-6',
120
+ # 'space_names' =>
121
+ # [
122
+ # 'Kitchen_ZN_1_FLR_1'
123
+ # ]
124
+ # },
125
+ # {
126
+ # 'type' => 'PSZ-AC',
127
+ # 'name' => 'PSZ-AC_2-5',
128
+ # 'space_names' =>
129
+ # [
130
+ # 'Gym_ZN_1_FLR_1'
131
+ # ]
132
+ # },
133
+ # {
134
+ # 'type' => 'PSZ-AC',
135
+ # 'name' => 'PSZ-AC_2-7',
136
+ # 'space_names' =>
137
+ # [
138
+ # 'Cafeteria_ZN_1_FLR_1'
139
+ # ]
140
+ # }
141
+ # ]
125
142
 
126
143
  #when '90.1-2004', '90.1-2007', '90.1-2010', '90.1-2013'
127
- system_to_space_map = [
144
+ system_to_space_map = [
128
145
  {
129
- 'type' => 'PVAV',
130
- 'name' => 'PVAV_POD_1',
131
- 'space_names' =>
146
+ 'type' => 'PVAV',
147
+ 'name' => 'PVAV_POD_1',
148
+ 'space_names' =>
132
149
  [
133
- 'Corner_Class_1_Pod_1_ZN_1_FLR_1',
134
- 'Mult_Class_1_Pod_1_ZN_1_FLR_1',
135
- 'Corridor_Pod_1_ZN_1_FLR_1',
136
- 'Corner_Class_2_Pod_1_ZN_1_FLR_1',
137
- 'Mult_Class_2_Pod_1_ZN_1_FLR_1'
138
- ]
150
+ 'Corner_Class_1_Pod_1_ZN_1_FLR_1',
151
+ 'Mult_Class_1_Pod_1_ZN_1_FLR_1',
152
+ 'Corridor_Pod_1_ZN_1_FLR_1',
153
+ 'Corner_Class_2_Pod_1_ZN_1_FLR_1',
154
+ 'Mult_Class_2_Pod_1_ZN_1_FLR_1'
155
+ ]
139
156
  },
140
157
  {
141
- 'type' => 'PVAV',
142
- 'name' => 'PVAV_POD_2',
143
- 'space_names' =>
158
+ 'type' => 'PVAV',
159
+ 'name' => 'PVAV_POD_2',
160
+ 'space_names' =>
144
161
  [
145
- 'Mult_Class_1_Pod_2_ZN_1_FLR_1',
146
- 'Corridor_Pod_2_ZN_1_FLR_1',
147
- 'Corner_Class_2_Pod_2_ZN_1_FLR_1',
148
- 'Mult_Class_2_Pod_2_ZN_1_FLR_1',
149
- 'Corner_Class_1_Pod_2_ZN_1_FLR_1'
150
- ]
162
+ 'Mult_Class_1_Pod_2_ZN_1_FLR_1',
163
+ 'Corridor_Pod_2_ZN_1_FLR_1',
164
+ 'Corner_Class_2_Pod_2_ZN_1_FLR_1',
165
+ 'Mult_Class_2_Pod_2_ZN_1_FLR_1',
166
+ 'Corner_Class_1_Pod_2_ZN_1_FLR_1'
167
+ ]
151
168
  },
152
169
  {
153
- 'type' => 'PVAV',
154
- 'name' => 'PVAV_POD_3',
155
- 'space_names' =>
170
+ 'type' => 'PVAV',
171
+ 'name' => 'PVAV_POD_3',
172
+ 'space_names' =>
156
173
  [
157
- 'Corner_Class_1_Pod_3_ZN_1_FLR_1',
158
- 'Mult_Class_1_Pod_3_ZN_1_FLR_1',
159
- 'Corridor_Pod_3_ZN_1_FLR_1',
160
- 'Corner_Class_2_Pod_3_ZN_1_FLR_1',
161
- 'Mult_Class_2_Pod_3_ZN_1_FLR_1'
162
- ]
174
+ 'Corner_Class_1_Pod_3_ZN_1_FLR_1',
175
+ 'Mult_Class_1_Pod_3_ZN_1_FLR_1',
176
+ 'Corridor_Pod_3_ZN_1_FLR_1',
177
+ 'Corner_Class_2_Pod_3_ZN_1_FLR_1',
178
+ 'Mult_Class_2_Pod_3_ZN_1_FLR_1'
179
+ ]
163
180
  },
164
181
  {
165
- 'type' => 'PVAV',
166
- 'name' => 'PVAV_OTHER',
167
- 'space_names' =>
182
+ 'type' => 'PVAV',
183
+ 'name' => 'PVAV_OTHER',
184
+ 'space_names' =>
168
185
  [
169
- 'Computer_Class_ZN_1_FLR_1',
170
- 'Main_Corridor_ZN_1_FLR_1',
171
- 'Lobby_ZN_1_FLR_1',
172
- 'Mech_ZN_1_FLR_1',
173
- 'Bath_ZN_1_FLR_1',
174
- 'Offices_ZN_1_FLR_1',
175
- 'Library_Media_Center_ZN_1_FLR_1'
176
- ]
186
+ 'Computer_Class_ZN_1_FLR_1',
187
+ 'Main_Corridor_ZN_1_FLR_1',
188
+ 'Lobby_ZN_1_FLR_1',
189
+ 'Mech_ZN_1_FLR_1',
190
+ 'Bath_ZN_1_FLR_1',
191
+ 'Offices_ZN_1_FLR_1',
192
+ 'Library_Media_Center_ZN_1_FLR_1'
193
+ ]
177
194
  },
178
195
  {
179
- 'type' => 'PSZ-AC',
180
- 'name' => 'PSZ-AC_1-6',
181
- 'space_names' =>
196
+ 'type' => 'PSZ-AC',
197
+ 'name' => 'PSZ-AC_1-6',
198
+ 'space_names' =>
182
199
  [
183
- 'Kitchen_ZN_1_FLR_1'
184
- ]
200
+ 'Kitchen_ZN_1_FLR_1'
201
+ ]
185
202
  },
186
203
  {
187
- 'type' => 'PSZ-AC',
188
- 'name' => 'PSZ-AC_2-5',
189
- 'space_names' =>
204
+ 'type' => 'PSZ-AC',
205
+ 'name' => 'PSZ-AC_2-5',
206
+ 'space_names' =>
190
207
  [
191
- 'Gym_ZN_1_FLR_1'
192
- ]
208
+ 'Gym_ZN_1_FLR_1'
209
+ ]
193
210
  },
194
211
  {
195
- 'type' => 'PSZ-AC',
196
- 'name' => 'PSZ-AC_2-7',
197
- 'space_names' =>
212
+ 'type' => 'PSZ-AC',
213
+ 'name' => 'PSZ-AC_2-7',
214
+ 'space_names' =>
198
215
  [
199
- 'Cafeteria_ZN_1_FLR_1'
200
- ]
216
+ 'Cafeteria_ZN_1_FLR_1'
217
+ ]
201
218
  },
202
219
  {
203
- 'type' => 'Exhaust Fan',
204
- 'name' => 'Kitchen Exhaust Fan',
205
- 'availability_sch_name' => 'SchoolPrimary Kitchen_Exhaust_SCH',
206
- 'flow_rate' => OpenStudio.convert(4500,'cfm','m^3/s').get,
207
- 'flow_fraction_schedule_name' => 'SchoolSecondary Kitchen_Exhaust_SCH_DCV',
208
- 'balanced_exhaust_fraction_schedule_name' => 'SchoolSecondary Kitchen Exhaust Fan Balanced Exhaust Fraction Schedule',
209
- 'space_names' =>
220
+ 'type' => 'Exhaust Fan',
221
+ 'name' => 'Kitchen Exhaust Fan',
222
+ 'availability_sch_name' => 'SchoolPrimary Kitchen_Exhaust_SCH',
223
+ 'flow_rate' => OpenStudio.convert(4500,'cfm','m^3/s').get,
224
+ 'flow_fraction_schedule_name' => 'SchoolSecondary Kitchen_Exhaust_SCH_DCV',
225
+ 'balanced_exhaust_fraction_schedule_name' => 'SchoolSecondary Kitchen Exhaust Fan Balanced Exhaust Fraction Schedule',
226
+ 'space_names' =>
210
227
  [
211
- 'Kitchen_ZN_1_FLR_1'
212
- ]
228
+ 'Kitchen_ZN_1_FLR_1'
229
+ ]
213
230
  },
214
231
  {
215
- 'type' => 'Exhaust Fan',
216
- 'name' => 'Bathrooms_ZN_1_FLR_1',
217
- 'availability_sch_name' => 'SchoolPrimary Hours_of_operation',
218
- 'flow_rate' => OpenStudio.convert(600,'cfm','m^3/s').get,
219
- 'space_names' =>
232
+ 'type' => 'Exhaust Fan',
233
+ 'name' => 'Bathrooms_ZN_1_FLR_1',
234
+ 'availability_sch_name' => 'SchoolPrimary Hours_of_operation',
235
+ 'flow_rate' => OpenStudio.convert(600,'cfm','m^3/s').get,
236
+ 'space_names' =>
220
237
  [
221
- 'Bath_ZN_1_FLR_1'
222
- ]
238
+ 'Bath_ZN_1_FLR_1'
239
+ ]
223
240
  },
224
241
  {
225
- 'type' => 'Refrigeration',
226
- 'case_type' => 'Walkin Freezer',
227
- 'cooling_capacity_per_length' => 734.0,
228
- 'length' => 3.66,
229
- 'evaporator_fan_pwr_per_length' => 68.3,
230
- 'lighting_per_length' => 33.0,
231
- 'lighting_sch_name' => 'SchoolSecondary BLDG_LIGHT_SCH',
232
- 'defrost_pwr_per_length' => 410.0,
233
- 'restocking_sch_name' => 'SchoolSecondary Kitchen_ZN_1_FLR_1_Case:1_WALKINFREEZER_WalkInStockingSched',
234
- 'cop' => 1.5,
235
- 'cop_f_of_t_curve_name' => 'RACK1_RackCOPfTCurve',
236
- 'condenser_fan_pwr' => 750.0,
237
- 'condenser_fan_pwr_curve_name' => 'RACK1_RackCondFanCurve2',
238
- 'space_names' =>
242
+ 'type' => 'Refrigeration',
243
+ 'case_type' => 'Walkin Freezer',
244
+ 'cooling_capacity_per_length' => 734.0,
245
+ 'length' => 3.66,
246
+ 'evaporator_fan_pwr_per_length' => 68.3,
247
+ 'lighting_per_length' => 33.0,
248
+ 'lighting_sch_name' => 'SchoolSecondary BLDG_LIGHT_SCH',
249
+ 'defrost_pwr_per_length' => 410.0,
250
+ 'restocking_sch_name' => 'SchoolSecondary Kitchen_ZN_1_FLR_1_Case:1_WALKINFREEZER_WalkInStockingSched',
251
+ 'cop' => 1.5,
252
+ 'cop_f_of_t_curve_name' => 'RACK1_RackCOPfTCurve',
253
+ 'condenser_fan_pwr' => 750.0,
254
+ 'condenser_fan_pwr_curve_name' => 'RACK1_RackCondFanCurve2',
255
+ 'space_names' =>
239
256
  [
240
- 'Kitchen_ZN_1_FLR_1'
241
- ]
257
+ 'Kitchen_ZN_1_FLR_1'
258
+ ]
242
259
  },
243
260
  {
244
- 'type' => 'Refrigeration',
245
- 'case_type' => 'Display Case',
246
- 'cooling_capacity_per_length' => 734.0,
247
- 'length' => 3.66,
248
- 'evaporator_fan_pwr_per_length' => 55.0,
249
- 'lighting_per_length' => 33.0,
250
- 'lighting_sch_name' => 'SchoolSecondary BLDG_LIGHT_SCH',
251
- 'defrost_pwr_per_length' => 0.0,
252
- 'restocking_sch_name' => 'SchoolSecondary Kitchen_ZN_1_FLR_1_Case:1_WALKINFREEZER_WalkInStockingSched',
253
- 'cop' => 3.0,
254
- 'cop_f_of_t_curve_name' => 'RACK2_RackCOPfTCurve',
255
- 'condenser_fan_pwr' => 750.0,
256
- 'condenser_fan_pwr_curve_name' => 'RACK1_RackCondFanCurve2',
257
- 'space_names' =>
261
+ 'type' => 'Refrigeration',
262
+ 'case_type' => 'Display Case',
263
+ 'cooling_capacity_per_length' => 734.0,
264
+ 'length' => 3.66,
265
+ 'evaporator_fan_pwr_per_length' => 55.0,
266
+ 'lighting_per_length' => 33.0,
267
+ 'lighting_sch_name' => 'SchoolSecondary BLDG_LIGHT_SCH',
268
+ 'defrost_pwr_per_length' => 0.0,
269
+ 'restocking_sch_name' => 'SchoolSecondary Kitchen_ZN_1_FLR_1_Case:1_WALKINFREEZER_WalkInStockingSched',
270
+ 'cop' => 3.0,
271
+ 'cop_f_of_t_curve_name' => 'RACK2_RackCOPfTCurve',
272
+ 'condenser_fan_pwr' => 750.0,
273
+ 'condenser_fan_pwr_curve_name' => 'RACK1_RackCondFanCurve2',
274
+ 'space_names' =>
258
275
  [
259
- 'Kitchen_ZN_1_FLR_1'
260
- ]
276
+ 'Kitchen_ZN_1_FLR_1'
277
+ ]
261
278
  }
262
- ]
279
+ ]
263
280
 
264
281
  #end
265
282