urbanopt-cli 0.5.2 → 0.6.3

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 (829) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/.rubocop.yml +2 -2
  4. data/CHANGELOG.md +40 -0
  5. data/CMakeLists.txt +13 -13
  6. data/FindOpenStudioSDK.cmake +11 -6
  7. data/Gemfile +12 -6
  8. data/example_files/Gemfile +11 -8
  9. data/example_files/base_workflow_res.osw +10 -0
  10. data/example_files/example_project_combined.json +13 -3
  11. data/example_files/example_project_with_PV.json +751 -0
  12. data/example_files/example_project_with_streets.json +826 -0
  13. data/example_files/mappers/Baseline.rb +106 -50
  14. data/example_files/mappers/CreateBar.rb +31 -1
  15. data/example_files/mappers/FlexibleHotWater.rb +69 -0
  16. data/example_files/mappers/Floorspace.rb +31 -1
  17. data/example_files/mappers/HighEfficiency.rb +20 -8
  18. data/example_files/mappers/HighEfficiencyCreateBar.rb +3 -2
  19. data/example_files/mappers/HighEfficiencyFloorspace.rb +3 -2
  20. data/example_files/mappers/base_workflow.osw +5 -0
  21. data/example_files/mappers/createbar_workflow.osw +3 -1
  22. data/example_files/mappers/floorspace_workflow.osw +2 -1
  23. data/example_files/measures/BuildResidentialModel/measure.rb +70 -37
  24. data/example_files/osm_building/7.osm +0 -307
  25. data/example_files/osm_building/8.osm +0 -419
  26. data/example_files/osm_building/9.osm +0 -664
  27. data/example_files/reopt/base_assumptions.json +4 -4
  28. data/example_files/reopt/multiPV_assumptions.json +6 -5
  29. data/example_files/resources/hpxml-measures/.github/pull_request_template.md +1 -1
  30. data/example_files/resources/hpxml-measures/.github/workflows/config.yml +96 -3
  31. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/measure.rb +138 -73
  32. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/measure.xml +509 -487
  33. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/geometry.rb +11 -11
  34. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules.rb +33 -32
  35. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_config.json +388 -0
  36. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_config.md +43 -0
  37. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-coal.osw +5 -5
  38. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-dehumidifier-ief-portable.osw +5 -5
  39. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-dehumidifier-ief-whole-home.osw +5 -5
  40. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-dehumidifier.osw +5 -5
  41. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-gas.osw +5 -5
  42. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-modified.osw +5 -5
  43. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-none.osw +5 -5
  44. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-oil.osw +5 -5
  45. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-propane.osw +5 -5
  46. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-wood.osw +5 -5
  47. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-atticroof-flat.osw +5 -5
  48. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-atticroof-radiant-barrier.osw +5 -5
  49. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-atticroof-unvented-insulated-roof.osw +5 -5
  50. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-atticroof-vented.osw +5 -5
  51. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-bldgtype-multifamily-shared-boiler-only-baseboard.osw +341 -0
  52. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-bldgtype-multifamily-shared-boiler-only-fan-coil.osw +341 -0
  53. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-bldgtype-multifamily-shared-mechvent-preconditioning.osw +8 -8
  54. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-bldgtype-multifamily-shared-mechvent.osw +8 -8
  55. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-bldgtype-multifamily-shared-pv.osw +8 -8
  56. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-bldgtype-multifamily-shared-water-heater.osw +8 -8
  57. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-bldgtype-multifamily.osw +8 -8
  58. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-bldgtype-single-family-attached.osw +5 -5
  59. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-combi-tankless-outside.osw +5 -5
  60. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-combi-tankless.osw +5 -5
  61. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-dwhr.osw +5 -5
  62. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-indirect-outside.osw +5 -5
  63. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-indirect-standbyloss.osw +5 -5
  64. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-indirect-with-solar-fraction.osw +5 -5
  65. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-indirect.osw +5 -5
  66. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-jacket-electric.osw +5 -5
  67. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-jacket-gas.osw +5 -5
  68. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-jacket-hpwh.osw +5 -5
  69. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-jacket-indirect.osw +5 -5
  70. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-low-flow-fixtures.osw +5 -5
  71. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-none.osw +5 -5
  72. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-recirc-demand.osw +5 -5
  73. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-recirc-manual.osw +5 -5
  74. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-recirc-nocontrol.osw +5 -5
  75. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-recirc-temperature.osw +5 -5
  76. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-recirc-timer.osw +5 -5
  77. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-solar-direct-evacuated-tube.osw +5 -5
  78. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-solar-direct-flat-plate.osw +5 -5
  79. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-solar-direct-ics.osw +5 -5
  80. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-solar-fraction.osw +5 -5
  81. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-solar-indirect-flat-plate.osw +5 -5
  82. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-solar-thermosyphon-flat-plate.osw +5 -5
  83. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-coal.osw +5 -5
  84. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-elec-uef.osw +5 -5
  85. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-gas-outside.osw +5 -5
  86. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-gas-uef.osw +5 -5
  87. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-gas.osw +5 -5
  88. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-heat-pump-outside.osw +5 -5
  89. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-heat-pump-uef.osw +5 -5
  90. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-heat-pump-with-solar-fraction.osw +5 -5
  91. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-heat-pump-with-solar.osw +5 -5
  92. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-heat-pump.osw +5 -5
  93. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-oil.osw +5 -5
  94. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-wood.osw +5 -5
  95. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tankless-electric-outside.osw +5 -5
  96. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tankless-electric-uef.osw +5 -5
  97. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tankless-electric.osw +5 -5
  98. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tankless-gas-uef.osw +5 -5
  99. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tankless-gas-with-solar-fraction.osw +5 -5
  100. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tankless-gas-with-solar.osw +5 -5
  101. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tankless-gas.osw +5 -5
  102. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tankless-propane.osw +5 -5
  103. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-2stories-garage.osw +5 -5
  104. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-2stories.osw +5 -5
  105. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-beds-1.osw +5 -5
  106. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-beds-2.osw +5 -5
  107. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-beds-4.osw +5 -5
  108. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-beds-5.osw +5 -5
  109. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-garage.osw +5 -5
  110. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-infil-ach-house-pressure.osw +5 -5
  111. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-infil-cfm-house-pressure.osw +5 -5
  112. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-infil-cfm50.osw +5 -5
  113. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-infil-flue.osw +5 -5
  114. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-infil-natural-ach.osw +6 -6
  115. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-overhangs.osw +5 -5
  116. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-windows-none.osw +5 -5
  117. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-foundation-ambient.osw +5 -5
  118. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-foundation-conditioned-basement-slab-insulation.osw +5 -5
  119. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-foundation-slab.osw +5 -5
  120. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-foundation-unconditioned-basement-assembly-r.osw +5 -5
  121. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-foundation-unconditioned-basement-wall-insulation.osw +5 -5
  122. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-foundation-unconditioned-basement.osw +5 -5
  123. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-foundation-unvented-crawlspace.osw +5 -5
  124. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-foundation-vented-crawlspace.osw +5 -5
  125. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-air-to-air-heat-pump-1-speed-cooling-only.osw +4 -4
  126. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-air-to-air-heat-pump-1-speed-heating-only.osw +5 -5
  127. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-air-to-air-heat-pump-1-speed.osw +6 -6
  128. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-air-to-air-heat-pump-2-speed.osw +6 -6
  129. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-air-to-air-heat-pump-var-speed.osw +6 -6
  130. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-boiler-coal-only.osw +5 -5
  131. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-boiler-elec-only.osw +5 -5
  132. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-boiler-gas-central-ac-1-speed.osw +5 -5
  133. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-boiler-gas-only.osw +5 -5
  134. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-boiler-oil-only.osw +5 -5
  135. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-boiler-propane-only.osw +5 -5
  136. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-boiler-wood-only.osw +5 -5
  137. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-central-ac-only-1-speed.osw +5 -5
  138. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-central-ac-only-2-speed.osw +5 -5
  139. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-central-ac-only-var-speed.osw +5 -5
  140. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-central-ac-plus-air-to-air-heat-pump-heating.osw +6 -6
  141. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-dual-fuel-air-to-air-heat-pump-1-speed-electric.osw +5 -5
  142. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-dual-fuel-air-to-air-heat-pump-1-speed.osw +5 -5
  143. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-dual-fuel-air-to-air-heat-pump-2-speed.osw +5 -5
  144. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-dual-fuel-air-to-air-heat-pump-var-speed.osw +5 -5
  145. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-dual-fuel-mini-split-heat-pump-ducted.osw +5 -5
  146. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-ducts-leakage-percent.osw +5 -5
  147. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-elec-resistance-only.osw +5 -5
  148. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-evap-cooler-furnace-gas.osw +5 -5
  149. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-evap-cooler-only-ducted.osw +5 -5
  150. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-evap-cooler-only.osw +5 -5
  151. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-fireplace-wood-only.osw +5 -5
  152. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-fixed-heater-gas-only.osw +6 -6
  153. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-floor-furnace-propane-only.osw +5 -5
  154. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-coal-only.osw +5 -5
  155. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-elec-central-ac-1-speed.osw +5 -5
  156. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-elec-only.osw +5 -5
  157. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-gas-central-ac-2-speed.osw +5 -5
  158. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-gas-central-ac-var-speed.osw +5 -5
  159. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-gas-only.osw +5 -5
  160. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-gas-room-ac.osw +5 -5
  161. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-oil-only.osw +5 -5
  162. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-propane-only.osw +5 -5
  163. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-wood-only.osw +5 -5
  164. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-ground-to-air-heat-pump-cooling-only.osw +4 -4
  165. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-ground-to-air-heat-pump-heating-only.osw +4 -4
  166. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-ground-to-air-heat-pump.osw +5 -5
  167. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-install-quality-airflow-defect-furnace-gas-central-ac-1-speed.osw +5 -5
  168. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-install-quality-all-air-to-air-heat-pump-1-speed.osw +6 -6
  169. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-install-quality-all-air-to-air-heat-pump-2-speed.osw +6 -6
  170. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-install-quality-all-air-to-air-heat-pump-var-speed.osw +6 -6
  171. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-install-quality-all-furnace-gas-central-ac-1-speed.osw +5 -5
  172. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-install-quality-all-furnace-gas-central-ac-2-speed.osw +5 -5
  173. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-install-quality-all-furnace-gas-central-ac-var-speed.osw +5 -5
  174. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-install-quality-all-furnace-gas-only.osw +5 -5
  175. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-install-quality-all-ground-to-air-heat-pump.osw +5 -5
  176. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-install-quality-all-mini-split-air-conditioner-only-ducted.osw +5 -5
  177. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-install-quality-all-mini-split-heat-pump-ducted.osw +6 -6
  178. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-install-quality-charge-defect-furnace-gas-central-ac-1-speed.osw +5 -5
  179. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-install-quality-none-furnace-gas-central-ac-1-speed.osw +5 -5
  180. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-mini-split-air-conditioner-only-ducted.osw +5 -5
  181. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-mini-split-air-conditioner-only-ductless.osw +5 -5
  182. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-mini-split-heat-pump-ducted-cooling-only.osw +4 -4
  183. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-mini-split-heat-pump-ducted-heating-only.osw +5 -5
  184. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-mini-split-heat-pump-ducted.osw +6 -6
  185. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-mini-split-heat-pump-ductless.osw +6 -6
  186. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-none.osw +5 -5
  187. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-portable-heater-gas-only.osw +6 -6
  188. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-programmable-thermostat-detailed.osw +8 -8
  189. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-room-ac-only-33percent.osw +5 -5
  190. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-room-ac-only.osw +5 -5
  191. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-setpoints.osw +5 -5
  192. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-stove-oil-only.osw +5 -5
  193. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-stove-wood-pellets-only.osw +5 -5
  194. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-undersized.osw +5 -5
  195. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-wall-furnace-elec-only.osw +5 -5
  196. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-lighting-ceiling-fans.osw +5 -5
  197. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-lighting-detailed.osw +5 -5
  198. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-location-AMY-2012.osw +5 -5
  199. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-location-baltimore-md.osw +5 -5
  200. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-location-dallas-tx.osw +5 -5
  201. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-location-duluth-mn.osw +5 -5
  202. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-location-helena-mt.osw +5 -5
  203. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-location-honolulu-hi.osw +5 -5
  204. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-location-miami-fl.osw +5 -5
  205. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-location-phoenix-az.osw +5 -5
  206. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-location-portland-or.osw +5 -5
  207. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-balanced.osw +5 -5
  208. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-bath-kitchen-fans.osw +5 -5
  209. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-cfis-evap-cooler-only-ducted.osw +5 -5
  210. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-cfis.osw +5 -5
  211. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-erv-atre-asre.osw +5 -5
  212. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-erv.osw +5 -5
  213. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-exhaust-rated-flow-rate.osw +5 -5
  214. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-exhaust.osw +5 -5
  215. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-hrv-asre.osw +5 -5
  216. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-hrv.osw +5 -5
  217. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-supply.osw +5 -5
  218. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-whole-house-fan.osw +5 -5
  219. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-misc-defaults.osw +5 -5
  220. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-misc-loads-large-uncommon.osw +5 -5
  221. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-misc-loads-large-uncommon2.osw +5 -5
  222. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-misc-neighbor-shading.osw +5 -5
  223. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-misc-shielding-of-home.osw +5 -5
  224. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-misc-usage-multiplier.osw +5 -5
  225. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-pv.osw +5 -5
  226. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-schedules-stochastic-vacant.osw +5 -5
  227. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-schedules-stochastic.osw +5 -5
  228. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-schedules-user-specified.osw +5 -5
  229. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-simcontrol-calendar-year-custom.osw +5 -5
  230. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-simcontrol-daylight-saving-custom.osw +5 -5
  231. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-simcontrol-daylight-saving-disabled.osw +5 -5
  232. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-simcontrol-runperiod-1-month.osw +5 -5
  233. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-simcontrol-timestep-10-mins.osw +5 -5
  234. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base.osw +5 -5
  235. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/build_residential_hpxml_test.rb +4 -2
  236. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-auto.osw +5 -5
  237. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-double-exterior.osw +8 -8
  238. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-double-loaded-interior.osw +8 -8
  239. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-eaves.osw +8 -8
  240. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-single-exterior-front.osw +8 -8
  241. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-double-loaded-interior.osw +8 -8
  242. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-left-bottom-double-loaded-interior.osw +8 -8
  243. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-left-bottom.osw +8 -8
  244. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-left-middle-double-loaded-interior.osw +8 -8
  245. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-left-middle.osw +8 -8
  246. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-left-top-double-loaded-interior.osw +8 -8
  247. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-left-top.osw +8 -8
  248. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-middle-bottom-double-loaded-interior.osw +8 -8
  249. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-middle-bottom.osw +8 -8
  250. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-middle-middle-double-loaded-interior.osw +8 -8
  251. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-middle-middle.osw +8 -8
  252. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-middle-top-double-loaded-interior.osw +8 -8
  253. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-middle-top.osw +8 -8
  254. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-right-bottom-double-loaded-interior.osw +8 -8
  255. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-right-bottom.osw +8 -8
  256. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-right-middle-double-loaded-interior.osw +8 -8
  257. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-right-middle.osw +8 -8
  258. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-right-top-double-loaded-interior.osw +8 -8
  259. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-right-top.osw +8 -8
  260. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab.osw +8 -8
  261. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-double-loaded-interior.osw +8 -8
  262. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-left-bottom-double-loaded-interior.osw +8 -8
  263. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-left-bottom.osw +8 -8
  264. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-left-middle-double-loaded-interior.osw +8 -8
  265. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-left-middle.osw +8 -8
  266. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-left-top-double-loaded-interior.osw +8 -8
  267. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-left-top.osw +8 -8
  268. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-middle-bottom-double-loaded-interior.osw +8 -8
  269. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-middle-bottom.osw +8 -8
  270. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-middle-middle-double-loaded-interior.osw +8 -8
  271. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-middle-middle.osw +8 -8
  272. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-middle-top-double-loaded-interior.osw +8 -8
  273. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-middle-top.osw +8 -8
  274. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-right-bottom-double-loaded-interior.osw +8 -8
  275. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-right-bottom.osw +8 -8
  276. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-right-middle-double-loaded-interior.osw +8 -8
  277. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-right-middle.osw +8 -8
  278. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-right-top-double-loaded-interior.osw +8 -8
  279. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-right-top.osw +8 -8
  280. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace.osw +8 -8
  281. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-double-loaded-interior.osw +8 -8
  282. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-left-bottom-double-loaded-interior.osw +8 -8
  283. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-left-bottom.osw +8 -8
  284. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-left-middle-double-loaded-interior.osw +8 -8
  285. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-left-middle.osw +8 -8
  286. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-left-top-double-loaded-interior.osw +8 -8
  287. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-left-top.osw +8 -8
  288. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-middle-bottom-double-loaded-interior.osw +8 -8
  289. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-middle-bottom.osw +8 -8
  290. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-middle-middle-double-loaded-interior.osw +8 -8
  291. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-middle-middle.osw +8 -8
  292. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-middle-top-double-loaded-interior.osw +8 -8
  293. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-middle-top.osw +8 -8
  294. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-right-bottom-double-loaded-interior.osw +8 -8
  295. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-right-bottom.osw +8 -8
  296. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-right-middle-double-loaded-interior.osw +8 -8
  297. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-right-middle.osw +8 -8
  298. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-right-top-double-loaded-interior.osw +8 -8
  299. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-right-top.osw +8 -8
  300. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace.osw +8 -8
  301. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-atticroof-conditioned-eaves-gable.osw +5 -5
  302. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-atticroof-conditioned-eaves-hip.osw +5 -5
  303. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-atticroof-flat.osw +339 -0
  304. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-double-exterior.osw +5 -5
  305. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-double-loaded-interior.osw +5 -5
  306. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-single-exterior-front.osw +5 -5
  307. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-slab-middle.osw +5 -5
  308. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-slab-right.osw +5 -5
  309. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-slab.osw +5 -5
  310. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-unconditioned-basement-middle.osw +5 -5
  311. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-unconditioned-basement-right.osw +5 -5
  312. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-unconditioned-basement.osw +5 -5
  313. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-unvented-crawlspace-middle.osw +5 -5
  314. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-unvented-crawlspace-right.osw +5 -5
  315. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-unvented-crawlspace.osw +5 -5
  316. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-vented-crawlspace-middle.osw +5 -5
  317. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-vented-crawlspace-right.osw +5 -5
  318. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-vented-crawlspace.osw +5 -5
  319. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-dhw-solar-latitude.osw +5 -5
  320. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-enclosure-atticroof-conditioned-eaves-gable.osw +5 -5
  321. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-enclosure-atticroof-conditioned-eaves-hip.osw +5 -5
  322. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-enclosure-garage-atticroof-conditioned.osw +5 -5
  323. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-enclosure-garage-partially-protruded.osw +5 -5
  324. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-enclosure-windows-shading.osw +5 -5
  325. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-gas-hot-tub-heater-with-zero-kwh.osw +337 -0
  326. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-gas-pool-heater-with-zero-kwh.osw +337 -0
  327. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-pv-roofpitch.osw +5 -5
  328. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-schedules-random-seed.osw +5 -5
  329. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-second-heating-system-boiler-to-heat-pump.osw +5 -5
  330. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-second-heating-system-boiler-to-heating-system.osw +5 -5
  331. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-second-heating-system-fireplace-to-heat-pump.osw +5 -5
  332. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-second-heating-system-fireplace-to-heating-system.osw +4 -4
  333. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-second-heating-system-portable-heater-to-heat-pump.osw +5 -5
  334. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-second-heating-system-portable-heater-to-heating-system.osw +4 -4
  335. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-second-refrigerator.osw +5 -5
  336. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-zero-clothes-washer-kwh.osw +5 -5
  337. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-zero-dishwasher-kwh.osw +5 -5
  338. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-zero-extra-refrigerator-kwh.osw +5 -5
  339. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-zero-freezer-kwh.osw +5 -5
  340. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-zero-refrigerator-kwh.osw +5 -5
  341. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/conditioned-attic-with-floor-insulation.osw +5 -5
  342. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/conditioned-attic-with-one-floor-above-grade.osw +5 -5
  343. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/conditioned-basement-with-ceiling-insulation.osw +5 -5
  344. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/cooling-system-and-heat-pump.osw +5 -5
  345. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/dhw-indirect-without-boiler.osw +5 -5
  346. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/ducts-location-and-areas-not-same-type.osw +5 -5
  347. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/foundation-wall-insulation-greater-than-height.osw +5 -5
  348. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/heating-system-and-heat-pump.osw +5 -5
  349. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/multifamily-bottom-crawlspace-zero-foundation-height.osw +8 -8
  350. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/multifamily-bottom-slab-non-zero-foundation-height.osw +8 -8
  351. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/multifamily-no-building-orientation.osw +7 -7
  352. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/multipliers-without-fuel-loads.osw +5 -5
  353. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/multipliers-without-other-plug-loads.osw +5 -5
  354. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/multipliers-without-tv-plug-loads.osw +5 -5
  355. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/multipliers-without-vehicle-plug-loads.osw +5 -5
  356. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/multipliers-without-well-pump-plug-loads.osw +5 -5
  357. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/non-electric-heat-pump-water-heater.osw +5 -5
  358. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/non-integer-ceiling-fan-quantity.osw +5 -5
  359. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/non-integer-geometry-num-bathrooms.osw +5 -5
  360. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/second-heating-system-but-no-primary-heating.osw +5 -5
  361. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/second-heating-system-serves-majority-heat.osw +5 -5
  362. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/second-heating-system-serves-total-heat-load.osw +5 -5
  363. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/single-family-attached-ambient.osw +5 -5
  364. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/single-family-attached-no-building-orientation.osw +5 -5
  365. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/single-family-detached-finished-basement-zero-foundation-height.osw +5 -5
  366. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/single-family-detached-slab-non-zero-foundation-height.osw +5 -5
  367. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/{base-appliances-dehumidifier-50percent.osw → invalid_files/single-family-detached-with-shared-system.osw} +22 -22
  368. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/slab-non-zero-foundation-height-above-grade.osw +5 -5
  369. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/unconditioned-basement-with-wall-and-ceiling-insulation.osw +5 -5
  370. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/unvented-attic-with-floor-and-roof-insulation.osw +5 -5
  371. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/unvented-crawlspace-with-wall-and-ceiling-insulation.osw +5 -5
  372. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/vented-attic-with-floor-and-roof-insulation.osw +5 -5
  373. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/vented-crawlspace-with-wall-and-ceiling-insulation.osw +5 -5
  374. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/zero-number-of-bedrooms.osw +5 -5
  375. data/example_files/resources/hpxml-measures/Changelog.md +14 -3
  376. data/example_files/resources/hpxml-measures/Gemfile +1 -4
  377. data/example_files/resources/hpxml-measures/Gemfile.lock +6 -25
  378. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/measure.rb +136 -528
  379. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/measure.xml +131 -106
  380. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/BaseElements.xsd +2 -0
  381. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/EPvalidator.xml +31 -14
  382. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/HPXMLDataTypes.xsd +19 -0
  383. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/airflow.rb +5 -1
  384. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/constants.rb +4 -0
  385. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/constructions.rb +62 -0
  386. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/energyplus.rb +1 -0
  387. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/generator.rb +2 -1
  388. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/geometry.rb +388 -4
  389. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hpxml.rb +54 -14
  390. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hpxml_defaults.rb +40 -4
  391. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hvac.rb +110 -89
  392. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hvac_sizing.rb +2 -4
  393. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/meta_measure.rb +21 -10
  394. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/minitest_helper.rb +4 -26
  395. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/misc_loads.rb +12 -11
  396. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/pv.rb +2 -1
  397. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/schedules.rb +28 -1
  398. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/simcontrols.rb +20 -9
  399. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/version.rb +1 -1
  400. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/waterheater.rb +1 -0
  401. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/xmlhelper.rb +1 -0
  402. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_airflow.rb +2 -28
  403. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_defaults.rb +16 -7
  404. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/{test_constructions.rb → test_enclosure.rb} +12 -16
  405. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_generator.rb +0 -1
  406. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_hotwater_appliance.rb +0 -1
  407. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_hvac.rb +13 -38
  408. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_hvac_sizing.rb +0 -1
  409. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_lighting.rb +0 -1
  410. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_location.rb +0 -1
  411. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_miscloads.rb +0 -1
  412. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_pv.rb +0 -1
  413. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_simcontrols.rb +0 -1
  414. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_validation.rb +1 -2
  415. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_water_heater.rb +0 -1
  416. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/util.rb +26 -0
  417. data/example_files/resources/hpxml-measures/README.md +0 -1
  418. data/example_files/resources/hpxml-measures/Rakefile +1 -2
  419. data/example_files/resources/hpxml-measures/SimulationOutputReport/measure.rb +32 -13
  420. data/example_files/resources/hpxml-measures/SimulationOutputReport/measure.xml +37 -9
  421. data/example_files/resources/hpxml-measures/SimulationOutputReport/tests/output_report_test.rb +24 -7
  422. data/example_files/resources/hpxml-measures/docs/source/getting_started.rst +1 -1
  423. data/example_files/resources/hpxml-measures/docs/source/intro.rst +1 -0
  424. data/example_files/resources/hpxml-measures/docs/source/workflow_inputs.rst +75 -58
  425. data/example_files/resources/hpxml-measures/docs/source/workflow_outputs.rst +5 -1
  426. data/example_files/resources/hpxml-measures/tasks.rb +248 -263
  427. data/example_files/resources/hpxml-measures/weather/USA_CO_Denver.Intl.AP.725650_TMY3-cache.csv +10 -10
  428. data/example_files/resources/hpxml-measures/workflow/run_simulation.rb +17 -4
  429. data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-coal.xml +3 -2
  430. data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-dehumidifier-ief-portable.xml +3 -2
  431. data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-dehumidifier-ief-whole-home.xml +3 -2
  432. data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-dehumidifier-multiple.xml +3 -2
  433. data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-dehumidifier.xml +3 -2
  434. data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-gas.xml +3 -2
  435. data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-modified.xml +3 -2
  436. data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-none.xml +3 -2
  437. data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-oil.xml +3 -2
  438. data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-propane.xml +3 -2
  439. data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-wood.xml +3 -2
  440. data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-cathedral.xml +3 -2
  441. data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-conditioned.xml +3 -2
  442. data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-flat.xml +3 -2
  443. data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-radiant-barrier.xml +3 -2
  444. data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-unvented-insulated-roof.xml +3 -2
  445. data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-vented.xml +3 -2
  446. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-adjacent-to-multifamily-buffer-space.xml +3 -2
  447. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-adjacent-to-multiple.xml +3 -2
  448. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-adjacent-to-non-freezing-space.xml +3 -2
  449. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-adjacent-to-other-heated-space.xml +3 -2
  450. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-adjacent-to-other-housing-unit.xml +3 -2
  451. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-chiller-fan-coil.xml +0 -18
  452. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-chiller-water-loop-heat-pump.xml +1 -0
  453. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-cooling-tower-water-loop-heat-pump.xml +1 -0
  454. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-only-fan-coil-eae.xml +0 -18
  455. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-only-fan-coil.xml +0 -18
  456. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-only-water-loop-heat-pump.xml +1 -0
  457. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-chiller-only-fan-coil.xml +0 -18
  458. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-chiller-only-water-loop-heat-pump.xml +1 -0
  459. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-cooling-tower-only-water-loop-heat-pump.xml +1 -0
  460. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-generator.xml +3 -2
  461. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-ground-loop-ground-to-air-heat-pump.xml +4 -3
  462. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-laundry-room.xml +3 -2
  463. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-mechvent-multiple.xml +6 -4
  464. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-mechvent-preconditioning.xml +3 -2
  465. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-mechvent.xml +3 -2
  466. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-pv.xml +3 -2
  467. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-water-heater-recirc.xml +3 -2
  468. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-water-heater.xml +3 -2
  469. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily.xml +3 -2
  470. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-single-family-attached.xml +3 -2
  471. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-combi-tankless-outside.xml +1 -1
  472. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-combi-tankless.xml +1 -1
  473. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater-2-speed.xml +2 -1
  474. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater-gshp.xml +4 -3
  475. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater-hpwh.xml +3 -2
  476. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater-tankless.xml +2 -1
  477. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater-var-speed.xml +2 -1
  478. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater.xml +2 -1
  479. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-dwhr.xml +3 -2
  480. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect-dse.xml +1 -1
  481. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect-outside.xml +1 -1
  482. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect-standbyloss.xml +1 -1
  483. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect-with-solar-fraction.xml +1 -1
  484. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect.xml +1 -1
  485. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-jacket-electric.xml +3 -2
  486. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-jacket-gas.xml +3 -2
  487. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-jacket-hpwh.xml +3 -2
  488. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-jacket-indirect.xml +1 -1
  489. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-low-flow-fixtures.xml +3 -2
  490. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-multiple.xml +1 -1
  491. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-none.xml +3 -2
  492. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-recirc-demand.xml +3 -2
  493. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-recirc-manual.xml +3 -2
  494. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-recirc-nocontrol.xml +3 -2
  495. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-recirc-temperature.xml +3 -2
  496. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-recirc-timer.xml +3 -2
  497. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-direct-evacuated-tube.xml +3 -2
  498. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-direct-flat-plate.xml +3 -2
  499. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-direct-ics.xml +3 -2
  500. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-fraction.xml +3 -2
  501. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-indirect-flat-plate.xml +3 -2
  502. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-thermosyphon-flat-plate.xml +3 -2
  503. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-coal.xml +3 -2
  504. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-elec-uef.xml +3 -2
  505. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-gas-outside.xml +3 -2
  506. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-gas-uef.xml +3 -2
  507. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-gas.xml +3 -2
  508. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump-outside.xml +3 -2
  509. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump-uef.xml +3 -2
  510. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump-with-solar-fraction.xml +3 -2
  511. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump-with-solar.xml +3 -2
  512. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump.xml +3 -2
  513. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-oil.xml +3 -2
  514. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-wood.xml +3 -2
  515. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-electric-outside.xml +3 -2
  516. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-electric-uef.xml +3 -2
  517. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-electric.xml +3 -2
  518. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-gas-uef.xml +3 -2
  519. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-gas-with-solar-fraction.xml +3 -2
  520. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-gas-with-solar.xml +3 -2
  521. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-gas.xml +3 -2
  522. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-propane.xml +3 -2
  523. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-2stories-garage.xml +3 -2
  524. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-2stories.xml +3 -2
  525. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-beds-1.xml +3 -2
  526. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-beds-2.xml +3 -2
  527. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-beds-4.xml +3 -2
  528. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-beds-5.xml +3 -2
  529. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-garage.xml +3 -2
  530. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-ach-house-pressure.xml +3 -2
  531. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-cfm-house-pressure.xml +3 -2
  532. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-cfm50.xml +3 -2
  533. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-flue.xml +3 -2
  534. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-natural-ach.xml +4 -3
  535. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-overhangs.xml +3 -2
  536. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-rooftypes.xml +3 -2
  537. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-skylights-shading.xml +5 -4
  538. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-skylights.xml +5 -4
  539. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-split-level.xml +3 -2
  540. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-split-surfaces.xml +21 -20
  541. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-split-surfaces2.xml +21 -20
  542. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-walltypes.xml +3 -2
  543. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-windows-none.xml +3 -2
  544. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-windows-shading.xml +3 -2
  545. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-ambient.xml +3 -2
  546. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-basement-garage.xml +3 -2
  547. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-complex.xml +3 -2
  548. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-conditioned-basement-slab-insulation.xml +3 -2
  549. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-conditioned-basement-wall-interior-insulation.xml +3 -2
  550. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-multiple.xml +3 -2
  551. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-slab.xml +3 -2
  552. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-unconditioned-basement-above-grade.xml +3 -2
  553. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-unconditioned-basement-assembly-r.xml +3 -2
  554. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-unconditioned-basement-wall-insulation.xml +3 -2
  555. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-unconditioned-basement.xml +3 -2
  556. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-unvented-crawlspace.xml +3 -2
  557. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-vented-crawlspace.xml +3 -2
  558. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-walkout-basement.xml +3 -2
  559. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-1-speed-cooling-only.xml +2 -1
  560. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-1-speed-heating-only.xml +4 -3
  561. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-1-speed.xml +5 -4
  562. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-2-speed.xml +5 -4
  563. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-var-speed.xml +5 -4
  564. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-1-speed-cooling-only.xml +1 -0
  565. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-1-speed-heating-only.xml +1 -0
  566. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-1-speed-manual-s-oversize-allowances.xml +1 -0
  567. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-1-speed.xml +1 -0
  568. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-2-speed-manual-s-oversize-allowances.xml +1 -0
  569. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-2-speed.xml +1 -0
  570. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-var-speed-manual-s-oversize-allowances.xml +1 -0
  571. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-var-speed.xml +1 -0
  572. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-boiler-gas-central-ac-1-speed.xml +1 -0
  573. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-central-ac-only-1-speed.xml +1 -0
  574. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-central-ac-only-2-speed.xml +1 -0
  575. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-central-ac-only-var-speed.xml +1 -0
  576. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-central-ac-plus-air-to-air-heat-pump-heating.xml +1 -0
  577. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-dual-fuel-air-to-air-heat-pump-1-speed.xml +1 -0
  578. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-dual-fuel-mini-split-heat-pump-ducted.xml +1 -0
  579. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-evap-cooler-furnace-gas.xml +1 -0
  580. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-furnace-elec-only.xml +1 -0
  581. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-furnace-gas-central-ac-2-speed.xml +1 -0
  582. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-furnace-gas-central-ac-var-speed.xml +1 -0
  583. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-furnace-gas-only.xml +1 -0
  584. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-furnace-gas-room-ac.xml +1 -0
  585. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-ground-to-air-heat-pump-cooling-only.xml +1 -0
  586. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-ground-to-air-heat-pump-heating-only.xml +1 -0
  587. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-ground-to-air-heat-pump-manual-s-oversize-allowances.xml +1 -0
  588. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-ground-to-air-heat-pump.xml +1 -0
  589. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-mini-split-air-conditioner-only-ducted.xml +1 -0
  590. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-mini-split-heat-pump-ducted-cooling-only.xml +1 -0
  591. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-mini-split-heat-pump-ducted-heating-only.xml +1 -0
  592. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-mini-split-heat-pump-ducted-manual-s-oversize-allowances.xml +1 -0
  593. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-mini-split-heat-pump-ducted.xml +1 -0
  594. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize.xml +1 -0
  595. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-coal-only.xml +1 -1
  596. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-elec-only.xml +1 -1
  597. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-gas-central-ac-1-speed.xml +3 -2
  598. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-gas-only.xml +1 -1
  599. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-oil-only.xml +1 -1
  600. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-propane-only.xml +1 -1
  601. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-wood-only.xml +1 -1
  602. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-central-ac-only-1-speed.xml +2 -1
  603. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-central-ac-only-2-speed.xml +2 -1
  604. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-central-ac-only-var-speed.xml +2 -1
  605. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-central-ac-plus-air-to-air-heat-pump-heating.xml +6 -5
  606. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dse.xml +2 -2
  607. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dual-fuel-air-to-air-heat-pump-1-speed-electric.xml +4 -3
  608. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dual-fuel-air-to-air-heat-pump-1-speed.xml +4 -3
  609. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dual-fuel-air-to-air-heat-pump-2-speed.xml +4 -3
  610. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dual-fuel-air-to-air-heat-pump-var-speed.xml +4 -3
  611. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dual-fuel-mini-split-heat-pump-ducted.xml +4 -3
  612. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ducts-leakage-percent.xml +3 -2
  613. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-elec-resistance-only.xml +1 -1
  614. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-evap-cooler-furnace-gas.xml +3 -2
  615. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-evap-cooler-only-ducted.xml +3 -2
  616. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-evap-cooler-only.xml +1 -1
  617. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-fireplace-wood-only.xml +1 -1
  618. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-fixed-heater-gas-only.xml +1 -52
  619. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-floor-furnace-propane-only.xml +1 -1
  620. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-coal-only.xml +2 -1
  621. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-elec-central-ac-1-speed.xml +3 -2
  622. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-elec-only.xml +2 -1
  623. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-gas-central-ac-2-speed.xml +3 -2
  624. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-gas-central-ac-var-speed.xml +3 -2
  625. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-gas-only.xml +2 -1
  626. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-gas-room-ac.xml +3 -2
  627. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-oil-only.xml +2 -1
  628. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-propane-only.xml +2 -1
  629. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-wood-only.xml +2 -1
  630. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-x3-dse.xml +4 -4
  631. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ground-to-air-heat-pump-cooling-only.xml +2 -1
  632. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ground-to-air-heat-pump-heating-only.xml +3 -2
  633. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ground-to-air-heat-pump.xml +4 -3
  634. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-airflow-defect-furnace-gas-central-ac-1-speed.xml +3 -2
  635. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-all-air-to-air-heat-pump-1-speed.xml +5 -4
  636. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-all-air-to-air-heat-pump-2-speed.xml +5 -4
  637. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-all-air-to-air-heat-pump-var-speed.xml +5 -4
  638. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-all-furnace-gas-central-ac-1-speed.xml +3 -2
  639. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-all-furnace-gas-central-ac-2-speed.xml +3 -2
  640. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-all-furnace-gas-central-ac-var-speed.xml +3 -2
  641. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-all-furnace-gas-only.xml +2 -1
  642. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-all-ground-to-air-heat-pump.xml +4 -3
  643. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-all-mini-split-air-conditioner-only-ducted.xml +2 -1
  644. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-all-mini-split-heat-pump-ducted.xml +5 -4
  645. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-blower-efficiency-furnace-gas-central-ac-1-speed.xml +3 -2
  646. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-charge-defect-furnace-gas-central-ac-1-speed.xml +3 -2
  647. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-none-furnace-gas-central-ac-1-speed.xml +3 -2
  648. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-air-conditioner-only-ducted.xml +2 -1
  649. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-air-conditioner-only-ductless.xml +1 -1
  650. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ducted-cooling-only.xml +2 -1
  651. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ducted-heating-only.xml +4 -3
  652. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ducted.xml +5 -4
  653. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ductless.xml +3 -3
  654. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-multiple.xml +9 -5
  655. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-portable-heater-gas-only.xml +1 -52
  656. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-programmable-thermostat-detailed.xml +6 -5
  657. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-programmable-thermostat.xml +3 -2
  658. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-room-ac-only-33percent.xml +1 -1
  659. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-room-ac-only.xml +1 -1
  660. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-setpoints.xml +3 -2
  661. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-stove-oil-only.xml +1 -1
  662. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-stove-wood-pellets-only.xml +1 -1
  663. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-undersized-allow-increased-fixed-capacities.xml +3 -2
  664. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-undersized.xml +3 -2
  665. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-wall-furnace-elec-only.xml +1 -1
  666. data/example_files/resources/hpxml-measures/workflow/sample_files/base-lighting-ceiling-fans.xml +3 -2
  667. data/example_files/resources/hpxml-measures/workflow/sample_files/base-lighting-detailed.xml +3 -2
  668. data/example_files/resources/hpxml-measures/workflow/sample_files/base-lighting-none.xml +3 -2
  669. data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-AMY-2012.xml +3 -2
  670. data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-baltimore-md.xml +3 -2
  671. data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-dallas-tx.xml +3 -2
  672. data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-duluth-mn.xml +3 -2
  673. data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-helena-mt.xml +3 -2
  674. data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-honolulu-hi.xml +3 -2
  675. data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-miami-fl.xml +3 -2
  676. data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-phoenix-az.xml +3 -2
  677. data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-portland-or.xml +3 -2
  678. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-balanced.xml +3 -2
  679. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-bath-kitchen-fans.xml +3 -2
  680. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-cfis-dse.xml +2 -2
  681. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-cfis-evap-cooler-only-ducted.xml +3 -2
  682. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-cfis.xml +3 -2
  683. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-erv-atre-asre.xml +3 -2
  684. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-erv.xml +3 -2
  685. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-exhaust-rated-flow-rate.xml +3 -2
  686. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-exhaust.xml +3 -2
  687. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-hrv-asre.xml +3 -2
  688. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-hrv.xml +3 -2
  689. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-multiple.xml +30 -28
  690. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-supply.xml +3 -2
  691. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-whole-house-fan.xml +3 -2
  692. data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-defaults.xml +3 -2
  693. data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-generators.xml +4 -3
  694. data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-loads-large-uncommon.xml +3 -2
  695. data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-loads-large-uncommon2.xml +3 -2
  696. data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-loads-none.xml +3 -2
  697. data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-neighbor-shading.xml +3 -2
  698. data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-shielding-of-home.xml +3 -2
  699. data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-usage-multiplier.xml +3 -2
  700. data/example_files/resources/hpxml-measures/workflow/sample_files/base-multiple-buildings.xml +9 -6
  701. data/example_files/resources/hpxml-measures/workflow/sample_files/base-pv.xml +3 -2
  702. data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-stochastic-vacant.xml +3 -2
  703. data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-stochastic.xml +3 -2
  704. data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-user-specified.xml +3 -2
  705. data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-calendar-year-custom.xml +3 -2
  706. data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-daylight-saving-custom.xml +3 -2
  707. data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-daylight-saving-disabled.xml +3 -2
  708. data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-runperiod-1-month.xml +3 -2
  709. data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-timestep-10-mins.xml +3 -2
  710. data/example_files/resources/hpxml-measures/workflow/sample_files/base.xml +3 -2
  711. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/boiler-invalid-afue.xml +1 -1
  712. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/cfis-with-hydronic-distribution.xml +1 -1
  713. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/clothes-dryer-location.xml +3 -2
  714. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/clothes-washer-location.xml +3 -2
  715. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/cooking-range-location.xml +3 -2
  716. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/dehumidifier-fraction-served.xml +3 -2
  717. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/dehumidifier-setpoints.xml +3 -2
  718. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/dhw-frac-load-served.xml +1 -1
  719. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/dhw-invalid-ef-tank.xml +3 -2
  720. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/dhw-invalid-uef-tank-heat-pump.xml +3 -2
  721. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/dishwasher-location.xml +3 -2
  722. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/duct-leakage-cfm25.xml +3 -2
  723. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/duct-leakage-percent.xml +3 -2
  724. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/duct-location-unconditioned-space.xml +3 -2
  725. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/duct-location.xml +3 -2
  726. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/duplicate-id.xml +3 -2
  727. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-attic-missing-roof.xml +3 -2
  728. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-basement-missing-exterior-foundation-wall.xml +3 -2
  729. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-basement-missing-slab.xml +3 -2
  730. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-floor-area-exceeds-cfa.xml +4 -3
  731. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-floor-area-exceeds-cfa2.xml +4 -3
  732. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-garage-missing-exterior-wall.xml +3 -2
  733. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-garage-missing-roof-ceiling.xml +3 -2
  734. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-garage-missing-slab.xml +3 -2
  735. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-living-missing-ceiling-roof.xml +3 -2
  736. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-living-missing-exterior-wall.xml +3 -2
  737. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-living-missing-floor-slab.xml +3 -2
  738. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/frac-sensible-fuel-load.xml +3 -2
  739. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/frac-sensible-plug-load.xml +3 -2
  740. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/frac-total-fuel-load.xml +3 -2
  741. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/frac-total-plug-load.xml +3 -2
  742. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/furnace-invalid-afue.xml +3 -2
  743. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/generator-number-of-bedrooms-served.xml +3 -2
  744. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/generator-output-greater-than-consumption.xml +4 -3
  745. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/heat-pump-mixed-fixed-and-autosize-capacities.xml +2 -1
  746. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/hvac-distribution-multiple-attached-cooling.xml +9 -5
  747. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/hvac-distribution-multiple-attached-heating.xml +9 -5
  748. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/hvac-distribution-return-duct-leakage-missing.xml +3 -2
  749. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/hvac-dse-multiple-attached-cooling.xml +3 -3
  750. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/hvac-dse-multiple-attached-heating.xml +3 -3
  751. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/hvac-frac-load-served.xml +9 -5
  752. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/hvac-inconsistent-fan-powers.xml +3 -2
  753. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/hvac-invalid-distribution-system-type.xml +3 -2
  754. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/hvac-shared-negative-seer-eq.xml +407 -0
  755. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-assembly-effective-rvalue.xml +3 -2
  756. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-datatype-boolean.xml +3 -2
  757. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-datatype-float.xml +3 -2
  758. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-datatype-integer.xml +3 -2
  759. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-daylight-saving.xml +3 -2
  760. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-distribution-cfa-served.xml +3 -2
  761. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-epw-filepath.xml +3 -2
  762. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-facility-type-equipment.xml +3 -2
  763. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-facility-type-surfaces.xml +3 -2
  764. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-foundation-wall-properties.xml +3 -2
  765. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-id.xml +5 -4
  766. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-id2.xml +5 -4
  767. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-infiltration-volume.xml +3 -2
  768. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-input-parameters.xml +3 -2
  769. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-neighbor-shading-azimuth.xml +3 -2
  770. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-number-of-bedrooms-served.xml +3 -2
  771. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-number-of-conditioned-floors.xml +3 -2
  772. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-number-of-units-served.xml +3 -2
  773. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-relatedhvac-desuperheater.xml +2 -1
  774. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-relatedhvac-dhw-indirect.xml +1 -1
  775. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-runperiod.xml +3 -2
  776. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-schema-version.xml +3 -2
  777. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-shared-vent-in-unit-flowrate.xml +3 -2
  778. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-timestep.xml +3 -2
  779. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-window-height.xml +3 -2
  780. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/lighting-fractions.xml +3 -2
  781. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/missing-duct-location.xml +9 -5
  782. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/missing-elements.xml +3 -2
  783. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/multifamily-reference-appliance.xml +3 -2
  784. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/multifamily-reference-duct.xml +3 -2
  785. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/multifamily-reference-surface.xml +3 -2
  786. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/multifamily-reference-water-heater.xml +3 -2
  787. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/multiple-buildings-without-building-id.xml +9 -6
  788. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/multiple-buildings-wrong-building-id.xml +9 -6
  789. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/net-area-negative-roof.xml +4 -3
  790. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/net-area-negative-wall.xml +3 -2
  791. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/num-bedrooms-exceeds-limit.xml +3 -2
  792. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/orphaned-hvac-distribution.xml +2 -1
  793. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/refrigerator-location.xml +3 -2
  794. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/refrigerators-multiple-primary.xml +3 -2
  795. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/refrigerators-no-primary.xml +3 -2
  796. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/repeated-relatedhvac-desuperheater.xml +2 -1
  797. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/repeated-relatedhvac-dhw-indirect.xml +1 -1
  798. data/example_files/resources/hpxml-measures/workflow/sample_files/{base-appliances-dehumidifier-50percent.xml → invalid_files/solar-fraction-one.xml} +570 -524
  799. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/solar-thermal-system-with-combi-tankless.xml +1 -1
  800. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/solar-thermal-system-with-desuperheater.xml +2 -1
  801. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/solar-thermal-system-with-dhw-indirect.xml +1 -1
  802. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/unattached-cfis.xml +3 -2
  803. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/unattached-door.xml +3 -2
  804. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/unattached-hvac-distribution.xml +3 -2
  805. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/unattached-shared-clothes-washer-water-heater.xml +3 -2
  806. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/unattached-shared-dishwasher-water-heater.xml +3 -2
  807. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/unattached-skylight.xml +5 -4
  808. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/unattached-solar-thermal-system.xml +3 -2
  809. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/unattached-window.xml +3 -2
  810. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/water-heater-location-other.xml +3 -2
  811. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/water-heater-location.xml +3 -2
  812. data/example_files/resources/hpxml-measures/workflow/template.osw +1 -0
  813. data/example_files/resources/hpxml-measures/workflow/tests/base_results/results.csv +294 -0
  814. data/example_files/resources/hpxml-measures/workflow/tests/base_results/results_ashrae_140.csv +27 -0
  815. data/example_files/resources/hpxml-measures/workflow/tests/base_results/results_hvac_sizing.csv +294 -0
  816. data/example_files/resources/hpxml-measures/workflow/tests/compare.rb +130 -0
  817. data/example_files/resources/hpxml-measures/workflow/tests/hpxml_translator_test.rb +108 -38
  818. data/example_files/visualization/input_visualization_feature.html +15 -16
  819. data/example_files/visualization/input_visualization_scenario.html +16 -11
  820. data/lib/uo_cli/version.rb +1 -1
  821. data/lib/uo_cli.rb +158 -26
  822. data/scripts/setup-env-gitbash.sh +4 -4
  823. data/scripts/setup-env-unix.sh +4 -4
  824. data/scripts/setup-env.bat +3 -3
  825. data/scripts/setup-env.ps1 +3 -3
  826. data/uo_cli.gemspec +10 -7
  827. metadata +80 -24
  828. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_config.yml +0 -74
  829. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-multiple2.xml +0 -838
