openstudio-standards 0.2.14 → 0.2.15.pre.rc1

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 (642) hide show
  1. checksums.yaml +4 -4
  2. data/data/geometry/ASHRAECollege.json +0 -19
  3. data/data/geometry/ASHRAEMidriseApartment.json +47 -47
  4. data/data/geometry/ASHRAESecondarySchool.osm +2 -2
  5. data/data/standards/OpenStudio_Standards-ashrae_90_1.xlsx +0 -0
  6. data/data/standards/export_OpenStudio_libraries.rb +1 -1
  7. data/data/standards/manage_OpenStudio_Standards.rb +43 -87
  8. data/data/standards/metadata_units_OpenStudio_Standards-ashrae_90_1.csv +9 -0
  9. data/data/standards/openstudio_standards_duplicates_log.csv +142 -27
  10. data/data/standards/test_performance_expected_dd_results.csv +2016 -2016
  11. data/data/weather/CAN_NU_Iqaluit.AP.719090_CWEC2016.ddy +2316 -0
  12. data/data/weather/CAN_NU_Iqaluit.AP.719090_CWEC2016.epw +8768 -0
  13. data/data/weather/CAN_NU_Iqaluit.AP.719090_CWEC2016.stat +697 -0
  14. data/lib/openstudio-standards/btap/WeatherData1.json +54 -0
  15. data/lib/openstudio-standards/btap/WeatherData1.xlsx +0 -0
  16. data/lib/openstudio-standards/btap/btap_result.rb +12 -10
  17. data/lib/openstudio-standards/btap/envelope.rb +2 -2
  18. data/lib/openstudio-standards/btap/geometry.rb +96 -49
  19. data/lib/openstudio-standards/{utilities → btap/utilities}/Add_template_field_to_json.rb +0 -0
  20. data/lib/openstudio-standards/{utilities → btap/utilities}/convert_surfaces_to_adiabatic_necb_8426.rb +0 -0
  21. data/lib/openstudio-standards/{utilities → btap/utilities}/generate_space_types.rb +0 -0
  22. data/lib/openstudio-standards/{utilities → btap/utilities}/necb_to_epw_map.rb +0 -0
  23. data/lib/openstudio-standards/{utilities → btap/utilities}/os_sim_extract.rb +0 -0
  24. data/lib/openstudio-standards/{utilities → btap/utilities}/rename_surfaces.rb +0 -0
  25. data/lib/openstudio-standards/{utilities → btap/utilities}/round_surf_coords.rb +0 -0
  26. data/lib/openstudio-standards/{utilities → btap/utilities}/sched_create.rb +0 -0
  27. data/lib/openstudio-standards/{utilities → btap/utilities}/set_mult_to_adiabatic.rb +0 -0
  28. data/lib/openstudio-standards/btap/utilities/space_type.rb +78 -0
  29. data/lib/openstudio-standards/{utilities → btap/utilities}/weatherData1_xlsx_to_json.rb +0 -0
  30. data/lib/openstudio-standards/hvac_sizing/Siz.AirConditionerVariableRefrigerantFlow.rb +1 -1
  31. data/lib/openstudio-standards/hvac_sizing/Siz.HVACComponent.rb +1 -1
  32. data/lib/openstudio-standards/hvac_sizing/Siz.HeatingCoolingFuels.rb +20 -6
  33. data/lib/openstudio-standards/hvac_sizing/Siz.Model.rb +6 -6
  34. data/lib/openstudio-standards/hvac_sizing/Siz.WaterHeaterMixed.rb +2 -2
  35. data/lib/openstudio-standards/hvac_sizing/Siz.ZoneHVACTerminalUnitVariableRefrigerantFlow.rb +1 -1
  36. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2004/ashrae_90_1_2004.AirTerminalSingleDuctVAVReheat.rb +2 -1
  37. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2004/ashrae_90_1_2004.PumpVariableSpeed.rb +6 -7
  38. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2007/ashrae_90_1_2007.AirTerminalSingleDuctVAVReheat.rb +2 -1
  39. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2007/ashrae_90_1_2007.FanConstantVolume.rb +5 -4
  40. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2007/ashrae_90_1_2007.FanOnOff.rb +5 -5
  41. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2007/ashrae_90_1_2007.FanVariableVolume.rb +5 -4
  42. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2007/ashrae_90_1_2007.PumpVariableSpeed.rb +6 -7
  43. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.AirTerminalSingleDuctVAVReheat.rb +2 -1
  44. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.FanConstantVolume.rb +5 -4
  45. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.FanOnOff.rb +5 -5
  46. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.FanVariableVolume.rb +5 -4
  47. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.Model.elevators.rb +6 -4
  48. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.Model.rb +10 -9
  49. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.PumpVariableSpeed.rb +9 -11
  50. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.AirTerminalSingleDuctVAVReheat.rb +2 -1
  51. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.FanConstantVolume.rb +5 -4
  52. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.FanOnOff.rb +5 -5
  53. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.FanVariableVolume.rb +5 -4
  54. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.Model.elevators.rb +11 -7
  55. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.Model.rb +17 -16
  56. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.PumpVariableSpeed.rb +9 -11
  57. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.hvac_systems.rb +4 -2
  58. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.AirTerminalSingleDuctVAVReheat.rb +2 -1
  59. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.FanConstantVolume.rb +5 -4
  60. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.FanOnOff.rb +5 -5
  61. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.FanVariableVolume.rb +5 -4
  62. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.Model.elevators.rb +11 -7
  63. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.Model.rb +23 -22
  64. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.PumpVariableSpeed.rb +9 -10
  65. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.hvac_systems.rb +4 -2
  66. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.AirTerminalSingleDuctVAVReheat.rb +2 -1
  67. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.FanConstantVolume.rb +5 -4
  68. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.FanOnOff.rb +5 -5
  69. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.FanVariableVolume.rb +5 -4
  70. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.Model.elevators.rb +11 -7
  71. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.Model.rb +23 -22
  72. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.Pump.rb +89 -0
  73. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.PumpVariableSpeed.rb +9 -10
  74. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.Space.rb +76 -0
  75. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.hvac_systems.rb +22 -2
  76. data/lib/openstudio-standards/prototypes/ashrae_90_1/doe_ref_1980_2004/doe_ref_1980_2004.AirTerminalSingleDuctVAVReheat.rb +2 -1
  77. data/lib/openstudio-standards/prototypes/ashrae_90_1/doe_ref_1980_2004/doe_ref_1980_2004.Model.elevators.rb +11 -11
  78. data/lib/openstudio-standards/prototypes/ashrae_90_1/doe_ref_1980_2004/doe_ref_1980_2004.refrigeration.rb +5 -4
  79. data/lib/openstudio-standards/prototypes/ashrae_90_1/doe_ref_pre_1980/doe_ref_pre_1980.AirTerminalSingleDuctVAVReheat.rb +2 -1
  80. data/lib/openstudio-standards/prototypes/ashrae_90_1/doe_ref_pre_1980/doe_ref_pre_1980.CoilHeatingGas.rb +5 -4
  81. data/lib/openstudio-standards/prototypes/ashrae_90_1/doe_ref_pre_1980/doe_ref_pre_1980.Model.elevators.rb +11 -11
  82. data/lib/openstudio-standards/prototypes/ashrae_90_1/doe_ref_pre_1980/doe_ref_pre_1980.refrigeration.rb +5 -4
  83. data/lib/openstudio-standards/prototypes/ashrae_90_1/nrel_nze_ready_2017/nrel_zne_ready_2017.AirTerminalSingleDuctVAVReheat.rb +2 -1
  84. data/lib/openstudio-standards/prototypes/ashrae_90_1/nrel_nze_ready_2017/nrel_zne_ready_2017.FanConstantVolume.rb +5 -4
  85. data/lib/openstudio-standards/prototypes/ashrae_90_1/nrel_nze_ready_2017/nrel_zne_ready_2017.FanOnOff.rb +5 -5
  86. data/lib/openstudio-standards/prototypes/ashrae_90_1/nrel_nze_ready_2017/nrel_zne_ready_2017.FanVariableVolume.rb +5 -4
  87. data/lib/openstudio-standards/prototypes/ashrae_90_1/nrel_nze_ready_2017/nrel_zne_ready_2017.HeatExchangerAirToAirSensibleAndLatent.rb +2 -0
  88. data/lib/openstudio-standards/prototypes/ashrae_90_1/nrel_nze_ready_2017/nrel_zne_ready_2017.Model.elevators.rb +11 -7
  89. data/lib/openstudio-standards/prototypes/ashrae_90_1/nrel_nze_ready_2017/nrel_zne_ready_2017.Model.rb +10 -10
  90. data/lib/openstudio-standards/prototypes/ashrae_90_1/nrel_nze_ready_2017/nrel_zne_ready_2017.hvac_systems.rb +4 -2
  91. data/lib/openstudio-standards/prototypes/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.AirTerminalSingleDuctVAVReheat.rb +2 -1
  92. data/lib/openstudio-standards/prototypes/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.FanConstantVolume.rb +5 -4
  93. data/lib/openstudio-standards/prototypes/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.FanOnOff.rb +5 -5
  94. data/lib/openstudio-standards/prototypes/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.FanVariableVolume.rb +5 -4
  95. data/lib/openstudio-standards/prototypes/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.HeatExchangerAirToAirSensibleAndLatent.rb +2 -0
  96. data/lib/openstudio-standards/prototypes/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.Model.elevators.rb +11 -7
  97. data/lib/openstudio-standards/prototypes/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.Model.rb +10 -10
  98. data/lib/openstudio-standards/prototypes/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.hvac_systems.rb +4 -2
  99. data/lib/openstudio-standards/prototypes/cbes/cbes.Model.elevators.rb +3 -6
  100. data/lib/openstudio-standards/prototypes/cbes/cbes.refrigeration.rb +5 -4
  101. data/lib/openstudio-standards/prototypes/cbes/cbes_t24_2008/cbes_t24_2008.FanConstantVolume.rb +5 -3
  102. data/lib/openstudio-standards/prototypes/cbes/cbes_t24_2008/cbes_t24_2008.FanOnOff.rb +5 -4
  103. data/lib/openstudio-standards/prototypes/cbes/cbes_t24_2008/cbes_t24_2008.FanVariableVolume.rb +5 -3
  104. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.College.rb +65 -30
  105. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.Courthouse.rb +54 -23
  106. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.FullServiceRestaurant.rb +135 -147
  107. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.HighRiseApartment.rb +42 -7
  108. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.Hospital.rb +85 -12
  109. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.Laboratory.rb +42 -30
  110. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.LargeDataCenterHighITE.rb +39 -8
  111. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.LargeDataCenterLowITE.rb +39 -8
  112. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.LargeHotel.rb +60 -12
  113. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.LargeOffice.rb +33 -265
  114. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.LargeOfficeDetailed.rb +41 -3
  115. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.MediumOffice.rb +69 -297
  116. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.MediumOfficeDetailed.rb +68 -25
  117. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.MidriseApartment.rb +88 -59
  118. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.Outpatient.rb +88 -9
  119. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.PrimarySchool.rb +48 -10
  120. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.QuickServiceRestaurant.rb +130 -145
  121. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.RetailStandalone.rb +29 -101
  122. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.RetailStripmall.rb +24 -7
  123. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SecondarySchool.rb +48 -589
  124. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SmallDataCenterHighITE.rb +38 -7
  125. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SmallDataCenterLowITE.rb +38 -8
  126. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SmallHotel.rb +40 -7
  127. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SmallOffice.rb +85 -171
  128. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SmallOfficeDetailed.rb +87 -44
  129. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SuperMarket.rb +46 -5
  130. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SuperTallBuilding.rb +105 -17
  131. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.TallBuilding.rb +97 -15
  132. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.Warehouse.rb +26 -167
  133. data/lib/openstudio-standards/prototypes/common/do_not_edit_metaclasses.rb +3828 -1131
  134. data/lib/openstudio-standards/prototypes/common/objects/Prototype.AirConditionerVariableRefrigerantFlow.rb +3 -0
  135. data/lib/openstudio-standards/prototypes/common/objects/Prototype.AirTerminalSingleDuctVAVReheat.rb +2 -1
  136. data/lib/openstudio-standards/prototypes/common/objects/Prototype.BoilerHotWater.rb +2 -0
  137. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CentralAirSourceHeatPump.rb +2 -0
  138. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilCoolingDXSingleSpeed.rb +4 -1
  139. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilCoolingDXTwoSpeed.rb +3 -0
  140. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilCoolingWater.rb +4 -1
  141. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilCoolingWaterToAirHeatPumpEquationFit.rb +3 -0
  142. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilHeatingDXSingleSpeed.rb +9 -0
  143. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilHeatingElectric.rb +3 -0
  144. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilHeatingGas.rb +9 -4
  145. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilHeatingWater.rb +4 -1
  146. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilHeatingWaterToAirHeatPumpEquationFit.rb +3 -0
  147. data/lib/openstudio-standards/prototypes/common/objects/Prototype.ControllerWaterCoil.rb +2 -2
  148. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoolingTower.rb +4 -1
  149. data/lib/openstudio-standards/prototypes/common/objects/Prototype.Fan.rb +23 -2
  150. data/lib/openstudio-standards/prototypes/common/objects/Prototype.FanConstantVolume.rb +29 -4
  151. data/lib/openstudio-standards/prototypes/common/objects/Prototype.FanOnOff.rb +29 -5
  152. data/lib/openstudio-standards/prototypes/common/objects/Prototype.FanVariableVolume.rb +43 -4
  153. data/lib/openstudio-standards/prototypes/common/objects/Prototype.FanZoneExhaust.rb +22 -0
  154. data/lib/openstudio-standards/prototypes/common/objects/Prototype.HeatExchangerAirToAirSensibleAndLatent.rb +46 -3
  155. data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.elevators.rb +27 -22
  156. data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.exterior_lights.rb +15 -8
  157. data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.hvac.rb +22 -4
  158. data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.rb +429 -59
  159. data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.swh.rb +18 -11
  160. data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.transformers.rb +11 -2
  161. data/lib/openstudio-standards/prototypes/common/objects/Prototype.Pump.rb +1 -0
  162. data/lib/openstudio-standards/prototypes/common/objects/Prototype.PumpVariableSpeed.rb +8 -10
  163. data/lib/openstudio-standards/prototypes/common/objects/Prototype.ServiceWaterHeating.rb +37 -28
  164. data/lib/openstudio-standards/prototypes/common/objects/Prototype.SizingSystem.rb +24 -6
  165. data/lib/openstudio-standards/prototypes/common/objects/Prototype.hvac_systems.rb +251 -65
  166. data/lib/openstudio-standards/prototypes/common/objects/Prototype.radiant_system_controls.rb +1 -1
  167. data/lib/openstudio-standards/prototypes/common/objects/Prototype.refrigeration.rb +46 -31
  168. data/lib/openstudio-standards/prototypes/common/objects/Prototype.utilities.rb +62 -10
  169. data/lib/openstudio-standards/prototypes/common/prototype_metaprogramming.rb +76 -33
  170. data/lib/openstudio-standards/prototypes/deer/deer.Model.rb +1 -1
  171. data/lib/openstudio-standards/standards/Standards.AirLoopHVAC.rb +445 -275
  172. data/lib/openstudio-standards/standards/Standards.AirTerminalSingleDuctParallelPIUReheat.rb +3 -3
  173. data/lib/openstudio-standards/standards/Standards.AirTerminalSingleDuctVAVReheat.rb +26 -21
  174. data/lib/openstudio-standards/standards/Standards.BoilerHotWater.rb +5 -2
  175. data/lib/openstudio-standards/standards/Standards.BuildingStory.rb +7 -9
  176. data/lib/openstudio-standards/standards/Standards.ChillerElectricEIR.rb +8 -2
  177. data/lib/openstudio-standards/standards/Standards.CoilCoolingDXMultiSpeed.rb +10 -6
  178. data/lib/openstudio-standards/standards/Standards.CoilCoolingDXSingleSpeed.rb +5 -1
  179. data/lib/openstudio-standards/standards/Standards.CoilCoolingDXTwoSpeed.rb +6 -1
  180. data/lib/openstudio-standards/standards/Standards.CoilCoolingWaterToAirHeatPumpEquationFit.rb +45 -4
  181. data/lib/openstudio-standards/standards/Standards.CoilDX.rb +18 -8
  182. data/lib/openstudio-standards/standards/Standards.CoilHeatingDXMultiSpeed.rb +9 -7
  183. data/lib/openstudio-standards/standards/Standards.CoilHeatingDXSingleSpeed.rb +8 -4
  184. data/lib/openstudio-standards/standards/Standards.CoilHeatingGas.rb +86 -3
  185. data/lib/openstudio-standards/standards/Standards.CoilHeatingGasMultiStage.rb +5 -2
  186. data/lib/openstudio-standards/standards/Standards.CoilHeatingWaterToAirHeatPumpEquationFit.rb +6 -2
  187. data/lib/openstudio-standards/standards/Standards.Construction.rb +66 -35
  188. data/lib/openstudio-standards/standards/Standards.CoolingTower.rb +7 -7
  189. data/lib/openstudio-standards/standards/Standards.CoolingTowerSingleSpeed.rb +2 -2
  190. data/lib/openstudio-standards/standards/Standards.CoolingTowerTwoSpeed.rb +2 -1
  191. data/lib/openstudio-standards/standards/Standards.CoolingTowerVariableSpeed.rb +2 -1
  192. data/lib/openstudio-standards/standards/Standards.Fan.rb +53 -35
  193. data/lib/openstudio-standards/standards/Standards.FanVariableVolume.rb +22 -16
  194. data/lib/openstudio-standards/standards/Standards.FluidCooler.rb +2 -2
  195. data/lib/openstudio-standards/standards/Standards.HeaderedPumpsVariableSpeed.rb +4 -4
  196. data/lib/openstudio-standards/standards/Standards.HeatExchangerSensLat.rb +77 -19
  197. data/lib/openstudio-standards/standards/Standards.Model.rb +387 -245
  198. data/lib/openstudio-standards/standards/Standards.PlanarSurface.rb +13 -15
  199. data/lib/openstudio-standards/standards/Standards.PlantLoop.rb +94 -48
  200. data/lib/openstudio-standards/standards/Standards.Pump.rb +28 -20
  201. data/lib/openstudio-standards/standards/Standards.PumpVariableSpeed.rb +3 -4
  202. data/lib/openstudio-standards/standards/Standards.ScheduleCompact.rb +2 -1
  203. data/lib/openstudio-standards/standards/Standards.ScheduleConstant.rb +2 -0
  204. data/lib/openstudio-standards/standards/Standards.ScheduleRuleset.rb +34 -24
  205. data/lib/openstudio-standards/standards/Standards.Space.rb +179 -116
  206. data/lib/openstudio-standards/standards/Standards.SpaceType.rb +23 -12
  207. data/lib/openstudio-standards/standards/Standards.SubSurface.rb +55 -25
  208. data/lib/openstudio-standards/standards/Standards.Surface.rb +57 -32
  209. data/lib/openstudio-standards/standards/Standards.ThermalZone.rb +157 -107
  210. data/lib/openstudio-standards/standards/Standards.WaterHeaterMixed.rb +9 -6
  211. data/lib/openstudio-standards/standards/Standards.ZoneHVACComponent.rb +52 -1
  212. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1.Standards.FanVariableVolume.rb +2 -2
  213. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1.rb +4 -0
  214. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/ashrae_90_1_2004.AirLoopHVAC.rb +28 -18
  215. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/ashrae_90_1_2004.FanVariableVolume.rb +1 -1
  216. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/ashrae_90_1_2004.PlantLoop.rb +4 -2
  217. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/ashrae_90_1_2004.rb +4 -0
  218. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/comstock_ashrae_90_1_2004/comstock_ashrae_90_1_2004.rb +4 -0
  219. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/comstock_ashrae_90_1_2004/data/ashrae_90_1.schedules.json +696 -2938
  220. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/comstock_ashrae_90_1_2004/data/comstock_ashrae_90_1_2004.ext_ltg.json +1 -1
  221. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/comstock_ashrae_90_1_2004/data/comstock_ashrae_90_1_2004.spc_typ.json +123 -123
  222. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.furnaces.json +26 -0
  223. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.prototype_inputs.json +11 -11
  224. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.refrigeration_system.json +0 -8
  225. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.spc_typ.json +395 -384
  226. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.unitary_acs.json +69 -0
  227. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/ashrae_90_1_2007.AirLoopHVAC.rb +20 -13
  228. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/ashrae_90_1_2007.FanVariableVolume.rb +1 -1
  229. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/ashrae_90_1_2007.Model.rb +1 -1
  230. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/ashrae_90_1_2007.rb +4 -0
  231. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/comstock_ashrae_90_1_2007/comstock_ashrae_90_1_2007.rb +4 -0
  232. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/comstock_ashrae_90_1_2007/data/ashrae_90_1.schedules.json +696 -2938
  233. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/comstock_ashrae_90_1_2007/data/comstock_ashrae_90_1_2007.ext_ltg.json +1 -1
  234. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/comstock_ashrae_90_1_2007/data/comstock_ashrae_90_1_2007.spc_typ.json +122 -122
  235. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.furnaces.json +26 -0
  236. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.prototype_inputs.json +11 -11
  237. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.refrigeration_system.json +0 -8
  238. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.spc_typ.json +413 -401
  239. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.unitary_acs.json +69 -0
  240. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.AirLoopHVAC.rb +42 -53
  241. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.AirTerminalSingleDuctVAVReheat.rb +3 -2
  242. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.CoolingTower.rb +5 -8
  243. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.FanVariableVolume.rb +1 -1
  244. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.Space.rb +6 -4
  245. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.rb +4 -0
  246. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/comstock_ashrae_90_1_2010/comstock_ashrae_90_1_2010.rb +4 -0
  247. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/comstock_ashrae_90_1_2010/data/ashrae_90_1.schedules.json +696 -2938
  248. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/comstock_ashrae_90_1_2010/data/comstock_ashrae_90_1_2010.ext_ltg.json +1 -1
  249. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/comstock_ashrae_90_1_2010/data/comstock_ashrae_90_1_2010.spc_typ.json +129 -129
  250. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.energy_recovery.json +210 -42
  251. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.furnaces.json +26 -0
  252. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.prototype_inputs.json +11 -11
  253. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.refrigeration_system.json +0 -8
  254. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.spc_typ.json +460 -320
  255. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.unitary_acs.json +69 -0
  256. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.AirLoopHVAC.rb +45 -51
  257. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.AirTerminalSingleDuctVAVReheat.rb +3 -2
  258. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.CoolingTower.rb +5 -8
  259. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.CoolingTowerVariableSpeed.rb +2 -3
  260. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.FanVariableVolume.rb +2 -2
  261. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.Space.rb +8 -5
  262. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.ThermalZone.rb +2 -1
  263. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.WaterHeaterMixed.rb +1 -1
  264. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.ZoneHVACComponent.rb +1 -0
  265. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.rb +4 -0
  266. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/comstock_ashrae_90_1_2013/comstock_ashrae_90_1_2013.rb +4 -0
  267. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/comstock_ashrae_90_1_2013/data/ashrae_90_1.schedules.json +696 -2938
  268. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/comstock_ashrae_90_1_2013/data/comstock_ashrae_90_1_2013.ext_ltg.json +1 -1
  269. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/comstock_ashrae_90_1_2013/data/comstock_ashrae_90_1_2013.spc_typ.json +121 -121
  270. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.energy_recovery.json +420 -84
  271. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.furnaces.json +26 -0
  272. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.prototype_inputs.json +12 -12
  273. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.refrigeration_system.json +0 -8
  274. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.spc_typ.json +475 -335
  275. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.unitary_acs.json +69 -0
  276. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.AirLoopHVAC.rb +40 -50
  277. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.AirTerminalSingleDuctVAVReheat.rb +3 -2
  278. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.CoolingTower.rb +5 -8
  279. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.CoolingTowerVariableSpeed.rb +2 -3
  280. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.FanVariableVolume.rb +2 -2
  281. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.Space.rb +8 -5
  282. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.ThermalZone.rb +2 -1
  283. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.ZoneHVACComponent.rb +1 -0
  284. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.rb +4 -0
  285. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/comstock_ashrae_90_1_2016/comstock_ashrae_90_1_2016.rb +4 -0
  286. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/comstock_ashrae_90_1_2016/data/ashrae_90_1.schedules.json +696 -2938
  287. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/comstock_ashrae_90_1_2016/data/comstock_ashrae_90_1_2016.ext_ltg.json +1 -1
  288. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/comstock_ashrae_90_1_2016/data/comstock_ashrae_90_1_2016.spc_typ.json +152 -128
  289. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.energy_recovery.json +488 -84
  290. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.furnaces.json +26 -0
  291. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.spc_typ.json +47 -47
  292. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.unitary_acs.json +69 -0
  293. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.AirLoopHVAC.rb +342 -56
  294. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.AirTerminalSingleDuctVAVReheat.rb +3 -2
  295. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.CoolingTower.rb +5 -8
  296. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.CoolingTowerVariableSpeed.rb +2 -3
  297. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.FanVariableVolume.rb +2 -2
  298. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.Space.rb +25 -5
  299. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.ThermalZone.rb +2 -1
  300. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.ZoneHVACComponent.rb +30 -0
  301. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.rb +4 -0
  302. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/comstock_ashrae_90_1_2019/comstock_ashrae_90_1_2019.rb +4 -0
  303. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/comstock_ashrae_90_1_2019/data/ashrae_90_1.schedules.json +696 -2938
  304. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/comstock_ashrae_90_1_2019/data/comstock_ashrae_90_1_2019.ext_ltg.json +1 -1
  305. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/comstock_ashrae_90_1_2019/data/comstock_ashrae_90_1_2019.spc_typ.json +151 -127
  306. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.boilers.json +1 -1
  307. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.energy_recovery.json +2307 -101
  308. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.furnaces.json +26 -0
  309. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.refrigeration_compressors.json +1 -1
  310. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.spc_typ.json +47 -47
  311. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.unitary_acs.json +69 -0
  312. data/lib/openstudio-standards/standards/ashrae_90_1/data/ashrae_90_1.curves.json +25 -0
  313. data/lib/openstudio-standards/standards/ashrae_90_1/data/ashrae_90_1.schedules.json +286 -224
  314. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/comstock_doe_ref_1980_2004/comstock_doe_ref_1980_2004.rb +4 -0
  315. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/comstock_doe_ref_1980_2004/data/ashrae_90_1.schedules.json +696 -2938
  316. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/comstock_doe_ref_1980_2004/data/comstock_doe_ref_1980_2004.ext_ltg.json +1 -1
  317. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/comstock_doe_ref_1980_2004/data/comstock_doe_ref_1980_2004.spc_typ.json +126 -126
  318. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/data/doe_ref_1980_2004.furnaces.json +26 -0
  319. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/data/doe_ref_1980_2004.prototype_inputs.json +11 -11
  320. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/data/doe_ref_1980_2004.refrigeration_system.json +0 -8
  321. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/data/doe_ref_1980_2004.spc_typ.json +405 -393
  322. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/doe_ref_1980_2004.AirLoopHVAC.rb +15 -11
  323. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/doe_ref_1980_2004.Model.rb +1 -1
  324. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/doe_ref_1980_2004.PlantLoop.rb +3 -0
  325. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/doe_ref_1980_2004.rb +4 -0
  326. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/comstock_doe_ref_pre_1980/comstock_doe_ref_pre_1980.rb +4 -0
  327. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/comstock_doe_ref_pre_1980/data/ashrae_90_1.schedules.json +696 -2938
  328. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/comstock_doe_ref_pre_1980/data/comstock_doe_ref_pre_1980.spc_typ.json +121 -121
  329. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/data/doe_ref_pre_1980.furnaces.json +37 -0
  330. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/data/doe_ref_pre_1980.prototype_inputs.json +11 -11
  331. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/data/doe_ref_pre_1980.refrigeration_system.json +0 -8
  332. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/data/doe_ref_pre_1980.spc_typ.json +403 -391
  333. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/doe_ref_pre_1980.AirLoopHVAC.rb +15 -11
  334. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/doe_ref_pre_1980.Model.rb +1 -1
  335. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/doe_ref_pre_1980.PlantLoop.rb +3 -0
  336. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/doe_ref_pre_1980.rb +4 -0
  337. data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/data/nrel_zne_ready_2017.furnaces.json +15 -0
  338. data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.AirLoopHVAC.rb +64 -42
  339. data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.AirTerminalSingleDuctVAVReheat.rb +3 -2
  340. data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.CoolingTower.rb +5 -8
  341. data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.CoolingTowerVariableSpeed.rb +2 -3
  342. data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.FanVariableVolume.rb +2 -2
  343. data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.HeatExchangerSensLat.rb +1 -1
  344. data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.Model.rb +1 -1
  345. data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.PlantLoop.rb +4 -1
  346. data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.Space.rb +5 -3
  347. data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.ZoneHVACComponent.rb +3 -0
  348. data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.rb +4 -0
  349. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/data/ze_aedg_multifamily.furnaces.json +15 -0
  350. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.AirLoopHVAC.rb +61 -36
  351. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.AirTerminalSingleDuctVAVReheat.rb +3 -2
  352. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.CoolingTower.rb +5 -8
  353. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.CoolingTowerVariableSpeed.rb +2 -3
  354. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.FanVariableVolume.rb +2 -2
  355. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.HeatExchangerSensLat.rb +1 -1
  356. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.Model.rb +1 -1
  357. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.PlantLoop.rb +4 -1
  358. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.Space.rb +6 -4
  359. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.ZoneHVACComponent.rb +3 -0
  360. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.rb +4 -0
  361. data/lib/openstudio-standards/standards/cbes/cbes.AirLoopHVAC.rb +20 -14
  362. data/lib/openstudio-standards/standards/cbes/cbes.PlantLoop.rb +3 -0
  363. data/lib/openstudio-standards/standards/cbes/cbes.rb +4 -0
  364. data/lib/openstudio-standards/standards/cbes/cbes_pre_1978/cbes_pre_1978.rb +4 -0
  365. data/lib/openstudio-standards/standards/cbes/cbes_t24_1978/cbes_t24_1978.rb +4 -0
  366. data/lib/openstudio-standards/standards/cbes/cbes_t24_1992/cbes_t24_1992.rb +4 -0
  367. data/lib/openstudio-standards/standards/cbes/cbes_t24_2001/cbes_t24_2001.rb +4 -0
  368. data/lib/openstudio-standards/standards/cbes/cbes_t24_2005/cbes_t24_2005.rb +4 -0
  369. data/lib/openstudio-standards/standards/cbes/cbes_t24_2008/cbes_t24_2008.rb +4 -0
  370. data/lib/openstudio-standards/standards/deer/deer.AirLoopHVAC.rb +10 -5
  371. data/lib/openstudio-standards/standards/deer/deer.PlanarSurface.rb +1 -1
  372. data/lib/openstudio-standards/standards/deer/deer.rb +4 -0
  373. data/lib/openstudio-standards/standards/deer/deer_1985/comstock_deer_1985/comstock_deer_1985.rb +4 -0
  374. data/lib/openstudio-standards/standards/deer/deer_1985/comstock_deer_1985/data/comstock_deer_1985.ext_ltg.json +2 -2
  375. data/lib/openstudio-standards/standards/deer/deer_1985/deer_1985.rb +4 -0
  376. data/lib/openstudio-standards/standards/deer/deer_1996/comstock_deer_1996/comstock_deer_1996.rb +4 -0
  377. data/lib/openstudio-standards/standards/deer/deer_1996/comstock_deer_1996/data/comstock_deer_1996.ext_ltg.json +2 -2
  378. data/lib/openstudio-standards/standards/deer/deer_1996/deer_1996.rb +4 -0
  379. data/lib/openstudio-standards/standards/deer/deer_2003/comstock_deer_2003/comstock_deer_2003.rb +4 -0
  380. data/lib/openstudio-standards/standards/deer/deer_2003/comstock_deer_2003/data/comstock_deer_2003.ext_ltg.json +2 -2
  381. data/lib/openstudio-standards/standards/deer/deer_2003/deer_2003.rb +4 -0
  382. data/lib/openstudio-standards/standards/deer/deer_2007/comstock_deer_2007/comstock_deer_2007.rb +4 -0
  383. data/lib/openstudio-standards/standards/deer/deer_2007/comstock_deer_2007/data/comstock_deer_2007.ext_ltg.json +2 -2
  384. data/lib/openstudio-standards/standards/deer/deer_2007/deer_2007.rb +4 -0
  385. data/lib/openstudio-standards/standards/deer/deer_2011/comstock_deer_2011/comstock_deer_2011.rb +4 -0
  386. data/lib/openstudio-standards/standards/deer/deer_2011/comstock_deer_2011/data/comstock_deer_2011.ext_ltg.json +2 -2
  387. data/lib/openstudio-standards/standards/deer/deer_2011/deer_2011.rb +4 -0
  388. data/lib/openstudio-standards/standards/deer/deer_2014/comstock_deer_2014/comstock_deer_2014.rb +4 -0
  389. data/lib/openstudio-standards/standards/deer/deer_2014/comstock_deer_2014/data/comstock_deer_2014.ext_ltg.json +2 -2
  390. data/lib/openstudio-standards/standards/deer/deer_2014/deer_2014.Space.rb +5 -3
  391. data/lib/openstudio-standards/standards/deer/deer_2014/deer_2014.rb +4 -0
  392. data/lib/openstudio-standards/standards/deer/deer_2015/comstock_deer_2015/comstock_deer_2015.rb +4 -0
  393. data/lib/openstudio-standards/standards/deer/deer_2015/comstock_deer_2015/data/comstock_deer_2015.ext_ltg.json +2 -2
  394. data/lib/openstudio-standards/standards/deer/deer_2015/deer_2015.Space.rb +5 -3
  395. data/lib/openstudio-standards/standards/deer/deer_2015/deer_2015.rb +4 -0
  396. data/lib/openstudio-standards/standards/deer/deer_2017/comstock_deer_2017/comstock_deer_2017.rb +4 -0
  397. data/lib/openstudio-standards/standards/deer/deer_2017/comstock_deer_2017/data/comstock_deer_2017.ext_ltg.json +2 -2
  398. data/lib/openstudio-standards/standards/deer/deer_2017/deer_2017.Space.rb +5 -3
  399. data/lib/openstudio-standards/standards/deer/deer_2017/deer_2017.rb +4 -0
  400. data/lib/openstudio-standards/standards/deer/deer_2020/comstock_deer_2020/comstock_deer_2020.rb +4 -0
  401. data/lib/openstudio-standards/standards/deer/deer_2020/deer_2020.AirLoopHVAC.rb +9 -5
  402. data/lib/openstudio-standards/standards/deer/deer_2020/deer_2020.FanVariableVolume.rb +3 -0
  403. data/lib/openstudio-standards/standards/deer/deer_2020/deer_2020.Space.rb +5 -3
  404. data/lib/openstudio-standards/standards/deer/deer_2020/deer_2020.rb +4 -0
  405. data/lib/openstudio-standards/standards/deer/deer_2025/comstock_deer_2025/comstock_deer_2025.rb +4 -0
  406. data/lib/openstudio-standards/standards/deer/deer_2025/deer_2025.AirLoopHVAC.rb +9 -5
  407. data/lib/openstudio-standards/standards/deer/deer_2025/deer_2025.FanVariableVolume.rb +3 -0
  408. data/lib/openstudio-standards/standards/deer/deer_2025/deer_2025.Space.rb +5 -3
  409. data/lib/openstudio-standards/standards/deer/deer_2025/deer_2025.rb +4 -0
  410. data/lib/openstudio-standards/standards/deer/deer_2030/comstock_deer_2030/comstock_deer_2030.rb +4 -0
  411. data/lib/openstudio-standards/standards/deer/deer_2030/deer_2030.AirLoopHVAC.rb +9 -5
  412. data/lib/openstudio-standards/standards/deer/deer_2030/deer_2030.FanVariableVolume.rb +3 -0
  413. data/lib/openstudio-standards/standards/deer/deer_2030/deer_2030.Space.rb +5 -3
  414. data/lib/openstudio-standards/standards/deer/deer_2030/deer_2030.rb +4 -0
  415. data/lib/openstudio-standards/standards/deer/deer_2035/comstock_deer_2035/comstock_deer_2035.rb +4 -0
  416. data/lib/openstudio-standards/standards/deer/deer_2035/deer_2035.AirLoopHVAC.rb +9 -5
  417. data/lib/openstudio-standards/standards/deer/deer_2035/deer_2035.FanVariableVolume.rb +3 -0
  418. data/lib/openstudio-standards/standards/deer/deer_2035/deer_2035.Space.rb +5 -3
  419. data/lib/openstudio-standards/standards/deer/deer_2035/deer_2035.rb +4 -0
  420. data/lib/openstudio-standards/standards/deer/deer_2040/comstock_deer_2040/comstock_deer_2040.rb +4 -0
  421. data/lib/openstudio-standards/standards/deer/deer_2040/deer_2040.AirLoopHVAC.rb +9 -5
  422. data/lib/openstudio-standards/standards/deer/deer_2040/deer_2040.FanVariableVolume.rb +3 -0
  423. data/lib/openstudio-standards/standards/deer/deer_2040/deer_2040.Space.rb +5 -3
  424. data/lib/openstudio-standards/standards/deer/deer_2040/deer_2040.rb +4 -0
  425. data/lib/openstudio-standards/standards/deer/deer_2045/comstock_deer_2045/comstock_deer_2045.rb +4 -0
  426. data/lib/openstudio-standards/standards/deer/deer_2045/deer_2045.AirLoopHVAC.rb +9 -5
  427. data/lib/openstudio-standards/standards/deer/deer_2045/deer_2045.FanVariableVolume.rb +3 -0
  428. data/lib/openstudio-standards/standards/deer/deer_2045/deer_2045.Space.rb +5 -3
  429. data/lib/openstudio-standards/standards/deer/deer_2045/deer_2045.rb +4 -0
  430. data/lib/openstudio-standards/standards/deer/deer_2050/comstock_deer_2050/comstock_deer_2050.rb +4 -0
  431. data/lib/openstudio-standards/standards/deer/deer_2050/deer_2050.AirLoopHVAC.rb +9 -5
  432. data/lib/openstudio-standards/standards/deer/deer_2050/deer_2050.FanVariableVolume.rb +3 -0
  433. data/lib/openstudio-standards/standards/deer/deer_2050/deer_2050.Space.rb +5 -3
  434. data/lib/openstudio-standards/standards/deer/deer_2050/deer_2050.rb +4 -0
  435. data/lib/openstudio-standards/standards/deer/deer_2055/comstock_deer_2055/comstock_deer_2055.rb +4 -0
  436. data/lib/openstudio-standards/standards/deer/deer_2055/deer_2055.AirLoopHVAC.rb +9 -5
  437. data/lib/openstudio-standards/standards/deer/deer_2055/deer_2055.FanVariableVolume.rb +3 -0
  438. data/lib/openstudio-standards/standards/deer/deer_2055/deer_2055.Space.rb +5 -3
  439. data/lib/openstudio-standards/standards/deer/deer_2055/deer_2055.rb +4 -0
  440. data/lib/openstudio-standards/standards/deer/deer_2060/comstock_deer_2060/comstock_deer_2060.rb +4 -0
  441. data/lib/openstudio-standards/standards/deer/deer_2060/deer_2060.AirLoopHVAC.rb +9 -5
  442. data/lib/openstudio-standards/standards/deer/deer_2060/deer_2060.FanVariableVolume.rb +3 -0
  443. data/lib/openstudio-standards/standards/deer/deer_2060/deer_2060.Space.rb +5 -3
  444. data/lib/openstudio-standards/standards/deer/deer_2060/deer_2060.rb +4 -0
  445. data/lib/openstudio-standards/standards/deer/deer_2065/comstock_deer_2065/comstock_deer_2065.rb +4 -0
  446. data/lib/openstudio-standards/standards/deer/deer_2065/deer_2065.AirLoopHVAC.rb +9 -5
  447. data/lib/openstudio-standards/standards/deer/deer_2065/deer_2065.FanVariableVolume.rb +3 -0
  448. data/lib/openstudio-standards/standards/deer/deer_2065/deer_2065.Space.rb +5 -3
  449. data/lib/openstudio-standards/standards/deer/deer_2065/deer_2065.rb +4 -0
  450. data/lib/openstudio-standards/standards/deer/deer_2070/comstock_deer_2070/comstock_deer_2070.rb +4 -0
  451. data/lib/openstudio-standards/standards/deer/deer_2070/deer_2070.AirLoopHVAC.rb +9 -5
  452. data/lib/openstudio-standards/standards/deer/deer_2070/deer_2070.FanVariableVolume.rb +3 -0
  453. data/lib/openstudio-standards/standards/deer/deer_2070/deer_2070.Space.rb +5 -3
  454. data/lib/openstudio-standards/standards/deer/deer_2070/deer_2070.rb +4 -0
  455. data/lib/openstudio-standards/standards/deer/deer_2075/comstock_deer_2075/comstock_deer_2075.rb +4 -0
  456. data/lib/openstudio-standards/standards/deer/deer_2075/deer_2075.AirLoopHVAC.rb +9 -5
  457. data/lib/openstudio-standards/standards/deer/deer_2075/deer_2075.FanVariableVolume.rb +3 -0
  458. data/lib/openstudio-standards/standards/deer/deer_2075/deer_2075.Space.rb +5 -3
  459. data/lib/openstudio-standards/standards/deer/deer_2075/deer_2075.rb +4 -0
  460. data/lib/openstudio-standards/standards/deer/deer_pre_1975/comstock_deer_pre_1975/comstock_deer_pre_1975.rb +4 -0
  461. data/lib/openstudio-standards/standards/deer/deer_pre_1975/comstock_deer_pre_1975/data/comstock_deer_pre_1975.ext_ltg.json +2 -2
  462. data/lib/openstudio-standards/standards/deer/deer_pre_1975/deer_pre_1975.rb +4 -0
  463. data/lib/openstudio-standards/standards/icc_iecc/icc_iecc_2015/icc_iecc_2015.rb +4 -0
  464. data/lib/openstudio-standards/standards/necb/BTAP1980TO2010/btap_1980to2010.rb +6 -28
  465. data/lib/openstudio-standards/standards/necb/BTAPPRE1980/btap_pre1980.rb +25 -110
  466. data/lib/openstudio-standards/standards/necb/BTAPPRE1980/building_envelope.rb +45 -60
  467. data/lib/openstudio-standards/standards/necb/BTAPPRE1980/hvac_system_3_and_8_single_speed.rb +19 -23
  468. data/lib/openstudio-standards/standards/necb/BTAPPRE1980/hvac_system_4.rb +84 -83
  469. data/lib/openstudio-standards/standards/necb/BTAPPRE1980/hvac_system_6.rb +52 -47
  470. data/lib/openstudio-standards/standards/necb/BTAPPRE1980/hvac_systems.rb +43 -40
  471. data/lib/openstudio-standards/standards/necb/ECMS/data/boiler_set.json +18 -0
  472. data/lib/openstudio-standards/standards/necb/ECMS/data/chiller_set.json +211 -0
  473. data/lib/openstudio-standards/standards/necb/ECMS/data/curves.json +1195 -20
  474. data/lib/openstudio-standards/standards/necb/ECMS/data/furnace_set.json +18 -0
  475. data/lib/openstudio-standards/standards/necb/ECMS/data/heat_pumps.json +244 -182
  476. data/lib/openstudio-standards/standards/necb/ECMS/data/heat_pumps_heating.json +232 -185
  477. data/lib/openstudio-standards/standards/necb/ECMS/data/shw_set.json +20 -2
  478. data/lib/openstudio-standards/standards/necb/ECMS/ecms.rb +18 -25
  479. data/lib/openstudio-standards/standards/necb/ECMS/erv.rb +12 -13
  480. data/lib/openstudio-standards/standards/necb/ECMS/hvac_systems.rb +1647 -466
  481. data/lib/openstudio-standards/standards/necb/ECMS/loads.rb +93 -0
  482. data/lib/openstudio-standards/standards/necb/ECMS/nv.rb +40 -47
  483. data/lib/openstudio-standards/standards/necb/ECMS/pv_ground.rb +26 -25
  484. data/lib/openstudio-standards/standards/necb/NECB2011/autozone.rb +303 -305
  485. data/lib/openstudio-standards/standards/necb/NECB2011/beps_compliance_path.rb +45 -45
  486. data/lib/openstudio-standards/standards/necb/NECB2011/building_envelope.rb +90 -120
  487. data/lib/openstudio-standards/standards/necb/NECB2011/data/geometry/Hospital.osm +1176 -1115
  488. data/lib/openstudio-standards/standards/necb/NECB2011/data/geometry/LowriseApartment.osm +8279 -28923
  489. data/lib/openstudio-standards/standards/necb/NECB2011/data/space_types.json +1173 -1173
  490. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_1_multi_speed.rb +15 -13
  491. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_1_single_speed.rb +32 -29
  492. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_2_and_5.rb +25 -26
  493. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_3_and_8_multi_speed.rb +14 -14
  494. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_3_and_8_single_speed.rb +24 -29
  495. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_4.rb +85 -84
  496. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_6.rb +41 -42
  497. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_systems.rb +209 -197
  498. data/lib/openstudio-standards/standards/necb/NECB2011/lighting.rb +87 -82
  499. data/lib/openstudio-standards/standards/necb/NECB2011/necb_2011.rb +510 -406
  500. data/lib/openstudio-standards/standards/necb/NECB2011/nv.md +3 -3
  501. data/lib/openstudio-standards/standards/necb/NECB2011/qaqc/necb_qaqc.rb +686 -683
  502. data/lib/openstudio-standards/standards/necb/NECB2011/service_water_heating.rb +129 -82
  503. data/lib/openstudio-standards/standards/necb/NECB2015/data/space_types.json +1608 -1608
  504. data/lib/openstudio-standards/standards/necb/NECB2015/hvac_systems.rb +25 -18
  505. data/lib/openstudio-standards/standards/necb/NECB2015/lighting.rb +73 -67
  506. data/lib/openstudio-standards/standards/necb/NECB2015/necb_2015.rb +18 -22
  507. data/lib/openstudio-standards/standards/necb/NECB2015/qaqc/necb_2015_qaqc.rb +59 -63
  508. data/lib/openstudio-standards/standards/necb/NECB2017/data/space_types.json +1608 -1608
  509. data/lib/openstudio-standards/standards/necb/NECB2017/hvac_systems.rb +1 -4
  510. data/lib/openstudio-standards/standards/necb/NECB2017/necb_2017.rb +10 -14
  511. data/lib/openstudio-standards/standards/necb/NECB2020/building_envelope.rb +779 -0
  512. data/lib/openstudio-standards/standards/necb/NECB2020/data/boilers.json +122 -0
  513. data/lib/openstudio-standards/standards/necb/NECB2020/data/chillers.json +335 -0
  514. data/lib/openstudio-standards/standards/necb/NECB2020/data/constants.json +13 -0
  515. data/lib/openstudio-standards/standards/necb/NECB2020/data/furnaces.json +41 -0
  516. data/lib/openstudio-standards/standards/necb/NECB2020/data/heat_pumps.json +452 -0
  517. data/lib/openstudio-standards/standards/necb/NECB2020/data/heat_pumps_heating.json +164 -0
  518. data/lib/openstudio-standards/standards/necb/NECB2020/data/heat_rejection.json +228 -0
  519. data/lib/openstudio-standards/standards/necb/NECB2020/data/led_lighting_data.json +2883 -0
  520. data/lib/openstudio-standards/standards/necb/NECB2020/data/space_types.json +25851 -0
  521. data/lib/openstudio-standards/standards/necb/NECB2020/data/surface_thermal_transmittance.json +60 -0
  522. data/lib/openstudio-standards/standards/necb/NECB2020/data/unitary_acs.json +585 -0
  523. data/lib/openstudio-standards/standards/necb/NECB2020/necb_2020.rb +175 -0
  524. data/lib/openstudio-standards/standards/necb/common/bc_step_code_indicators.md +10 -0
  525. data/lib/openstudio-standards/standards/necb/common/btap_data.rb +1963 -0
  526. data/lib/openstudio-standards/standards/necb/common/btap_datapoint.rb +410 -0
  527. data/lib/openstudio-standards/standards/necb/common/neb_end_use_prices.csv +42 -0
  528. data/lib/openstudio-standards/standards/necb/common/necb_reference_runs.csv +28705 -0
  529. data/lib/openstudio-standards/standards/necb/common/phius.md +23 -0
  530. data/lib/openstudio-standards/standards/necb/common/space_type_upgrade_map.json +1158 -386
  531. data/lib/openstudio-standards/standards/oeesc/oeesc_2014/oeesc_2014.rb +4 -0
  532. data/lib/openstudio-standards/standards/standard.rb +2 -1
  533. data/lib/openstudio-standards/utilities/define_thermal_zone_and_mulitpliers.rb +1 -1
  534. data/lib/openstudio-standards/utilities/logging.rb +6 -0
  535. data/lib/openstudio-standards/utilities/simulation.rb +30 -14
  536. data/lib/openstudio-standards/utilities/{speacetype_map_converter.rb → spacetype_map_converter.rb} +0 -0
  537. data/lib/openstudio-standards/utilities/sqlfile.rb +112 -71
  538. data/lib/openstudio-standards/version.rb +2 -2
  539. data/lib/openstudio-standards/weather/Weather.Model.rb +209 -9
  540. data/lib/openstudio-standards/weather/Weather.stat_file.rb +1 -1
  541. data/lib/openstudio-standards.rb +9 -0
  542. metadata +106 -205
  543. data/data/standards/OpenStudio_Standards-ashrae_90_1-ALL-comstock(space_types).xlsx +0 -0
  544. data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.boilers.json +0 -49
  545. data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.chillers.json +0 -293
  546. data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.construction_properties.json +0 -25426
  547. data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.construction_sets.json +0 -1600
  548. data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.economizers.json +0 -564
  549. data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.elevators.json +0 -349
  550. data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.ext_ltg.json +0 -164
  551. data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.ground_temperatures.json +0 -10663
  552. data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.heat_pumps.json +0 -508
  553. data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.heat_pumps_heating.json +0 -156
  554. data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.heat_rejection.json +0 -44
  555. data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.motors.json +0 -184
  556. data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.prototype_inputs.json +0 -3094
  557. data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.ref_cases.json +0 -829
  558. data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.ref_lnup.json +0 -562
  559. data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.refrigeration_compressors.json +0 -52
  560. data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.refrigeration_condenser.json +0 -220
  561. data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.refrigeration_system.json +0 -156
  562. data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.refrigeration_walkins.json +0 -1316
  563. data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.spc_typ.json +0 -21446
  564. data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.unitary_acs.json +0 -554
  565. data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.water_heaters.json +0 -68
  566. data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.water_source_heat_pumps.json +0 -28
  567. data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.water_source_heat_pumps_heating.json +0 -12
  568. data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.boilers.json +0 -49
  569. data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.chillers.json +0 -293
  570. data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.construction_properties.json +0 -12487
  571. data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.construction_sets.json +0 -1600
  572. data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.economizers.json +0 -564
  573. data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.elevators.json +0 -349
  574. data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.ext_ltg.json +0 -164
  575. data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.ground_temperatures.json +0 -10663
  576. data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.heat_pumps.json +0 -466
  577. data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.heat_pumps_heating.json +0 -137
  578. data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.heat_rejection.json +0 -44
  579. data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.motors.json +0 -184
  580. data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.prototype_inputs.json +0 -3094
  581. data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.ref_cases.json +0 -829
  582. data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.ref_lnup.json +0 -562
  583. data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.refrigeration_compressors.json +0 -52
  584. data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.refrigeration_condenser.json +0 -220
  585. data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.refrigeration_system.json +0 -156
  586. data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.refrigeration_walkins.json +0 -1316
  587. data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.spc_typ.json +0 -21380
  588. data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.unitary_acs.json +0 -554
  589. data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.water_heaters.json +0 -68
  590. data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.water_source_heat_pumps.json +0 -28
  591. data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.water_source_heat_pumps_heating.json +0 -12
  592. data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.boilers.json +0 -49
  593. data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.chillers.json +0 -395
  594. data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.construction_properties.json +0 -12487
  595. data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.construction_sets.json +0 -1600
  596. data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.economizers.json +0 -592
  597. data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.elevators.json +0 -349
  598. data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.energy_recovery.json +0 -550
  599. data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.ext_ltg.json +0 -164
  600. data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.ground_temperatures.json +0 -10663
  601. data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.heat_pumps.json +0 -466
  602. data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.heat_pumps_heating.json +0 -137
  603. data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.heat_rejection.json +0 -44
  604. data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.motors.json +0 -238
  605. data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.prototype_inputs.json +0 -3094
  606. data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.ref_cases.json +0 -829
  607. data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.ref_lnup.json +0 -562
  608. data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.refrigeration_compressors.json +0 -52
  609. data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.refrigeration_condenser.json +0 -220
  610. data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.refrigeration_system.json +0 -156
  611. data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.refrigeration_walkins.json +0 -1316
  612. data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.spc_typ.json +0 -21548
  613. data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.unitary_acs.json +0 -554
  614. data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.water_heaters.json +0 -68
  615. data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.water_source_heat_pumps.json +0 -28
  616. data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.water_source_heat_pumps_heating.json +0 -12
  617. data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.boilers.json +0 -64
  618. data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.chillers.json +0 -871
  619. data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.construction_properties.json +0 -12487
  620. data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.construction_sets.json +0 -1600
  621. data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.economizers.json +0 -592
  622. data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.elevators.json +0 -349
  623. data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.energy_recovery.json +0 -1096
  624. data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.ext_ltg.json +0 -164
  625. data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.ground_temperatures.json +0 -10663
  626. data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.heat_pumps.json +0 -886
  627. data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.heat_pumps_heating.json +0 -194
  628. data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.heat_rejection.json +0 -44
  629. data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.motors.json +0 -247
  630. data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.prototype_inputs.json +0 -3094
  631. data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.ref_cases.json +0 -829
  632. data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.ref_lnup.json +0 -562
  633. data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.refrigeration_compressors.json +0 -52
  634. data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.refrigeration_condenser.json +0 -220
  635. data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.refrigeration_system.json +0 -156
  636. data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.refrigeration_walkins.json +0 -1316
  637. data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.spc_typ.json +0 -22079
  638. data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.unitary_acs.json +0 -994
  639. data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.water_heaters.json +0 -68
  640. data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.water_source_heat_pumps.json +0 -28
  641. data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.water_source_heat_pumps_heating.json +0 -12
  642. data/lib/openstudio-standards/utilities/convert_costing_constructions.rb +0 -105
