openstudio-standards 0.2.10 → 0.2.11.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (252) hide show
  1. checksums.yaml +5 -5
  2. data/data/geometry/ASHRAE90120042007LargeHotel.osm +101 -0
  3. data/data/geometry/ASHRAE90120042007RetailStandalone.osm +220 -0
  4. data/data/geometry/ASHRAE9012010LargeHotel.osm +101 -0
  5. data/data/geometry/ASHRAE9012010RetailStandalone.osm +218 -32
  6. data/data/geometry/ASHRAE9012013FullServiceRestaurant.osm +17 -0
  7. data/data/geometry/ASHRAE9012013Hospital.osm +288 -0
  8. data/data/geometry/ASHRAE9012013LargeHotel.osm +113 -12
  9. data/data/geometry/ASHRAE9012013LargeOffice.osm +205 -1
  10. data/data/geometry/ASHRAE9012013MediumOffice.osm +103 -1
  11. data/data/geometry/ASHRAE9012013Outpatient.osm +390 -102
  12. data/data/geometry/ASHRAE9012013PrimarySchool.osm +424 -0
  13. data/data/geometry/ASHRAE9012013QuickServiceRestaurant.osm +16 -0
  14. data/data/geometry/ASHRAE9012013RetailStandalone.osm +220 -0
  15. data/data/geometry/ASHRAE9012013SecondarySchool.osm +543 -0
  16. data/data/geometry/ASHRAE9012013SmallHotel.osm +50 -0
  17. data/data/geometry/ASHRAE9012013SmallOffice.osm +33 -0
  18. data/data/geometry/ASHRAE9012013Warehouse.osm +475 -238
  19. data/data/geometry/ASHRAEFullServiceRestaurant.osm +16 -0
  20. data/data/geometry/ASHRAEHospital.osm +288 -0
  21. data/data/geometry/ASHRAELargeOffice.osm +205 -1
  22. data/data/geometry/ASHRAELargeOfficeDetailed.osm +32 -32
  23. data/data/geometry/ASHRAEMediumOffice.osm +103 -1
  24. data/data/geometry/ASHRAEOutpatient.osm +390 -102
  25. data/data/geometry/ASHRAEPrimarySchool.osm +424 -0
  26. data/data/geometry/ASHRAEQuickServiceRestaurant.osm +16 -0
  27. data/data/geometry/ASHRAESecondarySchool.osm +1011 -162
  28. data/data/geometry/ASHRAESmallHotel.osm +50 -0
  29. data/data/geometry/ASHRAESmallOffice.osm +33 -0
  30. data/data/geometry/ASHRAEWarehouse.osm +476 -238
  31. data/data/standards/manage_OpenStudio_Standards.rb +1 -1
  32. data/data/standards/openstudio_standards_duplicates_log.csv +16 -0
  33. data/data/standards/test_performance_expected_dd_results.csv +1216 -1216
  34. data/data/weather/ARE_Abu.Dhabi.412170_IWEC.ddy +536 -0
  35. data/data/weather/ARE_Abu.Dhabi.412170_IWEC.epw +8768 -0
  36. data/data/weather/ARE_Abu.Dhabi.412170_IWEC.stat +544 -0
  37. data/data/weather/ARE_Dubai.Intl.AP.411940_IWEC2.ddy +533 -0
  38. data/data/weather/ARE_Dubai.Intl.AP.411940_IWEC2.epw +8768 -0
  39. data/data/weather/ARE_Dubai.Intl.AP.411940_IWEC2.stat +553 -0
  40. data/data/weather/VNM_Hanoi.488200_IWEC.ddy +533 -0
  41. data/data/weather/VNM_Hanoi.488200_IWEC.epw +8768 -0
  42. data/data/weather/VNM_Hanoi.488200_IWEC.stat +544 -0
  43. data/data/weather/VNM_Ho.Chi.Minh.City-Tan.Son.Nhat.AP.489000_IWEC2.ddy +533 -0
  44. data/data/weather/VNM_Ho.Chi.Minh.City-Tan.Son.Nhat.AP.489000_IWEC2.epw +8768 -0
  45. data/data/weather/VNM_Ho.Chi.Minh.City-Tan.Son.Nhat.AP.489000_IWEC2.stat +546 -0
  46. data/lib/openstudio-standards.rb +27 -0
  47. data/lib/openstudio-standards/btap/btap.model.rb +4 -4
  48. data/lib/openstudio-standards/btap/btap_result.rb +8 -8
  49. data/lib/openstudio-standards/btap/economics.rb +11 -11
  50. data/lib/openstudio-standards/btap/envelope.rb +5 -5
  51. data/lib/openstudio-standards/btap/hvac.rb +55 -11
  52. data/lib/openstudio-standards/btap/measures.rb +7 -7
  53. data/lib/openstudio-standards/btap/spaceloads.rb +4 -4
  54. data/lib/openstudio-standards/hvac_sizing/Siz.AirLoopHVAC.rb +105 -1
  55. data/lib/openstudio-standards/hvac_sizing/Siz.ControllerOutdoorAir.rb +2 -2
  56. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2004/ashrae_90_1_2004.AirTerminalSingleDuctVAVReheat.rb +0 -8
  57. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2007/ashrae_90_1_2007.AirTerminalSingleDuctVAVReheat.rb +0 -8
  58. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.AirTerminalSingleDuctVAVReheat.rb +0 -8
  59. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.AirTerminalSingleDuctVAVReheat.rb +0 -8
  60. data/lib/openstudio-standards/prototypes/ashrae_90_1/nrel_nze_ready_2017/nrel_zne_ready_2017.AirTerminalSingleDuctVAVReheat.rb +6 -1
  61. data/lib/openstudio-standards/prototypes/ashrae_90_1/nrel_nze_ready_2017/nrel_zne_ready_2017.HeatExchangerAirToAirSensibleAndLatent.rb +9 -0
  62. data/lib/openstudio-standards/prototypes/ashrae_90_1/nrel_nze_ready_2017/nrel_zne_ready_2017.Model.rb +3 -1
  63. data/lib/openstudio-standards/prototypes/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.AirTerminalSingleDuctVAVReheat.rb +22 -0
  64. data/lib/openstudio-standards/prototypes/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.FanConstantVolume.rb +32 -0
  65. data/lib/openstudio-standards/prototypes/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.FanOnOff.rb +33 -0
  66. data/lib/openstudio-standards/prototypes/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.FanVariableVolume.rb +32 -0
  67. data/lib/openstudio-standards/prototypes/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.HeatExchangerAirToAirSensibleAndLatent.rb +9 -0
  68. data/lib/openstudio-standards/prototypes/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.Model.elevators.rb +25 -0
  69. data/lib/openstudio-standards/prototypes/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.Model.rb +35 -0
  70. data/lib/openstudio-standards/prototypes/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.hvac_systems.rb +11 -0
  71. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.Hospital.rb +17 -3
  72. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.LargeHotel.rb +9 -0
  73. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.LargeOffice.rb +9 -0
  74. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.LargeOfficeDetailed.rb +22 -3
  75. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.MediumOffice.rb +9 -0
  76. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.MediumOfficeDetailed.rb +9 -0
  77. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.Outpatient.rb +107 -5
  78. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.PrimarySchool.rb +9 -0
  79. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.RetailStandalone.rb +3 -0
  80. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SecondarySchool.rb +9 -0
  81. data/lib/openstudio-standards/prototypes/common/objects/Prototype.AirTerminalSingleDuctVAVReheat.rb +0 -8
  82. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilCoolingDXTwoSpeed.rb +2 -2
  83. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilHeatingDXSingleSpeed.rb +2 -4
  84. data/lib/openstudio-standards/prototypes/common/objects/Prototype.HeatExchangerAirToAirSensibleAndLatent.rb +15 -4
  85. data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.exterior_lights.rb +2 -2
  86. data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.rb +45 -5
  87. data/lib/openstudio-standards/prototypes/common/objects/Prototype.ServiceWaterHeating.rb +1 -1
  88. data/lib/openstudio-standards/prototypes/common/objects/Prototype.SizingSystem.rb +21 -2
  89. data/lib/openstudio-standards/prototypes/common/objects/Prototype.hvac_systems.rb +251 -364
  90. data/lib/openstudio-standards/prototypes/common/objects/Prototype.radiant_system_controls.rb +4 -0
  91. data/lib/openstudio-standards/prototypes/common/objects/Prototype.refrigeration.rb +4 -5
  92. data/lib/openstudio-standards/refs/references.rb +4 -0
  93. data/lib/openstudio-standards/standards/Standards.AirLoopHVAC.rb +283 -97
  94. data/lib/openstudio-standards/standards/Standards.AirTerminalSingleDuctParallelPIUReheat.rb +2 -2
  95. data/lib/openstudio-standards/standards/Standards.BuildingStory.rb +1 -1
  96. data/lib/openstudio-standards/standards/Standards.ChillerElectricEIR.rb +1 -1
  97. data/lib/openstudio-standards/standards/Standards.CoilCoolingDXSingleSpeed.rb +1 -1
  98. data/lib/openstudio-standards/standards/Standards.CoilCoolingDXTwoSpeed.rb +5 -5
  99. data/lib/openstudio-standards/standards/Standards.CoilDX.rb +3 -1
  100. data/lib/openstudio-standards/standards/Standards.CoilHeatingGasMultiStage.rb +1 -1
  101. data/lib/openstudio-standards/standards/Standards.Construction.rb +53 -45
  102. data/lib/openstudio-standards/standards/Standards.Fan.rb +10 -2
  103. data/lib/openstudio-standards/standards/Standards.FanVariableVolume.rb +4 -4
  104. data/lib/openstudio-standards/standards/Standards.HeatExchangerSensLat.rb +1 -1
  105. data/lib/openstudio-standards/standards/Standards.Model.rb +39 -18
  106. data/lib/openstudio-standards/standards/Standards.PlanarSurface.rb +8 -8
  107. data/lib/openstudio-standards/standards/Standards.PlantLoop.rb +12 -12
  108. data/lib/openstudio-standards/standards/Standards.ScheduleConstant.rb +1 -1
  109. data/lib/openstudio-standards/standards/Standards.ScheduleRuleset.rb +2 -2
  110. data/lib/openstudio-standards/standards/Standards.Space.rb +190 -181
  111. data/lib/openstudio-standards/standards/Standards.SpaceType.rb +36 -59
  112. data/lib/openstudio-standards/standards/Standards.SubSurface.rb +3 -3
  113. data/lib/openstudio-standards/standards/Standards.Surface.rb +1 -1
  114. data/lib/openstudio-standards/standards/Standards.ThermalZone.rb +16 -12
  115. data/lib/openstudio-standards/standards/Standards.WaterHeaterMixed.rb +1 -1
  116. data/lib/openstudio-standards/standards/Standards.ZoneHVACComponent.rb +16 -5
  117. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/ashrae_90_1_2004.AirLoopHVAC.rb +1 -1
  118. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/comstock_ashrae_90_1_2004/data/ashrae_90_1.schedules.json +159 -8
  119. 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 +1354 -1075
  120. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.construction_properties.json +557 -17
  121. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.economizers.json +28 -28
  122. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.ground_temperatures.json +36 -36
  123. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.spc_typ.json +233 -6
  124. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/comstock_ashrae_90_1_2007/data/ashrae_90_1.schedules.json +159 -8
  125. 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 +1356 -1077
  126. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.construction_properties.json +480 -0
  127. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.economizers.json +28 -28
  128. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.ground_temperatures.json +36 -36
  129. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.spc_typ.json +241 -14
  130. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.AirLoopHVAC.rb +0 -8
  131. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.Space.rb +12 -7
  132. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/comstock_ashrae_90_1_2010/data/ashrae_90_1.schedules.json +159 -8
  133. 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 +1367 -1087
  134. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.construction_properties.json +480 -0
  135. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.ground_temperatures.json +36 -36
  136. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.spc_typ.json +233 -5
  137. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.AirLoopHVAC.rb +20 -27
  138. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.Space.rb +8 -3
  139. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/comstock_ashrae_90_1_2013/data/ashrae_90_1.schedules.json +159 -8
  140. 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 +1432 -1138
  141. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.construction_properties.json +480 -0
  142. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.ground_temperatures.json +36 -36
  143. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.spc_typ.json +241 -5
  144. data/lib/openstudio-standards/standards/ashrae_90_1/data/ashrae_90_1.climate_zone_sets.json +37 -0
  145. data/lib/openstudio-standards/standards/ashrae_90_1/data/ashrae_90_1.climate_zones.json +39 -15
  146. data/lib/openstudio-standards/standards/ashrae_90_1/data/ashrae_90_1.constructions.json +489 -7
  147. data/lib/openstudio-standards/standards/ashrae_90_1/data/ashrae_90_1.curves.json +250 -0
  148. data/lib/openstudio-standards/standards/ashrae_90_1/data/ashrae_90_1.fans.json +12 -0
  149. data/lib/openstudio-standards/standards/ashrae_90_1/data/ashrae_90_1.materials.json +1920 -0
  150. data/lib/openstudio-standards/standards/ashrae_90_1/data/ashrae_90_1.schedules.json +5265 -9
  151. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/comstock_doe_ref_1980_2004/data/ashrae_90_1.schedules.json +159 -8
  152. 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 +2441 -1925
  153. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/data/doe_ref_1980_2004.construction_properties.json +16658 -2578
  154. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/data/doe_ref_1980_2004.spc_typ.json +212 -8
  155. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/doe_ref_1980_2004.Model.rb +11 -1
  156. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/comstock_doe_ref_pre_1980/data/ashrae_90_1.schedules.json +159 -8
  157. 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 +2403 -1889
  158. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/data/doe_ref_pre_1980.construction_properties.json +16664 -2584
  159. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/data/doe_ref_pre_1980.spc_typ.json +209 -7
  160. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/doe_ref_pre_1980.Model.rb +11 -1
  161. data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/data/nrel_zne_ready_2017.construction_properties.json +4113 -513
  162. data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/data/nrel_zne_ready_2017.construction_sets.json +40 -40
  163. data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/data/nrel_zne_ready_2017.elevators.json +1 -1
  164. data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/data/nrel_zne_ready_2017.ground_temperatures.json +650 -0
  165. data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/data/nrel_zne_ready_2017.heat_pumps.json +90 -2
  166. data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/data/nrel_zne_ready_2017.heat_pumps_heating.json +25 -5
  167. data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/data/nrel_zne_ready_2017.spc_typ.json +1909 -32
  168. data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/data/nrel_zne_ready_2017.water_heaters.json +8 -8
  169. data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.AirLoopHVAC.rb +147 -155
  170. data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.AirTerminalSingleDuctVAVReheat.rb +1 -1
  171. data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.HeatExchangerSensLat.rb +29 -10
  172. data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.Model.rb +4 -4
  173. data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.PlantLoop.rb +45 -73
  174. data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.ZoneHVACComponent.rb +4 -72
  175. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/data/ze_aedg_multifamily.boilers.json +20 -0
  176. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/data/ze_aedg_multifamily.chillers.json +400 -0
  177. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/data/ze_aedg_multifamily.construction_properties.json +4444 -0
  178. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/data/ze_aedg_multifamily.construction_sets.json +391 -0
  179. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/data/ze_aedg_multifamily.economizers.json +536 -0
  180. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/data/ze_aedg_multifamily.elevators.json +36 -0
  181. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/data/ze_aedg_multifamily.ext_ltg.json +169 -0
  182. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/data/ze_aedg_multifamily.ground_temperatures.json +650 -0
  183. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/data/ze_aedg_multifamily.heat_pumps.json +290 -0
  184. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/data/ze_aedg_multifamily.heat_pumps_heating.json +164 -0
  185. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/data/ze_aedg_multifamily.heat_rejection.json +40 -0
  186. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/data/ze_aedg_multifamily.motors.json +274 -0
  187. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/data/ze_aedg_multifamily.prototype_inputs.json +704 -0
  188. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/data/ze_aedg_multifamily.refrigeration_compressors.json +22 -0
  189. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/data/ze_aedg_multifamily.spc_typ.json +6424 -0
  190. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/data/ze_aedg_multifamily.unitary_acs.json +142 -0
  191. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/data/ze_aedg_multifamily.water_heaters.json +72 -0
  192. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/data/ze_aedg_multifamily.water_source_heat_pumps.json +31 -0
  193. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/data/ze_aedg_multifamily.water_source_heat_pumps_heating.json +13 -0
  194. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.AirLoopHVAC.rb +829 -0
  195. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.AirTerminalSingleDuctVAVReheat.rb +24 -0
  196. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.CoolingTower.rb +19 -0
  197. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.CoolingTowerSingleSpeed.rb +5 -0
  198. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.CoolingTowerTwoSpeed.rb +5 -0
  199. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.CoolingTowerVariableSpeed.rb +16 -0
  200. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.FanVariableVolume.rb +37 -0
  201. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.HeatExchangerSensLat.rb +34 -0
  202. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.Model.rb +80 -0
  203. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.PlantLoop.rb +68 -0
  204. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.Space.rb +146 -0
  205. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.ThermalZone.rb +23 -0
  206. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.ZoneHVACComponent.rb +8 -0
  207. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.rb +16 -0
  208. data/lib/openstudio-standards/standards/deer/deer_1985/data/deer_1985.heat_pumps_heating.json +5 -5
  209. data/lib/openstudio-standards/standards/deer/deer_1996/data/deer_1996.economizers.json +18 -0
  210. data/lib/openstudio-standards/standards/deer/deer_1996/data/deer_1996.heat_pumps_heating.json +5 -5
  211. data/lib/openstudio-standards/standards/deer/deer_2003/data/deer_2003.heat_pumps_heating.json +5 -5
  212. data/lib/openstudio-standards/standards/deer/deer_2007/data/deer_2007.heat_pumps_heating.json +5 -5
  213. data/lib/openstudio-standards/standards/deer/deer_2011/data/deer_2011.heat_pumps_heating.json +5 -5
  214. data/lib/openstudio-standards/standards/deer/deer_2014/data/deer_2014.heat_pumps_heating.json +5 -5
  215. data/lib/openstudio-standards/standards/deer/deer_2015/data/deer_2015.heat_pumps_heating.json +5 -5
  216. data/lib/openstudio-standards/standards/deer/deer_2017/data/deer_2017.heat_pumps_heating.json +1 -1
  217. data/lib/openstudio-standards/standards/deer/deer_2020/data/deer_2020.heat_pumps_heating.json +5 -5
  218. data/lib/openstudio-standards/standards/deer/deer_2025/data/deer_2025.heat_pumps_heating.json +5 -5
  219. data/lib/openstudio-standards/standards/deer/deer_2030/data/deer_2030.heat_pumps_heating.json +5 -5
  220. data/lib/openstudio-standards/standards/deer/deer_2035/data/deer_2035.heat_pumps_heating.json +5 -5
  221. data/lib/openstudio-standards/standards/deer/deer_2040/data/deer_2040.heat_pumps_heating.json +5 -5
  222. data/lib/openstudio-standards/standards/deer/deer_2045/data/deer_2045.heat_pumps_heating.json +5 -5
  223. data/lib/openstudio-standards/standards/deer/deer_2050/data/deer_2050.heat_pumps_heating.json +5 -5
  224. data/lib/openstudio-standards/standards/deer/deer_2055/data/deer_2055.heat_pumps_heating.json +5 -5
  225. data/lib/openstudio-standards/standards/deer/deer_2060/data/deer_2060.heat_pumps_heating.json +5 -5
  226. data/lib/openstudio-standards/standards/deer/deer_2065/data/deer_2065.heat_pumps_heating.json +5 -5
  227. data/lib/openstudio-standards/standards/deer/deer_2070/data/deer_2070.heat_pumps_heating.json +5 -5
  228. data/lib/openstudio-standards/standards/deer/deer_2075/data/deer_2075.heat_pumps_heating.json +5 -5
  229. data/lib/openstudio-standards/standards/deer/deer_pre_1975/data/deer_pre_1975.heat_pumps_heating.json +5 -5
  230. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_1_multi_speed.rb +5 -1
  231. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_3_and_8_multi_speed.rb +5 -1
  232. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_6.rb +5 -2
  233. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_systems.rb +8 -2
  234. data/lib/openstudio-standards/standards/necb/NECB2011/qaqc/necb_qaqc.rb +12 -12
  235. data/lib/openstudio-standards/version.rb +1 -1
  236. data/lib/openstudio-standards/weather/Weather.Model.rb +4 -0
  237. metadata +102 -18
  238. data/data/standards/OpenStudio_Standards-ashrae_90_1(space_types).xlsx +0 -0
  239. data/data/standards/OpenStudio_Standards-ashrae_90_1-ALL-comstock(space_types).xlsx +0 -0
  240. data/data/standards/OpenStudio_Standards-ashrae_90_1.xlsx +0 -0
  241. data/data/standards/OpenStudio_Standards-cbes(space_types).xlsx +0 -0
  242. data/data/standards/OpenStudio_Standards-cbes.xlsx +0 -0
  243. data/data/standards/OpenStudio_Standards-deer(space_types).xlsx +0 -0
  244. data/data/standards/OpenStudio_Standards-deer-ALL-comstock(space_types).xlsx +0 -0
  245. data/data/standards/OpenStudio_Standards-deer.xlsx +0 -0
  246. data/data/standards/OpenStudio_Standards_LA100.xlsx +0 -0
  247. data/data/standards/junk/legacy_dd_results - Copy.csv +0 -960
  248. data/data/standards/junk/legacy_dd_results.csv +0 -960
  249. data/data/standards/junk/legacy_dd_results_new - Copy.csv +0 -960
  250. data/data/standards/junk/legacy_dd_results_new.csv +0 -960
  251. data/data/standards/junk/legacy_dd_results_original.csv +0 -960
  252. data/lib/openstudio-standards/standards/necb/NECB2011/newway.json +0 -8102