@@ -16,8 +16,7 @@ def create_osws
16
16
  'base-appliances-dehumidifier.osw' => 'base-location-dallas-tx.osw',
17
17
  'base-appliances-dehumidifier-ief-portable.osw' => 'base-appliances-dehumidifier.osw',
18
18
  'base-appliances-dehumidifier-ief-whole-home.osw' => 'base-appliances-dehumidifier-ief-portable.osw',
19
- 'base-appliances-dehumidifier-50percent.osw' => 'base-appliances-dehumidifier.osw',
20
- # 'base-appliances-dehumidifier-multiple.osw' => 'base-appliances-dehumidifier-50percent.osw',
19
+ # 'base-appliances-dehumidifier-multiple.osw' => 'base-appliances-dehumidifier.osw',
21
20
  'base-appliances-gas.osw' => 'base.osw',
22
21
  'base-appliances-modified.osw' => 'base.osw',
23
22
  'base-appliances-none.osw' => 'base.osw',
@@ -42,8 +41,8 @@ def create_osws
42
41
  # 'base-bldgtype-multifamily-shared-boiler-chiller-fan-coil-ducted.osw' => 'base-bldgtype-multifamily-shared-boiler-chiller-fan-coil.osw',
43
42
  # 'base-bldgtype-multifamily-shared-boiler-chiller-water-loop-heat-pump.osw' => 'base-bldgtype-multifamily-shared-boiler-chiller-baseboard.osw',