@@ -1,13 +1,12 @@
1
1
  class NECB2011
2
2
  def model_add_hvac(model:)
3
3
  OpenStudio.logFree(OpenStudio::Info, 'openstudio.model.Model', 'Started Adding HVAC')
4
- system_fuel_defaults = self.get_canadian_system_defaults_by_weatherfile_name(model)
4
+ system_fuel_defaults = get_canadian_system_defaults_by_weatherfile_name(model)
5
5
  necb_autozone_and_autosystem(model: model, runner: nil, use_ideal_air_loads: false, system_fuel_defaults: system_fuel_defaults)
6
6
  OpenStudio.logFree(OpenStudio::Info, 'openstudio.model.Model', 'Finished adding HVAC')
7
7
  return true
8
8
  end
9
9
 
10
-
11
10
  # NECB does not change damper positions
12
11
  #
13
12
  # return [Bool] returns true if successful, false if not
@@ -45,7 +44,7 @@ class NECB2011
45
44
  dsafr_m3_per_s = air_loop_hvac.model.getAutosizedValue(air_loop_hvac, 'Design Supply Air Flow Rate', 'm3/s')
46
45
  min_dsafr_l_per_s = 1500
47
46
  unless dsafr_m3_per_s.empty?
48
- dsafr_l_per_s = dsafr_m3_per_s.get() * 1000
47
+ dsafr_l_per_s = dsafr_m3_per_s.get * 1000
49
48
  if dsafr_l_per_s > min_dsafr_l_per_s