@@ -69,6 +69,7 @@ module OpenstudioStandards
69
69
  require_relative "#{stds}/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013"
70
70
  require_relative "#{stds}/ashrae_90_1/ashrae_90_1_2013/comstock_ashrae_90_1_2013/comstock_ashrae_90_1_2013"
71
71
  require_relative "#{stds}/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017"
72
+ require_relative "#{stds}/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily"
72
73
 
73
74
  require_relative "#{stds}/deer/deer"
74
75
  require_relative "#{stds}/deer/deer_pre_1975/deer_pre_1975"
@@ -136,6 +137,8 @@ module OpenstudioStandards
136
137
  require_relative "#{stds}/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.CoolingTower"
137
138
  require_relative "#{stds}/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.CoolingTower"
138
139
  require_relative "#{stds}/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.CoolingTower"
140
+ require_relative "#{stds}/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.CoolingTower"
141
+
139
142
  # Model Objects
140
143
  require_relative "#{stds}/Standards.AirLoopHVAC"
141
144
  require_relative "#{stds}/Standards.AirTerminalSingleDuctParallelPIUReheat"
@@ -243,6 +246,20 @@ module OpenstudioStandards
243
246
  require_relative "#{stds}/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.Space"
244
247
  require_relative "#{stds}/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.ThermalZone"