44
43
  # 'base-bldgtype-multifamily-shared-boiler-cooling-tower-water-loop-heat-pump.osw' => 'base-bldgtype-multifamily-shared-boiler-chiller-water-loop-heat-pump.osw',
45
- # 'base-bldgtype-multifamily-shared-boiler-only-baseboard.osw' => 'base-bldgtype-multifamily.osw',
46
- # 'base-bldgtype-multifamily-shared-boiler-only-fan-coil.osw' => 'base-bldgtype-multifamily-shared-boiler-only-baseboard.osw',
44
+ 'base-bldgtype-multifamily-shared-boiler-only-baseboard.osw' => 'base-bldgtype-multifamily.osw',
45
+ 'base-bldgtype-multifamily-shared-boiler-only-fan-coil.osw' => 'base-bldgtype-multifamily-shared-boiler-only-baseboard.osw',
47
46
  # 'base-bldgtype-multifamily-shared-boiler-only-fan-coil-ducted.osw' => 'base-bldgtype-multifamily-shared-boiler-only-fan-coil.osw',
48
47
  # 'base-bldgtype-multifamily-shared-boiler-only-fan-coil-eae.osw' => 'base-bldgtype-multifamily-shared-boiler-only-fan-coil.osw',
49
48
  # 'base-bldgtype-multifamily-shared-boiler-only-water-loop-heat-pump.osw' => 'base-bldgtype-multifamily-shared-boiler-only-baseboard.osw',
@@ -214,7 +213,6 @@ def create_osws
214
213
  'base-hvac-mini-split-heat-pump-ducted-heating-only.osw' => 'base-hvac-mini-split-heat-pump-ducted.osw',
215
214
  'base-hvac-mini-split-heat-pump-ductless.osw' => 'base-hvac-mini-split-heat-pump-ducted.osw',
216
215
  # 'base-hvac-multiple.osw' => 'base.osw', # Not supporting multiple heating/cooling systems for now
217
- # 'base-hvac-multiple2.osw' => 'base.osw', # Not supporting multiple heating/cooling systems for now
218
216
  'base-hvac-none.osw' => 'base.osw',
219
217
  'base-hvac-portable-heater-gas-only.osw' => 'base.osw',
220
218
  # 'base-hvac-programmable-thermostat.osw' => 'base.osw',
@@ -294,6 +292,9 @@ def create_osws
294
292
  'extra-zero-freezer-kwh.osw' => 'base.osw',
295
293
  'extra-zero-clothes-washer-kwh.osw' => 'base.osw',
296
294
  'extra-zero-dishwasher-kwh.osw' => 'base.osw',
295
+ 'extra-bldgtype-single-family-attached-atticroof-flat.osw' => 'base-bldgtype-single-family-attached.osw',
296
+ 'extra-gas-pool-heater-with-zero-kwh.osw' => 'base.osw',
297
+ 'extra-gas-hot-tub-heater-with-zero-kwh.osw' => 'base.osw',
297
298
 
298
299
  'extra-bldgtype-single-family-attached-atticroof-conditioned-eaves-gable.osw' => 'extra-bldgtype-single-family-attached-slab.osw',
299
300
  'extra-bldgtype-single-family-attached-atticroof-conditioned-eaves-hip.osw' => 'extra-bldgtype-single-family-attached-atticroof-conditioned-eaves-gable.osw',
@@ -416,7 +417,8 @@ def create_osws
416
417
  'invalid_files/multipliers-without-fuel-loads.osw' => 'base.osw',
