openstudio-standards 0.1.3 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
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
@@ -61,7 +61,7 @@ module BTAP
61
61
  rm.enqueue( workflow.create( OpenStudio::Path.new("#{folder}/#{File.basename(model_path, ".osm")}"), OpenStudio::Path.new(model_path)),false)
62
62
  puts "#{model_path} enqueued. #{counter} of #{osm_files.size}"
63
63
  end
64
- rm.showStatusDialog()
64
+ #rm.showStatusDialog()
65
65
  rm.waitForFinished()
66
66
  end
67
67
 
@@ -0,0 +1,120 @@
1
+
2
+ # open the class to add methods to return sizing values
3
+ class OpenStudio::Model::CoilHeatingDXMultiSpeed
4
+
5
+ # Sets all auto-sizeable fields to autosize
6
+ def autosize
7
+ autosizeSpeed1GrossRatedHeatingCapacity
8
+ autosizeSpeed2GrossRatedHeatingCapacity
9
+ autosizeSpeed3GrossRatedHeatingCapacity
10
+ autosizeSpeed4GrossRatedHeatingCapacity
11
+ autosizeSpeed1RatedAirFlowRate
12
+ autosizeSpeed2RatedAirFlowRate
13
+ autosizeSpeed3RatedAirFlowRate
14
+ autosizeSpeed4RatedAirFlowRate
15
+ end
16
+
17
+ # Takes the values calculated by the EnergyPlus sizing routines
18
+ # and puts them into this object model in place of the autosized fields.
19
+ # Must have previously completed a run with sql output for this to work.
20
+ def applySizingValues
21
+
22
+ speed1_rated_heating_capacity = self.autosizedSpeed1GrossRatedHeatingCapacity
23
+ if speed1_rated_heating_capacity.is_initialized
24
+ self.setSpeed1GrossRatedHeatingCapacity(speed1_rated_heating_capacity.get)
25
+ end
26
+
27
+ speed2_rated_total_cooling_capacity = self.autosizedSpeed2GrossRatedHeatingCapacity
28
+ if speed2_rated_total_cooling_capacity.is_initialized
29
+ self.setSpeed2GrossRatedTotalCoolingCapacity(speed2_rated_total_cooling_capacity.get)
30
+ end
31
+
32
+ speed3_rated_total_heating_capacity = self.autosizedSpeed3GrossRatedHeatingCapacity
33
+ if speed3_rated_total_heating_capacity.is_initialized
34
+ self.setSpeed3GrossRatedTotalCoolingCapacity(speed3_rated_total_heating_capacity.get)
35
+ end
36
+
37
+ speed4_rated_total_heating_capacity = self.autosizedSpeed4GrossRatedHeatingCapacity
38
+ if speed4_rated_total_heating_capacity.is_initialized
39
+ self.setSpeed4GrossRatedTotalCoolingCapacity(speed4_rated_total_heating_capacity.get)
40
+ end
41
+
42
+ speed1_rated_air_flow_rate = self.autosizedSpeed1RatedAirFlowRate
43
+ if speed1_rated_air_flow_rate.is_initialized
44
+ self.setSpeed1RatedAirFlowRate(speed1_rated_air_flow_rate.get)
45
+ end
46
+
47
+ speed2_rated_air_flow_rate = self.autosizedSpeed2RatedAirFlowRate
48
+ if speed2_rated_air_flow_rate.is_initialized
49
+ self.setSpeed2RatedAirFlowRate(speed2_rated_air_flow_rate.get)
50
+ end
51
+
52
+ speed3_rated_air_flow_rate = self.autosizedSpeed3RatedAirFlowRate
53
+ if speed3_rated_air_flow_rate.is_initialized
54
+ self.setSpeed3RatedAirFlowRate(speed3_rated_air_flow_rate.get)
55
+ end
56
+
57
+ speed4_rated_air_flow_rate = self.autosizedSpeed4RatedAirFlowRate
58
+ if speed4_rated_air_flow_rate.is_initialized
59
+ self.setSpeed4RatedAirFlowRate(speed4_rated_air_flow_rate.get)
60
+ end
61
+
62
+ end
63
+
64
+ # returns the autosized rated total cooling capacity for stage 1 as an optional double
65
+ def autosizedSpeed1GrossRatedHeatingCapacity
66
+
67
+ return self.model.getAutosizedValue(self,'Speed 1 Design Size Rated Total Heating Capacity', 'W')
68
+
69
+ end
70
+
71
+ # returns the autosized rated total cooling capacity for stage 2 as an optional double
72
+ def autosizedSpeed2GrossRatedHeatingCapacity
73
+
74
+ return self.model.getAutosizedValue(self,'Speed 2 Design Size Rated Total Heating Capacity', 'W')
75
+
76
+ end
77
+
78
+ # returns the autosized rated total cooling capacity for stage 3 as an optional double
79
+ def autosizedSpeed3GrossRatedHeatingCapacity
80
+
81
+ return self.model.getAutosizedValue(self,'Speed 3 Design Size Rated Total Heating Capacity', 'W')
82
+
83
+ end
84
+
85
+ # returns the autosized rated total cooling capacity for stage 4 as an optional double
86
+ def autosizedSpeed4GrossRatedHeatingCapacity
87
+
88
+ return self.model.getAutosizedValue(self,'Speed 4 Design Size Rated Total Heating Capacity', 'W')
89
+
90
+ end
91
+
92
+ # returns the autosized rated air flow rate for stage 1 as an optional double
93
+ def autosizedSpeed1RatedAirFlowRate
94
+
95
+ return self.model.getAutosizedValue(self,'Speed 1 Design Size Rated Air Flow Rate', 'm3/s')
96
+
97
+ end
98
+
99
+ # returns the autosized rated air flow rate for stage 2 as an optional double
100
+ def autosizedSpeed2RatedAirFlowRate
101
+
102
+ return self.model.getAutosizedValue(self,'Speed 2 Design Size Rated Air Flow Rate', 'm3/s')
103
+
104
+ end
105
+
106
+ # returns the autosized rated air flow rate for stage 3 as an optional double
107
+ def autosizedSpeed3RatedAirFlowRate
108
+
109
+ return self.model.getAutosizedValue(self,'Speed 3 Design Size Rated Air Flow Rate', 'm3/s')
110
+
111
+ end
112
+
113
+ # returns the autosized rated air flow rate for stage 4 as an optional double
114
+ def autosizedSpeed4RatedAirFlowRate
115
+
116
+ return self.model.getAutosizedValue(self,'Speed 4 Design Size Rated Air Flow Rate', 'm3/s')
117
+
118
+ end
119
+
120
+ end
@@ -4,7 +4,18 @@ class OpenStudio::Model::CoilCoolingDXMultiSpeed
4
4
 