245
248
  require_relative "#{stds}/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.ZoneHVACComponent"
249
+ # ZE AEDG Multifamily
250
+ require_relative "#{stds}/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.AirLoopHVAC"
251
+ require_relative "#{stds}/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.AirTerminalSingleDuctVAVReheat"
252
+ require_relative "#{stds}/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.CoolingTower"
253
+ require_relative "#{stds}/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.CoolingTowerSingleSpeed"
254
+ require_relative "#{stds}/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.CoolingTowerTwoSpeed"
255
+ require_relative "#{stds}/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.CoolingTowerVariableSpeed"
256
+ require_relative "#{stds}/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.FanVariableVolume"
257
+ require_relative "#{stds}/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.HeatExchangerSensLat"
258
+ require_relative "#{stds}/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.Model"
259
+ require_relative "#{stds}/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.PlantLoop"
260
+ require_relative "#{stds}/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.Space"
261
+ require_relative "#{stds}/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.ThermalZone"
262
+ require_relative "#{stds}/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.ZoneHVACComponent"
246
263
  # DEER Common
247
264
  require_relative "#{stds}/deer/deer.Model"
248
265
  require_relative "#{stds}/deer/deer.AirLoopHVAC"
@@ -358,9 +375,19 @@ module OpenstudioStandards
358
375
  require_relative "#{proto}/ashrae_90_1/nrel_nze_ready_2017/nrel_zne_ready_2017.FanConstantVolume"