417
418
  'invalid_files/foundation-wall-insulation-greater-than-height.osw' => 'base-foundation-vented-crawlspace.osw',
418
419
  'invalid_files/conditioned-attic-with-one-floor-above-grade.osw' => 'base.osw',
419
- 'invalid_files/zero-number-of-bedrooms.osw' => 'base.osw'
420
+ 'invalid_files/zero-number-of-bedrooms.osw' => 'base.osw',
421
+ 'invalid_files/single-family-detached-with-shared-system.osw' => 'base.osw'
420
422
  }
421
423
 
422
424
  puts "Generating #{osws_files.size} OSW files..."
@@ -592,14 +594,14 @@ def get_values(osw_file, step)
592
594
  step.setArgument('heating_system_type', HPXML::HVACTypeFurnace)
593
595
  step.setArgument('heating_system_fuel', HPXML::FuelTypeNaturalGas)
594
596
  step.setArgument('heating_system_heating_efficiency', 0.92)
595
- step.setArgument('heating_system_heating_capacity', '64000.0')
597
+ step.setArgument('heating_system_heating_capacity', '36000.0')
596
598
  step.setArgument('heating_system_fraction_heat_load_served', 1)
597
599
  step.setArgument('cooling_system_type', HPXML::HVACTypeCentralAirConditioner)
598
600
  step.setArgument('cooling_system_cooling_efficiency_type', HPXML::UnitsSEER)
599
601
  step.setArgument('cooling_system_cooling_efficiency', 13.0)
600
602
  step.setArgument('cooling_system_cooling_compressor_type', HPXML::HVACCompressorTypeSingleStage)
601
603
  step.setArgument('cooling_system_cooling_sensible_heat_fraction', 0.73)
602
- step.setArgument('cooling_system_cooling_capacity', '48000.0')
604
+ step.setArgument('cooling_system_cooling_capacity', '24000.0')
603
605
  step.setArgument('cooling_system_fraction_cool_load_served', 1)
604
606
  step.setArgument('cooling_system_is_ducted', false)
605
607
  step.setArgument('heat_pump_type', 'none')
@@ -609,14 +611,14 @@ def get_values(osw_file, step)
609
611
  step.setArgument('heat_pump_cooling_efficiency', 13.0)
610
612
  step.setArgument('heat_pump_cooling_compressor_type', HPXML::HVACCompressorTypeSingleStage)
611
613
  step.setArgument('heat_pump_cooling_sensible_heat_fraction', 0.73)
612
- step.setArgument('heat_pump_heating_capacity', '64000.0')
614
+ step.setArgument('heat_pump_heating_capacity', '36000.0')
613
615
  step.setArgument('heat_pump_heating_capacity_17_f', Constants.Auto)
614
- step.setArgument('heat_pump_cooling_capacity', '48000.0')
616
+ step.setArgument('heat_pump_cooling_capacity', '36000.0')
615
617
  step.setArgument('heat_pump_fraction_heat_load_served', 1)
616
618
  step.setArgument('heat_pump_fraction_cool_load_served', 1)
617
619
  step.setArgument('heat_pump_backup_fuel', 'none')
618
620
  step.setArgument('heat_pump_backup_heating_efficiency', 1)
619
- step.setArgument('heat_pump_backup_heating_capacity', '34121.0')
621
+ step.setArgument('heat_pump_backup_heating_capacity', '36000.0')
620
622
  step.setArgument('setpoint_heating_weekday', '68')
621
623
  step.setArgument('setpoint_heating_weekend', '68')
622
624
  step.setArgument('setpoint_cooling_weekday', '78')
@@ -816,15 +818,17 @@ def get_values(osw_file, step)
816
818
  step.setArgument('hot_tub_heater_annual_kwh', Constants.Auto)
817
819
  step.setArgument('hot_tub_heater_annual_therm', Constants.Auto)
818
820
  step.setArgument('hot_tub_heater_usage_multiplier', 1.0)
819
- elsif ['base-appliances-coal.osw'].include? osw_file
821
+ end
822
+
823
+ # Appliances
824
+ if ['base-appliances-coal.osw'].include? osw_file
820
825
  step.setArgument('clothes_dryer_fuel_type', HPXML::FuelTypeCoal)
821
826
  step.setArgument('clothes_dryer_efficiency', '3.3')
822
827
  step.setArgument('clothes_dryer_vented_flow_rate', Constants.Auto)
823
828
  step.setArgument('cooking_range_oven_fuel_type', HPXML::FuelTypeCoal)
824
829
  elsif ['base-appliances-dehumidifier.osw'].include? osw_file
830
+ step.setArgument('heating_system_heating_capacity', '24000.0')
825
831
  step.setArgument('dehumidifier_type', HPXML::DehumidifierTypePortable)
826
- elsif ['base-appliances-dehumidifier-50percent.osw'].include? osw_file
827
- step.setArgument('dehumidifier_fraction_dehumidification_load_served', 0.5)
828
832
  elsif ['base-appliances-dehumidifier-ief-portable.osw'].include? osw_file
829
833
  step.setArgument('dehumidifier_efficiency_type', 'IntegratedEnergyFactor')
830
834
  step.setArgument('dehumidifier_efficiency', '1.5')
@@ -897,6 +901,7 @@ def get_values(osw_file, step)
897
901
  step.setArgument('window_area_back', 0)
898
902
  step.setArgument('window_area_left', 0)
899
903
  step.setArgument('window_area_right', 0)
904
+ step.setArgument('heating_system_heating_capacity', '24000.0')
900
905
  step.setArgument('plug_loads_other_annual_kwh', '1638.0')
901
906
  elsif ['base-bldgtype-multifamily.osw'].include? osw_file
902
907
  step.setArgument('geometry_unit_type', HPXML::ResidentialTypeApartment)
@@ -905,9 +910,9 @@ def get_values(osw_file, step)
905
910
  step.setArgument('geometry_foundation_type', HPXML::FoundationTypeBasementUnconditioned)
906
911
  step.setArgument('geometry_level', 'Middle')
907
912
  step.setArgument('geometry_horizontal_location', 'Left')
908
- step.setArgument('geometry_building_num_units', 50)
909
- step.setArgument('geometry_building_num_bedrooms', 50 * 3)
910
- step.setArgument('geometry_num_floors_above_grade', 5)
913
+ step.setArgument('geometry_building_num_units', 6)
914
+ step.setArgument('geometry_building_num_bedrooms', 6 * 3)
915
+ step.setArgument('geometry_num_floors_above_grade', 3)
911
916
  step.setArgument('window_front_wwr', 0.18)
912
917
  step.setArgument('window_back_wwr', 0.18)
913
918
  step.setArgument('window_left_wwr', 0.18)
@@ -916,6 +921,8 @@ def get_values(osw_file, step)
916
921
  step.setArgument('window_area_back', 0)
917
922
  step.setArgument('window_area_left', 0)
918
923
  step.setArgument('window_area_right', 0)
924
+ step.setArgument('heating_system_heating_capacity', '12000.0')
925
+ step.setArgument('cooling_system_cooling_capacity', '12000.0')
919
926
  step.setArgument('ducts_supply_leakage_value', 0.0)
920
927
  step.setArgument('ducts_return_leakage_value', 0.0)
921
928
  step.setArgument('ducts_supply_location', HPXML::LocationLivingSpace)
@@ -925,6 +932,12 @@ def get_values(osw_file, step)
925
932
  step.setArgument('ducts_number_of_return_registers', '1')
926
933
  step.setArgument('door_area', 20.0)
927
934
  step.setArgument('plug_loads_other_annual_kwh', '819.0')
935
+ elsif ['base-bldgtype-multifamily-shared-boiler-only-baseboard.osw'].include? osw_file
936
+ step.setArgument('heating_system_type', "Shared #{HPXML::HVACTypeBoiler} w/ Baseboard")
937
+ step.setArgument('cooling_system_type', 'none')
938
+ elsif ['base-bldgtype-multifamily-shared-boiler-only-fan-coil.osw'].include? osw_file
939
+ step.setArgument('heating_system_type', "Shared #{HPXML::HVACTypeBoiler} w/ Ductless Fan Coil")
940
+ step.setArgument('cooling_system_type', 'none')
928
941
  elsif ['base-bldgtype-multifamily-shared-mechvent.osw'].include? osw_file
929
942
  step.setArgument('mech_vent_fan_type', HPXML::MechVentTypeSupply)
930
943
  step.setArgument('mech_vent_flow_rate', 800)
@@ -957,7 +970,10 @@ def get_values(osw_file, step)
957
970
  step.setArgument('water_heater_tank_volume', '120')
958
971
  step.setArgument('water_heater_efficiency', 0.59)
959
972
  step.setArgument('water_heater_recovery_efficiency', '0.76')
960
- elsif ['base-dhw-combi-tankless.osw'].include? osw_file
973
+ end
974
+
975
+ # DHW
976
+ if ['base-dhw-combi-tankless.osw'].include? osw_file
961
977
  step.setArgument('water_heater_type', HPXML::WaterHeaterTypeCombiTankless)
962
978
  step.setArgument('water_heater_tank_volume', Constants.Auto)
963
979
  elsif ['base-dhw-combi-tankless-outside.osw'].include? osw_file
@@ -1141,13 +1157,18 @@ def get_values(osw_file, step)
1141
1157
  step.setArgument('water_heater_fuel_type', HPXML::FuelTypeWoodCord)
1142
1158
  step.setArgument('water_heater_tank_volume', '50')
1143
1159
  step.setArgument('water_heater_efficiency', 0.59)
1144
- elsif ['base-enclosure-2stories.osw'].include? osw_file
1160
+ end
1161
+
1162
+ # Enclosure
1163
+ if ['base-enclosure-2stories.osw'].include? osw_file
1145
1164
  step.setArgument('geometry_cfa', 4050.0)
1146
1165
  step.setArgument('geometry_num_floors_above_grade', 2)
1147
1166
  step.setArgument('window_area_front', 216.0)
1148
1167
  step.setArgument('window_area_back', 216.0)
1149
1168
  step.setArgument('window_area_left', 144.0)
1150
1169
  step.setArgument('window_area_right', 144.0)
1170
+ step.setArgument('heating_system_heating_capacity', '48000.0')
1171
+ step.setArgument('cooling_system_cooling_capacity', '36000.0')
1151
1172
  step.setArgument('ducts_number_of_return_registers', '3')
1152
1173
  step.setArgument('plug_loads_other_annual_kwh', '3685.5')
1153
1174
  elsif ['base-enclosure-2stories-garage.osw'].include? osw_file
@@ -1200,7 +1221,7 @@ def get_values(osw_file, step)
1200
1221
  step.setArgument('geometry_has_flue_or_chimney', 'true')
1201
1222
  elsif ['base-enclosure-infil-natural-ach.osw'].include? osw_file
1202
1223
  step.setArgument('air_leakage_units', HPXML::UnitsACHNatural)
1203
- step.setArgument('air_leakage_value', 0.67)
1224
+ step.setArgument('air_leakage_value', 0.2)
1204
1225
  elsif ['base-enclosure-other-heated-space.osw'].include? osw_file
1205
1226
  step.setArgument('geometry_unit_type', HPXML::ResidentialTypeApartment)
1206
1227
  step.setArgument('ducts_supply_location', HPXML::LocationOtherHeatedSpace)
@@ -1253,7 +1274,10 @@ def get_values(osw_file, step)
1253
1274
  step.setArgument('window_area_back', 0)
1254
1275
  step.setArgument('window_area_left', 0)
1255
1276
  step.setArgument('window_area_right', 0)
1256
- elsif ['base-foundation-ambient.osw'].include? osw_file
1277
+ end
1278
+
1279
+ # Foundation
1280
+ if ['base-foundation-ambient.osw'].include? osw_file
1257
1281
  step.setArgument('geometry_cfa', 1350.0)
1258
1282
  step.setArgument('geometry_foundation_type', HPXML::FoundationTypeAmbient)
1259
1283
  step.setArgument('geometry_rim_joist_height', 0)
@@ -1345,12 +1369,14 @@ def get_values(osw_file, step)
1345
1369
  elsif ['base-foundation-walkout-basement.osw'].include? osw_file
1346
1370
  step.setArgument('geometry_foundation_height_above_grade', 5.0)
1347
1371
  step.setArgument('foundation_wall_insulation_distance_to_bottom', 4.0)
1348
- elsif ['base-hvac-air-to-air-heat-pump-1-speed.osw'].include? osw_file
1372
+ end
1373
+
1374
+ # HVAC
1375
+ if ['base-hvac-air-to-air-heat-pump-1-speed.osw'].include? osw_file
1349
1376
  step.setArgument('heating_system_type', 'none')
1350
1377
  step.setArgument('cooling_system_type', 'none')
1351
1378
  step.setArgument('heat_pump_type', HPXML::HVACTypeHeatPumpAirToAir)
1352
- step.setArgument('heat_pump_heating_capacity', '42000.0')
1353
- step.setArgument('heat_pump_heating_capacity_17_f', '26460.0')
1379
+ step.setArgument('heat_pump_heating_capacity_17_f', '22680.0')
1354
1380
  step.setArgument('heat_pump_backup_fuel', HPXML::FuelTypeElectricity)
1355
1381
  elsif ['base-hvac-air-to-air-heat-pump-1-speed-cooling-only.osw'].include? osw_file
1356
1382
  step.setArgument('heat_pump_heating_capacity', '0.0')
@@ -1366,8 +1392,7 @@ def get_values(osw_file, step)
1366
1392
  step.setArgument('heat_pump_type', HPXML::HVACTypeHeatPumpAirToAir)
1367
1393
  step.setArgument('heat_pump_heating_efficiency', 9.3)
1368
1394
  step.setArgument('heat_pump_cooling_compressor_type', HPXML::HVACCompressorTypeTwoStage)
1369
- step.setArgument('heat_pump_heating_capacity', '42000.0')
1370
- step.setArgument('heat_pump_heating_capacity_17_f', '24780.0')
1395
+ step.setArgument('heat_pump_heating_capacity_17_f', '21240.0')
1371
1396
  step.setArgument('heat_pump_cooling_efficiency', 18.0)
1372
1397
  step.setArgument('heat_pump_backup_fuel', HPXML::FuelTypeElectricity)
1373
1398
  elsif ['base-hvac-air-to-air-heat-pump-var-speed.osw'].include? osw_file
@@ -1377,8 +1402,7 @@ def get_values(osw_file, step)
1377
1402
  step.setArgument('heat_pump_heating_efficiency', 10.0)
1378
1403
  step.setArgument('heat_pump_cooling_compressor_type', HPXML::HVACCompressorTypeVariableSpeed)
1379
1404
  step.setArgument('heat_pump_cooling_sensible_heat_fraction', 0.78)
1380
- step.setArgument('heat_pump_heating_capacity', '42000.0')
1381
- step.setArgument('heat_pump_heating_capacity_17_f', '26880.0')
1405
+ step.setArgument('heat_pump_heating_capacity_17_f', '23040.0')
1382
1406
  step.setArgument('heat_pump_cooling_efficiency', 22.0)
1383
1407
  step.setArgument('heat_pump_backup_fuel', HPXML::FuelTypeElectricity)
1384
1408
  elsif ['base-hvac-boiler-coal-only.osw'].include? osw_file
@@ -1421,18 +1445,15 @@ def get_values(osw_file, step)
1421
1445
  elsif ['base-hvac-central-ac-plus-air-to-air-heat-pump-heating.osw'].include? osw_file
1422
1446
  step.setArgument('heat_pump_type', HPXML::HVACTypeHeatPumpAirToAir)
1423
1447
  step.setArgument('heat_pump_heating_efficiency', 7.7)
1424
- step.setArgument('heat_pump_heating_capacity', '42000.0')
1425
- step.setArgument('heat_pump_heating_capacity_17_f', '26460.0')
1448
+ step.setArgument('heat_pump_heating_capacity_17_f', '22680.0')
1426
1449
  step.setArgument('heat_pump_fraction_cool_load_served', 0)
1427
1450
  step.setArgument('heat_pump_backup_fuel', HPXML::FuelTypeElectricity)
1428
1451
  elsif ['base-hvac-dual-fuel-air-to-air-heat-pump-1-speed.osw'].include? osw_file
1429
1452
  step.setArgument('cooling_system_type', 'none')
1430
1453
  step.setArgument('heat_pump_heating_efficiency', 7.7)
1431
- step.setArgument('heat_pump_heating_capacity', '42000.0')
1432
- step.setArgument('heat_pump_heating_capacity_17_f', '26460.0')
1454
+ step.setArgument('heat_pump_heating_capacity_17_f', '22680.0')
1433
1455
  step.setArgument('heat_pump_backup_fuel', HPXML::FuelTypeNaturalGas)
1434
1456
  step.setArgument('heat_pump_backup_heating_efficiency', 0.95)
1435
- step.setArgument('heat_pump_backup_heating_capacity', '36000.0')
1436
1457
  step.setArgument('heat_pump_backup_heating_switchover_temp', 25)
1437
1458
  elsif ['base-hvac-dual-fuel-air-to-air-heat-pump-1-speed-electric.osw'].include? osw_file
1438
1459
  step.setArgument('heat_pump_backup_fuel', HPXML::FuelTypeElectricity)
@@ -1440,17 +1461,16 @@ def get_values(osw_file, step)
1440
1461
  elsif ['base-hvac-dual-fuel-air-to-air-heat-pump-2-speed.osw'].include? osw_file
1441
1462
  step.setArgument('heat_pump_backup_fuel', HPXML::FuelTypeNaturalGas)
1442
1463
  step.setArgument('heat_pump_backup_heating_efficiency', 0.95)
1443
- step.setArgument('heat_pump_backup_heating_capacity', '36000.0')
1444
1464
  step.setArgument('heat_pump_backup_heating_switchover_temp', 25)
1445
1465
  elsif ['base-hvac-dual-fuel-air-to-air-heat-pump-var-speed.osw'].include? osw_file
1446
1466
  step.setArgument('heat_pump_backup_fuel', HPXML::FuelTypeNaturalGas)