5
5
  # Sets all auto-sizeable fields to autosize
6
6
  def autosize
7
- OpenStudio::logFree(OpenStudio::Warn, "openstudio.sizing.CoilCoolingDXMultiSpeed", ".autosize not yet implemented for #{self.iddObject.type.valueDescription}.")
7
+ autosizeSpeed1GrossRatedTotalCoolingCapacity
8
+ autosizeSpeed2GrossRatedTotalCoolingCapacity
9
+ autosizeSpeed3GrossRatedTotalCoolingCapacity
10
+ autosizeSpeed4GrossRatedTotalCoolingCapacity
11
+ autosizeSpeed1GrossRatedSensibleHeatRatio
12
+ autosizeSpeed2GrossRatedSensibleHeatRatio
13
+ autosizeSpeed3GrossRatedSensibleHeatRatio
14
+ autosizeSpeed4GrossRatedSensibleHeatRatio
15
+ autosizeSpeed1RatedAirFlowRate
16
+ autosizeSpeed2RatedAirFlowRate
17
+ autosizeSpeed3RatedAirFlowRate
18
+ autosizeSpeed4RatedAirFlowRate
8
19
  end
9
20
 
10
21
  # Takes the values calculated by the EnergyPlus sizing routines
@@ -12,16 +23,149 @@ class OpenStudio::Model::CoilCoolingDXMultiSpeed
12
23
  # Must have previously completed a run with sql output for this to work.
13
24
  def applySizingValues
14
25
 