359
376
  require_relative "#{proto}/ashrae_90_1/nrel_nze_ready_2017/nrel_zne_ready_2017.FanOnOff"
360
377
  require_relative "#{proto}/ashrae_90_1/nrel_nze_ready_2017/nrel_zne_ready_2017.FanVariableVolume"
378
+ require_relative "#{proto}/ashrae_90_1/nrel_nze_ready_2017/nrel_zne_ready_2017.HeatExchangerAirToAirSensibleAndLatent"
361
379
  require_relative "#{proto}/ashrae_90_1/nrel_nze_ready_2017/nrel_zne_ready_2017.Model"
362
380
  require_relative "#{proto}/ashrae_90_1/nrel_nze_ready_2017/nrel_zne_ready_2017.Model.elevators"
363
381
  require_relative "#{proto}/ashrae_90_1/nrel_nze_ready_2017/nrel_zne_ready_2017.hvac_systems"
382
+ # ZE AEDG Multifamily
383
+ require_relative "#{proto}/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.AirTerminalSingleDuctVAVReheat"
384
+ require_relative "#{proto}/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.FanConstantVolume"
385
+ require_relative "#{proto}/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.FanOnOff"
386
+ require_relative "#{proto}/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.FanVariableVolume"
387
+ require_relative "#{proto}/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.HeatExchangerAirToAirSensibleAndLatent"
388
+ require_relative "#{proto}/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.Model"
389
+ require_relative "#{proto}/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.Model.elevators"
390
+ require_relative "#{proto}/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.hvac_systems"
364
391
  # DEER
365
392
  require_relative "#{proto}/deer/deer.Model"
366
393
  # CBES Common
@@ -589,10 +589,10 @@ class OpenStudio::Model::Model
589
589
  #@param factor [Float]
590
590
  def scale_oa_loads(factor)
591
591
  self.getDesignSpecificationOutdoorAirs.sort.each do |oa_def|
592
- oa_def.setOutdoorAirFlowperPerson(oa_def.getOutdoorAirFlowperPerson * factor) unless oa_def.isOutdoorAirFlowperPersonDefaulted
593
- oa_def.setOutdoorAirFlowperFloorArea(oa_def.getOutdoorAirFlowperFloorArea * factor) unless oa_def.isOutdoorAirFlowperFloorAreaDefaulted
594
- oa_def.setOutdoorAirFlowRate(oa_def.getOutdoorAirFlowRate * factor) unless oa_def.isOutdoorAirFlowRateDefaulted
595
- oa_def.setOutdoorAirFlowAirChangesperHour(oa_def.getOutdoorAirFlowAirChangesperHour * factor) unless oa_def.isOutdoorAirFlowAirChangesperHourDefaulted
592
+ oa_def.setOutdoorAirFlowperPerson(oa_def.outdoorAirFlowperPerson * factor) unless oa_def.isOutdoorAirFlowperPersonDefaulted
593
+ oa_def.setOutdoorAirFlowperFloorArea(oa_def.outdoorAirFlowperFloorArea * factor) unless oa_def.isOutdoorAirFlowperFloorAreaDefaulted
594
+ oa_def.setOutdoorAirFlowRate(oa_def.outdoorAirFlowRate * factor) unless oa_def.isOutdoorAirFlowRateDefaulted
595
+ oa_def.setOutdoorAirFlowAirChangesperHour(oa_def.outdoorAirFlowAirChangesperHour * factor) unless oa_def.isOutdoorAirFlowAirChangesperHourDefaulted
596
596
  end
597
597
  end
598
598
 
@@ -326,7 +326,7 @@ module BTAP
326
326
  if !space.waterUseEquipment.empty?
327
327
  waterUseEquipment_info={}
328
328
  spaceinfo[:waterUseEquipment] << waterUseEquipment_info
329
- waterUseEquipment_info[:peak_flow_rate]= space.waterUseEquipment[0].waterUseEquipmentDefinition.getPeakFlowRate.value
329
+ waterUseEquipment_info[:peak_flow_rate]= space.waterUseEquipment[0].waterUseEquipmentDefinition.peakFlowRate
330
330
  waterUseEquipment_info[:peak_flow_rate_per_area] = waterUseEquipment_info[:peak_flow_rate] / space.floorArea
331
331
  area_per_occ = space.spaceType.get.people[0].spaceFloorAreaPerPerson.get
332
332
  # Watt per person = m3/s/m3 * 1000W/kW * (specific heat * dT) * m2/person
@@ -510,7 +510,7 @@ module BTAP
510
510
  air_loop_info[:cooling_coils][:dx_single_speed] << coil
511
511
  single_speed = supply_comp.to_CoilCoolingDXSingleSpeed.get
512
512
  coil[:name] = single_speed.name.get
513
- coil[:cop] = single_speed.getRatedCOP.get
513
+ coil[:cop] = single_speed.ratedCOP.get
514
514
  coil[:nominal_total_capacity_w] = model.sqlFile().get().execAndReturnFirstDouble("SELECT Value FROM TabularDataWithStrings WHERE ReportName='EquipmentSummary' AND ReportForString='Entire Facility' AND TableName='Cooling Coils' AND ColumnName='Nominal Total Capacity' AND RowName='#{coil[:name].upcase}' ")
515
515
  coil[:nominal_total_capacity_w] = validate_optional(coil[:nominal_total_capacity_w], model, -1.0)
516
516
  end
@@ -519,8 +519,8 @@ module BTAP
519
519
  air_loop_info[:cooling_coils][:dx_two_speed] << coil
520
520
  two_speed = supply_comp.to_CoilCoolingDXTwoSpeed.get
521
521
  coil[:name] = two_speed.name.get