1447
1467
  step.setArgument('heat_pump_backup_heating_efficiency', 0.95)
1448
- step.setArgument('heat_pump_backup_heating_capacity', '36000.0')
1449
1468
  step.setArgument('heat_pump_backup_heating_switchover_temp', 25)
1450
1469
  elsif ['base-hvac-dual-fuel-mini-split-heat-pump-ducted.osw'].include? osw_file
1470
+ step.setArgument('heat_pump_heating_capacity', '36000.0')
1471
+ step.setArgument('heat_pump_heating_capacity_17_f', '20423.0')
1451
1472
  step.setArgument('heat_pump_backup_fuel', HPXML::FuelTypeNaturalGas)
1452
1473
  step.setArgument('heat_pump_backup_heating_efficiency', 0.95)
1453
- step.setArgument('heat_pump_backup_heating_capacity', '36000.0')
1454
1474
  step.setArgument('heat_pump_backup_heating_switchover_temp', 25)
1455
1475
  elsif ['base-hvac-ducts-leakage-percent.osw'].include? osw_file
1456
1476
  step.setArgument('ducts_supply_leakage_units', HPXML::UnitsPercent)
@@ -1486,6 +1506,7 @@ def get_values(osw_file, step)
1486
1506
  elsif ['base-hvac-fixed-heater-gas-only.osw'].include? osw_file
1487
1507
  step.setArgument('heating_system_type', HPXML::HVACTypeFixedHeater)
1488
1508
  step.setArgument('heating_system_heating_efficiency', 1.0)
1509
+ step.setArgument('cooling_system_type', 'none')
1489
1510
  elsif ['base-hvac-floor-furnace-propane-only.osw'].include? osw_file
1490
1511
  step.setArgument('heating_system_type', HPXML::HVACTypeFloorFurnace)
1491
1512
  step.setArgument('heating_system_fuel', HPXML::FuelTypePropane)
@@ -1547,7 +1568,6 @@ def get_values(osw_file, step)
1547
1568
  step.setArgument('heat_pump_cooling_efficiency_type', HPXML::UnitsEER)
1548
1569
  step.setArgument('heat_pump_cooling_efficiency', 16.6)
1549
1570
  step.removeArgument('heat_pump_cooling_compressor_type')
1550
- step.setArgument('heat_pump_heating_capacity', '42000.0')
1551
1571
  step.setArgument('heat_pump_backup_fuel', HPXML::FuelTypeElectricity)
1552
1572
  elsif ['base-hvac-ground-to-air-heat-pump-cooling-only.osw'].include? osw_file
1553
1573
  step.setArgument('heat_pump_heating_capacity', '0.0')
@@ -1601,8 +1621,7 @@ def get_values(osw_file, step)
1601
1621
  step.setArgument('heating_system_type', 'none')
1602
1622
  step.setArgument('cooling_system_type', 'none')
1603
1623
  step.setArgument('heat_pump_type', HPXML::HVACTypeHeatPumpMiniSplit)
1604
- step.setArgument('heat_pump_heating_capacity', '52000.0')
1605
- step.setArgument('heat_pump_heating_capacity_17_f', '29500.0')
1624
+ step.setArgument('heat_pump_heating_capacity_17_f', '20423.0')
1606
1625
  step.setArgument('heat_pump_heating_efficiency', 10.0)
1607
1626
  step.setArgument('heat_pump_cooling_efficiency', 19.0)
1608
1627
  step.removeArgument('heat_pump_cooling_compressor_type')
@@ -1631,10 +1650,11 @@ def get_values(osw_file, step)
1631
1650
  elsif ['base-hvac-portable-heater-gas-only.osw'].include? osw_file
1632
1651
  step.setArgument('heating_system_type', HPXML::HVACTypePortableHeater)
1633
1652
  step.setArgument('heating_system_heating_efficiency', 1.0)
1653
+ step.setArgument('cooling_system_type', 'none')
1634
1654
  elsif ['base-hvac-programmable-thermostat-detailed.osw'].include? osw_file
1635
- step.setArgument('setpoint_heating_weekday', '64, 64, 64, 64, 64, 64, 64, 74, 74, 66, 66, 66, 66, 66, 66, 66, 66, 68, 68, 68, 68, 68, 64, 64')
1636
- step.setArgument('setpoint_heating_weekend', '74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74')
1637
- step.setArgument('setpoint_cooling_weekday', '82, 82, 82, 82, 82, 82, 82, 72, 72, 80, 80, 80, 80, 80, 80, 80, 80, 78, 78, 78, 78, 78, 82, 82')
1655
+ step.setArgument('setpoint_heating_weekday', '64, 64, 64, 64, 64, 64, 64, 70, 70, 66, 66, 66, 66, 66, 66, 66, 66, 68, 68, 68, 68, 68, 64, 64')
1656
+ step.setArgument('setpoint_heating_weekend', '68, 68, 68, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70')
1657
+ step.setArgument('setpoint_cooling_weekday', '80, 80, 80, 80, 80, 80, 80, 75, 75, 80, 80, 80, 80, 80, 80, 80, 80, 78, 78, 78, 78, 78, 80, 80')
1638
1658
  step.setArgument('setpoint_cooling_weekend', '78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78')
1639
1659
  elsif ['base-hvac-room-ac-only.osw'].include? osw_file
1640
1660
  step.setArgument('heating_system_type', 'none')
@@ -1651,6 +1671,7 @@ def get_values(osw_file, step)
1651
1671
  step.removeArgument('cooling_system_cooling_compressor_type')
1652
1672
  step.setArgument('cooling_system_cooling_sensible_heat_fraction', 0.65)
1653
1673
  step.setArgument('cooling_system_fraction_cool_load_served', 0.33)
1674
+ step.setArgument('cooling_system_cooling_capacity', '8000.0')
1654
1675
  elsif ['base-hvac-setpoints.osw'].include? osw_file
1655
1676
  step.setArgument('setpoint_heating_weekday', '60')
1656
1677
  step.setArgument('setpoint_heating_weekend', '60')
@@ -1667,8 +1688,8 @@ def get_values(osw_file, step)
1667
1688
  step.setArgument('heating_system_heating_efficiency', 0.8)
1668
1689
  step.setArgument('cooling_system_type', 'none')
1669
1690
  elsif ['base-hvac-undersized.osw'].include? osw_file
1670
- step.setArgument('heating_system_heating_capacity', '6400.0')
1671
- step.setArgument('cooling_system_cooling_capacity', '4800.0')
1691
+ step.setArgument('heating_system_heating_capacity', '3600.0')
1692
+ step.setArgument('cooling_system_cooling_capacity', '2400.0')
1672
1693
  step.setArgument('ducts_supply_leakage_value', 7.5)
1673
1694
  step.setArgument('ducts_return_leakage_value', 2.5)
1674
1695
  elsif ['base-hvac-wall-furnace-elec-only.osw'].include? osw_file
@@ -1676,7 +1697,10 @@ def get_values(osw_file, step)
1676
1697
  step.setArgument('heating_system_fuel', HPXML::FuelTypeElectricity)
1677
1698
  step.setArgument('heating_system_heating_efficiency', 1.0)
1678
1699
  step.setArgument('cooling_system_type', 'none')
1679
- elsif ['base-lighting-ceiling-fans.osw'].include? osw_file
1700
+ end
1701
+
1702
+ # Lighting
1703
+ if ['base-lighting-ceiling-fans.osw'].include? osw_file
1680
1704
  step.setArgument('ceiling_fan_present', true)
1681
1705
  step.setArgument('ceiling_fan_efficiency', '100.0')
1682
1706
  step.setArgument('ceiling_fan_quantity', '4')
@@ -1688,25 +1712,38 @@ def get_values(osw_file, step)
1688
1712
  step.setArgument('holiday_lighting_period_begin_day_of_month', '24')
1689
1713
  step.setArgument('holiday_lighting_period_end_month', '1')
1690
1714
  step.setArgument('holiday_lighting_period_end_day_of_month', '6')
1691
- elsif ['base-location-AMY-2012.osw'].include? osw_file
1715
+ end
1716
+
1717
+ # Location
1718
+ if ['base-location-AMY-2012.osw'].include? osw_file
1692
1719
  step.setArgument('weather_station_epw_filepath', 'US_CO_Boulder_AMY_2012.epw')
1693
1720
  elsif ['base-location-baltimore-md.osw'].include? osw_file
1694
1721
  step.setArgument('weather_station_epw_filepath', 'USA_MD_Baltimore-Washington.Intl.AP.724060_TMY3.epw')
1722
+ step.setArgument('heating_system_heating_capacity', '24000.0')
1695
1723
  elsif ['base-location-dallas-tx.osw'].include? osw_file
1696
1724
  step.setArgument('weather_station_epw_filepath', 'USA_TX_Dallas-Fort.Worth.Intl.AP.722590_TMY3.epw')
1725
+ step.setArgument('heating_system_heating_capacity', '24000.0')
1697
1726
  elsif ['base-location-duluth-mn.osw'].include? osw_file
1698
1727
  step.setArgument('weather_station_epw_filepath', 'USA_MN_Duluth.Intl.AP.727450_TMY3.epw')
1699
1728
  elsif ['base-location-helena-mt.osw'].include? osw_file
1700
1729
  step.setArgument('weather_station_epw_filepath', 'USA_MT_Helena.Rgnl.AP.727720_TMY3.epw')
1730
+ step.setArgument('heating_system_heating_capacity', '48000.0')
1701
1731
  elsif ['base-location-honolulu-hi.osw'].include? osw_file
1702
1732
  step.setArgument('weather_station_epw_filepath', 'USA_HI_Honolulu.Intl.AP.911820_TMY3.epw')
1733
+ step.setArgument('heating_system_heating_capacity', '12000.0')
1703
1734
  elsif ['base-location-miami-fl.osw'].include? osw_file
1704
1735
  step.setArgument('weather_station_epw_filepath', 'USA_FL_Miami.Intl.AP.722020_TMY3.epw')
1736
+ step.setArgument('heating_system_heating_capacity', '12000.0')
1705
1737
  elsif ['base-location-phoenix-az.osw'].include? osw_file
1706
1738
  step.setArgument('weather_station_epw_filepath', 'USA_AZ_Phoenix-Sky.Harbor.Intl.AP.722780_TMY3.epw')
1739
+ step.setArgument('heating_system_heating_capacity', '24000.0')
1707
1740
  elsif ['base-location-portland-or.osw'].include? osw_file
1708
1741
  step.setArgument('weather_station_epw_filepath', 'USA_OR_Portland.Intl.AP.726980_TMY3.epw')
1709
- elsif ['base-mechvent-balanced.osw'].include? osw_file
1742
+ step.setArgument('heating_system_heating_capacity', '24000.0')
1743
+ end
1744
+
1745
+ # Mechanical Ventilation
1746
+ if ['base-mechvent-balanced.osw'].include? osw_file
1710
1747
  step.setArgument('mech_vent_fan_type', HPXML::MechVentTypeBalanced)
1711
1748
  step.setArgument('mech_vent_fan_power', 60)
1712
1749
  elsif ['base-mechvent-bath-kitchen-fans.osw'].include? osw_file
@@ -1755,7 +1792,10 @@ def get_values(osw_file, step)
1755
1792
  step.setArgument('mech_vent_fan_type', HPXML::MechVentTypeSupply)
1756
1793
  elsif ['base-mechvent-whole-house-fan.osw'].include? osw_file
1757
1794
  step.setArgument('whole_house_fan_present', true)
1758
- elsif ['base-misc-defaults.osw'].include? osw_file
1795
+ end
1796
+
1797
+ # Misc
1798
+ if ['base-misc-defaults.osw'].include? osw_file
1759
1799
  step.removeArgument('simulation_control_timestep')
1760
1800
  step.removeArgument('site_type')
1761
1801
  step.setArgument('geometry_num_bathrooms', Constants.Auto)
@@ -1903,7 +1943,10 @@ def get_values(osw_file, step)
1903
1943
  step.setArgument('fuel_loads_fireplace_frac_sensible', '0.5')
1904
1944
  step.setArgument('fuel_loads_fireplace_frac_latent', '0.1')
1905
1945
  step.setArgument('fuel_loads_fireplace_usage_multiplier', 0.9)
1906
- elsif ['base-pv.osw'].include? osw_file
1946
+ end
1947
+
1948
+ # PV
1949
+ if ['base-pv.osw'].include? osw_file
1907
1950
  step.setArgument('pv_system_module_type_1', HPXML::PVModuleTypeStandard)
1908
1951
  step.setArgument('pv_system_location_1', HPXML::LocationRoof)
1909
1952
  step.setArgument('pv_system_tracking_1', HPXML::PVTrackingTypeFixed)
@@ -1912,7 +1955,10 @@ def get_values(osw_file, step)
1912
1955
  step.setArgument('pv_system_tracking_2', HPXML::PVTrackingTypeFixed)
1913
1956
  step.setArgument('pv_system_array_azimuth_2', 90)
1914
1957
  step.setArgument('pv_system_max_power_output_2', 1500)
1915
- elsif ['base-simcontrol-calendar-year-custom.osw'].include? osw_file
1958
+ end
1959
+
1960
+ # Simulation Control
1961
+ if ['base-simcontrol-calendar-year-custom.osw'].include? osw_file
1916
1962
  step.setArgument('simulation_control_run_period_calendar_year', 2008)
1917
1963
  elsif ['base-simcontrol-daylight-saving-custom.osw'].include? osw_file
1918
1964
  step.setArgument('simulation_control_daylight_saving_enabled', true)
@@ -1922,7 +1968,17 @@ def get_values(osw_file, step)
1922
1968
  step.setArgument('simulation_control_daylight_saving_end_day_of_month', 6)
1923
1969
  elsif ['base-simcontrol-daylight-saving-disabled.osw'].include? osw_file
1924
1970
  step.setArgument('simulation_control_daylight_saving_enabled', false)
1925
- elsif ['base-schedules-stochastic.osw'].include? osw_file
1971
+ elsif ['base-simcontrol-runperiod-1-month.osw'].include? osw_file
1972
+ step.setArgument('simulation_control_run_period_begin_month', 1)
1973
+ step.setArgument('simulation_control_run_period_begin_day_of_month', 1)
1974
+ step.setArgument('simulation_control_run_period_end_month', 1)
1975
+ step.setArgument('simulation_control_run_period_end_day_of_month', 31)
1976
+ elsif ['base-simcontrol-timestep-10-mins.osw'].include? osw_file
1977
+ step.setArgument('simulation_control_timestep', '10')
1978
+ end
1979
+
1980
+ # Schedules
1981
+ if ['base-schedules-stochastic.osw'].include? osw_file
1926
1982
  step.setArgument('schedules_type', 'stochastic')
1927
1983
  elsif ['base-schedules-stochastic-vacant.osw'].include? osw_file
1928
1984
  step.setArgument('schedules_vacancy_begin_month', 1)
@@ -1932,13 +1988,6 @@ def get_values(osw_file, step)
1932
1988
  elsif ['base-schedules-user-specified.osw'].include? osw_file
1933
1989
  step.setArgument('schedules_type', 'user-specified')
1934
1990
  step.setArgument('schedules_path', 'BuildResidentialHPXML/tests/schedules/user-specified.csv')
1935
- elsif ['base-simcontrol-runperiod-1-month.osw'].include? osw_file
1936
- step.setArgument('simulation_control_run_period_begin_month', 1)
1937
- step.setArgument('simulation_control_run_period_begin_day_of_month', 1)
1938
- step.setArgument('simulation_control_run_period_end_month', 1)
1939
- step.setArgument('simulation_control_run_period_end_day_of_month', 31)
1940
- elsif ['base-simcontrol-timestep-10-mins.osw'].include? osw_file
1941
- step.setArgument('simulation_control_timestep', '10')
1942
1991
  end
1943
1992
 
1944
1993
  # Extras
@@ -2030,6 +2079,20 @@ def get_values(osw_file, step)
2030
2079
  step.setArgument('clothes_dryer_location', 'none')
2031
2080
  elsif ['extra-zero-dishwasher-kwh.osw'].include? osw_file
2032
2081
  step.setArgument('dishwasher_efficiency', '0')
2082
+ elsif ['extra-bldgtype-single-family-attached-atticroof-flat.osw'].include? osw_file
2083
+ step.setArgument('geometry_roof_type', 'flat')
2084
+ step.setArgument('ducts_supply_leakage_value', 0.0)
2085
+ step.setArgument('ducts_return_leakage_value', 0.0)
2086
+ step.setArgument('ducts_supply_location', HPXML::LocationBasementConditioned)
2087
+ step.setArgument('ducts_return_location', HPXML::LocationBasementConditioned)
2088
+ elsif ['extra-gas-pool-heater-with-zero-kwh.osw'].include? osw_file
2089
+ step.setArgument('pool_present', true)
2090
+ step.setArgument('pool_heater_type', HPXML::HeaterTypeGas)
2091
+ step.setArgument('pool_heater_annual_kwh', 0)
2092
+ elsif ['extra-gas-hot-tub-heater-with-zero-kwh.osw'].include? osw_file
2093
+ step.setArgument('hot_tub_present', true)
2094
+ step.setArgument('hot_tub_heater_type', HPXML::HeaterTypeGas)
2095
+ step.setArgument('hot_tub_heater_annual_kwh', 0)
2033
2096
 
2034
2097
  elsif ['extra-bldgtype-single-family-attached-atticroof-conditioned-eaves-gable.osw'].include? osw_file
2035
2098
  step.setArgument('geometry_num_floors_above_grade', 2)
@@ -2089,15 +2152,18 @@ def get_values(osw_file, step)
2089
2152
  step.setArgument('geometry_horizontal_location', 'Right')
2090
2153
 
2091
2154
  elsif ['extra-bldgtype-multifamily-slab.osw'].include? osw_file
2155
+ step.setArgument('geometry_building_num_units', 9)
2092
2156
  step.setArgument('geometry_foundation_type', HPXML::FoundationTypeSlab)