15
- OpenStudio::logFree(OpenStudio::Warn, "openstudio.sizing.CoilCoolingDXMultiSpeed", ".applySizingValues not yet implemented for #{self.iddObject.type.valueDescription}.")
16
-
26
+ rated_speed1_rated_total_cooling_capacity = self.autosizedSpeed1GrossRatedTotalCoolingCapacity
27
+ if rated_speed1_rated_total_cooling_capacity.is_initialized
28
+ self.setSpeed1GrossRatedTotalCoolingCapacity(rated_speed1_rated_total_cooling_capacity.get)
29
+ end
30
+
31
+ rated_speed2_rated_total_cooling_capacity = self.autosizedSpeed2GrossRatedTotalCoolingCapacity
32
+ if rated_speed2_rated_total_cooling_capacity.is_initialized
33
+ self.setSpeed2GrossRatedTotalCoolingCapacity(rated_speed2_rated_total_cooling_capacity.get)
34
+ end
35
+
36
+ rated_speed3_rated_total_cooling_capacity = self.autosizedSpeed3GrossRatedTotalCoolingCapacity
37
+ if rated_speed3_rated_total_cooling_capacity.is_initialized
38
+ self.setSpeed3GrossRatedTotalCoolingCapacity(rated_speed3_rated_total_cooling_capacity.get)
39
+ end
40
+
41
+ rated_speed4_rated_total_cooling_capacity = self.autosizedSpeed4GrossRatedTotalCoolingCapacity
42
+ if rated_speed4_rated_total_cooling_capacity.is_initialized
43
+ self.setSpeed4GrossRatedTotalCoolingCapacity(rated_speed4_rated_total_cooling_capacity.get)
44
+ end
45
+
46
+ rated_speed1_rated_sensible_heat_ratio = self.autosizedSpeed1RatedSensibleHeatRatio
47
+ if rated_speed1_rated_sensible_heat_ratio.is_initialized
48
+ self.setSpeed1RatedSensibleHeatRatio(rated_speed1_rated_sensible_heat_ratio.get)
49
+ end
50
+
51
+ rated_speed2_rated_sensible_heat_ratio = self.autosizedSpeed2RatedSensibleHeatRatio
52
+ if rated_speed2_rated_sensible_heat_ratio.is_initialized
53
+ self.setSpeed2RatedSensibleHeatRatio(rated_speed2_rated_sensible_heat_ratio.get)
54
+ end
55
+
56
+ rated_speed3_rated_sensible_heat_ratio = self.autosizedSpeed3RatedSensibleHeatRatio
57
+ if rated_speed3_rated_sensible_heat_ratio.is_initialized
58
+ self.setSpeed3RatedSensibleHeatRatio(rated_speed3_rated_sensible_heat_ratio.get)
59
+ end
60
+
61
+ rated_speed4_rated_sensible_heat_ratio = self.autosizedSpeed4RatedSensibleHeatRatio
62
+ if rated_speed4_rated_sensible_heat_ratio.is_initialized
63
+ self.setSpeed4RatedSensibleHeatRatio(rated_speed4_rated_sensible_heat_ratio.get)
64
+ end
65
+
66
+ rated_speed1_rated_air_flow_rate = self.autosizedSpeed1RatedAirFlowRate
67
+ if rated_speed1_rated_air_flow_rate.is_initialized
68
+ self.setSpeed1RatedAirFlowRate(rated_speed1_rated_air_flow_rate.get)
69
+ end
70
+
71
+ rated_speed2_rated_air_flow_rate = self.autosizedSpeed2RatedAirFlowRate
72
+ if rated_speed2_rated_air_flow_rate.is_initialized
73
+ self.setSpeed2RatedAirFlowRate(rated_speed2_rated_air_flow_rate.get)
74
+ end
75
+
76
+ rated_speed3_rated_air_flow_rate = self.autosizedSpeed3RatedAirFlowRate
77
+ if rated_speed3_rated_air_flow_rate.is_initialized
78
+ self.setSpeed3RatedAirFlowRate(rated_speed3_rated_air_flow_rate.get)
79
+ end
80
+
81
+ rated_speed4_rated_air_flow_rate = self.autosizedSpeed4RatedAirFlowRate
82
+ if rated_speed4_rated_air_flow_rate.is_initialized
83
+ self.setSpeed4RatedAirFlowRate(rated_speed4_rated_air_flow_rate.get)
84
+ end
85
+
17
86
  end
18
87
 
19
- # returns the autosized design supply air flow rate as an optional double
20
- # def autosizedDesignSupplyAirFlowRate
88
+ # returns the autosized rated total cooling capacity for stage 1 as an optional double
89
+ def autosizedSpeed1GrossRatedTotalCoolingCapacity
21
90
 
22
- # return self.model.getAutosizedValue(self, 'Design Supply Air Flow Rate', 'm3/s')
91
+ return self.model.getAutosizedValue(self,'Speed 1 Design Size Rated Total Cooling Capacity', 'W')
23
92
 
24
- # end
93
+ end
25
94
 
95
+ # returns the autosized rated total cooling capacity for stage 2 as an optional double
96
+ def autosizedSpeed2GrossRatedTotalCoolingCapacity
97
+
98
+ return self.model.getAutosizedValue(self,'Speed 2 Design Size Rated Total Cooling Capacity', 'W')
99
+
100
+ end
26
101
 