522
- coil[:cop_low] = two_speed.getRatedLowSpeedCOP.get
523
- coil[:cop_high] = two_speed.getRatedHighSpeedCOP.get
522
+ coil[:cop_low] = two_speed.ratedLowSpeedCOP.get
523
+ coil[:cop_high] = two_speed.ratedHighSpeedCOP.get
524
524
  coil[:nominal_total_capacity_w] = model.sqlFile().get().execAndReturnFirstDouble("SELECT Value FROM TabularDataWithStrings WHERE ReportName='EquipmentSummary' AND ReportForString='Entire Facility' AND TableName='Cooling Coils' AND ColumnName='Nominal Total Capacity' AND RowName='#{coil[:name].upcase}' ")
525
525
  coil[:nominal_total_capacity_w] = validate_optional(coil[:nominal_total_capacity_w] , model,-1.0)
526
526
  end
@@ -536,8 +536,8 @@ module BTAP
536
536
  plant_loop_info[:name] = plant_loop.name.get
537
537
 
538
538
  sizing = plant_loop.sizingPlant
539
- plant_loop_info[:design_loop_exit_temperature] = sizing.getDesignLoopExitTemperature.value()
540
- plant_loop_info[:loop_design_temperature_difference] = sizing.getLoopDesignTemperatureDifference.value()
539
+ plant_loop_info[:design_loop_exit_temperature] = sizing.designLoopExitTemperature
540
+ plant_loop_info[:loop_design_temperature_difference] = sizing.loopDesignTemperatureDifference
541
541
 
542
542
  #Create Container for plant equipment arrays.
543
543
  plant_loop_info[:pumps] = []
@@ -560,7 +560,7 @@ module BTAP
560
560
  pump_info[:water_flow_m3_per_s] = validate_optional(pump_info[:water_flow_m3_per_s], model, -1.0)
561
561
  pump_info[:electric_power_w] = model.sqlFile().get().execAndReturnFirstDouble("SELECT Value FROM TabularDataWithStrings WHERE ReportName='EquipmentSummary' AND ReportForString='Entire Facility' AND TableName='Pumps' AND ColumnName='Electric Power' AND RowName='#{pump_info[:name].upcase}' ")
562
562
  pump_info[:electric_power_w] = validate_optional(pump_info[:electric_power_w], model, -1.0)
563
- pump_info[:motor_efficency] = pump.getMotorEfficiency.value()
563
+ pump_info[:motor_efficency] = pump.motorEfficiency
564
564
  end
565
565
 
566
566
  #Collect Variable Speed
@@ -576,7 +576,7 @@ module BTAP
576
576
  pump_info[:water_flow_m3_per_s] = validate_optional(pump_info[:water_flow_m3_per_s], model, -1.0)
577
577
  pump_info[:electric_power_w] = model.sqlFile().get().execAndReturnFirstDouble("SELECT Value FROM TabularDataWithStrings WHERE ReportName='EquipmentSummary' AND ReportForString='Entire Facility' AND TableName='Pumps' AND ColumnName='Electric Power' AND RowName='#{pump_info[:name].upcase}' ")
578
578
  pump_info[:electric_power_w] = validate_optional(pump_info[:electric_power_w], model, -1.0)
579
- pump_info[:motor_efficency] = pump.getMotorEfficiency.value()
579
+ pump_info[:motor_efficency] = pump.motorEfficiency
580
580
  end
581
581
 
582
582
  # Collect HotWaterBoilers
@@ -448,12 +448,12 @@ module BTAP
448
448
  unless pump_const.plantLoop.empty?
449
449
  pump_variable = OpenStudio::Model::PumpVariableSpeed.new(model)
450
450
  #pass information from constant speed fan as much as possible.
451
- pump_variable.setRatedFlowRate(pump_const.getRatedFlowRate.get)
452
- pump_variable.setRatedPumpHead(pump_const.ratedPumpHead())
451
+ pump_variable.setRatedFlowRate(pump_const.ratedFlowRate.get)
452
+ pump_variable.setRatedPumpHead(pump_const.ratedPumpHead)
453
453
  pump_variable.setRatedPowerConsumption(pump_const.ratedPowerConsumption.to_f)
454
- pump_variable.setMotorEfficiency(pump_const.motorEfficiency().to_f)
455
- pump_variable.setPumpControlType( pump_const.pumpControlType )
456
- pump_variable.setFractionofMotorInefficienciestoFluidStream(pump_const.fractionofMotorInefficienciestoFluidStream().to_f)
454
+ pump_variable.setMotorEfficiency(pump_const.motorEfficiency.to_f)
455
+ pump_variable.setPumpControlType(pump_const.pumpControlType)
456
+ pump_variable.setFractionofMotorInefficienciestoFluidStream(pump_const.fractionofMotorInefficienciestoFluidStream.to_f)
457
457
  pump_variable.autosizeRatedFlowRate if pump_const.isRatedFlowRateAutosized
458
458
  pump_variable.autosizeRatedPowerConsumption if pump_const.isRatedPowerConsumptionAutosized
459
459
 
@@ -474,12 +474,12 @@ module BTAP
474
474
  new_pump = OpenStudio::Model::PumpVariableSpeed.new(model)
475
475
  #pass information from constant speed fan as much as possible.
476
476
 
477
- new_pump.setRatedFlowRate(pump.getRatedFlowRate.get)
478
- new_pump.setRatedPumpHead(pump.ratedPumpHead())
477
+ new_pump.setRatedFlowRate(pump.ratedFlowRate.get)
478
+ new_pump.setRatedPumpHead(pump.ratedPumpHead)
479
479
  new_pump.setRatedPowerConsumption(pump.ratedPowerConsumption.to_f)
480
- new_pump.setMotorEfficiency(pump.motorEfficiency().to_f)
481
- new_pump.setFractionofMotorInefficienciestoFluidStream(pump.fractionofMotorInefficienciestoFluidStream().to_f)
482
- new_pump.setPumpControlType( pump.pumpControlType )
480
+ new_pump.setMotorEfficiency(pump.motorEfficiency.to_f)
481
+ new_pump.setFractionofMotorInefficienciestoFluidStream(pump.fractionofMotorInefficienciestoFluidStream.to_f)
482
+ new_pump.setPumpControlType(pump.pumpControlType)
483
483
  new_pump.autosizeRatedFlowRate if pump.isRatedFlowRateAutosized
484
484
  new_pump.autosizeRatedPowerConsumption if pump.isRatedPowerConsumptionAutosized
485
485
  #get the hot water loop.
@@ -631,7 +631,7 @@ module BTAP
631
631
  end
632
632
  item.setHeaterFuelType(@shw_heater_fuel_type) unless @shw_heater_fuel_type.nil?
633
633
  item.setHeaterThermalEfficiency(@shw_thermal_eff) unless @shw_thermal_eff.nil?
634
- log << item.name.get.to_s << ",#{item.setpointTemperatureSchedule},#{item.heaterFuelType},#{item.getHeaterThermalEfficiency.get}\n"
634
+ log << item.name.get.to_s << ",#{item.setpointTemperatureSchedule},#{item.heaterFuelType},#{item.heaterThermalEfficiency}\n"
635
635
  end
636
636
  return log
637
637
  end
@@ -134,7 +134,7 @@ module BTAP
134
134
  conductance = material.to_Shade.get.thermalConductance unless material.to_Shade.empty?
135
135
  conductance = material.to_Screen.get.thermalConductance unless material.to_Screen.empty?
136
136
  conductance = material.to_MasslessOpaqueMaterial.get.thermalConductance unless material.to_MasslessOpaqueMaterial.empty?