50
49
  economizer_required = true
51
50
  puts "economizer_required = true for #{air_loop_hvac.name} because dsafr_l_per_s(#{dsafr_l_per_s}) > 1500"
@@ -90,11 +89,10 @@ class NECB2011
90
89
  def air_loop_hvac_apply_economizer_integration(air_loop_hvac, climate_zone)
91
90
  # Get the OA system and OA controller
92
91
  oa_sys = air_loop_hvac.airLoopHVACOutdoorAirSystem
93
- if oa_sys.is_initialized
94
- oa_sys = oa_sys.get
95
- else
96
- return false # No OA system
97
- end
92
+ # No OA system
93
+ return false if !oa_sys.is_initialized
94
+
95
+ oa_sys = oa_sys.get
98
96
  oa_control = oa_sys.getControllerOutdoorAir
99
97
 
100
98
  # Apply integrated economizer
@@ -236,10 +234,12 @@ class NECB2011
236
234
  oa_flow = oa_flow_per_floor_area * space.floorArea * zone.multiplier # oa flow for the space
237
235
  zone_oa += oa_flow # add up oa flow for all spaces to get zone air flow
238
236
  end
239
- end # space loop
237
+ # space loop
238
+ end
240
239
  sum_zone_oa += zone_oa # sum of all zone oa flows to get system oa flow