2093
2157
  step.setArgument('geometry_foundation_height', 0.0)
2094
2158
  step.setArgument('geometry_foundation_height_above_grade', 0.0)
2095
2159
  elsif ['extra-bldgtype-multifamily-vented-crawlspace.osw'].include? osw_file
2160
+ step.setArgument('geometry_building_num_units', 9)
2096
2161
  step.setArgument('geometry_foundation_type', HPXML::FoundationTypeCrawlspaceVented)
2097
2162
  step.setArgument('geometry_foundation_height', 4.0)
2098
2163
  step.setArgument('floor_assembly_r', 18.7)
2099
2164
  step.setArgument('foundation_wall_insulation_distance_to_bottom', 4.0)
2100
2165
  elsif ['extra-bldgtype-multifamily-unvented-crawlspace.osw'].include? osw_file
2166
+ step.setArgument('geometry_building_num_units', 9)
2101
2167
  step.setArgument('geometry_foundation_type', HPXML::FoundationTypeCrawlspaceUnvented)
2102
2168
  step.setArgument('geometry_foundation_height', 4.0)
2103
2169
  step.setArgument('floor_assembly_r', 18.7)
@@ -2360,6 +2426,8 @@ def get_values(osw_file, step)
2360
2426
  step.setArgument('ceiling_assembly_r', 0.0)
2361
2427
  elsif ['invalid_files/zero-number-of-bedrooms.osw'].include? osw_file
2362
2428
  step.setArgument('geometry_num_bedrooms', 0)
2429
+ elsif ['invalid_files/single-family-detached-with-shared-system.osw'].include? osw_file
2430
+ step.setArgument('heating_system_type', "Shared #{HPXML::HVACTypeBoiler} w/ Baseboard")
2363
2431
  end
2364
2432
  return step
2365
2433
  end
@@ -2450,6 +2518,7 @@ def create_hpxmls
2450
2518
  'invalid_files/hvac-dse-multiple-attached-heating.xml' => 'base-hvac-dse.xml',
2451
2519
  'invalid_files/hvac-frac-load-served.xml' => 'base-hvac-multiple.xml',
2452
2520
  'invalid_files/hvac-inconsistent-fan-powers.xml' => 'base.xml',
2521
+ 'invalid_files/hvac-shared-negative-seer-eq.xml' => 'base-bldgtype-multifamily-shared-chiller-only-baseboard.xml',
2453
2522
  'invalid_files/generator-number-of-bedrooms-served.xml' => 'base-bldgtype-multifamily-shared-generator.xml',
2454
2523
  'invalid_files/generator-output-greater-than-consumption.xml' => 'base-misc-generators.xml',
2455
2524
  'invalid_files/invalid-assembly-effective-rvalue.xml' => 'base.xml',
@@ -2493,6 +2562,7 @@ def create_hpxmls
2493
2562
  'invalid_files/refrigerator-location.xml' => 'base.xml',
2494
2563
  'invalid_files/repeated-relatedhvac-dhw-indirect.xml' => 'base-dhw-indirect.xml',
2495
2564
  'invalid_files/repeated-relatedhvac-desuperheater.xml' => 'base-hvac-central-ac-only-1-speed.xml',
2565
+ 'invalid_files/solar-fraction-one.xml' => 'base-dhw-solar-fraction.xml',
2496
2566
  'invalid_files/solar-thermal-system-with-combi-tankless.xml' => 'base-dhw-combi-tankless.xml',
2497
2567
  'invalid_files/solar-thermal-system-with-desuperheater.xml' => 'base-dhw-desuperheater.xml',
2498
2568
  'invalid_files/solar-thermal-system-with-dhw-indirect.xml' => 'base-dhw-combi-tankless.xml',
@@ -2512,10 +2582,9 @@ def create_hpxmls
2512
2582
  'invalid_files/refrigerators-no-primary.xml' => 'base.xml',
2513
2583
  'base-appliances-coal.xml' => 'base.xml',
2514
2584
  'base-appliances-dehumidifier.xml' => 'base-location-dallas-tx.xml',
2515
- 'base-appliances-dehumidifier-50percent.xml' => 'base-appliances-dehumidifier.xml',
2516
2585
  'base-appliances-dehumidifier-ief-portable.xml' => 'base-appliances-dehumidifier.xml',
2517
2586
  'base-appliances-dehumidifier-ief-whole-home.xml' => 'base-appliances-dehumidifier-ief-portable.xml',
2518
- 'base-appliances-dehumidifier-multiple.xml' => 'base-appliances-dehumidifier-50percent.xml',
2587
+ 'base-appliances-dehumidifier-multiple.xml' => 'base-appliances-dehumidifier.xml',
2519
2588
  'base-appliances-gas.xml' => 'base.xml',
2520
2589
  'base-appliances-modified.xml' => 'base.xml',
2521
2590
  'base-appliances-none.xml' => 'base.xml',
@@ -2750,7 +2819,6 @@ def create_hpxmls
2750
2819
  'base-hvac-mini-split-heat-pump-ducted-heating-only.xml' => 'base-hvac-mini-split-heat-pump-ducted.xml',
2751
2820
  'base-hvac-mini-split-heat-pump-ductless.xml' => 'base-hvac-mini-split-heat-pump-ducted.xml',
2752
2821
  'base-hvac-multiple.xml' => 'base.xml',
2753
- 'base-hvac-multiple2.xml' => 'base.xml',
2754
2822
  'base-hvac-none.xml' => 'base.xml',
2755
2823
  'base-hvac-portable-heater-gas-only.xml' => 'base.xml',
2756
2824
  'base-hvac-programmable-thermostat.xml' => 'base.xml',
@@ -2926,6 +2994,7 @@ def create_hpxmls
2926
2994
  if errors.size > 0
2927
2995
  fail "ERRORS: #{errors}"
2928
2996
  end
2997
+
2929
2998
  # Check for errors
2930
2999
  errors = hpxml.check_for_errors()
2931
3000
  if errors.size > 0
@@ -3209,12 +3278,16 @@ end
3209
3278
  def set_hpxml_air_infiltration_measurements(hpxml_file, hpxml)
3210
3279
  infil_volume = hpxml.building_construction.conditioned_building_volume
3211
3280
  if ['ASHRAE_Standard_140/L100AC.xml',
3212
- 'ASHRAE_Standard_140/L100AL.xml',
3213
- 'base-enclosure-infil-natural-ach.xml'].include? hpxml_file
3281
+ 'ASHRAE_Standard_140/L100AL.xml'].include? hpxml_file
3214
3282
  hpxml.air_infiltration_measurements.clear
3215
3283
  hpxml.air_infiltration_measurements.add(id: 'InfiltrationMeasurement',
3216
3284
  unit_of_measure: HPXML::UnitsACHNatural,
3217
3285
  air_leakage: 0.67)
3286
+ elsif ['base-enclosure-infil-natural-ach.xml'].include? hpxml_file
3287
+ hpxml.air_infiltration_measurements.clear
3288
+ hpxml.air_infiltration_measurements.add(id: 'InfiltrationMeasurement',
3289
+ unit_of_measure: HPXML::UnitsACHNatural,
3290
+ air_leakage: 0.2)
3218
3291
  elsif ['ASHRAE_Standard_140/L322XC.xml'].include? hpxml_file
3219
3292
  hpxml.air_infiltration_measurements[0].air_leakage = 0.335
3220
3293
  elsif ['ASHRAE_Standard_140/L110AC.xml',
@@ -5006,6 +5079,7 @@ def set_hpxml_windows(hpxml_file, hpxml)
5006
5079
  hpxml.windows[-1].fraction_operable = 1.0
5007
5080
  end
5008
5081
  next unless hpxml_file == 'base-enclosure-split-surfaces2.xml'
5082
+
5009
5083
  hpxml.windows[-1].ufactor += 0.01 * i
5010
5084
  hpxml.windows[-1].interior_shading_factor_summer -= 0.02 * i
5011
5085
  hpxml.windows[-1].interior_shading_factor_winter -= 0.01 * i
@@ -5076,7 +5150,7 @@ end
5076
5150
  def set_hpxml_skylights(hpxml_file, hpxml)
5077
5151
  if ['base-enclosure-skylights.xml'].include? hpxml_file
5078
5152
  hpxml.skylights.add(id: 'SkylightNorth',
5079
- area: 45,
5153
+ area: 15,
5080
5154
  azimuth: 0,
5081
5155
  ufactor: 0.33,
5082
5156
  shgc: 0.45,
@@ -5084,7 +5158,7 @@ def set_hpxml_skylights(hpxml_file, hpxml)
5084
5158
  interior_shading_factor_winter: 1.0,
5085
5159
  roof_idref: 'Roof')
5086
5160
  hpxml.skylights.add(id: 'SkylightSouth',
5087
- area: 45,
5161
+ area: 15,
5088
5162
  azimuth: 180,
5089
5163
  ufactor: 0.35,
5090
5164
  shgc: 0.47,
@@ -5115,6 +5189,7 @@ def set_hpxml_skylights(hpxml_file, hpxml)
5115
5189
  hpxml.skylights[-1].id += i.to_s
5116
5190
  hpxml.skylights[-1].roof_idref += i.to_s if i % 2 == 0
5117
5191
  next unless hpxml_file == 'base-enclosure-split-surfaces2.xml'
5192
+
5118
5193
  hpxml.skylights[-1].ufactor += 0.01 * i
5119
5194
  hpxml.skylights[-1].interior_shading_factor_summer -= 0.02 * i
5120
5195
  hpxml.skylights[-1].interior_shading_factor_winter -= 0.01 * i
@@ -5235,7 +5310,7 @@ def set_hpxml_heating_systems(hpxml_file, hpxml)
5235
5310
  distribution_system_idref: 'HVACDistribution',
5236
5311
  heating_system_type: HPXML::HVACTypeFurnace,
5237
5312
  heating_system_fuel: HPXML::FuelTypeNaturalGas,
5238
- heating_capacity: 64000,
5313
+ heating_capacity: 36000,
5239
5314
  heating_efficiency_afue: 0.92,
5240
5315
  fraction_heat_load_served: 1)
5241
5316
  elsif ['base-hvac-air-to-air-heat-pump-1-speed.xml',
@@ -5343,35 +5418,6 @@ def set_hpxml_heating_systems(hpxml_file, hpxml)
5343
5418
  heating_efficiency_afue: 0.8,
5344
5419
  fraction_heat_load_served: 0.1,
5345
5420
  fan_watts: 0.0)
5346
- elsif ['base-hvac-multiple2.xml'].include? hpxml_file
5347
- hpxml.heating_systems.clear
5348
- hpxml.heating_systems.add(id: 'HeatingSystem',
5349
- distribution_system_idref: 'HVACDistribution',
5350
- heating_system_type: HPXML::HVACTypeFurnace,
5351
- heating_system_fuel: HPXML::FuelTypeElectricity,
5352
- heating_capacity: 6400,
5353
- heating_efficiency_afue: 1,
5354
- fraction_heat_load_served: 0.2)
5355
- hpxml.heating_systems.add(id: 'HeatingSystem2',
5356
- distribution_system_idref: 'HVACDistribution2',
5357
- heating_system_type: HPXML::HVACTypeFurnace,
5358
- heating_system_fuel: HPXML::FuelTypeElectricity,
5359
- heating_capacity: 6400,
5360
- heating_efficiency_afue: 0.92,
5361
- fraction_heat_load_served: 0.2)
5362
- hpxml.heating_systems.add(id: 'HeatingSystem3',
5363
- distribution_system_idref: 'HVACDistribution3',
5364
- heating_system_type: HPXML::HVACTypeBoiler,
5365
- heating_system_fuel: HPXML::FuelTypeElectricity,
5366
- heating_capacity: 6400,
5367
- heating_efficiency_afue: 1,
5368
- fraction_heat_load_served: 0.2)
5369
- hpxml.heating_systems.add(id: 'HeatingSystem4',
5370
- heating_system_type: HPXML::HVACTypeElectricResistance,
5371
- heating_system_fuel: HPXML::FuelTypeElectricity,
5372
- heating_capacity: 3200,
5373
- heating_efficiency_percent: 1,
5374
- fraction_heat_load_served: 0.1)
5375
5421
  elsif ['base-mechvent-multiple.xml',
5376
5422
  'base-bldgtype-multifamily-shared-mechvent-multiple.xml'].include? hpxml_file
5377
5423
  hpxml.heating_systems[0].heating_capacity /= 2.0
@@ -5444,7 +5490,7 @@ def set_hpxml_heating_systems(hpxml_file, hpxml)
5444
5490
  end
5445
5491
  elsif ['base-hvac-furnace-elec-central-ac-1-speed.xml'].include? hpxml_file
5446
5492
  hpxml.heating_systems[0].heating_system_fuel = HPXML::FuelTypeElectricity
5447
- hpxml.heating_systems[0].heating_efficiency_afue = 1
5493
+ hpxml.heating_systems[0].heating_efficiency_afue = 1.0
5448
5494
  elsif ['invalid_files/unattached-hvac-distribution.xml'].include? hpxml_file
5449
5495
  hpxml.heating_systems[0].distribution_system_idref = 'foobar'
5450
5496
  elsif ['invalid_files/hvac-invalid-distribution-system-type.xml'].include? hpxml_file
@@ -5491,6 +5537,20 @@ def set_hpxml_heating_systems(hpxml_file, hpxml)
5491
5537
  elsif ['invalid_files/boiler-invalid-afue.xml',
5492
5538
  'invalid_files/furnace-invalid-afue.xml'].include? hpxml_file
5493
5539
  hpxml.heating_systems[0].heating_efficiency_afue *= 100.0
5540
+ elsif ['base-location-honolulu-hi.xml',
5541
+ 'base-location-miami-fl.xml',
5542
+ 'base-bldgtype-multifamily.xml'].include? hpxml_file
5543
+ hpxml.heating_systems[0].heating_capacity = 12000
5544
+ elsif ['base-location-dallas-tx.xml',
5545
+ 'base-location-baltimore-md.xml',
5546
+ 'base-location-phoenix-az.xml',
5547
+ 'base-location-portland-or.xml',
5548
+ 'base-bldgtype-single-family-attached.xml'].include? hpxml_file
5549
+ hpxml.heating_systems[0].heating_capacity = 24000
5550
+ elsif ['base-location-helena-mt.xml',
5551
+ 'base-enclosure-2stories.xml',
5552
+ 'base-enclosure-2stories-garage.xml'].include? hpxml_file
5553
+ hpxml.heating_systems[0].heating_capacity = 48000
5494
5554
  elsif hpxml_file.include?('base-hvac-autosize') && (not hpxml.heating_systems.nil?) && (hpxml.heating_systems.size > 0)
5495
5555
  hpxml.heating_systems[0].heating_capacity = nil
5496
5556
  end
@@ -5502,7 +5562,7 @@ def set_hpxml_cooling_systems(hpxml_file, hpxml)
5502
5562
  distribution_system_idref: 'HVACDistribution',
5503
5563
  cooling_system_type: HPXML::HVACTypeCentralAirConditioner,
5504
5564
  cooling_system_fuel: HPXML::FuelTypeElectricity,
5505
- cooling_capacity: 48000,
5565
+ cooling_capacity: 24000,
5506
5566
  fraction_cool_load_served: 1,
5507
5567
  cooling_efficiency_seer: 13,
5508
5568
  cooling_shr: 0.73,
@@ -5518,6 +5578,7 @@ def set_hpxml_cooling_systems(hpxml_file, hpxml)
5518
5578
  'base-hvac-boiler-wood-only.xml',
5519
5579
  'base-hvac-elec-resistance-only.xml',
5520
5580
  'base-hvac-fireplace-wood-only.xml',
5581
+ 'base-hvac-fixed-heater-gas-only.xml',
5521
5582
  'base-hvac-floor-furnace-propane-only.xml',
5522
5583
  'base-hvac-furnace-coal-only.xml',
5523
5584
  'base-hvac-furnace-elec-only.xml',
@@ -5528,6 +5589,7 @@ def set_hpxml_cooling_systems(hpxml_file, hpxml)
5528
5589
  'base-hvac-ground-to-air-heat-pump.xml',
5529
5590
  'base-hvac-mini-split-heat-pump-ducted.xml',
5530
5591
  'base-hvac-none.xml',
5592
+ 'base-hvac-portable-heater-gas-only.xml',
5531
5593
  'base-hvac-stove-oil-only.xml',
5532
5594
  'base-hvac-stove-wood-pellets-only.xml',
5533
5595
  'base-hvac-wall-furnace-elec-only.xml',
@@ -5563,6 +5625,7 @@ def set_hpxml_cooling_systems(hpxml_file, hpxml)
5563
5625
  hpxml.cooling_systems[0].compressor_type = nil
5564
5626
  elsif ['base-hvac-room-ac-only-33percent.xml'].include? hpxml_file
5565
5627
  hpxml.cooling_systems[0].fraction_cool_load_served = 0.33
5628
+ hpxml.cooling_systems[0].cooling_capacity /= 3.0
5566
5629
  elsif ['base-hvac-evap-cooler-only-ducted.xml',
5567
5630
  'base-hvac-evap-cooler-furnace-gas.xml',
5568
5631
  'base-hvac-evap-cooler-only.xml'].include? hpxml_file
@@ -5586,18 +5649,6 @@ def set_hpxml_cooling_systems(hpxml_file, hpxml)
5586
5649
  fraction_cool_load_served: 0.2,
5587
5650
  cooling_efficiency_eer: 8.5,
5588
5651
  cooling_shr: 0.65)
5589
- elsif ['base-hvac-multiple2.xml'].include? hpxml_file
5590
- hpxml.cooling_systems[0].distribution_system_idref = 'HVACDistribution'
5591
- hpxml.cooling_systems[0].fraction_cool_load_served = 0.25
5592
- hpxml.cooling_systems[0].cooling_capacity *= 0.25
5593
- hpxml.cooling_systems.add(id: 'CoolingSystem2',
5594
- distribution_system_idref: 'HVACDistribution2',
5595
- cooling_system_type: HPXML::HVACTypeCentralAirConditioner,
5596
- cooling_system_fuel: HPXML::FuelTypeElectricity,
5597
- cooling_capacity: 9600,
5598
- fraction_cool_load_served: 0.25,
5599
- cooling_efficiency_seer: 13,
5600
- cooling_shr: 0.65)
5601
5652
  elsif ['base-mechvent-multiple.xml',
5602
5653
  'base-bldgtype-multifamily-shared-mechvent-multiple.xml'].include? hpxml_file