137
- conductance = 1.0/material.to_AirGap.get.getThermalResistance.get.value unless material.to_AirGap.empty?
137
+ conductance = 1.0/material.to_AirGap.get.thermalResistance unless material.to_AirGap.empty?
138
138
  conductance = material.to_Gas.get.getThermalConductivity(temperature_k) unless material.to_Gas.empty?
139
139
  conductance = material.to_GasMixture.get.getThermalConductance(temperature_k) unless material.to_GasMixture.empty?
140
140
  conductance = material.to_RoofVegetation.get.thermalConductance unless material.to_RoofVegetation.empty?
@@ -654,9 +654,9 @@ module BTAP
654
654
 
655
655
  construction.layers.each do |layer|
656
656
  #check to see if it is a simple glazing. If so use the SHGC method.
657
- tsol = tsol * layer.to_SimpleGlazing.get.getSolarHeatGainCoefficient().value unless layer.to_SimpleGlazing.empty?
657
+ tsol = tsol * layer.to_SimpleGlazing.get.solarHeatGainCoefficient unless layer.to_SimpleGlazing.empty?
658
658
  #check to see if it is a standard glazing. If so use the solar transmittance method.
659
- tsol = tsol * layer.to_StandardGlazing.get.solarTransmittance() unless layer.to_StandardGlazing.empty?
659
+ tsol = tsol * layer.to_StandardGlazing.get.solarTransmittance unless layer.to_StandardGlazing.empty?
660
660
  end
661
661
  end
662
662
  return tsol
@@ -674,9 +674,9 @@ module BTAP
674
674
  if construction.isFenestration
675
675
  construction.layers.each do |layer|
676
676
  #check to see if it is a simple glazing. If so use the SHGC method.
677
- tvis = tvis * layer.to_SimpleGlazing.get.getVisibleTransmittance().get.value unless layer.to_SimpleGlazing.empty?
677
+ tvis = tvis * layer.to_SimpleGlazing.get.visibleTransmittance.get unless layer.to_SimpleGlazing.empty?
678
678
  #check to see if it is a standard glazing. If so use the solar transmittance method.
679
- tvis = tvis * layer.to_StandardGlazing.get.visibleTransmittanceatNormalIncidence().get unless layer.to_StandardGlazing.empty?
679
+ tvis = tvis * layer.to_StandardGlazing.get.visibleTransmittanceatNormalIncidence.get unless layer.to_StandardGlazing.empty?
680
680
  end
681
681
  end
682
682
  return tvis
@@ -1173,7 +1173,11 @@ module BTAP
1173
1173
  air_loop_sizing = air_loop.sizingSystem # TODO units
1174
1174
  air_loop_sizing.setTypeofLoadtoSizeOn("Sensible")
1175
1175
  air_loop_sizing.autosizeDesignOutdoorAirFlowRate
1176
- air_loop_sizing.setMinimumSystemAirFlowRatio(1.0)
1176
+ if model.version < OpenStudio::VersionString.new('2.7.0')
1177
+ air_loop_sizing.setMinimumSystemAirFlowRatio(1.0)
1178
+ else
1179
+ air_loop_sizing.setCentralHeatingMaximumSystemAirFlowRatio(1.0)
1180
+ end
1177
1181
  air_loop_sizing.setPreheatDesignTemperature(7.0)
1178
1182
  air_loop_sizing.setPreheatDesignHumidityRatio(0.008)
1179
1183
  air_loop_sizing.setPrecoolDesignTemperature(12.8)
@@ -1301,7 +1305,11 @@ module BTAP
1301
1305
  air_loop_sizing = air_loop.sizingSystem
1302
1306
  air_loop_sizing.setTypeofLoadtoSizeOn("Sensible")
1303
1307
  air_loop_sizing.autosizeDesignOutdoorAirFlowRate
1304
- air_loop_sizing.setMinimumSystemAirFlowRatio(1.0)
1308
+ if model.version < OpenStudio::VersionString.new('2.7.0')
1309
+ air_loop_sizing.setMinimumSystemAirFlowRatio(1.0)
1310
+ else
1311
+ air_loop_sizing.setCentralHeatingMaximumSystemAirFlowRatio(1.0)
1312
+ end
1305
1313
  air_loop_sizing.setPreheatDesignTemperature(7.0)
1306
1314
  air_loop_sizing.setPreheatDesignHumidityRatio(0.008)
1307
1315
  air_loop_sizing.setPrecoolDesignTemperature(12.8)
@@ -2186,7 +2194,11 @@ module BTAP
2186
2194
  sizingSystem = air_loop.sizingSystem
2187
2195
  sizingSystem.setTypeofLoadtoSizeOn("Sensible")
2188
2196
  sizingSystem.autosizeDesignOutdoorAirFlowRate()
2189
- sizingSystem.setMinimumSystemAirFlowRatio(1.0)
2197
+ if model.version < OpenStudio::VersionString.new('2.7.0')
2198
+ air_loop_sizing.setMinimumSystemAirFlowRatio(1.0)
2199
+ else
2200
+ air_loop_sizing.setCentralHeatingMaximumSystemAirFlowRatio(1.0)
2201
+ end
2190
2202
  sizingSystem.setPreheatDesignTemperature(7.0)
2191
2203
  sizingSystem.setPreheatDesignHumidityRatio(0.008)
2192
2204
  sizingSystem.setPrecoolDesignTemperature(12.8)
@@ -2250,7 +2262,11 @@ module BTAP
2250
2262
  sizingSystem = air_loop.sizingSystem
2251
2263
  sizingSystem.setTypeofLoadtoSizeOn("Sensible")
2252
2264
  sizingSystem.autosizeDesignOutdoorAirFlowRate()
2253
- sizingSystem.setMinimumSystemAirFlowRatio(1.0)
2265
+ if model.version < OpenStudio::VersionString.new('2.7.0')
2266
+ air_loop_sizing.setMinimumSystemAirFlowRatio(1.0)
2267
+ else
2268
+ air_loop_sizing.setCentralHeatingMaximumSystemAirFlowRatio(1.0)
2269
+ end
2254
2270
  sizingSystem.setPreheatDesignTemperature(7.0)
2255
2271
  sizingSystem.setPreheatDesignHumidityRatio(0.008)
2256
2272
  sizingSystem.setPrecoolDesignTemperature(12.8)
@@ -2386,7 +2402,11 @@ module BTAP
2386
2402
  air_loop_sizing = mau_air_loop.sizingSystem # TODO units
2387
2403
  air_loop_sizing.setTypeofLoadtoSizeOn("VentilationRequirement")
2388
2404
  air_loop_sizing.autosizeDesignOutdoorAirFlowRate
2389
- air_loop_sizing.setMinimumSystemAirFlowRatio(1.0)
2405
+ if model.version < OpenStudio::VersionString.new('2.7.0')
2406
+ air_loop_sizing.setMinimumSystemAirFlowRatio(1.0)
2407
+ else
2408
+ air_loop_sizing.setCentralHeatingMaximumSystemAirFlowRatio(1.0)
2409
+ end
2390
2410
  air_loop_sizing.setPreheatDesignTemperature(7.0)
2391
2411
  air_loop_sizing.setPreheatDesignHumidityRatio(0.008)
2392
2412
  air_loop_sizing.setPrecoolDesignTemperature(13.0)
@@ -2586,7 +2606,11 @@ module BTAP
2586
2606
  air_loop_sizing = mau_air_loop.sizingSystem # TODO units
2587
2607
  air_loop_sizing.setTypeofLoadtoSizeOn("Sensible")
2588
2608
  air_loop_sizing.autosizeDesignOutdoorAirFlowRate