102
+ # returns the autosized rated total cooling capacity for stage 3 as an optional double
103
+ def autosizedSpeed3GrossRatedTotalCoolingCapacity
104
+
105
+ return self.model.getAutosizedValue(self,'Speed 3 Design Size Rated Total Cooling Capacity', 'W')
106
+
107
+ end
108
+
109
+ # returns the autosized rated total cooling capacity for stage 4 as an optional double
110
+ def autosizedSpeed4GrossRatedTotalCoolingCapacity
111
+
112
+ return self.model.getAutosizedValue(self,'Speed 4 Design Size Rated Total Cooling Capacity', 'W')
113
+
114
+ end
115
+
116
+ # returns the autosized rated sensible heat ratio for stage 1 as an optional double
117
+ def autosizedSpeed1RatedSensibleHeatRatio
118
+
119
+ return self.model.getAutosizedValue(self,'Speed 1 Design Size Rated Sensible Heat Ratio', '')
120
+
121
+ end
122
+
123
+ # returns the autosized rated sensible heat ratio for stage 2 as an optional double
124
+ def autosizedSpeed2RatedSensibleHeatRatio
125
+
126
+ return self.model.getAutosizedValue(self,'Speed 2 Design Size Rated Sensible Heat Ratio', '')
127
+
128
+ end
129
+
130
+ # returns the autosized rated sensible heat ratio for stage 3 as an optional double
131
+ def autosizedSpeed3RatedSensibleHeatRatio
132
+
133
+ return self.model.getAutosizedValue(self,'Speed 3 Design Size Rated Sensible Heat Ratio', '')
134
+
135
+ end
136
+
137
+ # returns the autosized rated sensible heat ratio for stage 4 as an optional double
138
+ def autosizedSpeed4RatedSensibleHeatRatio
139
+
140
+ return self.model.getAutosizedValue(self,'Speed 4 Design Size Rated Sensible Heat Ratio', '')
141
+
142
+ end
143
+
144
+ # returns the autosized rated air flow rate for stage 1 as an optional double
145
+ def autosizedSpeed1RatedAirFlowRate
146
+
147
+ return self.model.getAutosizedValue(self,'Design Size Speed 1 Rated Air Flow Rate', 'm3/s')
148
+
149
+ end
150
+
151
+ # returns the autosized rated air flow rate for stage 2 as an optional double
152
+ def autosizedSpeed2RatedAirFlowRate
153
+
154
+ return self.model.getAutosizedValue(self,'Design Size Speed 2 Rated Air Flow Rate', 'm3/s')
155
+
156
+ end
157
+
158
+ # returns the autosized rated air flow rate for stage 3 as an optional double
159
+ def autosizedSpeed3RatedAirFlowRate
160
+
161
+ return self.model.getAutosizedValue(self,'Design Size Speed 3 Rated Air Flow Rate', 'm3/s')
162
+
163
+ end
164
+
165
+ # returns the autosized rated air flow rate for stage 4 as an optional double
166
+ def autosizedSpeed4RatedAirFlowRate
167
+
168
+ return self.model.getAutosizedValue(self,'Design Size Speed 4 Rated Air Flow Rate', 'm3/s')
169
+
170
+ end
27
171
  end
@@ -4,7 +4,10 @@ class OpenStudio::Model::CoilHeatingGasMultiStage
4
4
 
5
5
  # Sets all auto-sizeable fields to autosize
6
6
  def autosize
7
- OpenStudio::logFree(OpenStudio::Warn, "openstudio.sizing.CoilHeatingGasMultiStage", ".autosize not yet implemented for #{self.iddObject.type.valueDescription}.")
7
+ autosizeStage1NominalCapacity
8
+ autosizeStage2NominalCapacity
9
+ autosizeStage3NominalCapacity
10
+ autosizeStage4NominalCapacity
8
11
  end
9
12
 
10
13
  # Takes the values calculated by the EnergyPlus sizing routines
@@ -12,16 +15,54 @@ class OpenStudio::Model::CoilHeatingGasMultiStage
12
15
  # Must have previously completed a run with sql output for this to work.
13
16
  def applySizingValues
14
17
 