241
240
  sum_zone_oa_times_heat_design_t += (zone_oa * heat_design_t) # calculated to get oa flow weighted average of design exhaust temperature
242
- end # zone loop
241
+ # zone loop
242
+ end
243
243
 
244
244
  # Calculate average exhaust temperature (oa flow weighted average)
245
245
  avg_exhaust_temp = sum_zone_oa_times_heat_design_t / sum_zone_oa
@@ -370,12 +370,12 @@ class NECB2011
370
370
 
371
371
  # Sets the minimum effectiveness of the heat exchanger per
372
372
  # the standard.
373
- def heat_exchanger_air_to_air_sensible_and_latent_apply_efficiency(heat_exchanger_air_to_air_sensible_and_latent, erv_name = nil)
373
+ def heat_exchanger_air_to_air_sensible_and_latent_apply_effectiveness(heat_exchanger_air_to_air_sensible_and_latent, erv_name = nil)
374
374
  # Assumed to be sensible and latent at all flow
375
375
  # This will now get data of the erv from the json file instead of hardcoding it. Defaults to NECB2011 erv we have been using.
376
376
  erv_name = 'NECB_Default' if erv_name.nil?
377
377
  erv_info = @standards_data['tables']['erv']['table'].detect { |item| item['erv_name'] == erv_name }