2589
- air_loop_sizing.setMinimumSystemAirFlowRatio(1.0)
2609
+ if model.version < OpenStudio::VersionString.new('2.7.0')
2610
+ air_loop_sizing.setMinimumSystemAirFlowRatio(1.0)
2611
+ else
2612
+ air_loop_sizing.setCentralHeatingMaximumSystemAirFlowRatio(1.0)
2613
+ end
2590
2614
  air_loop_sizing.setPreheatDesignTemperature(7.0)
2591
2615
  air_loop_sizing.setPreheatDesignHumidityRatio(0.008)
2592
2616
  air_loop_sizing.setPrecoolDesignTemperature(12.8)
@@ -2853,7 +2877,11 @@ module BTAP
2853
2877
  air_loop_sizing = air_loop.sizingSystem # TODO units
2854
2878
  air_loop_sizing.setTypeofLoadtoSizeOn("Sensible")
2855
2879
  air_loop_sizing.autosizeDesignOutdoorAirFlowRate
2856
- air_loop_sizing.setMinimumSystemAirFlowRatio(1.0)
2880
+ if model.version < OpenStudio::VersionString.new('2.7.0')
2881
+ air_loop_sizing.setMinimumSystemAirFlowRatio(1.0)
2882
+ else
2883
+ air_loop_sizing.setCentralHeatingMaximumSystemAirFlowRatio(1.0)
2884
+ end
2857
2885
  air_loop_sizing.setPreheatDesignTemperature(7.0)
2858
2886
  air_loop_sizing.setPreheatDesignHumidityRatio(0.008)
2859
2887
  air_loop_sizing.setPrecoolDesignTemperature(13.0)
@@ -2981,7 +3009,11 @@ module BTAP
2981
3009
  air_loop_sizing = air_loop.sizingSystem # TODO units
2982
3010
  air_loop_sizing.setTypeofLoadtoSizeOn("Sensible")
2983
3011
  air_loop_sizing.autosizeDesignOutdoorAirFlowRate
2984
- air_loop_sizing.setMinimumSystemAirFlowRatio(1.0)
3012
+ if model.version < OpenStudio::VersionString.new('2.7.0')
3013
+ air_loop_sizing.setMinimumSystemAirFlowRatio(1.0)
3014
+ else
3015
+ air_loop_sizing.setCentralHeatingMaximumSystemAirFlowRatio(1.0)
3016
+ end
2985
3017
  air_loop_sizing.setPreheatDesignTemperature(7.0)
2986
3018
  air_loop_sizing.setPreheatDesignHumidityRatio(0.008)
2987
3019
  air_loop_sizing.setPrecoolDesignTemperature(13.0)
@@ -3136,7 +3168,11 @@ module BTAP
3136
3168
  air_loop_sizing = air_loop.sizingSystem # TODO units
3137
3169
  air_loop_sizing.setTypeofLoadtoSizeOn("Sensible")
3138
3170
  air_loop_sizing.autosizeDesignOutdoorAirFlowRate
3139
- air_loop_sizing.setMinimumSystemAirFlowRatio(1.0)
3171
+ if model.version < OpenStudio::VersionString.new('2.7.0')
3172
+ air_loop_sizing.setMinimumSystemAirFlowRatio(1.0)
3173
+ else
3174
+ air_loop_sizing.setCentralHeatingMaximumSystemAirFlowRatio(1.0)
3175
+ end
3140
3176
  air_loop_sizing.setPreheatDesignTemperature(7.0)
3141
3177
  air_loop_sizing.setPreheatDesignHumidityRatio(0.008)
3142
3178
  air_loop_sizing.setPrecoolDesignTemperature(13.0)
@@ -3308,7 +3344,11 @@ module BTAP
3308
3344
  air_loop_sizing = air_loop.sizingSystem # TODO units
3309
3345
  air_loop_sizing.setTypeofLoadtoSizeOn("Sensible")
3310
3346
  air_loop_sizing.autosizeDesignOutdoorAirFlowRate
3311
- air_loop_sizing.setMinimumSystemAirFlowRatio(1.0)
3347
+ if model.version < OpenStudio::VersionString.new('2.7.0')
3348
+ air_loop_sizing.setMinimumSystemAirFlowRatio(1.0)
3349
+ else
3350
+ air_loop_sizing.setCentralHeatingMaximumSystemAirFlowRatio(1.0)
3351
+ end
3312
3352
  air_loop_sizing.setPreheatDesignTemperature(7.0)
3313
3353
  air_loop_sizing.setPreheatDesignHumidityRatio(0.008)
3314
3354
  air_loop_sizing.setPrecoolDesignTemperature(13.0)
@@ -3462,7 +3502,11 @@ module BTAP
3462
3502
  sizingSystem.setCentralCoolingDesignSupplyAirTemperature(13.0)
3463
3503
  sizingSystem.setCentralHeatingDesignSupplyAirTemperature(13.1)
3464
3504
  sizingSystem.autosizeDesignOutdoorAirFlowRate
3465
- sizingSystem.setMinimumSystemAirFlowRatio(0.3)
3505
+ if model.version < OpenStudio::VersionString.new('2.7.0')
3506
+ air_loop_sizing.setMinimumSystemAirFlowRatio(0.3)
3507
+ else
3508
+ air_loop_sizing.setCentralHeatingMaximumSystemAirFlowRatio(0.3)
3509
+ end
3466
3510
  sizingSystem.setPreheatDesignTemperature(7.0)
3467
3511
  sizingSystem.setPreheatDesignHumidityRatio(0.008)
3468
3512
  sizingSystem.setPrecoolDesignTemperature(13.0)
@@ -906,12 +906,12 @@ module BTAP
906
906
  unless pump_const.plantLoop.empty?
907
907
  pump_variable = OpenStudio::Model::PumpVariableSpeed.new(model)
908
908
  #pass information from constant speed fan as much as possible.
909
- pump_variable.setRatedFlowRate(pump_const.getRatedFlowRate.get)
910
- pump_variable.setRatedPumpHead(pump_const.ratedPumpHead())
909
+ pump_variable.setRatedFlowRate(pump_const.ratedFlowRate)
910
+ pump_variable.setRatedPumpHead(pump_const.ratedPumpHead)
911
911
  pump_variable.setRatedPowerConsumption(pump_const.ratedPowerConsumption.to_f)
912
- pump_variable.setMotorEfficiency(pump_const.motorEfficiency().to_f)
913
- pump_variable.setPumpControlType( pump_const.pumpControlType )
914
- pump_variable.setFractionofMotorInefficienciestoFluidStream(pump_const.fractionofMotorInefficienciestoFluidStream().to_f)
912
+ pump_variable.setMotorEfficiency(pump_const.motorEfficiency.to_f)
913
+ pump_variable.setPumpControlType(pump_const.pumpControlType)
914
+ pump_variable.setFractionofMotorInefficienciestoFluidStream(pump_const.fractionofMotorInefficienciestoFluidStream.to_f)
915
915
  pump_variable.autosizeRatedFlowRate if pump_const.isRatedFlowRateAutosized
916
916
  pump_variable.autosizeRatedPowerConsumption if pump_const.isRatedPowerConsumptionAutosized
917
917
 
@@ -932,7 +932,7 @@ module BTAP
932
932
  new_pump = OpenStudio::Model::PumpVariableSpeed.new(model)
933
933
  #pass information from constant speed fan as much as possible.
934
934
 
935
- new_pump.setRatedFlowRate(pump.getRatedFlowRate.get)
935
+ new_pump.setRatedFlowRate(pump.ratedFlowRate.get)
936
936
  new_pump.setRatedPumpHead(pump.ratedPumpHead())
937
937
  new_pump.setRatedPowerConsumption(pump.ratedPowerConsumption.to_f)
938
938
  new_pump.setMotorEfficiency(pump.motorEfficiency().to_f)
