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