15
- OpenStudio::logFree(OpenStudio::Warn, "openstudio.sizing.CoilHeatingGasMultiStage", ".applySizingValues not yet implemented for #{self.iddObject.type.valueDescription}.")
16
-
18
+ design_size_stage1_nominal_capacity = self.autosizedStage1NominalCapacity
19
+ if design_size_stage1_nominal_capacity.is_initialized
20
+ self.setStage1NominalCapacity(design_size_stage1_nominal_capacity.get)
21
+ end
22
+
23
+ design_size_stage2_nominal_capacity = self.autosizedStage2NominalCapacity
24
+ if design_size_stage2_nominal_capacity.is_initialized
25
+ self.setStage2NominalCapacity(design_size_stage2_nominal_capacity.get)
26
+ end
27
+
28
+ design_size_stage3_nominal_capacity = self.autosizedStage3NominalCapacity
29
+ if design_size_stage3_nominal_capacity.is_initialized
30
+ self.setStage3NominalCapacity(design_size_stage3_nominal_capacity.get)
31
+ end
32
+
33
+ design_size_stage4_nominal_capacity = self.autosizedStage4NominalCapacity
34
+ if design_size_stage4_nominal_capacity.is_initialized
35
+ self.setStage4NominalCapacity(design_size_stage4_nominal_capacity.get)
36
+ end
37
+
17
38
  end
18
39
 
19
- # returns the autosized design supply air flow rate as an optional double
20
- # def autosizedDesignSupplyAirFlowRate
40
+ # returns the autosized design stage 1 capacity
41
+ def autosizedStage1NominalCapacity
21
42
 
22
- # return self.model.getAutosizedValue(self, 'Design Supply Air Flow Rate', 'm3/s')
43
+ return self.model.getAutosizedValue(self,'Design Size Stage 1 Nominal Capacity', 'W')
23
44
 
24
- # end
45
+ end
25
46
 
47
+ # returns the autosized design stage 2 capacity
48
+ def autosizedStage2NominalCapacity
49
+
50
+ return self.model.getAutosizedValue(self,'Design Size Stage 2 Nominal Capacity', 'W')
51
+
52
+ end
26
53
 
54
+ # returns the autosized design stage 3 capacity
55
+ def autosizedStage3NominalCapacity
56
+
57
+ return self.model.getAutosizedValue(self,'Design Size Stage 3 Nominal Capacity', 'W')
58
+
59
+ end
60
+
61
+ # returns the autosized design stage 4 capacity
62
+ def autosizedStage4NominalCapacity
63
+
64
+ return self.model.getAutosizedValue(self,'Design Size Stage 4 Nominal Capacity', 'W')
65
+
66
+ end
67
+
27
68
  end
@@ -9,7 +9,7 @@ class OpenStudio::Model::Model
9
9
  if OpenStudio::Model::Model.new.version < OpenStudio::VersionString.new(min_os_version)
10
10
  OpenStudio::logFree(OpenStudio::Error, "openstudio.model.Model", "This measure requires a minimum OpenStudio version of #{min_os_version} because the HVACSizing .autosizedFoo methods expect EnergyPlus 8.2 output variable names.")
11
11
  end
12
-
12
+
13
13
  # Load the helper libraries for getting the autosized
14
14
  # values for each type of model object.
15
15
  require_relative 'Siz.AirTermSnglDuctParallelPIUReheat'
@@ -64,7 +64,7 @@ class OpenStudio::Model::Model
64
64
  # A helper method to run a sizing run and pull any values calculated during
65
65
  # autosizing back into the self.
66
66
  def runSizingRun(sizing_run_dir = "#{Dir.pwd}/SizingRun")
67
-
67
+
68
68
  # Change the simulation to only run the sizing days
69
69
  sim_control = self.getSimulationControl
70
70
  sim_control.setRunSimulationforSizingPeriods(true)
@@ -91,7 +91,7 @@ class OpenStudio::Model::Model
91
91
  OpenStudio::logFree(OpenStudio::Error, 'openstudio.model.Model', 'Failed to apply sizing values because model is missing sql file containing sizing results.')
92
92
  return false
93
93
  end
94
-
94
+
95
95
  # TODO Sizing methods for these types of equipment are
96
96
  # currently only stubs that need to be filled in.
97
97
  self.getAirConditionerVariableRefrigerantFlows.sort.each {|obj| obj.applySizingValues}
@@ -104,11 +104,9 @@ class OpenStudio::Model::Model
104
104
  self.getAirTerminalSingleDuctVAVHeatAndCoolNoReheats.sort.each {|obj| obj.applySizingValues}
105
105
  self.getAirTerminalSingleDuctVAVHeatAndCoolReheats.sort.each {|obj| obj.applySizingValues}