378
- raise("Could not find #{erv_name} in #{self.class.name} class' erv.json file or it's parents. The available ervs are #{@standards_data['tables']['erv']['table'].map{|item| item['erv_name']}}") if erv_info.nil?
378
+ raise("Could not find #{erv_name} in #{self.class.name} class' erv.json file or it's parents. The available ervs are #{@standards_data['tables']['erv']['table'].map { |item| item['erv_name'] }}") if erv_info.nil?
379
379
 
380
380
  heat_exchanger_air_to_air_sensible_and_latent.setHeatExchangerType(erv_info['HeatExchangerType'])
381
381
  heat_exchanger_air_to_air_sensible_and_latent.setSensibleEffectivenessat100HeatingAirFlow(erv_info['SensibleEffectivenessat100HeatingAirFlow'])
@@ -391,12 +391,11 @@ class NECB2011
391
391
  heat_exchanger_air_to_air_sensible_and_latent.setEconomizerLockout(erv_info['EconomizerLockout'])
392
392
  heat_exchanger_air_to_air_sensible_and_latent.setThresholdTemperature(erv_info['ThresholdTemperature'])
393
393
  heat_exchanger_air_to_air_sensible_and_latent.setInitialDefrostTimeFraction(erv_info['InitialDefrostTimeFraction'])
394
- update_sys_name(heat_exchanger_air_to_air_sensible_and_latent.airLoopHVAC.get,sys_hr: "erv")
394
+ update_sys_name(heat_exchanger_air_to_air_sensible_and_latent.airLoopHVAC.get, sys_hr: 'erv')
395
395
 
396
396
  return true
397
397
  end
398
398
 
399
-
400
399
  # Determine if demand control ventilation (DCV) is
401
400
  # required for this air loop.
402
401
  #
@@ -720,7 +719,6 @@ class NECB2011
720
719
  #
721
720
  # @return [Double] minimum thermal efficiency
722
721
  def coil_heating_gas_standard_minimum_thermal_efficiency(coil_heating_gas, rename = false)
723
-
724
722
  # Get the coil properties
725
723
  search_criteria = coil_heating_gas_find_search_criteria
726
724
  capacity_w = coil_heating_gas_find_capacity(coil_heating_gas)
@@ -803,7 +801,6 @@ class NECB2011
803
801
  successfully_set_all_properties = false
804
802
  end
805
803
 
806
-
807
804
  # Make the plf vs plr curve
808
805
  plffplr_curve = model_add_curve(coil_heating_gas.model, coil_props['efffplr'])
809
806
  if plffplr_curve
@@ -820,7 +817,6 @@ class NECB2011
820
817
  coil_heating_gas.setGasBurnerEfficiency(thermal_eff.to_f)
821
818
 
822
819
  return successfully_set_all_properties
823
-
824
820
  end
825
821
 
826
822
  # Applies the standard efficiency ratings and typical performance curves to this object.
@@ -842,7 +838,9 @@ class NECB2011
842
838
  oa_system = airloop.airLoopHVACOutdoorAirSystem.get
843
839
  controller_oa = oa_system.getControllerOutdoorAir
844
840
  end
845
- min_oa_flow_rate, oaf = 0.0,0.0
841
+ min_oa_flow_rate = 0.0
842
+ oaf = 0.0
843
+
846
844
  if controller_oa
847
845
  min_oa_flow_rate = nil
848
846
  if controller_oa.minimumOutdoorAirFlowRate.is_initialized
@@ -881,7 +879,7 @@ class NECB2011
881
879
  end
882
880
 
883
881
  # Set final number of cooling stages and create missing stages if needed
884
- for istage in 2..final_num_stages-1
882
+ for istage in 2..final_num_stages - 1
885
883
  new_clg_stage = OpenStudio::Model::CoilCoolingDXMultiSpeedStageData.new(model)
886
884
  coil_cooling_dx_multi_speed.addStage(new_clg_stage)
887
885
  end
@@ -891,14 +889,14 @@ class NECB2011
891
889
  # is maintained above the outside air flow rate
892
890
  coil_cooling_dx_multi_speed.stages[0].setGrossRatedTotalCoolingCapacity(stage_cap[0])
893
891
  coil_cooling_dx_multi_speed.stages[1].setGrossRatedTotalCoolingCapacity(stage_cap[1])
894
- case coil_cooling_dx_multi_speed.stages.size
892
+ case coil_cooling_dx_multi_speed.stages.size
895
893
  when 2
896
- if (oaf > 0.5) then multi_speed_heat_pump.setSpeed1SupplyAirFlowRateDuringCoolingOperation(min_oa_flow_rate) end
894
+ if oaf > 0.5 then multi_speed_heat_pump.setSpeed1SupplyAirFlowRateDuringCoolingOperation(min_oa_flow_rate) end
897
895
  when 3
898
896
  coil_cooling_dx_multi_speed.stages[2].setGrossRatedTotalCoolingCapacity(stage_cap[2])
899
897
  if (oaf > 0.333) && (oaf <= 0.666)
900
898
  multi_speed_heat_pump.setSpeed1SupplyAirFlowRateDuringCoolingOperation(min_oa_flow_rate)
901
- elsif (oaf > 0.666)
899
+ elsif oaf > 0.666
902
900
  multi_speed_heat_pump.setSpeed1SupplyAirFlowRateDuringCoolingOperation(min_oa_flow_rate)
903
901
  multi_speed_heat_pump.setSpeed2SupplyAirFlowRateDuringCoolingOperation(min_oa_flow_rate)
904
902
  end
@@ -910,7 +908,7 @@ class NECB2011
910
908
  elsif (oaf > 0.5) && (oaf <= 0.75)
911
909
  multi_speed_heat_pump.setSpeed1SupplyAirFlowRateDuringCoolingOperation(min_oa_flow_rate)
912
910
  multi_speed_heat_pump.setSpeed2SupplyAirFlowRateDuringCoolingOperation(min_oa_flow_rate)
913
- elsif (oaf > 0.75)
911
+ elsif oaf > 0.75
914
912
  multi_speed_heat_pump.setSpeed1SupplyAirFlowRateDuringCoolingOperation(min_oa_flow_rate)
915
913
  multi_speed_heat_pump.setSpeed2SupplyAirFlowRateDuringCoolingOperation(min_oa_flow_rate)
916
914
  multi_speed_heat_pump.setSpeed3SupplyAirFlowRateDuringCoolingOperation(min_oa_flow_rate)
@@ -1001,8 +999,8 @@ class NECB2011
1001
999
  # Set the COP values
1002
1000
  cop, new_comp_name = coil_cooling_dx_multi_speed_standard_minimum_cop(coil_cooling_dx_multi_speed)
1003
1001
  unless cop.nil?
1004
- clg_stages.sort.each do |istage|
1005
- istage.setGrossRatedCoolingCOP(cop)
1002
+ clg_stages.sort.each do |curr_istage|
1003
+ curr_istage.setGrossRatedCoolingCOP(cop)
1006
1004
  end
1007
1005
  end
1008
1006
  sql_db_vars_map[new_comp_name] = coil_cooling_dx_multi_speed.name.to_s