@@ -1071,7 +1071,7 @@ module BTAP
1071
1071
  end
1072
1072
  item.setHeaterFuelType(@shw_heater_fuel_type) unless @shw_heater_fuel_type.nil?
1073
1073
  item.setHeaterThermalEfficiency(@shw_thermal_eff) unless @shw_thermal_eff.nil?
1074
- log << item.name.get.to_s << ",#{item.setpointTemperatureSchedule},#{item.heaterFuelType},#{item.getHeaterThermalEfficiency.get}\n"
1074
+ log << item.name.get.to_s << ",#{item.setpointTemperatureSchedule},#{item.heaterFuelType},#{item.heaterThermalEfficiency}\n"
1075
1075
  end
1076
1076
  return log
1077
1077
  end
@@ -151,10 +151,10 @@ module BTAP
151
151
  #@param factor [Float]
152
152
  def self.scale_oa_loads( model, factor )
153
153
  model.getDesignSpecificationOutdoorAirs.sort.each do |oa_def|
154
- oa_def.setOutdoorAirFlowperPerson(oa_def.getOutdoorAirFlowperPerson * factor ) unless oa_def.isOutdoorAirFlowperPersonDefaulted
155
- oa_def.setOutdoorAirFlowperFloorArea(oa_def.getOutdoorAirFlowperFloorArea * factor) unless oa_def.isOutdoorAirFlowperFloorAreaDefaulted
156
- oa_def.setOutdoorAirFlowRate(oa_def.getOutdoorAirFlowRate * factor) unless oa_def.isOutdoorAirFlowRateDefaulted
157
- oa_def.setOutdoorAirFlowAirChangesperHour(oa_def.getOutdoorAirFlowAirChangesperHour * factor ) unless oa_def.isOutdoorAirFlowAirChangesperHourDefaulted
154
+ oa_def.setOutdoorAirFlowperPerson(oa_def.outdoorAirFlowperPerson * factor ) unless oa_def.isOutdoorAirFlowperPersonDefaulted
155
+ oa_def.setOutdoorAirFlowperFloorArea(oa_def.outdoorAirFlowperFloorArea * factor) unless oa_def.isOutdoorAirFlowperFloorAreaDefaulted
156
+ oa_def.setOutdoorAirFlowRate(oa_def.outdoorAirFlowRate * factor) unless oa_def.isOutdoorAirFlowRateDefaulted
157
+ oa_def.setOutdoorAirFlowAirChangesperHour(oa_def.outdoorAirFlowAirChangesperHour * factor ) unless oa_def.isOutdoorAirFlowAirChangesperHourDefaulted
158
158
  end
159
159
  end
160
160
 
@@ -26,5 +26,109 @@ class OpenStudio::Model::AirLoopHVAC
26
26
 
27
27
  end
28
28
 
29
-
29
+ # Retrieves an airloop sum of air terminal minimum heating flow rates: sum(Vpz_min)
30
+ def autosizeSumMinimumHeatingAirFlowRates
31
+ result = OpenStudio::OptionalDouble.new
32
+ name = self.name.get.upcase
33
+ sql = self.model.sqlFile
34
+ if sql.is_initialized
35
+ sql = sql.get
36
+ query = "SELECT Value
37
+ FROM tabulardatawithstrings
38
+ WHERE ReportName='ComponentSizingSummary'
39
+ AND ReportForString='Entire Facility'
40
+ AND TableName='AirLoopHVAC'
41
+ AND ColumnName='Sum of Air Terminal Minimum Heating Flow Rates'
42
+ AND RowName='#{name}'
43
+ AND Units='m3/s'"
44
+ val = sql.execAndReturnFirstDouble(query)
45
+ if val.is_initialized
46
+ result = OpenStudio::OptionalDouble.new(val.get)
47
+ end
48
+ else
49
+ OpenStudio::logFree(OpenStudio::Error, 'openstudio.model.Model', 'Model has no sql file containing results, cannot lookup data.')
50
+ end
51
+
52
+ return result.to_f
53
+
54
+ end
55
+
56
+ # Retrieve an airloop's design outdoor air intake (Vot)
57
+ # Ideally, this would only be used to retrieve Vot when
58
+ # calculated by EnergyPlus' built-in design VRP calculations
59
+ def autosize621OutdoorAirIntakeFlow
60
+ flow_types = ['Heating', 'Cooling']
61
+ flow_rates = []
62
+ flow_types.each do |flow_type|
63
+ result = OpenStudio::OptionalDouble.new
64
+ name = self.name.get.upcase
65
+ sql = self.model.sqlFile
66
+ if sql.is_initialized
67
+ sql = sql.get
68
+ query = "SELECT Value
69
+ FROM tabulardatawithstrings
70
+ WHERE ReportName='Standard62.1Summary'
71
+ AND ReportForString='Entire Facility'
72
+ AND TableName='System Ventilation Requirements for #{flow_type}'
73
+ AND ColumnName='Outdoor Air Intake Flow Vot'
74
+ AND RowName='#{name}'
75
+ AND Units='m3/s'"
76
+ val = sql.execAndReturnFirstDouble(query)
77
+ if val.is_initialized
78
+ result = OpenStudio::OptionalDouble.new(val.get)
79
+ end
80
+ # Inconsistency in column name in EnergyPlus 9.0:
81
+ # "Outdoor Air Intake Flow - Vot" vs "Outdoor Air Intake Flow Vot"
82
+ # The following could be deleted if the inconsistency was ever fixed
83
+ if result.to_f == 0.0
84
+ query = "SELECT Value
85
+ FROM tabulardatawithstrings
86
+ WHERE ReportName='Standard62.1Summary'
87
+ AND ReportForString='Entire Facility'
88
+ AND TableName='System Ventilation Requirements for #{flow_type}'
89
+ AND ColumnName='Outdoor Air Intake Flow - Vot'
90
+ AND RowName='#{name}'
91
+ AND Units='m3/s'"
92
+ val = sql.execAndReturnFirstDouble(query)
93
+ if val.is_initialized
94
+ result = OpenStudio::OptionalDouble.new(val.get)
95
+ end
96
+ end
97
+ else
98
+ OpenStudio::logFree(OpenStudio::Error, 'openstudio.model.Model', 'Model has no sql file containing results, cannot lookup data.')
99
+ end
100
+ flow_rates << result.to_f
101
+ end
102
+
103
+ return flow_rates.max
104
+
105
+ end
106
+
107
+ # Retrieve an airloop's sum of air terminal maximum flow rates: sum(Vpz)
108
+ def autosizeSumAirTerminalMaxAirFlowRate
109
+ result = OpenStudio::OptionalDouble.new
110
+ name = self.name.get.upcase
111
+ sql = self.model.sqlFile
112
+ if sql.is_initialized
113
+ sql = sql.get
114
+ query = "SELECT Value
115
+ FROM tabulardatawithstrings
116
+ WHERE ReportName='ComponentSizingSummary'
117
+ AND ReportForString='Entire Facility'
118
+ AND TableName='AirLoopHVAC'
119
+ AND ColumnName='Sum of Air Terminal Maximum Flow Rates'
120
+ AND RowName='#{name}'
121
+ AND Units='m3/s'"
122
+ val = sql.execAndReturnFirstDouble(query)
123
+ if val.is_initialized
124
+ result = OpenStudio::OptionalDouble.new(val.get)
125
+ end
126
+ else
127
+ OpenStudio::logFree(OpenStudio::Error, 'openstudio.model.Model', 'Model has no sql file containing results, cannot lookup data.')
128
+ end
129
+
130
+ return result.to_f
131
+
132
+ end
133
+
30
134
  end