5603
5654
  hpxml.cooling_systems[0].fraction_cool_load_served /= 2.0
@@ -5659,6 +5710,13 @@ def set_hpxml_cooling_systems(hpxml_file, hpxml)
5659
5710
  hpxml.cooling_systems << hpxml.cooling_systems[0].dup
5660
5711
  hpxml.cooling_systems[1].id += '2'
5661
5712
  hpxml.cooling_systems[1].distribution_system_idref += '2'
5713
+ elsif ['invalid_files/hvac-shared-negative-seer-eq.xml'].include? hpxml_file
5714
+ hpxml.cooling_systems[0].shared_loop_watts *= 100.0
5715
+ elsif ['base-bldgtype-multifamily.xml'].include? hpxml_file
5716
+ hpxml.cooling_systems[0].cooling_capacity = 12000
5717
+ elsif ['base-enclosure-2stories.xml',
5718
+ 'base-enclosure-2stories-garage.xml'].include? hpxml_file
5719
+ hpxml.cooling_systems[0].cooling_capacity = 36000
5662
5720
  elsif hpxml_file.include?('base-hvac-autosize') && (not hpxml.cooling_systems.nil?) && (hpxml.cooling_systems.size > 0)
5663
5721
  hpxml.cooling_systems[0].cooling_capacity = nil
5664
5722
  end
@@ -5671,16 +5729,16 @@ def set_hpxml_heat_pumps(hpxml_file, hpxml)
5671
5729
  distribution_system_idref: 'HVACDistribution',
5672
5730
  heat_pump_type: HPXML::HVACTypeHeatPumpAirToAir,
5673
5731
  heat_pump_fuel: HPXML::FuelTypeElectricity,
5674
- heating_capacity: 42000,
5675
- cooling_capacity: 48000,
5732
+ heating_capacity: 36000,
5733
+ cooling_capacity: 36000,
5676
5734
  backup_heating_fuel: HPXML::FuelTypeElectricity,
5677
- backup_heating_capacity: 34121,
5735
+ backup_heating_capacity: 36000,
5678
5736
  backup_heating_efficiency_percent: 1.0,
5679
5737
  fraction_heat_load_served: 1,
5680
5738
  fraction_cool_load_served: 1,
5681
5739
  heating_efficiency_hspf: 7.7,
5682
5740
  cooling_efficiency_seer: 13,
5683
- heating_capacity_17F: 42000 * 0.630, # Based on OAT slope of default curves
5741
+ heating_capacity_17F: 36000 * 0.630, # Based on OAT slope of default curves
5684
5742
  cooling_shr: 0.73,
5685
5743
  compressor_type: HPXML::HVACCompressorTypeSingleStage)
5686
5744
  if hpxml_file == 'base-hvac-central-ac-plus-air-to-air-heat-pump-heating.xml'
@@ -5691,16 +5749,16 @@ def set_hpxml_heat_pumps(hpxml_file, hpxml)
5691
5749
  distribution_system_idref: 'HVACDistribution',
5692
5750
  heat_pump_type: HPXML::HVACTypeHeatPumpAirToAir,
5693
5751
  heat_pump_fuel: HPXML::FuelTypeElectricity,
5694
- heating_capacity: 42000,
5695
- cooling_capacity: 48000,
5752
+ heating_capacity: 36000,
5753
+ cooling_capacity: 36000,
5696
5754
  backup_heating_fuel: HPXML::FuelTypeElectricity,
5697
- backup_heating_capacity: 34121,
5755
+ backup_heating_capacity: 36000,
5698
5756
  backup_heating_efficiency_percent: 1.0,
5699
5757
  fraction_heat_load_served: 1,
5700
5758
  fraction_cool_load_served: 1,
5701
5759
  heating_efficiency_hspf: 9.3,
5702
5760
  cooling_efficiency_seer: 18,
5703
- heating_capacity_17F: 42000 * 0.590, # Based on OAT slope of default curves
5761
+ heating_capacity_17F: 36000 * 0.590, # Based on OAT slope of default curves
5704
5762
  cooling_shr: 0.73,
5705
5763
  compressor_type: HPXML::HVACCompressorTypeTwoStage)
5706
5764
  elsif ['base-hvac-air-to-air-heat-pump-var-speed.xml'].include? hpxml_file
@@ -5708,16 +5766,16 @@ def set_hpxml_heat_pumps(hpxml_file, hpxml)
5708
5766
  distribution_system_idref: 'HVACDistribution',
5709
5767
  heat_pump_type: HPXML::HVACTypeHeatPumpAirToAir,
5710
5768
  heat_pump_fuel: HPXML::FuelTypeElectricity,
5711
- heating_capacity: 42000,
5712
- cooling_capacity: 48000,
5769
+ heating_capacity: 36000,
5770
+ cooling_capacity: 36000,
5713
5771
  backup_heating_fuel: HPXML::FuelTypeElectricity,
5714
- backup_heating_capacity: 34121,
5772
+ backup_heating_capacity: 36000,
5715
5773
  backup_heating_efficiency_percent: 1.0,
5716
5774
  fraction_heat_load_served: 1,
5717
5775
  fraction_cool_load_served: 1,
5718
5776
  heating_efficiency_hspf: 10,
5719
5777
  cooling_efficiency_seer: 22,
5720
- heating_capacity_17F: 42000 * 0.640, # Based on OAT slope of default curves
5778
+ heating_capacity_17F: 36000 * 0.640, # Based on OAT slope of default curves
5721
5779
  cooling_shr: 0.78,
5722
5780
  compressor_type: HPXML::HVACCompressorTypeVariableSpeed)
5723
5781
  elsif ['base-hvac-ground-to-air-heat-pump.xml',
@@ -5726,10 +5784,7 @@ def set_hpxml_heat_pumps(hpxml_file, hpxml)
5726
5784
  distribution_system_idref: 'HVACDistribution',
5727
5785
  heat_pump_type: HPXML::HVACTypeHeatPumpGroundToAir,
5728
5786
  heat_pump_fuel: HPXML::FuelTypeElectricity,
5729
- heating_capacity: 42000,
5730
- cooling_capacity: 48000,
5731
5787
  backup_heating_fuel: HPXML::FuelTypeElectricity,
5732
- backup_heating_capacity: 34121,
5733
5788
  backup_heating_efficiency_percent: 1.0,
5734
5789
  fraction_heat_load_served: 1,
5735
5790
  fraction_cool_load_served: 1,
@@ -5742,6 +5797,13 @@ def set_hpxml_heat_pumps(hpxml_file, hpxml)
5742
5797
  hpxml.heat_pumps[-1].number_of_units_served = 6
5743
5798
  hpxml.heat_pumps[-1].shared_loop_watts = 600
5744
5799
  hpxml.heat_pumps[-1].pump_watts_per_ton = 0.0
5800
+ hpxml.heat_pumps[-1].heating_capacity = 12000
5801
+ hpxml.heat_pumps[-1].cooling_capacity = 12000
5802
+ hpxml.heat_pumps[-1].backup_heating_capacity = 12000
5803
+ else
5804
+ hpxml.heat_pumps[-1].heating_capacity = 36000
5805
+ hpxml.heat_pumps[-1].cooling_capacity = 36000
5806
+ hpxml.heat_pumps[-1].backup_heating_capacity = 36000
5745
5807
  end
5746
5808
  elsif ['base-hvac-mini-split-heat-pump-ducted.xml'].include? hpxml_file
5747
5809
  f = 1.0 - (1.0 - 0.25) / (47.0 + 5.0) * (47.0 - 17.0)
@@ -5749,16 +5811,16 @@ def set_hpxml_heat_pumps(hpxml_file, hpxml)
5749
5811
  distribution_system_idref: 'HVACDistribution',
5750
5812
  heat_pump_type: HPXML::HVACTypeHeatPumpMiniSplit,
5751
5813
  heat_pump_fuel: HPXML::FuelTypeElectricity,
5752
- heating_capacity: 52000,
5753
- cooling_capacity: 48000,
5814
+ heating_capacity: 36000,
5815
+ cooling_capacity: 36000,
5754
5816
  backup_heating_fuel: HPXML::FuelTypeElectricity,
5755
- backup_heating_capacity: 34121,
5817
+ backup_heating_capacity: 36000,
5756
5818
  backup_heating_efficiency_percent: 1.0,
5757
5819
  fraction_heat_load_served: 1,
5758
5820
  fraction_cool_load_served: 1,
5759
5821
  heating_efficiency_hspf: 10,
5760
5822
  cooling_efficiency_seer: 19,
5761
- heating_capacity_17F: 52000 * f,
5823
+ heating_capacity_17F: (36000 * f).round(0),
5762
5824
  cooling_shr: 0.73)
5763
5825
  elsif ['base-hvac-air-to-air-heat-pump-1-speed-heating-only.xml',
5764
5826
  'base-hvac-ground-to-air-heat-pump-heating-only.xml',
@@ -5832,38 +5894,6 @@ def set_hpxml_heat_pumps(hpxml_file, hpxml)
5832
5894
  cooling_efficiency_seer: 19,
5833
5895
  heating_capacity_17F: 4800 * f,
5834
5896
  cooling_shr: 0.73)
5835
- elsif ['base-hvac-multiple2.xml'].include? hpxml_file
5836
- hpxml.heat_pumps.add(id: 'HeatPump',
5837
- distribution_system_idref: 'HVACDistribution4',
5838
- heat_pump_type: HPXML::HVACTypeHeatPumpAirToAir,
5839
- heat_pump_fuel: HPXML::FuelTypeElectricity,
5840
- heating_capacity: 4800,
5841
- cooling_capacity: 4800,
5842
- backup_heating_fuel: HPXML::FuelTypeElectricity,
5843
- backup_heating_capacity: 3412,
5844
- backup_heating_efficiency_percent: 1.0,
5845
- fraction_heat_load_served: 0.1,
5846
- fraction_cool_load_served: 0.2,
5847
- heating_efficiency_hspf: 7.7,
5848
- cooling_efficiency_seer: 13,
5849
- heating_capacity_17F: 4800 * 0.630, # Based on OAT slope of default curves
5850
- cooling_shr: 0.73,
5851
- compressor_type: HPXML::HVACCompressorTypeSingleStage)
5852
- hpxml.heat_pumps.add(id: 'HeatPump2',
5853
- distribution_system_idref: 'HVACDistribution5',
5854
- heat_pump_type: HPXML::HVACTypeHeatPumpGroundToAir,
5855
- heat_pump_fuel: HPXML::FuelTypeElectricity,
5856
- heating_capacity: 4800,
5857
- cooling_capacity: 4800,
5858
- backup_heating_fuel: HPXML::FuelTypeElectricity,
5859
- backup_heating_capacity: 3412,
5860
- backup_heating_efficiency_percent: 1.0,
5861
- fraction_heat_load_served: 0.1,
5862
- fraction_cool_load_served: 0.2,
5863
- heating_efficiency_cop: 3.6,
5864
- cooling_efficiency_eer: 16.6,
5865
- cooling_shr: 0.73,
5866
- pump_watts_per_ton: 30.0)
5867
5897
  elsif ['base-bldgtype-multifamily-shared-boiler-only-water-loop-heat-pump.xml',
5868
5898
  'base-bldgtype-multifamily-shared-chiller-only-water-loop-heat-pump.xml',
5869
5899
  'base-bldgtype-multifamily-shared-boiler-chiller-water-loop-heat-pump.xml'].include? hpxml_file
@@ -5940,9 +5970,9 @@ def set_hpxml_hvac_control(hpxml_file, hpxml)
5940
5970
  hpxml.hvac_controls[0].control_type = HPXML::HVACControlTypeProgrammable
5941
5971
  hpxml.hvac_controls[0].heating_setpoint_temp = nil
5942
5972
  hpxml.hvac_controls[0].cooling_setpoint_temp = nil
5943
- hpxml.hvac_controls[0].weekday_heating_setpoints = '64, 64, 64, 64, 64, 64, 64, 74, 74, 66, 66, 66, 66, 66, 66, 66, 66, 68, 68, 68, 68, 68, 64, 64'
5944
- hpxml.hvac_controls[0].weekend_heating_setpoints = '74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74'
5945
- hpxml.hvac_controls[0].weekday_cooling_setpoints = '82, 82, 82, 82, 82, 82, 82, 72, 72, 80, 80, 80, 80, 80, 80, 80, 80, 78, 78, 78, 78, 78, 82, 82'
5973
+ hpxml.hvac_controls[0].weekday_heating_setpoints = '64, 64, 64, 64, 64, 64, 64, 70, 70, 66, 66, 66, 66, 66, 66, 66, 66, 68, 68, 68, 68, 68, 64, 64'
5974
+ hpxml.hvac_controls[0].weekend_heating_setpoints = '68, 68, 68, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70'
5975
+ hpxml.hvac_controls[0].weekday_cooling_setpoints = '80, 80, 80, 80, 80, 80, 80, 75, 75, 80, 80, 80, 80, 80, 80, 80, 80, 78, 78, 78, 78, 78, 80, 80'
5946
5976
  hpxml.hvac_controls[0].weekend_cooling_setpoints = '78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78'
5947
5977
  elsif ['base-hvac-setpoints.xml'].include? hpxml_file
5948
5978
  hpxml.hvac_controls[0].heating_setpoint_temp = 60
@@ -5955,7 +5985,8 @@ end
5955
5985
  def set_hpxml_hvac_distributions(hpxml_file, hpxml)
5956
5986
  if ['base.xml'].include? hpxml_file
5957
5987
  hpxml.hvac_distributions.add(id: 'HVACDistribution',
5958
- distribution_system_type: HPXML::HVACDistributionTypeAir)
5988
+ distribution_system_type: HPXML::HVACDistributionTypeAir,
5989
+ air_type: HPXML::AirTypeRegularVelocity)
5959
5990
  hpxml.hvac_distributions[0].duct_leakage_measurements.add(duct_type: HPXML::DuctTypeSupply,
5960
5991
  duct_leakage_units: HPXML::UnitsCFM25,
5961
5992
  duct_leakage_value: 75,
@@ -6000,21 +6031,14 @@ def set_hpxml_hvac_distributions(hpxml_file, hpxml)
6000
6031
  'base-bldgtype-multifamily-shared-boiler-chiller-fan-coil.xml'].include? hpxml_file
6001
6032
  hpxml.hvac_distributions[0].distribution_system_type = HPXML::HVACDistributionTypeAir
6002
6033
  hpxml.hvac_distributions[0].air_type = HPXML::AirTypeFanCoil
6003
- hpxml.hvac_distributions[0].duct_leakage_measurements.add(duct_type: HPXML::DuctTypeSupply,
6004
- duct_leakage_units: HPXML::UnitsCFM25,
6005
- duct_leakage_value: 0,
6006
- duct_leakage_total_or_to_outside: HPXML::DuctLeakageToOutside)
6007
- hpxml.hvac_distributions[0].duct_leakage_measurements.add(duct_type: HPXML::DuctTypeReturn,
6008
- duct_leakage_units: HPXML::UnitsCFM25,
6009
- duct_leakage_value: 0,
6010
- duct_leakage_total_or_to_outside: HPXML::DuctLeakageToOutside)
6011
6034
  elsif ['base-hvac-boiler-gas-central-ac-1-speed.xml'].include? hpxml_file
6012
6035
  hpxml.hvac_distributions[0].distribution_system_type = HPXML::HVACDistributionTypeHydronic
6013
6036
  hpxml.hvac_distributions[0].hydronic_type = HPXML::HydronicTypeBaseboard
6014
6037
  hpxml.hvac_distributions[0].duct_leakage_measurements.clear
6015
6038
  hpxml.hvac_distributions[0].ducts.clear