@@ -1015,7 +1013,6 @@ class NECB2011
1015
1013
  create_ems_to_turn_on_AirLoopHVACUnitaryHeatPumpAirToAirMultiSpeed_for_night_cycle(multi_speed_heat_pump)
1016
1014
 
1017
1015
  return sql_db_vars_map
1018
-
1019
1016
  end
1020
1017
 
1021
1018
  # Create EMS to turn on "AirLoopHVACUnitaryHeatPumpAirToAirMultiSpeed" in response to a call
@@ -1025,48 +1022,48 @@ class NECB2011
1025
1022
  model = multi_speed_heat_pump.model
1026
1023
  avail_manager_name = nil
1027
1024
  if multi_speed_heat_pump.airLoopHVAC.is_initialized
1028
- if not multi_speed_heat_pump.airLoopHVAC.get.availabilityManagers.empty?
1025
+ if !multi_speed_heat_pump.airLoopHVAC.get.availabilityManagers.empty?
1029
1026
  avail_manager_name = multi_speed_heat_pump.airLoopHVAC.get.availabilityManagers[0].name.to_s
1030
1027
  end
1031
1028
  end
1032
- if avail_manager_name
1033
- avail_manager_out_var_name = "Availability Manager Night Cycle Control Status"
1034
- avail_manager_out_var = OpenStudio::Model::OutputVariable.new(avail_manager_out_var_name, model)
1035
- avail_manager_out_var.setKeyValue(avail_manager_name)
1036
- avail_manager_out_var.setReportingFrequency("Timestep")
1037
- night_cycle_sensor = OpenStudio::Model::EnergyManagementSystemSensor.new(model, avail_manager_out_var)
1038
- heat_pump_avail_sch = nil
1039
- if multi_speed_heat_pump.availabilitySchedule.is_initialized
1040
- heat_pump_avail_sch = multi_speed_heat_pump.availabilitySchedule.get
1041
- elsif multi_speed_heat_pump.airLoopHVAC.get.availabilitySchedule.is_initialized
1042
- heat_pump_avail_sch = multi_speed_heat_pump.airLoopHVAC.get.availabilitySchedule.get
1043
- else
1044
- heat_pump_avail_sch = OpenStudio::Model::ScheduleConstant.new(model)
1045
- heat_pump_avail_sch.setValue(1.0)
1046
- end
1047
- heat_pump_avail_sch_var = OpenStudio::Model::OutputVariable.new("Schedule Value", model)
1048
- heat_pump_avail_sch_var.setKeyValue(heat_pump_avail_sch.name.to_s)
1049
- heat_pump_avail_sch_sensor = OpenStudio::Model::EnergyManagementSystemSensor.new(model, heat_pump_avail_sch_var)
1050
- updated_heat_pump_avail_sch = OpenStudio::Model::ScheduleConstant.new(model)
1051
- multi_speed_heat_pump.setAvailabilitySchedule(updated_heat_pump_avail_sch)
1052
- heat_pump_avail_sch_actuator = OpenStudio::Model::EnergyManagementSystemActuator.new(updated_heat_pump_avail_sch, "Schedule:Constant", "Schedule Value")
1053
- heat_pump_avail_sch_prog = OpenStudio::Model::EnergyManagementSystemProgram.new(model)
1054
- heat_pump_avail_sch_prog.setName("#{multi_speed_heat_pump.name.to_s.gsub(/[ +-.]/,'_')} Availability Schedule Program by Line")
1055
- heat_pump_avail_sch_prog_body = <<-EMS
1056
- IF #{heat_pump_avail_sch_sensor.handle} > 0.0
1029
+ return unless avail_manager_name
1030
+
1031
+ avail_manager_out_var_name = 'Availability Manager Night Cycle Control Status'
1032
+ avail_manager_out_var = OpenStudio::Model::OutputVariable.new(avail_manager_out_var_name, model)
1033
+ avail_manager_out_var.setKeyValue(avail_manager_name)
1034
+ avail_manager_out_var.setReportingFrequency('Timestep')
1035
+ night_cycle_sensor = OpenStudio::Model::EnergyManagementSystemSensor.new(model, avail_manager_out_var)
1036
+ heat_pump_avail_sch = nil
1037
+ if multi_speed_heat_pump.availabilitySchedule.is_initialized
1038
+ heat_pump_avail_sch = multi_speed_heat_pump.availabilitySchedule.get
1039
+ elsif multi_speed_heat_pump.airLoopHVAC.get.availabilitySchedule.is_initialized
1040
+ heat_pump_avail_sch = multi_speed_heat_pump.airLoopHVAC.get.availabilitySchedule.get
1041
+ else
1042
+ heat_pump_avail_sch = OpenStudio::Model::ScheduleConstant.new(model)
1043
+ heat_pump_avail_sch.setValue(1.0)
1044
+ end
1045
+ heat_pump_avail_sch_var = OpenStudio::Model::OutputVariable.new('Schedule Value', model)
1046
+ heat_pump_avail_sch_var.setKeyValue(heat_pump_avail_sch.name.to_s)
1047
+ heat_pump_avail_sch_sensor = OpenStudio::Model::EnergyManagementSystemSensor.new(model, heat_pump_avail_sch_var)
1048
+ updated_heat_pump_avail_sch = OpenStudio::Model::ScheduleConstant.new(model)
1049
+ multi_speed_heat_pump.setAvailabilitySchedule(updated_heat_pump_avail_sch)
1050
+ heat_pump_avail_sch_actuator = OpenStudio::Model::EnergyManagementSystemActuator.new(updated_heat_pump_avail_sch, 'Schedule:Constant', 'Schedule Value')
1051
+ heat_pump_avail_sch_prog = OpenStudio::Model::EnergyManagementSystemProgram.new(model)
1052
+ heat_pump_avail_sch_prog.setName("#{multi_speed_heat_pump.name.to_s.gsub(/[ +-.]/, '_')} Availability Schedule Program by Line")
1053
+ heat_pump_avail_sch_prog_body = <<-EMS
1054
+ IF #{heat_pump_avail_sch_sensor.handle} > 0.0
1057
1055
  SET #{heat_pump_avail_sch_actuator.handle} = #{heat_pump_avail_sch_sensor.handle}
1058
1056
  ELSEIF #{night_cycle_sensor.handle} == 2.0
1059
1057
  SET #{heat_pump_avail_sch_actuator.handle} = 1.0
1060
1058
  ELSE
1061
1059
  SET #{heat_pump_avail_sch_actuator.handle} = 0.0
1062
1060
  ENDIF
1063
- EMS
1064
- heat_pump_avail_sch_prog.setBody(heat_pump_avail_sch_prog_body)
1065
- pcm = OpenStudio::Model::EnergyManagementSystemProgramCallingManager.new(model)
1066
- pcm.setName("#{heat_pump_avail_sch_prog.name.to_s.gsub(/[ +-.]/,'_')} Calling Manager")
1067
- pcm.setCallingPoint('InsideHVACSystemIterationLoop')
1068
- pcm.addProgram(heat_pump_avail_sch_prog)
1069
- end
1061
+ EMS
1062
+ heat_pump_avail_sch_prog.setBody(heat_pump_avail_sch_prog_body)
1063
+ pcm = OpenStudio::Model::EnergyManagementSystemProgramCallingManager.new(model)
1064
+ pcm.setName("#{heat_pump_avail_sch_prog.name.to_s.gsub(/[ +-.]/, '_')} Calling Manager")
1065
+ pcm.setCallingPoint('InsideHVACSystemIterationLoop')
1066
+ pcm.addProgram(heat_pump_avail_sch_prog)
1070
1067
  end
1071
1068
 
1072
1069
  # Applies the standard efficiency ratings and typical performance curves to this object.
@@ -1090,7 +1087,7 @@ class NECB2011
1090
1087
 
1091
1088
  # Define the criteria to find the properties in the hvac standards data set.
1092
1089
  search_criteria = coil_heating_gas_multi_stage_find_search_criteria(coil_heating_gas_multi_stage)
1093
- fuel_type = search_criteria["fuel_type"]
1090
+ fuel_type = search_criteria['fuel_type']
1094
1091
  capacity_w = coil_heating_gas_multi_stage_find_capacity(coil_heating_gas_multi_stage)
1095
1092
 
1096
1093
  # Find system design outside air flow rate and fraction
@@ -1099,7 +1096,8 @@ class NECB2011
1099
1096
  oa_system = airloop.airLoopHVACOutdoorAirSystem.get
1100
1097
  controller_oa = oa_system.getControllerOutdoorAir
1101
1098
  end
1102
- min_oa_flow_rate, oaf = 0.0,0.0
1099
+ min_oa_flow_rate = 0.0
1100
+ oaf = 0.0
1103
1101
  if controller_oa
1104
1102
  min_oa_flow_rate = nil
1105
1103
  if controller_oa.minimumOutdoorAirFlowRate.is_initialized
@@ -1143,7 +1141,7 @@ class NECB2011
1143
1141
  end
1144
1142
 
1145
1143
  # Set final number of stages and create missing stages if needed
1146
- for istage in 1..final_num_stages-1
1144
+ for istage in 1..final_num_stages - 1
1147
1145
  new_htg_stage = OpenStudio::Model::CoilHeatingGasMultiStageStageData.new(model)
1148
1146
  coil_heating_gas_multi_stage.addStage(new_htg_stage)
1149
1147
  end
@@ -1152,16 +1150,16 @@ class NECB2011
1152
1150
  # Set final capacities for each of the stages. The air flow rate for each of the stages
1153
1151
  # is maintained above the outside air flow rate
1154
1152
  coil_heating_gas_multi_stage.stages[0].setNominalCapacity(stage_cap[0])
1155
- case coil_heating_gas_multi_stage.stages.size
1153
+ case coil_heating_gas_multi_stage.stages.size
1156
1154
  when 2
1157
1155
  coil_heating_gas_multi_stage.stages[1].setNominalCapacity(stage_cap[1])
1158
- if (oaf > 0.5) then multi_speed_heat_pump.setSpeed1SupplyAirFlowRateDuringHeatingOperation(min_oa_flow_rate) end
1156
+ if oaf > 0.5 then multi_speed_heat_pump.setSpeed1SupplyAirFlowRateDuringHeatingOperation(min_oa_flow_rate) end
1159
1157
  when 3
1160
1158
  coil_heating_gas_multi_stage.stages[1].setNominalCapacity(stage_cap[1])
1161
1159
  coil_heating_gas_multi_stage.stages[2].setNominalCapacity(stage_cap[2])
1162
1160
  if (oaf > 0.333) && (oaf <= 0.666)
1163
1161
  multi_speed_heat_pump.setSpeed1SupplyAirFlowRateDuringHeatingOperation(min_oa_flow_rate)
1164
- elsif (oaf > 0.666)
1162
+ elsif oaf > 0.666
1165
1163
  multi_speed_heat_pump.setSpeed1SupplyAirFlowRateDuringHeatingOperation(min_oa_flow_rate)
1166
1164
  multi_speed_heat_pump.setSpeed2SupplyAirFlowRateDuringHeatingOperation(min_oa_flow_rate)
1167
1165
  end
@@ -1174,7 +1172,7 @@ class NECB2011
1174
1172
  elsif (oaf > 0.5) && (oaf <= 0.75)
1175
1173
  multi_speed_heat_pump.setSpeed1SupplyAirFlowRateDuringHeatingOperation(min_oa_flow_rate)
1176
1174
  multi_speed_heat_pump.setSpeed2SupplyAirFlowRateDuringHeatingOperation(min_oa_flow_rate)
1177
- elsif (oaf > 0.75)
1175
+ elsif oaf > 0.75
1178
1176
  multi_speed_heat_pump.setSpeed1SupplyAirFlowRateDuringHeatingOperation(min_oa_flow_rate)
1179
1177
  multi_speed_heat_pump.setSpeed2SupplyAirFlowRateDuringHeatingOperation(min_oa_flow_rate)
1180
1178
  multi_speed_heat_pump.setSpeed3SupplyAirFlowRateDuringHeatingOperation(min_oa_flow_rate)
@@ -1247,7 +1245,6 @@ class NECB2011
1247
1245
  end
1248
1246
 
1249
1247
  return successfully_set_all_properties
1250
-
1251
1248
  end
1252
1249
 
1253
1250
  # Determines the baseline fan impeller efficiency
@@ -1329,10 +1326,10 @@ class NECB2011
1329
1326
  end
1330
1327
 
1331
1328
  search_criteria = {
1332
- 'motor_use' => motor_use,
1333
- 'motor_type' => motor_type,
1334
- 'number_of_poles' => 4.0,
1335
- 'type' => 'Enclosed'
1329
+ 'motor_use' => motor_use,
1330
+ 'motor_type' => motor_type,
1331
+ 'number_of_poles' => 4.0,
1332
+ 'type' => 'Enclosed'
1336
1333
  }
1337
1334
 
1338
1335
  # Exception for small fans, including
@@ -1398,9 +1395,9 @@ class NECB2011
1398
1395
 
1399
1396
  # Assuming all pump motors are 4-pole ODP
1400
1397
  search_criteria = {
1401
- 'motor_use' => 'PUMP',
1402
- 'number_of_poles' => 4.0,
1403
- 'type' => 'Enclosed'
1398
+ 'motor_use' => 'PUMP',
1399
+ 'number_of_poles' => 4.0,
1400
+ 'type' => 'Enclosed'
1404
1401
  }