106
106
  self.getBoilerSteams.sort.each {|obj| obj.applySizingValues}
107
- self.getCoilCoolingDXMultiSpeeds.sort.each {|obj| obj.applySizingValues}
108
107
  self.getCoilCoolingDXVariableRefrigerantFlows.sort.each {|obj| obj.applySizingValues}
109
108
  self.getCoilCoolingWaterToAirHeatPumpEquationFits.sort.each {|obj| obj.applySizingValues}
110
109
  self.getCoilHeatingWaterToAirHeatPumpEquationFits.sort.each {|obj| obj.applySizingValues}
111
- self.getCoilHeatingGasMultiStages.sort.each {|obj| obj.applySizingValues}
112
110
  self.getCoilHeatingDesuperheaters.sort.each {|obj| obj.applySizingValues}
113
111
  self.getCoilHeatingDXVariableRefrigerantFlows.sort.each {|obj| obj.applySizingValues}
114
112
  self.getCoilWaterHeatingDesuperheaters.sort.each {|obj| obj.applySizingValues}
@@ -151,13 +149,16 @@ class OpenStudio::Model::Model
151
149
  # Heating coils
152
150
  self.getCoilHeatingElectrics.sort.each {|obj| obj.applySizingValues}
153
151
  self.getCoilHeatingGass.sort.each {|obj| obj.applySizingValues}
152
+ self.getCoilHeatingGasMultiStages.sort.each {|obj| obj.applySizingValues}
154
153
  self.getCoilHeatingWaters.sort.each {|obj| obj.applySizingValues}
155
154
  self.getCoilHeatingDXSingleSpeeds.sort.each {|obj| obj.applySizingValues}
155
+ self.getCoilHeatingDXMultiSpeeds.sort.each {|obj| obj.applySizingValues}
156
156
 
157
157
  # Cooling coils
158
158
  self.getCoilCoolingDXSingleSpeeds.sort.each {|obj| obj.applySizingValues}
159
159
  self.getCoilCoolingDXTwoSpeeds.sort.each {|obj| obj.applySizingValues}
160
160
  self.getCoilCoolingWaters.sort.each {|obj| obj.applySizingValues}
161
+ self.getCoilCoolingDXMultiSpeeds.sort.each {|obj| obj.applySizingValues}
161
162
 
162
163
  # Outdoor air
163
164
  self.getControllerOutdoorAirs.sort.each {|obj| obj.applySizingValues}
@@ -181,7 +182,7 @@ class OpenStudio::Model::Model
181
182
 
182
183
  # Controls
183
184
  self.getControllerWaterCoils.sort.each {|obj| obj.applySizingValues}
184
-
185
+
185
186
  # VRF components
186
187
 
187
188
  # Refrigeration components
@@ -299,29 +300,30 @@ class OpenStudio::Model::Model
299
300
  result = OpenStudio::OptionalDouble.new
300
301
 
301
302
  name = object.name.get.upcase
302
-
303
+
303
304
  object_type = object.iddObject.type.valueDescription.gsub('OS:','')
304
-
305
+ if(object_type == 'Coil:Heating:Gas:MultiStage') then object_type = 'Coil:Heating:GasMultiStage' end
306
+
305
307
  # Special logic for two coil types which are inconsistently
306
308
  # uppercase in the sqlfile:
307
309
  object_type = object_type.upcase if object_type == 'Coil:Cooling:WaterToAirHeatPump:EquationFit'
308
310
  object_type = object_type.upcase if object_type == 'Coil:Heating:WaterToAirHeatPump:EquationFit'
309
311
 
310
312
  sql = self.sqlFile
311
-
313
+
312
314
  if sql.is_initialized
313
315
  sql = sql.get
314
-
316
+
315
317
  #SELECT * FROM ComponentSizes WHERE CompType = 'Coil:Heating:Gas' AND CompName = "COIL HEATING GAS 3" AND Description = "Design Size Nominal Capacity"
316
318
  query = "SELECT Value
317
319
  FROM ComponentSizes
318
320
  WHERE CompType='#{object_type}'
319
321
  AND CompName='#{name}'
320
- AND Description='#{value_name}'
322
+ AND Description='#{value_name.strip}'
321
323
  AND Units='#{units}'"
322
324
 
323
325
  val = sql.execAndReturnFirstDouble(query)
324
-
326
+
325
327
  if val.is_initialized
326
328
  result = OpenStudio::OptionalDouble.new(val.get)
327
329
  else