6016
6039
  hpxml.hvac_distributions.add(id: 'HVACDistribution2',
6017
- distribution_system_type: HPXML::HVACDistributionTypeAir)
6040
+ distribution_system_type: HPXML::HVACDistributionTypeAir,
6041
+ air_type: HPXML::AirTypeRegularVelocity)
6018
6042
  hpxml.hvac_distributions[-1].duct_leakage_measurements.add(duct_type: HPXML::DuctTypeSupply,
6019
6043
  duct_leakage_units: HPXML::UnitsCFM25,
6020
6044
  duct_leakage_value: 75,
@@ -6036,8 +6060,10 @@ def set_hpxml_hvac_distributions(hpxml_file, hpxml)
6036
6060
  'base-hvac-evap-cooler-only.xml',
6037
6061
  'base-hvac-fireplace-wood-only.xml',
6038
6062
  'base-hvac-floor-furnace-propane-only.xml',
6063
+ 'base-hvac-fixed-heater-gas-only.xml',
6039
6064
  'base-hvac-mini-split-heat-pump-ductless.xml',
6040
6065
  'base-hvac-mini-split-air-conditioner-only-ductless.xml',
6066
+ 'base-hvac-portable-heater-gas-only.xml',
6041
6067
  'base-hvac-room-ac-only.xml',
6042
6068
  'base-hvac-stove-oil-only.xml',
6043
6069
  'base-hvac-stove-wood-pellets-only.xml',
@@ -6046,7 +6072,8 @@ def set_hpxml_hvac_distributions(hpxml_file, hpxml)
6046
6072
  elsif ['base-hvac-multiple.xml'].include? hpxml_file
6047
6073
  hpxml.hvac_distributions.clear
6048
6074
  hpxml.hvac_distributions.add(id: 'HVACDistribution',
6049
- distribution_system_type: HPXML::HVACDistributionTypeAir)
6075
+ distribution_system_type: HPXML::HVACDistributionTypeAir,
6076
+ air_type: HPXML::AirTypeRegularVelocity)
6050
6077
  hpxml.hvac_distributions[-1].duct_leakage_measurements.add(duct_type: HPXML::DuctTypeSupply,
6051
6078
  duct_leakage_units: HPXML::UnitsCFM25,
6052
6079
  duct_leakage_value: 75,
@@ -6083,43 +6110,6 @@ def set_hpxml_hvac_distributions(hpxml_file, hpxml)
6083
6110
  hpxml.hvac_distributions[-1].id = 'HVACDistribution5'
6084
6111
  hpxml.hvac_distributions << hpxml.hvac_distributions[0].dup
6085
6112
  hpxml.hvac_distributions[-1].id = 'HVACDistribution6'
6086
- elsif ['base-hvac-multiple2.xml'].include? hpxml_file
6087
- hpxml.hvac_distributions.clear
6088
- hpxml.hvac_distributions.add(id: 'HVACDistribution',
6089
- distribution_system_type: HPXML::HVACDistributionTypeAir)
6090
- hpxml.hvac_distributions[-1].duct_leakage_measurements.add(duct_type: HPXML::DuctTypeSupply,
6091
- duct_leakage_units: HPXML::UnitsCFM25,
6092
- duct_leakage_value: 75,
6093
- duct_leakage_total_or_to_outside: HPXML::DuctLeakageToOutside)
6094
- hpxml.hvac_distributions[-1].duct_leakage_measurements.add(duct_type: HPXML::DuctTypeReturn,
6095
- duct_leakage_units: HPXML::UnitsCFM25,
6096
- duct_leakage_value: 25,
6097
- duct_leakage_total_or_to_outside: HPXML::DuctLeakageToOutside)
6098
- hpxml.hvac_distributions[0].ducts.add(duct_type: HPXML::DuctTypeSupply,
6099
- duct_insulation_r_value: 8,
6100
- duct_location: HPXML::LocationAtticUnvented,
6101
- duct_surface_area: 75)
6102
- hpxml.hvac_distributions[0].ducts.add(duct_type: HPXML::DuctTypeSupply,
6103
- duct_insulation_r_value: 8,
6104
- duct_location: HPXML::LocationOutside,
6105
- duct_surface_area: 75)
6106
- hpxml.hvac_distributions[0].ducts.add(duct_type: HPXML::DuctTypeReturn,
6107
- duct_insulation_r_value: 4,
6108
- duct_location: HPXML::LocationAtticUnvented,
6109
- duct_surface_area: 25)
6110
- hpxml.hvac_distributions[0].ducts.add(duct_type: HPXML::DuctTypeReturn,
6111
- duct_insulation_r_value: 4,
6112
- duct_location: HPXML::LocationOutside,
6113
- duct_surface_area: 25)
6114
- hpxml.hvac_distributions << hpxml.hvac_distributions[0].dup
6115
- hpxml.hvac_distributions[-1].id = 'HVACDistribution2'
6116
- hpxml.hvac_distributions.add(id: 'HVACDistribution3',
6117
- distribution_system_type: HPXML::HVACDistributionTypeHydronic,
6118
- hydronic_type: HPXML::HydronicTypeBaseboard)
6119
- hpxml.hvac_distributions << hpxml.hvac_distributions[0].dup
6120
- hpxml.hvac_distributions[-1].id = 'HVACDistribution4'
6121
- hpxml.hvac_distributions << hpxml.hvac_distributions[0].dup
6122
- hpxml.hvac_distributions[-1].id = 'HVACDistribution5'
6123
6113
  elsif ['base-mechvent-multiple.xml',
6124
6114
  'base-bldgtype-multifamily-shared-mechvent-multiple.xml'].include? hpxml_file
6125
6115
  hpxml.hvac_distributions << hpxml.hvac_distributions[0].dup
@@ -6248,22 +6238,21 @@ def set_hpxml_hvac_distributions(hpxml_file, hpxml)
6248
6238
  if hpxml_file.include? 'fan-coil'
6249
6239
  hpxml.hvac_distributions[0].distribution_system_type = HPXML::HVACDistributionTypeAir
6250
6240
  hpxml.hvac_distributions[0].air_type = HPXML::AirTypeFanCoil
6251
- hpxml.hvac_distributions[0].duct_leakage_measurements[0].duct_leakage_value = 15
6252
- hpxml.hvac_distributions[0].duct_leakage_measurements[1].duct_leakage_value = 10
6253
6241
  elsif hpxml_file.include? 'water-loop-heat-pump'
6254
6242
  hpxml.hvac_distributions[0].distribution_system_type = HPXML::HVACDistributionTypeHydronic
6255
6243
  hpxml.hvac_distributions[0].hydronic_type = HPXML::HydronicTypeWaterLoop
6256
6244
  hpxml.hvac_distributions.add(id: 'HVACDistributionWLHP',
6257
- distribution_system_type: HPXML::HVACDistributionTypeAir)
6258
- hpxml.hvac_distributions[-1].duct_leakage_measurements.add(duct_type: HPXML::DuctTypeSupply,
6259
- duct_leakage_units: HPXML::UnitsCFM25,
6260
- duct_leakage_value: 15,
6261
- duct_leakage_total_or_to_outside: HPXML::DuctLeakageToOutside)
6262
- hpxml.hvac_distributions[-1].duct_leakage_measurements.add(duct_type: HPXML::DuctTypeReturn,
6263
- duct_leakage_units: HPXML::UnitsCFM25,
6264
- duct_leakage_value: 10,
6265
- duct_leakage_total_or_to_outside: HPXML::DuctLeakageToOutside)
6245
+ distribution_system_type: HPXML::HVACDistributionTypeAir,
6246
+ air_type: HPXML::AirTypeRegularVelocity)
6266
6247
  end
6248
+ hpxml.hvac_distributions[-1].duct_leakage_measurements.add(duct_type: HPXML::DuctTypeSupply,
6249
+ duct_leakage_units: HPXML::UnitsCFM25,
6250
+ duct_leakage_value: 15,
6251
+ duct_leakage_total_or_to_outside: HPXML::DuctLeakageToOutside)
6252
+ hpxml.hvac_distributions[-1].duct_leakage_measurements.add(duct_type: HPXML::DuctTypeReturn,
6253
+ duct_leakage_units: HPXML::UnitsCFM25,
6254
+ duct_leakage_value: 10,
6255
+ duct_leakage_total_or_to_outside: HPXML::DuctLeakageToOutside)
6267
6256
  hpxml.hvac_distributions[-1].ducts.add(duct_type: HPXML::DuctTypeSupply,
6268
6257
  duct_insulation_r_value: 0,
6269
6258
  duct_location: HPXML::LocationOtherMultifamilyBufferSpace,
@@ -6311,25 +6300,33 @@ def set_hpxml_hvac_distributions(hpxml_file, hpxml)
6311
6300
  end
6312
6301
 
6313
6302
  # Set ConditionedFloorAreaServed
6314
- n_air_dists = hpxml.hvac_distributions.select { |d| [HPXML::HVACDistributionTypeAir].include? d.distribution_system_type }.size
6315
- hpxml.hvac_distributions.each do |hvac_distribution|
6316
- if [HPXML::HVACDistributionTypeAir].include? hvac_distribution.distribution_system_type
6317
- hvac_distribution.conditioned_floor_area_served = hpxml.building_construction.conditioned_floor_area / n_air_dists
6318
- else
6319
- hvac_distribution.conditioned_floor_area_served = nil
6303
+ if not hpxml_file.include?('invalid_files')
6304
+ n_htg_systems = (hpxml.heating_systems + hpxml.heat_pumps).select { |h| h.fraction_heat_load_served.to_f > 0 }.size
6305
+ n_clg_systems = (hpxml.cooling_systems + hpxml.heat_pumps).select { |h| h.fraction_cool_load_served.to_f > 0 }.size
6306
+ hpxml.hvac_distributions.each do |hvac_distribution|
6307
+ if [HPXML::HVACDistributionTypeAir].include?(hvac_distribution.distribution_system_type) && (hvac_distribution.ducts.size > 0)
6308
+ n_hvac_systems = [n_htg_systems, n_clg_systems].max
6309
+ hvac_distribution.conditioned_floor_area_served = hpxml.building_construction.conditioned_floor_area / n_hvac_systems
6310
+ else
6311
+ hvac_distribution.conditioned_floor_area_served = nil
6312
+ end
6320
6313
  end
6321
- end
6322
- if ['invalid_files/invalid-distribution-cfa-served.xml'].include? hpxml_file
6314
+ elsif ['invalid_files/invalid-distribution-cfa-served.xml'].include? hpxml_file
6323
6315
  hpxml.hvac_distributions[0].conditioned_floor_area_served = hpxml.building_construction.conditioned_floor_area + 1.1
6324
6316
  end
6325
6317
 
6326
6318
  # Set number of return registers
6327
6319
  if not ['base-misc-defaults.xml'].include? hpxml_file
6328
6320
  hpxml.hvac_distributions.each do |hvac_distribution|
6321
+ hvac_distribution.number_of_return_registers = nil
6329
6322
  next unless hvac_distribution.distribution_system_type == HPXML::HVACDistributionTypeAir
6330
- next unless hvac_distribution.ducts.select { |d| d.duct_type == HPXML::DuctTypeReturn }.size > 0
6331
6323
 
6332
- hvac_distribution.number_of_return_registers = hpxml.building_construction.number_of_conditioned_floors.ceil
6324
+ if hvac_distribution.ducts.select { |d| d.duct_type == HPXML::DuctTypeReturn }.size > 0
6325
+ hvac_distribution.number_of_return_registers = hpxml.building_construction.number_of_conditioned_floors.ceil
6326
+ elsif hvac_distribution.ducts.select { |d| d.duct_type == HPXML::DuctTypeSupply }.size > 0
6327
+ # E.g., evap cooler w/ only supply ducts
6328
+ hvac_distribution.number_of_return_registers = 0
6329
+ end
6333
6330
  end
6334
6331
  end
6335
6332
  end
@@ -6561,36 +6558,36 @@ def set_hpxml_ventilation_fans(hpxml_file, hpxml)
6561
6558
  used_for_seasonal_cooling_load_reduction: true)
6562
6559
  hpxml.ventilation_fans.add(id: 'Supply',
6563
6560
  fan_type: HPXML::MechVentTypeSupply,
6564
- tested_flow_rate: 110,
6561
+ tested_flow_rate: 27.5,
6565
6562
  hours_in_operation: 24,
6566
- fan_power: 30,
6563
+ fan_power: 7.5,
6567
6564
  used_for_whole_building_ventilation: true)
6568
6565
  hpxml.ventilation_fans.add(id: 'Exhaust',
6569
6566
  fan_type: HPXML::MechVentTypeExhaust,
6570
- tested_flow_rate: 50,
6567
+ tested_flow_rate: 12.5,
6571
6568
  hours_in_operation: 14,
6572
- fan_power: 10,
6569
+ fan_power: 2.5,
6573
6570
  used_for_whole_building_ventilation: true)
6574
6571
  hpxml.ventilation_fans.add(id: 'Balanced',
6575
6572
  fan_type: HPXML::MechVentTypeBalanced,
6576
- tested_flow_rate: 110,
6573
+ tested_flow_rate: 27.5,
6577
6574
  hours_in_operation: 24,
6578
- fan_power: 60,
6575
+ fan_power: 15,
6579
6576
  used_for_whole_building_ventilation: true)
6580
6577
  hpxml.ventilation_fans.add(id: 'ERV',
6581
6578
  fan_type: HPXML::MechVentTypeERV,
6582
- tested_flow_rate: 50,
6579
+ tested_flow_rate: 12.5,
6583
6580
  hours_in_operation: 24,
6584
6581
  total_recovery_efficiency: 0.48,
6585
6582
  sensible_recovery_efficiency: 0.72,
6586
- fan_power: 30,
6583
+ fan_power: 6.25,
6587
6584
  used_for_whole_building_ventilation: true)
6588
6585
  hpxml.ventilation_fans.add(id: 'HRV',
6589
6586
  fan_type: HPXML::MechVentTypeHRV,
6590
- tested_flow_rate: 60,
6587
+ tested_flow_rate: 15,
6591
6588
  hours_in_operation: 24,
6592
6589
  sensible_recovery_efficiency: 0.72,
6593
- fan_power: 30,
6590
+ fan_power: 7.5,
6594
6591
  used_for_whole_building_ventilation: true)
6595
6592
  hpxml.ventilation_fans.reverse_each do |vent_fan|
6596
6593
  vent_fan.fan_power /= 2.0
@@ -6603,16 +6600,16 @@ def set_hpxml_ventilation_fans(hpxml_file, hpxml)
6603
6600
  end
6604
6601
  hpxml.ventilation_fans.add(id: 'CFIS',
6605
6602
  fan_type: HPXML::MechVentTypeCFIS,
6606
- tested_flow_rate: 160,
6603
+ tested_flow_rate: 40,
6607
6604
  hours_in_operation: 8,
6608
- fan_power: 150,
6605
+ fan_power: 37.5,
6609
6606
  used_for_whole_building_ventilation: true,
6610
6607
  distribution_system_idref: 'HVACDistribution')
6611
6608
  hpxml.ventilation_fans.add(id: 'CFIS_2',
6612
6609
  fan_type: HPXML::MechVentTypeCFIS,
6613
- tested_flow_rate: 170,
6610
+ tested_flow_rate: 42.5,
6614
6611
  hours_in_operation: 8,
6615
- fan_power: 150,
6612
+ fan_power: 37.5,
6616
6613
  used_for_whole_building_ventilation: true,
6617
6614
  distribution_system_idref: 'HVACDistribution2')
6618
6615
  end
@@ -7031,6 +7028,8 @@ def set_hpxml_solar_thermal_system(hpxml_file, hpxml)
7031
7028
  water_heating_system_idref: 'WaterHeater')
7032
7029
  elsif ['invalid_files/unattached-solar-thermal-system.xml'].include? hpxml_file
7033
7030
  hpxml.solar_thermal_systems[0].water_heating_system_idref = 'foobar'
7031
+ elsif ['invalid_files/solar-fraction-one.xml'].include? hpxml_file
7032
+ hpxml.solar_thermal_systems[0].solar_fraction = 1.0
7034
7033
  end
7035
7034
  end
7036
7035
 
@@ -7084,7 +7083,7 @@ def set_hpxml_generators(hpxml_file, hpxml)
7084
7083
  annual_consumption_kbtu: 8500,
7085
7084
  annual_output_kwh: 500)
7086
7085
  hpxml.generators.add(id: 'Generator2',
7087
- fuel_type: HPXML::FuelTypePropane,
7086
+ fuel_type: HPXML::FuelTypeOil,
7088
7087
  annual_consumption_kbtu: 8500,
7089
7088
  annual_output_kwh: 500)
7090
7089
  elsif ['base-bldgtype-multifamily-shared-generator.xml'].include? hpxml_file
@@ -7385,14 +7384,13 @@ def set_hpxml_dehumidifier(hpxml_file, hpxml)
7385
7384
  rh_setpoint: 0.5,
7386
7385
  fraction_served: 1.0,
7387
7386
  location: HPXML::LocationLivingSpace)
7388
- elsif ['base-appliances-dehumidifier-50percent.xml'].include? hpxml_file
7389
- hpxml.dehumidifiers[0].fraction_served = 0.5
7390
7387
  elsif ['base-appliances-dehumidifier-ief-portable.xml'].include? hpxml_file
7391
7388
  hpxml.dehumidifiers[0].energy_factor = nil
7392
7389
  hpxml.dehumidifiers[0].integrated_energy_factor = 1.5
7393
7390
  elsif ['base-appliances-dehumidifier-ief-whole-home.xml'].include? hpxml_file
7394
7391
  hpxml.dehumidifiers[0].type = HPXML::DehumidifierTypeWholeHome
7395
7392
  elsif ['base-appliances-dehumidifier-multiple.xml'].include? hpxml_file
7393
+ hpxml.dehumidifiers[0].fraction_served = 0.5
7396
7394
  hpxml.dehumidifiers.add(id: 'Dehumidifier2',
7397
7395
  type: HPXML::DehumidifierTypePortable,
7398
7396
  capacity: 30,
@@ -8112,21 +8110,11 @@ if ARGV[0].to_sym == :create_release_zips
8112
8110
  'workflow/sample_files/*.xml',
8113
8111
  'workflow/tests/*.rb',
8114
8112
  'workflow/tests/ASHRAE_Standard_140/*.xml',
8113
+ 'workflow/tests/base_results/*.csv',
8115
8114
  'documentation/index.html',
8116
8115
  'documentation/_static/**/*.*']
8117
8116
 
8118
8117
  if not ENV['CI']
8119
- # Run ASHRAE 140 files
8120
- puts 'Running ASHRAE 140 tests (this will take a minute)...'
8121
- command = "#{OpenStudio.getOpenStudioCLI} workflow/tests/hpxml_translator_test.rb --name=test_ashrae_140 > log.txt"
8122
- system(command)
8123
- results_csv_path = 'workflow/tests/results/results_ashrae_140.csv'
8124
- if not File.exist? results_csv_path
8125
- puts 'ASHRAE 140 results CSV file not generated. Aborting...'
8126
- exit!
8127
- end
8128
- File.delete('log.txt')
8129
-
8130
8118
  # Generate documentation
8131
8119
  puts 'Generating documentation...'
8132
8120
  command = 'sphinx-build -b singlehtml docs/source documentation'
@@ -8165,9 +8153,6 @@ if ARGV[0].to_sym == :create_release_zips
8165
8153
  release_map.each do |zip_path, include_all_epws|
8166
8154
  puts "Creating #{zip_path}..."
8167
8155
  zip = OpenStudio::ZipFile.new(zip_path, false)
8168
- if not ENV['CI']
8169
- zip.addFile(results_csv_path, File.join('OpenStudio-HPXML', results_csv_path))
8170
- end
8171
8156
  files.each do |f|
8172
8157
  Dir[f].each do |file|
8173
8158
  if file.start_with? 'documentation'