1405
1402
 
1406
1403
  motor_properties = model_find_object(motors, search_criteria, motor_bhp)
@@ -1428,13 +1425,11 @@ class NECB2011
1428
1425
  return [motor_eff, nominal_hp]
1429
1426
  end
1430
1427
 
1431
-
1432
1428
  # Determines whether there is a requirement to have a
1433
1429
  # VSD or some other method to reduce fan power
1434
1430
  # at low part load ratios.
1435
1431
  def fan_variable_volume_part_load_fan_power_limitation?(fan_variable_volume)
1436
1432
  part_load_control_required = false
1437
-
1438
1433
  return part_load_control_required
1439
1434
  end
1440
1435
 
@@ -1451,13 +1446,13 @@ class NECB2011
1451
1446
  end
1452
1447
 
1453
1448
  def model_apply_sizing_parameters(model)
1454
- model.getSizingParameters.setHeatingSizingFactor(self.get_standards_constant('sizing_factor_max_heating'))
1455
- model.getSizingParameters.setCoolingSizingFactor(self.get_standards_constant('sizing_factor_max_cooling'))
1456
- OpenStudio.logFree(OpenStudio::Info, 'openstudio.prototype.Model', "Set sizing factors to #{self.get_standards_constant('sizing_factor_max_heating')} for heating and #{self.get_standards_constant('sizing_factor_max_heating')} for cooling.")
1449
+ model.getSizingParameters.setHeatingSizingFactor(get_standards_constant('sizing_factor_max_heating'))
1450
+ model.getSizingParameters.setCoolingSizingFactor(get_standards_constant('sizing_factor_max_cooling'))
1451
+ OpenStudio.logFree(OpenStudio::Info, 'openstudio.prototype.Model', "Set sizing factors to #{get_standards_constant('sizing_factor_max_heating')} for heating and #{get_standards_constant('sizing_factor_max_heating')} for cooling.")
1457
1452
  end
1458
1453
 
1459
1454
  def fan_constant_volume_apply_prototype_fan_pressure_rise(fan_constant_volume)
1460
- fan_constant_volume.setPressureRise(self.get_standards_constant('fan_constant_volume_pressure_rise_value'))
1455
+ fan_constant_volume.setPressureRise(get_standards_constant('fan_constant_volume_pressure_rise_value'))
1461
1456
  return true
1462
1457
  end
1463
1458
 
@@ -1475,11 +1470,11 @@ class NECB2011
1475
1470
  # and whether the fan lives inside a unit heater, PTAC, etc.
1476
1471
  def fan_variable_volume_apply_prototype_fan_pressure_rise(fan_variable_volume)
1477
1472
  # 1000 Pa for supply fan and 458.33 Pa for return fan (accounts for efficiency differences between two fans)
1478
- if (fan_variable_volume.name.to_s.include?('Supply'))
1479
- sfan_deltaP = self.get_standards_constant('supply_fan_variable_volume_pressure_rise_value')
1473
+ if fan_variable_volume.name.to_s.include?('Supply')
1474
+ sfan_deltaP = get_standards_constant('supply_fan_variable_volume_pressure_rise_value')
1480
1475
  fan_variable_volume.setPressureRise(sfan_deltaP)
1481
- elsif (fan_variable_volume.name.to_s.include?('Return'))
1482
- rfan_deltaP = self.get_standards_constant('return_fan_variable_volume_pressure_rise_value')
1476
+ elsif fan_variable_volume.name.to_s.include?('Return')
1477
+ rfan_deltaP = get_standards_constant('return_fan_variable_volume_pressure_rise_value')
1483
1478
  fan_variable_volume.setPressureRise(rfan_deltaP)
1484
1479
  end
1485
1480
  return true
@@ -1581,7 +1576,7 @@ class NECB2011
1581
1576
  # Helper method to find out which climate zone set contains a specific climate zone.
1582
1577
  # Returns climate zone set name as String if success, nil if not found.
1583
1578
  def model_find_climate_zone_set(model, clim)
1584
- return "NECB-CNEB ClimatZone 4-8"
1579
+ return 'NECB-CNEB ClimatZone 4-8'
1585
1580
  end
1586
1581
 
1587
1582
  def setup_hw_loop_with_components(model,
@@ -1725,7 +1720,6 @@ class NECB2011
1725
1720
 
1726
1721
  return clg_tower
1727
1722
  end
1728
-
1729
1723
 
1730
1724
  # This method cycles through the spaces in a thermal zone and then sorts them by story. The method then cycles
1731
1725
  # through the spaces on a story and then calculates the centroid of the spaces in the thermal zone on that floor. The
@@ -1746,8 +1740,8 @@ class NECB2011
1746
1740
  # Including regular expressions in the following match for cases where extra characters, which do not belong, are
1747
1741
  # added to either the space type in the model or the space type reference file.
1748
1742
  sp_type_info = @standards_data['space_types'].detect do |data|
1749
- ((Regexp.new(data['space_type'].to_s.upcase)).match(sp_type.upcase) || (Regexp.new(sp_type.upcase).match(data['space_type'].to_s.upcase)) || (data['space_type'].to_s.upcase == sp_type.upcase)) and
1750
- data['building_type'].to_s == 'Space Function'
1743
+ (Regexp.new(data['space_type'].to_s.upcase).match(sp_type.upcase) || Regexp.new(sp_type.upcase).match(data['space_type'].to_s.upcase) || (data['space_type'].to_s.upcase == sp_type.upcase)) &&
1744
+ (data['building_type'].to_s == 'Space Function')
1751
1745
  end
1752
1746
  if sp_type_info.nil?
1753
1747
  OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.thermal_zone_get_centroid_per_floor', "The space type called #{sp_type} could not be found. Please check that the schedules.json file is available and that the space types are spelled correctly")
@@ -1755,33 +1749,33 @@ class NECB2011
1755
1749
  end
1756
1750
  # Determine if space is heated or cooled via spacetype heating or cooling setpoints also checking if the space is
1757
1751
  # a plenum by checking if there is a hvac system associtated with it
1758
- if sp_type_info['heating_setpoint_schedule'].nil? then
1752
+ if sp_type_info['heating_setpoint_schedule'].nil?
1759
1753
  heated = FALSE
1760
1754
  else
1761
1755
  heated = TRUE
1762
1756
  end
1763
- if sp_type_info['cooling_setpoint_schedule'].nil? then
1757
+ if sp_type_info['cooling_setpoint_schedule'].nil?
1764
1758
  cooled = FALSE
1765
1759
  else
1766
1760
  cooled = TRUE
1767
1761
  end
1768
- if (sp_type_info['necb_hvac_system_selection_type'] == '- undefined -') || /undefined/.match(sp_type_info['necb_hvac_system_selection_type']) then
1762
+ if (sp_type_info['necb_hvac_system_selection_type'] == '- undefined -') || /undefined/.match(sp_type_info['necb_hvac_system_selection_type'])
1769
1763
  not_plenum = FALSE
1770
1764
  else
1771
1765
  not_plenum = TRUE
1772
1766
  end
1773
1767
  # If the spaces are heated or cooled and are not a plenum then continue
1774
- if (heated || cooled) and not_plenum
1768
+ if (heated || cooled) && not_plenum
1775
1769
  # Get the story name and sit it to none if there is no story name
1776
1770
  story_name = space.buildingStory.get.nameString
1777
1771
  story_name = 'none' if story_name.nil?
1778
1772
  # If this is the first story in the arry then add a new one.
1779
1773
  if stories.empty?
1780
1774
  stories << {
1781
- story_name: story_name,
1782
- spaces: [space],
1783
- centroid: [0, 0, 0],
1784
- ceiling_area: 0
1775
+ story_name: story_name,
1776
+ spaces: [space],
1777
+ centroid: [0, 0, 0],
1778
+ ceiling_area: 0
1785
1779
  }
1786
1780
  next
1787
1781
  else
@@ -1795,10 +1789,10 @@ class NECB2011
1795
1789
  # If the story is not in the array then add it.
1796
1790
  if i.nil?
1797
1791
  stories << {
1798
- story_name: story_name,
1799
- spaces: [space],
1800
- centroid: [0, 0, 0],
1801
- ceiling_area: 0
1792
+ story_name: story_name,
1793
+ spaces: [space],
1794
+ centroid: [0, 0, 0],
1795
+ ceiling_area: 0
1802
1796
  }
1803
1797
  else
1804
1798
  # If the story is already in the arry then add the space to the array of spaces for that story
@@ -1854,10 +1848,9 @@ class NECB2011
1854
1848
  return stories
1855
1849
  end
1856
1850
 
1857
- #Create a new DX cooling coil with NECB curve characteristics
1851
+ # Create a new DX cooling coil with NECB curve characteristics
1858
1852
  def add_onespeed_DX_coil(model, always_on)
1859
-
1860
- #clg_cap_f_of_temp = OpenStudio::Model::CurveBiquadratic.new(model)
1853
+ # clg_cap_f_of_temp = OpenStudio::Model::CurveBiquadratic.new(model)
1861
1854
  # clg_cap_f_of_temp = model_add_curve("DXCOOL-NECB2011-REF-CAPFT")
1862
1855
  clg_cap_f_of_temp = OpenStudio::Model::CurveBiquadratic.new(model)
1863
1856
  clg_cap_f_of_temp.setCoefficient1Constant(0.867905)
@@ -1871,7 +1864,7 @@ class NECB2011
1871
1864
  clg_cap_f_of_temp.setMinimumValueofy(24.0)
1872
1865
  clg_cap_f_of_temp.setMaximumValueofy(46.0)
1873
1866
 
1874
- #clg_cap_f_of_flow = OpenStudio::Model::CurveQuadratic.new(model)
1867
+ # clg_cap_f_of_flow = OpenStudio::Model::CurveQuadratic.new(model)
1875
1868
  clg_cap_f_of_flow = OpenStudio::Model::CurveQuadratic.new(model)
1876
1869
  clg_cap_f_of_flow.setCoefficient1Constant(1.0)
1877
1870
  clg_cap_f_of_flow.setCoefficient2x(0.0)
@@ -1880,7 +1873,7 @@ class NECB2011
1880
1873
  clg_cap_f_of_flow.setMaximumValueofx(1.0)
1881
1874
 
1882
1875
  # clg_energy_input_ratio_f_of_temp = = model_add_curve(""DXCOOL-NECB2011-REF-COOLEIRFT")
1883
- #clg_energy_input_ratio_f_of_temp = OpenStudio::Model::CurveBiquadratic.new(model)
1876
+ # clg_energy_input_ratio_f_of_temp = OpenStudio::Model::CurveBiquadratic.new(model)
1884
1877
  clg_energy_input_ratio_f_of_temp = OpenStudio::Model::CurveBiquadratic.new(model)
1885
1878
  clg_energy_input_ratio_f_of_temp.setCoefficient1Constant(0.116936)
1886
1879
  clg_energy_input_ratio_f_of_temp.setCoefficient2x(0.0284933)
@@ -1893,7 +1886,7 @@ class NECB2011
1893
1886
  clg_energy_input_ratio_f_of_temp.setMinimumValueofy(24.0)
1894
1887
  clg_energy_input_ratio_f_of_temp.setMaximumValueofy(46.0)
1895
1888
 
1896
- #clg_energy_input_ratio_f_of_flow = OpenStudio::Model::CurveQuadratic.new(model)
1889
+ # clg_energy_input_ratio_f_of_flow = OpenStudio::Model::CurveQuadratic.new(model)
1897
1890
  # clg_energy_input_ratio_f_of_flow = = model_add_curve("DXCOOL-NECB2011-REF-CAPFFLOW")
1898
1891
  clg_energy_input_ratio_f_of_flow = OpenStudio::Model::CurveQuadratic.new(model)
1899
1892
  clg_energy_input_ratio_f_of_flow.setCoefficient1Constant(1.0)
@@ -1912,14 +1905,13 @@ class NECB2011
1912
1905
  clg_part_load_ratio.setMinimumValueofx(0.7)
1913
1906
  clg_part_load_ratio.setMaximumValueofx(1.0)
1914
1907
 
1915
-
1916
1908
  return OpenStudio::Model::CoilCoolingDXSingleSpeed.new(model,
1917
1909
  always_on,
1918
1910
  clg_cap_f_of_temp,
1919
1911
  clg_cap_f_of_flow,
1920
1912
  clg_energy_input_ratio_f_of_temp,
1921
1913
  clg_energy_input_ratio_f_of_flow,
1922
- clg_part_load_ratio);
1914
+ clg_part_load_ratio)
1923
1915
  end
1924
1916
 
1925
1917
  # Zonal systems
@@ -1932,16 +1924,16 @@ class NECB2011
1932
1924
  zone_elec_baseboard = OpenStudio::Model::ZoneHVACBaseboardConvectiveElectric.new(model)
1933
1925
  zone_elec_baseboard.addToThermalZone(zone)
1934
1926
  end
1935
- if baseboard_type == 'Hot Water'
1936
- baseboard_coil = OpenStudio::Model::CoilHeatingWaterBaseboard.new(model)
1937
- # Connect baseboard coil to hot water loop
1938
- hw_loop.addDemandBranchForComponent(baseboard_coil)
1939
- zone_baseboard = OpenStudio::Model::ZoneHVACBaseboardConvectiveWater.new(model, always_on, baseboard_coil)
1940
- # add zone_baseboard to zone
1941
- zone_baseboard.addToThermalZone(zone)
1942
- end
1943
- end
1944
1927
 
1928
+ return unless baseboard_type == 'Hot Water'
1929
+
1930
+ baseboard_coil = OpenStudio::Model::CoilHeatingWaterBaseboard.new(model)
1931
+ # Connect baseboard coil to hot water loop
1932
+ hw_loop.addDemandBranchForComponent(baseboard_coil)
1933
+ zone_baseboard = OpenStudio::Model::ZoneHVACBaseboardConvectiveWater.new(model, always_on, baseboard_coil)
1934
+ # add zone_baseboard to zone
1935
+ zone_baseboard.addToThermalZone(zone)
1936
+ end
1945
1937
 
1946
1938
  def add_ptac_dx_cooling(model, zone, zero_outdoor_air)
1947
1939
  # Create a PTAC for each zone:
@@ -1960,7 +1952,7 @@ class NECB2011
1960
1952
  htg_coil = OpenStudio::Model::CoilHeatingElectric.new(model, always_off)
1961
1953
 
1962
1954
  # Set up PTAC DX coil with NECB performance curve characteristics;
1963
- clg_coil = self.add_onespeed_DX_coil(model, always_on)
1955
+ clg_coil = add_onespeed_DX_coil(model, always_on)
1964
1956
 
1965
1957
  # Set up PTAC constant volume supply fan
1966
1958
  fan = OpenStudio::Model::FanConstantVolume.new(model, always_on)
@@ -1973,7 +1965,7 @@ class NECB2011
1973
1965
  clg_coil)
1974
1966
  ptac.setName("#{zone.name} PTAC")
1975
1967
  if zero_outdoor_air
1976
- ptac.setOutdoorAirFlowRateWhenNoCoolingorHeatingisNeeded (1.0e-5)
1968
+ ptac.setOutdoorAirFlowRateWhenNoCoolingorHeatingisNeeded 1.0e-5
1977
1969
  ptac.setOutdoorAirFlowRateDuringCoolingOperation(1.0e-5)
1978
1970
  ptac.setOutdoorAirFlowRateDuringHeatingOperation(1.0e-5)
1979
1971
  end
@@ -2007,11 +1999,10 @@ class NECB2011
2007
1999
  end
2008
2000
 
2009
2001
  def create_heating_cooling_on_off_availability_schedule(model)
2010
- #todo Create a feature to derive start and end heating and cooling seasons from weather file.
2011
- avail_data = [{start_month: 1, start_day: 1, end_month: 6, end_day: 30, htg_value: 1, clg_value: 0},
2012
- {start_month: 7, start_day: 1, end_month: 10, end_day: 31, htg_value: 0, clg_value: 1},
2013
- {start_month: 11, start_day: 1, end_month: 12, end_day: 31, htg_value: 1, clg_value: 0}
2014
- ]
2002
+ # TODO: Create a feature to derive start and end heating and cooling seasons from weather file.
2003
+ avail_data = [{ start_month: 1, start_day: 1, end_month: 6, end_day: 30, htg_value: 1, clg_value: 0 },
2004
+ { start_month: 7, start_day: 1, end_month: 10, end_day: 31, htg_value: 0, clg_value: 1 },
2005
+ { start_month: 11, start_day: 1, end_month: 12, end_day: 31, htg_value: 1, clg_value: 0 }]
2015
2006
 
2016
2007
  # Heating coil availability schedule for tpfc
2017
2008
  htg_availability_sch = OpenStudio::Model::ScheduleRuleset.new(model)
@@ -2054,94 +2045,108 @@ class NECB2011
2054
2045
  end
2055
2046
 
2056
2047
  # Method to set the base system name based on the following syntax:
2057
- # |sys_abbr|sys_oa|sh>?|sc>?|ssf>?|zh>?|zc>?|srf>?|
2048
+ # |sys_abbr|sys_oa|sc>?|sh>?|ssf>?|zh>?|zc>?|srf>?|
2058
2049
  # "sys_abbr" designates the NECB system type ("sys_1, sys_2, ... sys_6")
2059
2050
  # "sys_oa": "mixed" or "doas"
2060
2051
  # "sys_name_pars" is a hash for the remaining system name parts for heat recovery,
2061
2052
  # heating, cooling, supply fan, zone heating, zone cooling, and return fan
2062
- def assign_base_sys_name(airloop,sys_abbr:,sys_oa:,sys_name_pars:)
2053
+ def assign_base_sys_name(airloop, sys_abbr:, sys_oa:, sys_name_pars:)
2063
2054
  sys_name = "#{sys_abbr}|#{sys_oa}|"
2064
-
2065
- sys_name_pars.each do |key,value|
2055
+ sys_name_pars.each do |key, value|
2066
2056
  case key.downcase
2067
- when "sys_hr"
2057
+ when 'sys_hr'
2068
2058
  case value.downcase
2069
- when "none"
2070
- sys_name += "shr>none"
2059
+ when 'none'
2060
+ sys_name += 'shr>none'
2071
2061
  end
2072
2062
 
2073
- when "sys_htg"
2063
+ when 'sys_htg'
2074
2064
  case value.downcase
2075
- when "none"
2076
- sys_name += "sh>none"
2077
- when "electric"
2078
- sys_name += "sh>c-e"
2079
- when "hot water"
2080
- sys_name += "sh>c-hw"
2081
- when "gas"
2082
- sys_name += "sh>c-g"
2083
- when "dx"
2084
- sys_name += "sh>ashp"
2065
+ when 'none'
2066
+ sys_name += 'sh>none'
2067
+ when 'electric'
2068
+ sys_name += 'sh>c-e'
2069
+ when 'hot water'
2070
+ sys_name += 'sh>c-hw'
2071
+ when 'gas'
2072
+ sys_name += 'sh>c-g'
2073
+ when 'dx'
2074
+ sys_name += 'sh>ashp'
2075
+ when 'ccashp'
2076
+ sys_name += 'sh>ccashp'
2077
+ when 'ashp'
2078
+ sys_name += 'sh>ashp'
2085
2079
  end
2086
2080
 
2087
- when "sys_clg"
2081
+ when 'sys_clg'
2088
2082
  case value.downcase
2089
- when "none"
2090
- sys_name += "sc>none"
2091
- when "chilled water"
2092
- sys_name += "sc>c-chw"
2093
- when "dx"
2094
- sys_name += "sc>dx"
2095
- sys_name += "sc>ashp" if sys_name_pars["sys_htg"] == "dx"
2083
+ when 'none'
2084
+ sys_name += 'sc>none'
2085
+ when 'chilled water'
2086
+ sys_name += 'sc>c-chw'
2087
+ when 'dx'
2088
+ if sys_name_pars['sys_htg'] == 'dx'
2089
+ sys_name += 'sc>ashp'
2090
+ else
2091
+ sys_name += 'sc>dx'
2092
+ end
2093
+ when 'ccashp'
2094
+ sys_name += 'sc>ccashp'
2095
+ when 'ashp'
2096
+ sys_name += 'sc>ashp'
2096
2097
  end
2097
2098
 
2098
- when "sys_sf"
2099
+ when 'sys_sf'
2099
2100
  case value.downcase
2100
- when "none"
2101
- sys_name += "ssf>none"
2102
- when "cv"
2103
- sys_name += "ssf>cv"
2104
- when "vv"
2105
- sys_name += "ssf>vv"
2101
+ when 'none'
2102
+ sys_name += 'ssf>none'
2103
+ when 'cv'
2104
+ sys_name += 'ssf>cv'
2105
+ when 'vv'
2106
+ sys_name += 'ssf>vv'
2106
2107
  end
2107
2108
 
2108
- when "zone_htg"
2109
+ when 'zone_htg'
2109
2110
  case value.downcase
2110
- when "none"
2111
- sys_name += "zh>none"
2112
- when "electric"
2113
- sys_name += "zh>b-e"
2114
- when "hot water"
2115
- sys_name += "zh>b-hw"
2116
- when "tpfc"
2117
- sys_name += "zh>fpfc"
2118
- when "fpfc"
2119
- sys_name += "zh>tpfc"
2111
+ when 'none'
2112
+ sys_name += 'zh>none'
2113
+ when 'electric'
2114
+ sys_name += 'zh>b-e'
2115
+ when 'hot water'
2116
+ sys_name += 'zh>b-hw'
2117
+ when 'tpfc'
2118
+ sys_name += 'zh>fpfc'
2119
+ when 'fpfc'
2120
+ sys_name += 'zh>tpfc'
2121
+ when 'pthp'
2122
+ sys_name += 'zh>pthp'
2120
2123
  end
2121
2124
 
2122
- when "zone_clg"
2125
+ when 'zone_clg'
2123
2126
  case value.downcase
2124
- when "none"
2125
- sys_name += "zc>none"
2126
- when "tpfc"
2127
- sys_name += "zc>tpfc"
2128
- when "fpfc"
2129
- sys_name += "zc>fpfc"
2130
- when "ptac"
2131
- sys_name += "zc>ptac"
2127
+ when 'none'
2128
+ sys_name += 'zc>none'
2129
+ when 'tpfc'
2130
+ sys_name += 'zc>tpfc'
2131
+ when 'fpfc'
2132
+ sys_name += 'zc>fpfc'
2133
+ when 'ptac'
2134
+ sys_name += 'zc>ptac'
2135
+ when 'pthp'
2136
+ sys_name += 'zc>pthp'
2132
2137
  end
2133
2138
 
2134
- when "sys_rf"
2139
+ when 'sys_rf'
2135
2140
  case value.downcase
2136
- when "none"
2137
- sys_name += "srf>none"
2138
- when "cv"
2139
- sys_name += "srf>cv"
2140
- when "vv"
2141
- sys_name += "srf>vv"
2141
+ when 'none'
2142
+ sys_name += 'srf>none'
2143
+ when 'cv'
2144
+ sys_name += 'srf>cv'
2145
+ when 'vv'
2146
+ sys_name += 'srf>vv'
2142
2147
  end
2143
2148
  end
2144
- sys_name += "|"
2149
+ sys_name += '|'
2145
2150
  end
2146
2151
 
2147
2152
  airloop.setName(sys_name)
@@ -2159,29 +2164,36 @@ class NECB2011
2159
2164
  zone_htg: nil,
2160
2165
  zone_clg: nil,
2161
2166
  sys_rf: nil)
2162
- name_parts = airloop.name.to_s.split("|").select {|part| !part.empty?}
2167
+ name_parts = airloop.name.to_s.split('|').reject(&:empty?)
2163
2168
  if sys_abbr.is_a? String then name_parts[0] = sys_abbr end
2164
2169
  if sys_oa.is_a? String then name_parts[1] = sys_oa end
2165
- for i in 0..name_parts.size-1
2166
- if (name_parts[i].include? "shr>") && (sys_hr.is_a? String)
2170
+ for i in 0..name_parts.size - 1
2171
+ if (name_parts[i].include? 'shr>') && (sys_hr.is_a? String)
2167
2172
  name_parts[i] = "shr>#{sys_hr}"
2168
- elsif (name_parts[i].include? "sh>") && (sys_htg.is_a? String)
2173
+ elsif (name_parts[i].include? 'sh>') && (sys_htg.is_a? String)
2169
2174
  name_parts[i] = "sh>#{sys_htg}"
2170
- elsif (name_parts[i].include? "sc>") && (sys_clg.is_a? String)
2175
+ elsif (name_parts[i].include? 'sc>') && (sys_clg.is_a? String)
2171
2176
  name_parts[i] = "sc>#{sys_clg}"
2172
- elsif (name_parts[i].include? "ssf") && (sys_sf.is_a? String)
2177
+ elsif (name_parts[i].include? 'ssf') && (sys_sf.is_a? String)
2173
2178
  name_parts[i] = "ssf>#{sys_sf}"
2174
- elsif (name_parts[i].include? "zh>") && (zone_htg.is_a? String)
2179
+ elsif (name_parts[i].include? 'zh>') && (zone_htg.is_a? String)
2175
2180
  name_parts[i] = "zh>#{zone_htg}"
2176
- elsif (name_parts[i].include? "zc>") && (zone_clg.is_a? String)
2181
+ elsif (name_parts[i].include? 'zc>') && (zone_clg.is_a? String)
2177
2182
  name_parts[i] = "zc>#{zone_clg}"
2178
- elsif (name_parts[i].include? "srf>") && (sys_rf.is_a? String)
2183
+ elsif (name_parts[i].include? 'srf>') && (sys_rf.is_a? String)
2179
2184
  name_parts[i] = "srf>#{sys_rf}"
2180
2185
  end
2181
2186
  end
2182
- sys_name = ""
2183
- name_parts.each {|part| sys_name += "#{part}|"}
2184
- sys_name = sys_name.chop if (Integer(name_parts.last.strip) rescue false)
2187
+ sys_name = ''
2188
+ name_parts.each { |part| sys_name += "#{part}|" }
2189
+
2190
+ # Check if the last part of the system name is an integer. If it is, then remove the last part from the system name.
2191
+ check_int = begin
2192
+ Integer(name_parts.last.strip)
2193
+ rescue StandardError
2194
+ nil
2195
+ end
2196
+ sys_name = sys_name.chop unless check_int.nil?
2185
2197
 
2186
2198
  airloop.setName(sys_name)
2187
2199
  end