urbanopt-cli 0.5.2 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (801) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +8 -0
  3. data/Gemfile +4 -4
  4. data/example_files/Gemfile +8 -8
  5. data/example_files/mappers/Baseline.rb +37 -36
  6. data/example_files/measures/BuildResidentialModel/measure.rb +70 -37
  7. data/example_files/reopt/base_assumptions.json +2 -2
  8. data/example_files/reopt/multiPV_assumptions.json +4 -3
  9. data/example_files/resources/hpxml-measures/.github/pull_request_template.md +1 -1
  10. data/example_files/resources/hpxml-measures/.github/workflows/config.yml +96 -3
  11. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/measure.rb +138 -73
  12. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/measure.xml +509 -487
  13. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/geometry.rb +11 -11
  14. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules.rb +33 -32
  15. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_config.json +388 -0
  16. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_config.md +43 -0
  17. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-coal.osw +5 -5
  18. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-dehumidifier-ief-portable.osw +5 -5
  19. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-dehumidifier-ief-whole-home.osw +5 -5
  20. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-dehumidifier.osw +5 -5
  21. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-gas.osw +5 -5
  22. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-modified.osw +5 -5
  23. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-none.osw +5 -5
  24. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-oil.osw +5 -5
  25. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-propane.osw +5 -5
  26. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-wood.osw +5 -5
  27. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-atticroof-flat.osw +5 -5
  28. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-atticroof-radiant-barrier.osw +5 -5
  29. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-atticroof-unvented-insulated-roof.osw +5 -5
  30. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-atticroof-vented.osw +5 -5
  31. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-bldgtype-multifamily-shared-boiler-only-baseboard.osw +341 -0
  32. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-bldgtype-multifamily-shared-boiler-only-fan-coil.osw +341 -0
  33. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-bldgtype-multifamily-shared-mechvent-preconditioning.osw +8 -8
  34. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-bldgtype-multifamily-shared-mechvent.osw +8 -8
  35. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-bldgtype-multifamily-shared-pv.osw +8 -8
  36. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-bldgtype-multifamily-shared-water-heater.osw +8 -8
  37. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-bldgtype-multifamily.osw +8 -8
  38. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-bldgtype-single-family-attached.osw +5 -5
  39. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-combi-tankless-outside.osw +5 -5
  40. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-combi-tankless.osw +5 -5
  41. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-dwhr.osw +5 -5
  42. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-indirect-outside.osw +5 -5
  43. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-indirect-standbyloss.osw +5 -5
  44. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-indirect-with-solar-fraction.osw +5 -5
  45. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-indirect.osw +5 -5
  46. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-jacket-electric.osw +5 -5
  47. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-jacket-gas.osw +5 -5
  48. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-jacket-hpwh.osw +5 -5
  49. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-jacket-indirect.osw +5 -5
  50. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-low-flow-fixtures.osw +5 -5
  51. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-none.osw +5 -5
  52. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-recirc-demand.osw +5 -5
  53. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-recirc-manual.osw +5 -5
  54. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-recirc-nocontrol.osw +5 -5
  55. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-recirc-temperature.osw +5 -5
  56. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-recirc-timer.osw +5 -5
  57. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-solar-direct-evacuated-tube.osw +5 -5
  58. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-solar-direct-flat-plate.osw +5 -5
  59. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-solar-direct-ics.osw +5 -5
  60. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-solar-fraction.osw +5 -5
  61. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-solar-indirect-flat-plate.osw +5 -5
  62. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-solar-thermosyphon-flat-plate.osw +5 -5
  63. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-coal.osw +5 -5
  64. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-elec-uef.osw +5 -5
  65. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-gas-outside.osw +5 -5
  66. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-gas-uef.osw +5 -5
  67. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-gas.osw +5 -5
  68. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-heat-pump-outside.osw +5 -5
  69. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-heat-pump-uef.osw +5 -5
  70. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-heat-pump-with-solar-fraction.osw +5 -5
  71. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-heat-pump-with-solar.osw +5 -5
  72. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-heat-pump.osw +5 -5
  73. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-oil.osw +5 -5
  74. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-wood.osw +5 -5
  75. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tankless-electric-outside.osw +5 -5
  76. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tankless-electric-uef.osw +5 -5
  77. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tankless-electric.osw +5 -5
  78. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tankless-gas-uef.osw +5 -5
  79. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tankless-gas-with-solar-fraction.osw +5 -5
  80. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tankless-gas-with-solar.osw +5 -5
  81. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tankless-gas.osw +5 -5
  82. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tankless-propane.osw +5 -5
  83. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-2stories-garage.osw +5 -5
  84. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-2stories.osw +5 -5
  85. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-beds-1.osw +5 -5
  86. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-beds-2.osw +5 -5
  87. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-beds-4.osw +5 -5
  88. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-beds-5.osw +5 -5
  89. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-garage.osw +5 -5
  90. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-infil-ach-house-pressure.osw +5 -5
  91. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-infil-cfm-house-pressure.osw +5 -5
  92. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-infil-cfm50.osw +5 -5
  93. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-infil-flue.osw +5 -5
  94. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-infil-natural-ach.osw +6 -6
  95. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-overhangs.osw +5 -5
  96. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-windows-none.osw +5 -5
  97. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-foundation-ambient.osw +5 -5
  98. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-foundation-conditioned-basement-slab-insulation.osw +5 -5
  99. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-foundation-slab.osw +5 -5
  100. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-foundation-unconditioned-basement-assembly-r.osw +5 -5
  101. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-foundation-unconditioned-basement-wall-insulation.osw +5 -5
  102. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-foundation-unconditioned-basement.osw +5 -5
  103. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-foundation-unvented-crawlspace.osw +5 -5
  104. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-foundation-vented-crawlspace.osw +5 -5
  105. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-air-to-air-heat-pump-1-speed-cooling-only.osw +4 -4
  106. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-air-to-air-heat-pump-1-speed-heating-only.osw +5 -5
  107. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-air-to-air-heat-pump-1-speed.osw +6 -6
  108. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-air-to-air-heat-pump-2-speed.osw +6 -6
  109. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-air-to-air-heat-pump-var-speed.osw +6 -6
  110. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-boiler-coal-only.osw +5 -5
  111. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-boiler-elec-only.osw +5 -5
  112. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-boiler-gas-central-ac-1-speed.osw +5 -5
  113. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-boiler-gas-only.osw +5 -5
  114. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-boiler-oil-only.osw +5 -5
  115. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-boiler-propane-only.osw +5 -5
  116. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-boiler-wood-only.osw +5 -5
  117. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-central-ac-only-1-speed.osw +5 -5
  118. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-central-ac-only-2-speed.osw +5 -5
  119. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-central-ac-only-var-speed.osw +5 -5
  120. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-central-ac-plus-air-to-air-heat-pump-heating.osw +6 -6
  121. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-dual-fuel-air-to-air-heat-pump-1-speed-electric.osw +5 -5
  122. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-dual-fuel-air-to-air-heat-pump-1-speed.osw +5 -5
  123. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-dual-fuel-air-to-air-heat-pump-2-speed.osw +5 -5
  124. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-dual-fuel-air-to-air-heat-pump-var-speed.osw +5 -5
  125. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-dual-fuel-mini-split-heat-pump-ducted.osw +5 -5
  126. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-ducts-leakage-percent.osw +5 -5
  127. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-elec-resistance-only.osw +5 -5
  128. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-evap-cooler-furnace-gas.osw +5 -5
  129. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-evap-cooler-only-ducted.osw +5 -5
  130. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-evap-cooler-only.osw +5 -5
  131. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-fireplace-wood-only.osw +5 -5
  132. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-fixed-heater-gas-only.osw +6 -6
  133. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-floor-furnace-propane-only.osw +5 -5
  134. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-coal-only.osw +5 -5
  135. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-elec-central-ac-1-speed.osw +5 -5
  136. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-elec-only.osw +5 -5
  137. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-gas-central-ac-2-speed.osw +5 -5
  138. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-gas-central-ac-var-speed.osw +5 -5
  139. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-gas-only.osw +5 -5
  140. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-gas-room-ac.osw +5 -5
  141. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-oil-only.osw +5 -5
  142. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-propane-only.osw +5 -5
  143. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-wood-only.osw +5 -5
  144. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-ground-to-air-heat-pump-cooling-only.osw +4 -4
  145. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-ground-to-air-heat-pump-heating-only.osw +4 -4
  146. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-ground-to-air-heat-pump.osw +5 -5
  147. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-install-quality-airflow-defect-furnace-gas-central-ac-1-speed.osw +5 -5
  148. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-install-quality-all-air-to-air-heat-pump-1-speed.osw +6 -6
  149. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-install-quality-all-air-to-air-heat-pump-2-speed.osw +6 -6
  150. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-install-quality-all-air-to-air-heat-pump-var-speed.osw +6 -6
  151. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-install-quality-all-furnace-gas-central-ac-1-speed.osw +5 -5
  152. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-install-quality-all-furnace-gas-central-ac-2-speed.osw +5 -5
  153. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-install-quality-all-furnace-gas-central-ac-var-speed.osw +5 -5
  154. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-install-quality-all-furnace-gas-only.osw +5 -5
  155. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-install-quality-all-ground-to-air-heat-pump.osw +5 -5
  156. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-install-quality-all-mini-split-air-conditioner-only-ducted.osw +5 -5
  157. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-install-quality-all-mini-split-heat-pump-ducted.osw +6 -6
  158. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-install-quality-charge-defect-furnace-gas-central-ac-1-speed.osw +5 -5
  159. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-install-quality-none-furnace-gas-central-ac-1-speed.osw +5 -5
  160. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-mini-split-air-conditioner-only-ducted.osw +5 -5
  161. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-mini-split-air-conditioner-only-ductless.osw +5 -5
  162. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-mini-split-heat-pump-ducted-cooling-only.osw +4 -4
  163. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-mini-split-heat-pump-ducted-heating-only.osw +5 -5
  164. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-mini-split-heat-pump-ducted.osw +6 -6
  165. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-mini-split-heat-pump-ductless.osw +6 -6
  166. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-none.osw +5 -5
  167. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-portable-heater-gas-only.osw +6 -6
  168. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-programmable-thermostat-detailed.osw +8 -8
  169. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-room-ac-only-33percent.osw +5 -5
  170. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-room-ac-only.osw +5 -5
  171. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-setpoints.osw +5 -5
  172. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-stove-oil-only.osw +5 -5
  173. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-stove-wood-pellets-only.osw +5 -5
  174. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-undersized.osw +5 -5
  175. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-wall-furnace-elec-only.osw +5 -5
  176. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-lighting-ceiling-fans.osw +5 -5
  177. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-lighting-detailed.osw +5 -5
  178. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-location-AMY-2012.osw +5 -5
  179. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-location-baltimore-md.osw +5 -5
  180. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-location-dallas-tx.osw +5 -5
  181. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-location-duluth-mn.osw +5 -5
  182. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-location-helena-mt.osw +5 -5
  183. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-location-honolulu-hi.osw +5 -5
  184. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-location-miami-fl.osw +5 -5
  185. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-location-phoenix-az.osw +5 -5
  186. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-location-portland-or.osw +5 -5
  187. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-balanced.osw +5 -5
  188. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-bath-kitchen-fans.osw +5 -5
  189. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-cfis-evap-cooler-only-ducted.osw +5 -5
  190. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-cfis.osw +5 -5
  191. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-erv-atre-asre.osw +5 -5
  192. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-erv.osw +5 -5
  193. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-exhaust-rated-flow-rate.osw +5 -5
  194. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-exhaust.osw +5 -5
  195. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-hrv-asre.osw +5 -5
  196. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-hrv.osw +5 -5
  197. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-supply.osw +5 -5
  198. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-whole-house-fan.osw +5 -5
  199. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-misc-defaults.osw +5 -5
  200. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-misc-loads-large-uncommon.osw +5 -5
  201. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-misc-loads-large-uncommon2.osw +5 -5
  202. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-misc-neighbor-shading.osw +5 -5
  203. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-misc-shielding-of-home.osw +5 -5
  204. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-misc-usage-multiplier.osw +5 -5
  205. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-pv.osw +5 -5
  206. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-schedules-stochastic-vacant.osw +5 -5
  207. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-schedules-stochastic.osw +5 -5
  208. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-schedules-user-specified.osw +5 -5
  209. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-simcontrol-calendar-year-custom.osw +5 -5
  210. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-simcontrol-daylight-saving-custom.osw +5 -5
  211. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-simcontrol-daylight-saving-disabled.osw +5 -5
  212. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-simcontrol-runperiod-1-month.osw +5 -5
  213. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-simcontrol-timestep-10-mins.osw +5 -5
  214. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base.osw +5 -5
  215. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/build_residential_hpxml_test.rb +4 -2
  216. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-auto.osw +5 -5
  217. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-double-exterior.osw +8 -8
  218. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-double-loaded-interior.osw +8 -8
  219. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-eaves.osw +8 -8
  220. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-single-exterior-front.osw +8 -8
  221. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-double-loaded-interior.osw +8 -8
  222. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-left-bottom-double-loaded-interior.osw +8 -8
  223. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-left-bottom.osw +8 -8
  224. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-left-middle-double-loaded-interior.osw +8 -8
  225. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-left-middle.osw +8 -8
  226. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-left-top-double-loaded-interior.osw +8 -8
  227. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-left-top.osw +8 -8
  228. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-middle-bottom-double-loaded-interior.osw +8 -8
  229. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-middle-bottom.osw +8 -8
  230. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-middle-middle-double-loaded-interior.osw +8 -8
  231. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-middle-middle.osw +8 -8
  232. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-middle-top-double-loaded-interior.osw +8 -8
  233. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-middle-top.osw +8 -8
  234. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-right-bottom-double-loaded-interior.osw +8 -8
  235. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-right-bottom.osw +8 -8
  236. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-right-middle-double-loaded-interior.osw +8 -8
  237. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-right-middle.osw +8 -8
  238. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-right-top-double-loaded-interior.osw +8 -8
  239. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-right-top.osw +8 -8
  240. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab.osw +8 -8
  241. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-double-loaded-interior.osw +8 -8
  242. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-left-bottom-double-loaded-interior.osw +8 -8
  243. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-left-bottom.osw +8 -8
  244. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-left-middle-double-loaded-interior.osw +8 -8
  245. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-left-middle.osw +8 -8
  246. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-left-top-double-loaded-interior.osw +8 -8
  247. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-left-top.osw +8 -8
  248. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-middle-bottom-double-loaded-interior.osw +8 -8
  249. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-middle-bottom.osw +8 -8
  250. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-middle-middle-double-loaded-interior.osw +8 -8
  251. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-middle-middle.osw +8 -8
  252. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-middle-top-double-loaded-interior.osw +8 -8
  253. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-middle-top.osw +8 -8
  254. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-right-bottom-double-loaded-interior.osw +8 -8
  255. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-right-bottom.osw +8 -8
  256. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-right-middle-double-loaded-interior.osw +8 -8
  257. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-right-middle.osw +8 -8
  258. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-right-top-double-loaded-interior.osw +8 -8
  259. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-right-top.osw +8 -8
  260. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace.osw +8 -8
  261. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-double-loaded-interior.osw +8 -8
  262. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-left-bottom-double-loaded-interior.osw +8 -8
  263. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-left-bottom.osw +8 -8
  264. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-left-middle-double-loaded-interior.osw +8 -8
  265. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-left-middle.osw +8 -8
  266. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-left-top-double-loaded-interior.osw +8 -8
  267. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-left-top.osw +8 -8
  268. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-middle-bottom-double-loaded-interior.osw +8 -8
  269. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-middle-bottom.osw +8 -8
  270. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-middle-middle-double-loaded-interior.osw +8 -8
  271. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-middle-middle.osw +8 -8
  272. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-middle-top-double-loaded-interior.osw +8 -8
  273. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-middle-top.osw +8 -8
  274. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-right-bottom-double-loaded-interior.osw +8 -8
  275. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-right-bottom.osw +8 -8
  276. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-right-middle-double-loaded-interior.osw +8 -8
  277. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-right-middle.osw +8 -8
  278. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-right-top-double-loaded-interior.osw +8 -8
  279. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-right-top.osw +8 -8
  280. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace.osw +8 -8
  281. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-atticroof-conditioned-eaves-gable.osw +5 -5
  282. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-atticroof-conditioned-eaves-hip.osw +5 -5
  283. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-atticroof-flat.osw +339 -0
  284. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-double-exterior.osw +5 -5
  285. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-double-loaded-interior.osw +5 -5
  286. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-single-exterior-front.osw +5 -5
  287. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-slab-middle.osw +5 -5
  288. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-slab-right.osw +5 -5
  289. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-slab.osw +5 -5
  290. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-unconditioned-basement-middle.osw +5 -5
  291. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-unconditioned-basement-right.osw +5 -5
  292. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-unconditioned-basement.osw +5 -5
  293. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-unvented-crawlspace-middle.osw +5 -5
  294. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-unvented-crawlspace-right.osw +5 -5
  295. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-unvented-crawlspace.osw +5 -5
  296. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-vented-crawlspace-middle.osw +5 -5
  297. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-vented-crawlspace-right.osw +5 -5
  298. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-vented-crawlspace.osw +5 -5
  299. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-dhw-solar-latitude.osw +5 -5
  300. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-enclosure-atticroof-conditioned-eaves-gable.osw +5 -5
  301. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-enclosure-atticroof-conditioned-eaves-hip.osw +5 -5
  302. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-enclosure-garage-atticroof-conditioned.osw +5 -5
  303. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-enclosure-garage-partially-protruded.osw +5 -5
  304. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-enclosure-windows-shading.osw +5 -5
  305. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-gas-hot-tub-heater-with-zero-kwh.osw +337 -0
  306. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-gas-pool-heater-with-zero-kwh.osw +337 -0
  307. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-pv-roofpitch.osw +5 -5
  308. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-schedules-random-seed.osw +5 -5
  309. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-second-heating-system-boiler-to-heat-pump.osw +5 -5
  310. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-second-heating-system-boiler-to-heating-system.osw +5 -5
  311. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-second-heating-system-fireplace-to-heat-pump.osw +5 -5
  312. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-second-heating-system-fireplace-to-heating-system.osw +4 -4
  313. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-second-heating-system-portable-heater-to-heat-pump.osw +5 -5
  314. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-second-heating-system-portable-heater-to-heating-system.osw +4 -4
  315. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-second-refrigerator.osw +5 -5
  316. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-zero-clothes-washer-kwh.osw +5 -5
  317. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-zero-dishwasher-kwh.osw +5 -5
  318. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-zero-extra-refrigerator-kwh.osw +5 -5
  319. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-zero-freezer-kwh.osw +5 -5
  320. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-zero-refrigerator-kwh.osw +5 -5
  321. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/conditioned-attic-with-floor-insulation.osw +5 -5
  322. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/conditioned-attic-with-one-floor-above-grade.osw +5 -5
  323. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/conditioned-basement-with-ceiling-insulation.osw +5 -5
  324. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/cooling-system-and-heat-pump.osw +5 -5
  325. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/dhw-indirect-without-boiler.osw +5 -5
  326. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/ducts-location-and-areas-not-same-type.osw +5 -5
  327. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/foundation-wall-insulation-greater-than-height.osw +5 -5
  328. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/heating-system-and-heat-pump.osw +5 -5
  329. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/multifamily-bottom-crawlspace-zero-foundation-height.osw +8 -8
  330. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/multifamily-bottom-slab-non-zero-foundation-height.osw +8 -8
  331. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/multifamily-no-building-orientation.osw +7 -7
  332. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/multipliers-without-fuel-loads.osw +5 -5
  333. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/multipliers-without-other-plug-loads.osw +5 -5
  334. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/multipliers-without-tv-plug-loads.osw +5 -5
  335. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/multipliers-without-vehicle-plug-loads.osw +5 -5
  336. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/multipliers-without-well-pump-plug-loads.osw +5 -5
  337. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/non-electric-heat-pump-water-heater.osw +5 -5
  338. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/non-integer-ceiling-fan-quantity.osw +5 -5
  339. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/non-integer-geometry-num-bathrooms.osw +5 -5
  340. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/second-heating-system-but-no-primary-heating.osw +5 -5
  341. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/second-heating-system-serves-majority-heat.osw +5 -5
  342. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/second-heating-system-serves-total-heat-load.osw +5 -5
  343. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/single-family-attached-ambient.osw +5 -5
  344. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/single-family-attached-no-building-orientation.osw +5 -5
  345. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/single-family-detached-finished-basement-zero-foundation-height.osw +5 -5
  346. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/single-family-detached-slab-non-zero-foundation-height.osw +5 -5
  347. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/{base-appliances-dehumidifier-50percent.osw → invalid_files/single-family-detached-with-shared-system.osw} +22 -22
  348. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/slab-non-zero-foundation-height-above-grade.osw +5 -5
  349. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/unconditioned-basement-with-wall-and-ceiling-insulation.osw +5 -5
  350. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/unvented-attic-with-floor-and-roof-insulation.osw +5 -5
  351. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/unvented-crawlspace-with-wall-and-ceiling-insulation.osw +5 -5
  352. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/vented-attic-with-floor-and-roof-insulation.osw +5 -5
  353. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/vented-crawlspace-with-wall-and-ceiling-insulation.osw +5 -5
  354. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/zero-number-of-bedrooms.osw +5 -5
  355. data/example_files/resources/hpxml-measures/Changelog.md +14 -3
  356. data/example_files/resources/hpxml-measures/Gemfile +0 -3
  357. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/measure.rb +136 -528
  358. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/measure.xml +131 -106
  359. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/BaseElements.xsd +2 -0
  360. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/EPvalidator.xml +31 -14
  361. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/HPXMLDataTypes.xsd +19 -0
  362. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/airflow.rb +5 -1
  363. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/constants.rb +4 -0
  364. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/constructions.rb +62 -0
  365. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/energyplus.rb +1 -0
  366. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/generator.rb +2 -1
  367. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/geometry.rb +388 -4
  368. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hpxml.rb +54 -14
  369. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hpxml_defaults.rb +40 -4
  370. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hvac.rb +110 -89
  371. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hvac_sizing.rb +2 -4
  372. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/meta_measure.rb +21 -10
  373. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/minitest_helper.rb +4 -26
  374. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/misc_loads.rb +12 -11
  375. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/pv.rb +2 -1
  376. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/schedules.rb +28 -1
  377. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/simcontrols.rb +20 -9
  378. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/version.rb +1 -1
  379. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/waterheater.rb +1 -0
  380. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/xmlhelper.rb +1 -0
  381. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_airflow.rb +2 -28
  382. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_defaults.rb +16 -7
  383. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/{test_constructions.rb → test_enclosure.rb} +12 -16
  384. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_generator.rb +0 -1
  385. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_hotwater_appliance.rb +0 -1
  386. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_hvac.rb +13 -38
  387. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_hvac_sizing.rb +0 -1
  388. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_lighting.rb +0 -1
  389. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_location.rb +0 -1
  390. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_miscloads.rb +0 -1
  391. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_pv.rb +0 -1
  392. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_simcontrols.rb +0 -1
  393. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_validation.rb +1 -2
  394. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_water_heater.rb +0 -1
  395. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/util.rb +26 -0
  396. data/example_files/resources/hpxml-measures/README.md +0 -1
  397. data/example_files/resources/hpxml-measures/Rakefile +1 -2
  398. data/example_files/resources/hpxml-measures/SimulationOutputReport/measure.rb +32 -13
  399. data/example_files/resources/hpxml-measures/SimulationOutputReport/measure.xml +37 -9
  400. data/example_files/resources/hpxml-measures/SimulationOutputReport/tests/output_report_test.rb +24 -7
  401. data/example_files/resources/hpxml-measures/docs/source/getting_started.rst +1 -1
  402. data/example_files/resources/hpxml-measures/docs/source/intro.rst +1 -0
  403. data/example_files/resources/hpxml-measures/docs/source/workflow_inputs.rst +75 -58
  404. data/example_files/resources/hpxml-measures/docs/source/workflow_outputs.rst +5 -1
  405. data/example_files/resources/hpxml-measures/tasks.rb +248 -263
  406. data/example_files/resources/hpxml-measures/weather/USA_CO_Denver.Intl.AP.725650_TMY3-cache.csv +10 -10
  407. data/example_files/resources/hpxml-measures/workflow/run_simulation.rb +17 -4
  408. data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-coal.xml +3 -2
  409. data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-dehumidifier-ief-portable.xml +3 -2
  410. data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-dehumidifier-ief-whole-home.xml +3 -2
  411. data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-dehumidifier-multiple.xml +3 -2
  412. data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-dehumidifier.xml +3 -2
  413. data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-gas.xml +3 -2
  414. data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-modified.xml +3 -2
  415. data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-none.xml +3 -2
  416. data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-oil.xml +3 -2
  417. data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-propane.xml +3 -2
  418. data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-wood.xml +3 -2
  419. data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-cathedral.xml +3 -2
  420. data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-conditioned.xml +3 -2
  421. data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-flat.xml +3 -2
  422. data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-radiant-barrier.xml +3 -2
  423. data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-unvented-insulated-roof.xml +3 -2
  424. data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-vented.xml +3 -2
  425. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-adjacent-to-multifamily-buffer-space.xml +3 -2
  426. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-adjacent-to-multiple.xml +3 -2
  427. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-adjacent-to-non-freezing-space.xml +3 -2
  428. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-adjacent-to-other-heated-space.xml +3 -2
  429. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-adjacent-to-other-housing-unit.xml +3 -2
  430. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-chiller-fan-coil.xml +0 -18
  431. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-chiller-water-loop-heat-pump.xml +1 -0
  432. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-cooling-tower-water-loop-heat-pump.xml +1 -0
  433. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-only-fan-coil-eae.xml +0 -18
  434. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-only-fan-coil.xml +0 -18
  435. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-only-water-loop-heat-pump.xml +1 -0
  436. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-chiller-only-fan-coil.xml +0 -18
  437. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-chiller-only-water-loop-heat-pump.xml +1 -0
  438. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-cooling-tower-only-water-loop-heat-pump.xml +1 -0
  439. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-generator.xml +3 -2
  440. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-ground-loop-ground-to-air-heat-pump.xml +4 -3
  441. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-laundry-room.xml +3 -2
  442. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-mechvent-multiple.xml +6 -4
  443. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-mechvent-preconditioning.xml +3 -2
  444. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-mechvent.xml +3 -2
  445. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-pv.xml +3 -2
  446. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-water-heater-recirc.xml +3 -2
  447. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-water-heater.xml +3 -2
  448. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily.xml +3 -2
  449. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-single-family-attached.xml +3 -2
  450. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-combi-tankless-outside.xml +1 -1
  451. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-combi-tankless.xml +1 -1
  452. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater-2-speed.xml +2 -1
  453. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater-gshp.xml +4 -3
  454. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater-hpwh.xml +3 -2
  455. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater-tankless.xml +2 -1
  456. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater-var-speed.xml +2 -1
  457. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater.xml +2 -1
  458. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-dwhr.xml +3 -2
  459. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect-dse.xml +1 -1
  460. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect-outside.xml +1 -1
  461. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect-standbyloss.xml +1 -1
  462. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect-with-solar-fraction.xml +1 -1
  463. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect.xml +1 -1
  464. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-jacket-electric.xml +3 -2
  465. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-jacket-gas.xml +3 -2
  466. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-jacket-hpwh.xml +3 -2
  467. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-jacket-indirect.xml +1 -1
  468. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-low-flow-fixtures.xml +3 -2
  469. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-multiple.xml +1 -1
  470. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-none.xml +3 -2
  471. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-recirc-demand.xml +3 -2
  472. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-recirc-manual.xml +3 -2
  473. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-recirc-nocontrol.xml +3 -2
  474. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-recirc-temperature.xml +3 -2
  475. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-recirc-timer.xml +3 -2
  476. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-direct-evacuated-tube.xml +3 -2
  477. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-direct-flat-plate.xml +3 -2
  478. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-direct-ics.xml +3 -2
  479. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-fraction.xml +3 -2
  480. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-indirect-flat-plate.xml +3 -2
  481. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-thermosyphon-flat-plate.xml +3 -2
  482. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-coal.xml +3 -2
  483. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-elec-uef.xml +3 -2
  484. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-gas-outside.xml +3 -2
  485. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-gas-uef.xml +3 -2
  486. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-gas.xml +3 -2
  487. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump-outside.xml +3 -2
  488. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump-uef.xml +3 -2
  489. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump-with-solar-fraction.xml +3 -2
  490. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump-with-solar.xml +3 -2
  491. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump.xml +3 -2
  492. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-oil.xml +3 -2
  493. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-wood.xml +3 -2
  494. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-electric-outside.xml +3 -2
  495. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-electric-uef.xml +3 -2
  496. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-electric.xml +3 -2
  497. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-gas-uef.xml +3 -2
  498. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-gas-with-solar-fraction.xml +3 -2
  499. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-gas-with-solar.xml +3 -2
  500. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-gas.xml +3 -2
  501. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-propane.xml +3 -2
  502. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-2stories-garage.xml +3 -2
  503. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-2stories.xml +3 -2
  504. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-beds-1.xml +3 -2
  505. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-beds-2.xml +3 -2
  506. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-beds-4.xml +3 -2
  507. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-beds-5.xml +3 -2
  508. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-garage.xml +3 -2
  509. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-ach-house-pressure.xml +3 -2
  510. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-cfm-house-pressure.xml +3 -2
  511. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-cfm50.xml +3 -2
  512. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-flue.xml +3 -2
  513. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-natural-ach.xml +4 -3
  514. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-overhangs.xml +3 -2
  515. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-rooftypes.xml +3 -2
  516. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-skylights-shading.xml +5 -4
  517. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-skylights.xml +5 -4
  518. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-split-level.xml +3 -2
  519. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-split-surfaces.xml +21 -20
  520. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-split-surfaces2.xml +21 -20
  521. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-walltypes.xml +3 -2
  522. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-windows-none.xml +3 -2
  523. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-windows-shading.xml +3 -2
  524. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-ambient.xml +3 -2
  525. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-basement-garage.xml +3 -2
  526. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-complex.xml +3 -2
  527. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-conditioned-basement-slab-insulation.xml +3 -2
  528. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-conditioned-basement-wall-interior-insulation.xml +3 -2
  529. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-multiple.xml +3 -2
  530. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-slab.xml +3 -2
  531. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-unconditioned-basement-above-grade.xml +3 -2
  532. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-unconditioned-basement-assembly-r.xml +3 -2
  533. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-unconditioned-basement-wall-insulation.xml +3 -2
  534. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-unconditioned-basement.xml +3 -2
  535. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-unvented-crawlspace.xml +3 -2
  536. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-vented-crawlspace.xml +3 -2
  537. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-walkout-basement.xml +3 -2
  538. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-1-speed-cooling-only.xml +2 -1
  539. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-1-speed-heating-only.xml +4 -3
  540. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-1-speed.xml +5 -4
  541. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-2-speed.xml +5 -4
  542. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-var-speed.xml +5 -4
  543. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-1-speed-cooling-only.xml +1 -0
  544. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-1-speed-heating-only.xml +1 -0
  545. 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
  546. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-1-speed.xml +1 -0
  547. 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
  548. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-2-speed.xml +1 -0
  549. 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
  550. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-var-speed.xml +1 -0
  551. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-boiler-gas-central-ac-1-speed.xml +1 -0
  552. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-central-ac-only-1-speed.xml +1 -0
  553. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-central-ac-only-2-speed.xml +1 -0
  554. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-central-ac-only-var-speed.xml +1 -0
  555. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-central-ac-plus-air-to-air-heat-pump-heating.xml +1 -0
  556. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-dual-fuel-air-to-air-heat-pump-1-speed.xml +1 -0
  557. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-dual-fuel-mini-split-heat-pump-ducted.xml +1 -0
  558. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-evap-cooler-furnace-gas.xml +1 -0
  559. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-furnace-elec-only.xml +1 -0
  560. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-furnace-gas-central-ac-2-speed.xml +1 -0
  561. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-furnace-gas-central-ac-var-speed.xml +1 -0
  562. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-furnace-gas-only.xml +1 -0
  563. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-furnace-gas-room-ac.xml +1 -0
  564. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-ground-to-air-heat-pump-cooling-only.xml +1 -0
  565. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-ground-to-air-heat-pump-heating-only.xml +1 -0
  566. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-ground-to-air-heat-pump-manual-s-oversize-allowances.xml +1 -0
  567. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-ground-to-air-heat-pump.xml +1 -0
  568. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-mini-split-air-conditioner-only-ducted.xml +1 -0
  569. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-mini-split-heat-pump-ducted-cooling-only.xml +1 -0
  570. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-mini-split-heat-pump-ducted-heating-only.xml +1 -0
  571. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-mini-split-heat-pump-ducted-manual-s-oversize-allowances.xml +1 -0
  572. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-mini-split-heat-pump-ducted.xml +1 -0
  573. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize.xml +1 -0
  574. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-coal-only.xml +1 -1
  575. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-elec-only.xml +1 -1
  576. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-gas-central-ac-1-speed.xml +3 -2
  577. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-gas-only.xml +1 -1
  578. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-oil-only.xml +1 -1
  579. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-propane-only.xml +1 -1
  580. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-wood-only.xml +1 -1
  581. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-central-ac-only-1-speed.xml +2 -1
  582. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-central-ac-only-2-speed.xml +2 -1
  583. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-central-ac-only-var-speed.xml +2 -1
  584. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-central-ac-plus-air-to-air-heat-pump-heating.xml +6 -5
  585. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dse.xml +2 -2
  586. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dual-fuel-air-to-air-heat-pump-1-speed-electric.xml +4 -3
  587. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dual-fuel-air-to-air-heat-pump-1-speed.xml +4 -3
  588. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dual-fuel-air-to-air-heat-pump-2-speed.xml +4 -3
  589. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dual-fuel-air-to-air-heat-pump-var-speed.xml +4 -3
  590. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dual-fuel-mini-split-heat-pump-ducted.xml +4 -3
  591. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ducts-leakage-percent.xml +3 -2
  592. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-elec-resistance-only.xml +1 -1
  593. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-evap-cooler-furnace-gas.xml +3 -2
  594. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-evap-cooler-only-ducted.xml +3 -2
  595. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-evap-cooler-only.xml +1 -1
  596. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-fireplace-wood-only.xml +1 -1
  597. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-fixed-heater-gas-only.xml +1 -52
  598. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-floor-furnace-propane-only.xml +1 -1
  599. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-coal-only.xml +2 -1
  600. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-elec-central-ac-1-speed.xml +3 -2
  601. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-elec-only.xml +2 -1
  602. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-gas-central-ac-2-speed.xml +3 -2
  603. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-gas-central-ac-var-speed.xml +3 -2
  604. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-gas-only.xml +2 -1
  605. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-gas-room-ac.xml +3 -2
  606. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-oil-only.xml +2 -1
  607. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-propane-only.xml +2 -1
  608. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-wood-only.xml +2 -1
  609. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-x3-dse.xml +4 -4
  610. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ground-to-air-heat-pump-cooling-only.xml +2 -1
  611. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ground-to-air-heat-pump-heating-only.xml +3 -2
  612. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ground-to-air-heat-pump.xml +4 -3
  613. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-airflow-defect-furnace-gas-central-ac-1-speed.xml +3 -2
  614. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-all-air-to-air-heat-pump-1-speed.xml +5 -4
  615. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-all-air-to-air-heat-pump-2-speed.xml +5 -4
  616. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-all-air-to-air-heat-pump-var-speed.xml +5 -4
  617. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-all-furnace-gas-central-ac-1-speed.xml +3 -2
  618. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-all-furnace-gas-central-ac-2-speed.xml +3 -2
  619. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-all-furnace-gas-central-ac-var-speed.xml +3 -2
  620. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-all-furnace-gas-only.xml +2 -1
  621. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-all-ground-to-air-heat-pump.xml +4 -3
  622. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-all-mini-split-air-conditioner-only-ducted.xml +2 -1
  623. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-all-mini-split-heat-pump-ducted.xml +5 -4
  624. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-blower-efficiency-furnace-gas-central-ac-1-speed.xml +3 -2
  625. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-charge-defect-furnace-gas-central-ac-1-speed.xml +3 -2
  626. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-none-furnace-gas-central-ac-1-speed.xml +3 -2
  627. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-air-conditioner-only-ducted.xml +2 -1
  628. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-air-conditioner-only-ductless.xml +1 -1
  629. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ducted-cooling-only.xml +2 -1
  630. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ducted-heating-only.xml +4 -3
  631. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ducted.xml +5 -4
  632. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ductless.xml +3 -3
  633. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-multiple.xml +9 -5
  634. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-portable-heater-gas-only.xml +1 -52
  635. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-programmable-thermostat-detailed.xml +6 -5
  636. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-programmable-thermostat.xml +3 -2
  637. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-room-ac-only-33percent.xml +1 -1
  638. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-room-ac-only.xml +1 -1
  639. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-setpoints.xml +3 -2
  640. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-stove-oil-only.xml +1 -1
  641. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-stove-wood-pellets-only.xml +1 -1
  642. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-undersized-allow-increased-fixed-capacities.xml +3 -2
  643. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-undersized.xml +3 -2
  644. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-wall-furnace-elec-only.xml +1 -1
  645. data/example_files/resources/hpxml-measures/workflow/sample_files/base-lighting-ceiling-fans.xml +3 -2
  646. data/example_files/resources/hpxml-measures/workflow/sample_files/base-lighting-detailed.xml +3 -2
  647. data/example_files/resources/hpxml-measures/workflow/sample_files/base-lighting-none.xml +3 -2
  648. data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-AMY-2012.xml +3 -2
  649. data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-baltimore-md.xml +3 -2
  650. data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-dallas-tx.xml +3 -2
  651. data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-duluth-mn.xml +3 -2
  652. data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-helena-mt.xml +3 -2
  653. data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-honolulu-hi.xml +3 -2
  654. data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-miami-fl.xml +3 -2
  655. data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-phoenix-az.xml +3 -2
  656. data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-portland-or.xml +3 -2
  657. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-balanced.xml +3 -2
  658. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-bath-kitchen-fans.xml +3 -2
  659. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-cfis-dse.xml +2 -2
  660. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-cfis-evap-cooler-only-ducted.xml +3 -2
  661. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-cfis.xml +3 -2
  662. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-erv-atre-asre.xml +3 -2
  663. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-erv.xml +3 -2
  664. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-exhaust-rated-flow-rate.xml +3 -2
  665. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-exhaust.xml +3 -2
  666. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-hrv-asre.xml +3 -2
  667. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-hrv.xml +3 -2
  668. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-multiple.xml +30 -28
  669. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-supply.xml +3 -2
  670. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-whole-house-fan.xml +3 -2
  671. data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-defaults.xml +3 -2
  672. data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-generators.xml +4 -3
  673. data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-loads-large-uncommon.xml +3 -2
  674. data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-loads-large-uncommon2.xml +3 -2
  675. data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-loads-none.xml +3 -2
  676. data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-neighbor-shading.xml +3 -2
  677. data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-shielding-of-home.xml +3 -2
  678. data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-usage-multiplier.xml +3 -2
  679. data/example_files/resources/hpxml-measures/workflow/sample_files/base-multiple-buildings.xml +9 -6
  680. data/example_files/resources/hpxml-measures/workflow/sample_files/base-pv.xml +3 -2
  681. data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-stochastic-vacant.xml +3 -2
  682. data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-stochastic.xml +3 -2
  683. data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-user-specified.xml +3 -2
  684. data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-calendar-year-custom.xml +3 -2
  685. data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-daylight-saving-custom.xml +3 -2
  686. data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-daylight-saving-disabled.xml +3 -2
  687. data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-runperiod-1-month.xml +3 -2
  688. data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-timestep-10-mins.xml +3 -2
  689. data/example_files/resources/hpxml-measures/workflow/sample_files/base.xml +3 -2
  690. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/boiler-invalid-afue.xml +1 -1
  691. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/cfis-with-hydronic-distribution.xml +1 -1
  692. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/clothes-dryer-location.xml +3 -2
  693. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/clothes-washer-location.xml +3 -2
  694. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/cooking-range-location.xml +3 -2
  695. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/dehumidifier-fraction-served.xml +3 -2
  696. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/dehumidifier-setpoints.xml +3 -2
  697. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/dhw-frac-load-served.xml +1 -1
  698. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/dhw-invalid-ef-tank.xml +3 -2
  699. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/dhw-invalid-uef-tank-heat-pump.xml +3 -2
  700. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/dishwasher-location.xml +3 -2
  701. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/duct-leakage-cfm25.xml +3 -2
  702. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/duct-leakage-percent.xml +3 -2
  703. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/duct-location-unconditioned-space.xml +3 -2
  704. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/duct-location.xml +3 -2
  705. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/duplicate-id.xml +3 -2
  706. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-attic-missing-roof.xml +3 -2
  707. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-basement-missing-exterior-foundation-wall.xml +3 -2
  708. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-basement-missing-slab.xml +3 -2
  709. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-floor-area-exceeds-cfa.xml +4 -3
  710. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-floor-area-exceeds-cfa2.xml +4 -3
  711. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-garage-missing-exterior-wall.xml +3 -2
  712. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-garage-missing-roof-ceiling.xml +3 -2
  713. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-garage-missing-slab.xml +3 -2
  714. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-living-missing-ceiling-roof.xml +3 -2
  715. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-living-missing-exterior-wall.xml +3 -2
  716. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-living-missing-floor-slab.xml +3 -2
  717. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/frac-sensible-fuel-load.xml +3 -2
  718. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/frac-sensible-plug-load.xml +3 -2
  719. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/frac-total-fuel-load.xml +3 -2
  720. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/frac-total-plug-load.xml +3 -2
  721. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/furnace-invalid-afue.xml +3 -2
  722. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/generator-number-of-bedrooms-served.xml +3 -2
  723. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/generator-output-greater-than-consumption.xml +4 -3
  724. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/heat-pump-mixed-fixed-and-autosize-capacities.xml +2 -1
  725. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/hvac-distribution-multiple-attached-cooling.xml +9 -5
  726. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/hvac-distribution-multiple-attached-heating.xml +9 -5
  727. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/hvac-distribution-return-duct-leakage-missing.xml +3 -2
  728. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/hvac-dse-multiple-attached-cooling.xml +3 -3
  729. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/hvac-dse-multiple-attached-heating.xml +3 -3
  730. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/hvac-frac-load-served.xml +9 -5
  731. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/hvac-inconsistent-fan-powers.xml +3 -2
  732. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/hvac-invalid-distribution-system-type.xml +3 -2
  733. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/hvac-shared-negative-seer-eq.xml +407 -0
  734. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-assembly-effective-rvalue.xml +3 -2
  735. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-datatype-boolean.xml +3 -2
  736. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-datatype-float.xml +3 -2
  737. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-datatype-integer.xml +3 -2
  738. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-daylight-saving.xml +3 -2
  739. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-distribution-cfa-served.xml +3 -2
  740. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-epw-filepath.xml +3 -2
  741. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-facility-type-equipment.xml +3 -2
  742. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-facility-type-surfaces.xml +3 -2
  743. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-foundation-wall-properties.xml +3 -2
  744. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-id.xml +5 -4
  745. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-id2.xml +5 -4
  746. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-infiltration-volume.xml +3 -2
  747. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-input-parameters.xml +3 -2
  748. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-neighbor-shading-azimuth.xml +3 -2
  749. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-number-of-bedrooms-served.xml +3 -2
  750. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-number-of-conditioned-floors.xml +3 -2
  751. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-number-of-units-served.xml +3 -2
  752. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-relatedhvac-desuperheater.xml +2 -1
  753. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-relatedhvac-dhw-indirect.xml +1 -1
  754. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-runperiod.xml +3 -2
  755. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-schema-version.xml +3 -2
  756. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-shared-vent-in-unit-flowrate.xml +3 -2
  757. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-timestep.xml +3 -2
  758. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-window-height.xml +3 -2
  759. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/lighting-fractions.xml +3 -2
  760. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/missing-duct-location.xml +9 -5
  761. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/missing-elements.xml +3 -2
  762. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/multifamily-reference-appliance.xml +3 -2
  763. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/multifamily-reference-duct.xml +3 -2
  764. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/multifamily-reference-surface.xml +3 -2
  765. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/multifamily-reference-water-heater.xml +3 -2
  766. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/multiple-buildings-without-building-id.xml +9 -6
  767. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/multiple-buildings-wrong-building-id.xml +9 -6
  768. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/net-area-negative-roof.xml +4 -3
  769. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/net-area-negative-wall.xml +3 -2
  770. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/num-bedrooms-exceeds-limit.xml +3 -2
  771. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/orphaned-hvac-distribution.xml +2 -1
  772. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/refrigerator-location.xml +3 -2
  773. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/refrigerators-multiple-primary.xml +3 -2
  774. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/refrigerators-no-primary.xml +3 -2
  775. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/repeated-relatedhvac-desuperheater.xml +2 -1
  776. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/repeated-relatedhvac-dhw-indirect.xml +1 -1
  777. data/example_files/resources/hpxml-measures/workflow/sample_files/{base-appliances-dehumidifier-50percent.xml → invalid_files/solar-fraction-one.xml} +570 -524
  778. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/solar-thermal-system-with-combi-tankless.xml +1 -1
  779. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/solar-thermal-system-with-desuperheater.xml +2 -1
  780. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/solar-thermal-system-with-dhw-indirect.xml +1 -1
  781. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/unattached-cfis.xml +3 -2
  782. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/unattached-door.xml +3 -2
  783. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/unattached-hvac-distribution.xml +3 -2
  784. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/unattached-shared-clothes-washer-water-heater.xml +3 -2
  785. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/unattached-shared-dishwasher-water-heater.xml +3 -2
  786. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/unattached-skylight.xml +5 -4
  787. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/unattached-solar-thermal-system.xml +3 -2
  788. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/unattached-window.xml +3 -2
  789. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/water-heater-location-other.xml +3 -2
  790. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/water-heater-location.xml +3 -2
  791. data/example_files/resources/hpxml-measures/workflow/template.osw +1 -0
  792. data/example_files/resources/hpxml-measures/workflow/tests/base_results/results.csv +294 -0
  793. data/example_files/resources/hpxml-measures/workflow/tests/base_results/results_ashrae_140.csv +27 -0
  794. data/example_files/resources/hpxml-measures/workflow/tests/base_results/results_hvac_sizing.csv +294 -0
  795. data/example_files/resources/hpxml-measures/workflow/tests/compare.rb +130 -0
  796. data/example_files/resources/hpxml-measures/workflow/tests/hpxml_translator_test.rb +108 -38
  797. data/lib/uo_cli/version.rb +1 -1
  798. data/uo_cli.gemspec +6 -6
  799. metadata +31 -20
  800. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_config.yml +0 -74
  801. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-multiple2.xml +0 -838
@@ -6,7 +6,7 @@ Setup
6
6
 
7
7
  To get started:
8
8
 
9
- #. Download `OpenStudio 3.1.0 <https://github.com/NREL/OpenStudio/releases/tag/v3.1.0>`_ and install the Command Line Interface/EnergyPlus components, or use the `nrel/openstudio docker image <https://hub.docker.com/r/nrel/openstudio>`_.
9
+ #. Download `OpenStudio 3.2.0 <https://github.com/NREL/OpenStudio/releases/tag/v3.2.0>`_ and install the Command Line Interface/EnergyPlus components, or use the `nrel/openstudio docker image <https://hub.docker.com/r/nrel/openstudio>`_.
10
10
  #. Download the `latest release <https://github.com/NREL/OpenStudio-HPXML/releases>`_.
11
11
 
12
12
  Running
@@ -47,6 +47,7 @@ There are additional ways that software developers using this workflow can reduc
47
47
  - Run on Linux/Mac platform, which is significantly faster than Windows.
48
48
  - Run on computing environments with 1) fast CPUs, 2) sufficient memory, and 3) enough processors to allow all simulations to run in parallel.
49
49
  - Limit requests for timeseries output (e.g., ``--hourly``, ``--daily``, ``--timestep`` arguments) and limit the number of output variables requested.
50
+ - Avoid using the ``--add-component-loads`` argument if heating/cooling component loads are not of interest.
50
51
  - Use the ``--skip-validation`` argument if the HPXML input file has already been validated against the Schema & Schematron documents.
51
52
 
52
53
  License
@@ -636,15 +636,15 @@ Each heating system (other than a heat pump) is entered as an ``/HPXML/Building/
636
636
  ================================= ======== ====== =========== ======== ========= ===============================
637
637
  ``SystemIdentifier`` id Yes Unique identifier
638
638
  ``HeatingSystemType`` element 1 [#]_ Yes Type of heating system
639
- ``FractionHeatLoadServed`` double frac 0 - 1 [#]_ Yes Fraction of heating load served
640
639
  ``HeatingSystemFuel`` string See [#]_ Yes Fuel type
641
640
  ``HeatingCapacity`` double Btu/hr >= 0 No autosized Input heating capacity
641
+ ``FractionHeatLoadServed`` double frac 0 - 1 [#]_ Yes Fraction of heating load served
642
642
  ================================= ======== ====== =========== ======== ========= ===============================
643
643
 
644
644
  .. [#] HeatingSystemType child element choices are ``ElectricResistance``, ``Furnace``, ``WallFurnace``, ``FloorFurnace``, ``Boiler``, ``Stove``, ``PortableHeater``, ``FixedHeater``, or ``Fireplace``.
645
- .. [#] The sum of all ``FractionHeatLoadServed`` (across both HeatingSystems and HeatPumps) must be less than or equal to 1.
646
645
  .. [#] HeatingSystemFuel choices are "electricity", "natural gas", "fuel oil", "fuel oil 1", "fuel oil 2", "fuel oil 4", "fuel oil 5/6", "diesel", "propane", "kerosene", "coal", "coke", "bituminous coal", "wood", or "wood pellets".
647
646
  For ``ElectricResistance``, "electricity" is required.
647
+ .. [#] The sum of all ``FractionHeatLoadServed`` (across both HeatingSystems and HeatPumps) must be less than or equal to 1.
648
648
 
649
649
  Electric Resistance
650
650
  ~~~~~~~~~~~~~~~~~~~
@@ -671,8 +671,8 @@ If a furnace is specified, additional information is entered in ``HeatingSystem`
671
671
  ``extension/AirflowDefectRatio`` double frac > -1 No 0.0 Deviation between design/installed airflows [#]_
672
672
  =============================================== ====== ===== =========== ======== ========= ================================================
673
673
 
674
- .. [#] HVACDistribution type must be AirDistribution or DSE.
675
- .. [#] If FanPowerWattsPerCFM not provided, defaulted to 0.5 W/cfm if AFUE <= 0.9, else 0.375 W/cfm.
674
+ .. [#] HVACDistribution type must be AirDistribution (type: "regular velocity" or "gravity") or DSE.
675
+ .. [#] If FanPowerWattsPerCFM not provided, defaulted to 0 W/cfm if gravity distribution system, else 0.5 W/cfm if AFUE <= 0.9, else 0.375 W/cfm.
676
676
  .. [#] If there is a cooling system attached to the DistributionSystem, the heating and cooling systems cannot have different values for FanPowerWattsPerCFM.
677
677
  .. [#] AirflowDefectRatio is defined as (InstalledAirflow - DesignAirflow) / DesignAirflow; a value of zero means no airflow defect.
678
678
  See ANSI/RESNET/ACCA 310-2020 Standard for Grading the Installation of HVAC Systems for more information.
@@ -702,26 +702,42 @@ If a boiler is specified, additional information is entered in ``HeatingSystem``
702
702
  ``IsSharedSystem`` boolean No false Whether it serves multiple dwelling units
703
703
  ``DistributionSystem`` idref See [#]_ Yes ID of attached distribution system
704
704
  ``AnnualHeatingEfficiency[Units="AFUE"]/Value`` double frac 0 - 1 Yes Rated efficiency
705
- ``ElectricAuxiliaryEnergy`` double kWh/yr >= 0 No [#]_ See [#]_ Electric auxiliary energy
706
705
  ========================================================================== ======== ====== =========== ======== ======== =========================================
707
706
 
708
707
  .. [#] For in-unit boilers, HVACDistribution type must be HydronicDistribution (type: "radiator", "baseboard", "radiant floor", "radiant ceiling", or "water loop") or DSE.
709
708
  For shared boilers, HVACDistribution type must be HydronicDistribution (type: "radiator", "baseboard", "radiant floor", "radiant ceiling", or "water loop") or AirDistribution (type: "fan coil").
710
709
  If the shared boiler has "water loop" distribution, a :ref:`hvac_heatpump_wlhp` must also be specified.
711
- .. [#] | For shared boilers, ElectricAuxiliaryEnergy can alternatively be calculated as follows per `ANSI/RESNET/ICC 301-2019 <https://codes.iccsafe.org/content/RESNETICC3012019>`_:
712
- | EAE = (SP / N_dweq + aux_in) * HLH
713
- | where
714
- | SP = Shared pump power [W] provided as ``extension/SharedLoopWatts``,
715
- | N_dweq = Number of units served by the shared system provided as ``NumberofUnitsServed``,
716
- | aux_in = In-unit fan coil power [W] provided as ``extension/FanCoilWatts``,
717
- | HLH = Annual heating load hours.
718
- .. [#] If ElectricAuxiliaryEnergy not provided (nor calculated for shared boilers), defaults as follows per `ANSI/RESNET/ICC 301-2019 <https://codes.iccsafe.org/content/RESNETICC3012019>`_.
719
-
720
- - **Oil boiler**: 330
721
- - **Gas boiler (in-unit)**: 170
722
- - **Gas boiler (shared, w/ baseboard)**: 220
723
- - **Gas boiler (shared, w/ water loop heat pump)**: 265
724
- - **Gas boiler (shared, w/ fan coil)**: 438
710
+
711
+ If an in-unit boiler if specified, additional information is entered in ``HeatingSystem``.
712
+
713
+ =========================== ======== ====== =========== ======== ======== =========================
714
+ Element Type Units Constraints Required Default Notes
715
+ =========================== ======== ====== =========== ======== ======== =========================
716
+ ``ElectricAuxiliaryEnergy`` double kWh/yr >= 0 No See [#]_ Electric auxiliary energy
717
+ =========================== ======== ====== =========== ======== ======== =========================
718
+
719
+ .. [#] If ElectricAuxiliaryEnergy not provided, defaults as follows:
720
+
721
+ - **Oil boiler**: 330 kWh/yr
722
+ - **Gas boiler**: 170 kWh/yr
723
+
724
+ If instead a shared boiler is specified, additional information is entered in ``HeatingSystem``.
725
+
726
+ ============================================================ ======== =========== =========== ======== ======== =========================
727
+ Element Type Units Constraints Required Default Notes
728
+ ============================================================ ======== =========== =========== ======== ======== =========================
729
+ ``NumberofUnitsServed`` integer > 1 Yes Number of dwelling units served
730
+ ``ElectricAuxiliaryEnergy`` or ``extension/SharedLoopWatts`` double kWh/yr or W >= 0 No See [#]_ Electric auxiliary energy or shared loop power
731
+ ``ElectricAuxiliaryEnergy`` or ``extension/FanCoilWatts`` double kWh/yr or W >= 0 No [#]_ Electric auxiliary energy or fan coil power
732
+ ============================================================ ======== =========== =========== ======== ======== =========================
733
+
734
+ .. [#] If ElectricAuxiliaryEnergy nor SharedLoopWatts provided, defaults as follows:
735
+
736
+ - **Shared boiler w/ baseboard**: 220 kWh/yr
737
+ - **Shared boiler w/ water loop heat pump**: 265 kWh/yr
738
+ - **Shared boiler w/ fan coil**: 438 kWh/yr
739
+
740
+ .. [#] FanCoilWatts only used if boiler connected to fan coil and SharedLoopWatts provided.
725
741
 
726
742
  Stove
727
743
  ~~~~~
@@ -797,7 +813,7 @@ If a central air conditioner is specified, additional information is entered in
797
813
  ``extension/ChargeDefectRatio`` double frac > -1 No 0.0 Deviation between design/installed charges [#]_
798
814
  =============================================== ======== ====== =========== ======== ========= ================================================
799
815
 
800
- .. [#] HVACDistribution type must be AirDistribution or DSE.
816
+ .. [#] HVACDistribution type must be AirDistribution (type: "regular velocity") or DSE.
801
817
  .. [#] CompressorType choices are "single stage", "two stage", or "variable speed".
802
818
  .. [#] If CompressorType not provided, defaults to "single stage" if SEER <= 15, else "two stage" if SEER <= 21, else "variable speed".
803
819
  .. [#] If FanPowerWattsPerCFM not provided, defaults to using attached furnace W/cfm if available, else 0.5 W/cfm if SEER <= 13.5, else 0.375 W/cfm.
@@ -832,7 +848,7 @@ If an evaporative cooler is specified, additional information is entered in ``Co
832
848
  ``CoolingCapacity`` double Btu/hr >= 0 No autosized Cooling capacity
833
849
  ================================= ======== ====== =========== ======== ========= ==================================
834
850
 
835
- .. [#] If provided, HVACDistribution type must be AirDistribution or DSE.
851
+ .. [#] If provided, HVACDistribution type must be AirDistribution (type: "regular velocity") or DSE.
836
852
 
837
853
  Mini-Split
838
854
  ~~~~~~~~~~
@@ -849,7 +865,7 @@ If a mini-split is specified, additional information is entered in ``CoolingSyst
849
865
  ``extension/ChargeDefectRatio`` double frac > -1 No 0.0 Deviation between design/installed charges [#]_
850
866
  =============================================== ======== ====== =========== ======== ========= ===============================================
851
867
 
852
- .. [#] If provided, HVACDistribution type must be AirDistribution or DSE.
868
+ .. [#] If provided, HVACDistribution type must be AirDistribution (type: "regular velocity") or DSE.
853
869
  .. [#] ChargeDefectRatio is defined as (InstalledCharge - DesignCharge) / DesignCharge; a value of zero means no refrigerant charge defect.
854
870
  See ANSI/RESNET/ACCA 310-2020 Standard for Grading the Installation of HVAC Systems for more information.
855
871
 
@@ -886,7 +902,7 @@ If a chiller is specified, additional information is entered in ``CoolingSystem`
886
902
 
887
903
  .. [#] HVACDistribution type must be HydronicDistribution (type: "radiator", "baseboard", "radiant floor", "radiant ceiling", or "water loop") or AirDistribution (type: "fan coil").
888
904
  If the chiller has "water loop" distribution, a :ref:`hvac_heatpump_wlhp` must also be specified.
889
- .. [#] FanCoilWatts only required if chiller connected to a fan coil.
905
+ .. [#] FanCoilWatts only required if chiller connected to fan coil.
890
906
 
891
907
  .. note::
892
908
 
@@ -971,7 +987,7 @@ If an air-to-air heat pump is specified, additional information is entered in ``
971
987
  ``extension/ChargeDefectRatio`` double frac > -1 No 0.0 Deviation between design/installed charges [#]_
972
988
  =============================================== ======== ====== =========== ======== ========= ================================================
973
989
 
974
- .. [#] HVACDistribution type must be AirDistribution or DSE.
990
+ .. [#] HVACDistribution type must be AirDistribution (type: "regular velocity") or DSE.
975
991
  .. [#] CompressorType choices are "single stage", "two stage", or "variable speed".
976
992
  .. [#] If CompressorType not provided, defaults to "single stage" if SEER <= 15, else "two stage" if SEER <= 21, else "variable speed".
977
993
  .. [#] The sum of all ``FractionHeatLoadServed`` (across both HeatingSystems and HeatPumps) must be less than or equal to 1.
@@ -1002,7 +1018,7 @@ If a mini-split heat pump is specified, additional information is entered in ``H
1002
1018
  ``extension/ChargeDefectRatio`` double frac > -1 No 0.0 Deviation between design/installed charges [#]_
1003
1019
  =============================================== ======== ====== =========== ======== ========= ==============================================
1004
1020
 
1005
- .. [#] If provided, HVACDistribution type must be AirDistribution or DSE.
1021
+ .. [#] If provided, HVACDistribution type must be AirDistribution (type: "regular velocity") or DSE.
1006
1022
  .. [#] The sum of all ``FractionHeatLoadServed`` (across both HeatingSystems and HeatPumps) must be less than or equal to 1.
1007
1023
  .. [#] The sum of all ``FractionCoolLoadServed`` (across both CoolingSystems and HeatPumps) must be less than or equal to 1.
1008
1024
  .. [#] ChargeDefectRatio is defined as (InstalledCharge - DesignCharge) / DesignCharge; a value of zero means no refrigerant charge defect.
@@ -1028,7 +1044,7 @@ If a ground-to-air heat pump is specified, additional information is entered in
1028
1044
  =============================================== ======== ====== =========== ======== ========= ==============================================
1029
1045
  Element Type Units Constraints Required Default Notes
1030
1046
  =============================================== ======== ====== =========== ======== ========= ==============================================
1031
- ``IsSharedSystem`` boolean No false Whether it serves multiple dwelling units [#]_
1047
+ ``IsSharedSystem`` boolean No false Whether it has a shared hydronic circulation loop [#]_
1032
1048
  ``DistributionSystem`` idref See [#]_ Yes ID of attached distribution system
1033
1049
  ``HeatingCapacity`` double Btu/hr >= 0 No autosized Heating capacity (excluding any backup heating)
1034
1050
  ``CoolingCapacity`` double Btu/hr >= 0 No autosized Cooling capacity
@@ -1046,7 +1062,7 @@ If a ground-to-air heat pump is specified, additional information is entered in
1046
1062
  =============================================== ======== ====== =========== ======== ========= ==============================================
1047
1063
 
1048
1064
  .. [#] IsSharedSystem should be true if the SFA/MF building has multiple ground source heat pumps connected to a shared hydronic circulation loop.
1049
- .. [#] HVACDistribution type must be AirDistribution or DSE.
1065
+ .. [#] HVACDistribution type must be AirDistribution (type: "regular velocity") or DSE.
1050
1066
  .. [#] The sum of all ``FractionHeatLoadServed`` (across both HeatingSystems and HeatPumps) must be less than or equal to 1.
1051
1067
  .. [#] The sum of all ``FractionCoolLoadServed`` (across both CoolingSystems and HeatPumps) must be less than or equal to 1.
1052
1068
  .. [#] NumberofUnitsServed only required if IsSharedSystem is true, in which case it must be > 1.
@@ -1079,7 +1095,7 @@ If a water-loop-to-air heat pump is specified, additional information is entered
1079
1095
  ``AnnualHeatingEfficiency[Units="COP"]/Value`` double W/W > 0 See [#]_ Rated heating efficiency
1080
1096
  =============================================== ======== ====== =========== ======== ========= ==============================================
1081
1097
 
1082
- .. [#] HVACDistribution type must be AirDistribution or DSE.
1098
+ .. [#] HVACDistribution type must be AirDistribution (type: "regular velocity") or DSE.
1083
1099
  .. [#] CoolingCapacity required if there is a shared chiller or cooling tower with water loop distribution.
1084
1100
  .. [#] AnnualCoolingEfficiency required if there is a shared chiller or cooling tower with water loop distribution.
1085
1101
  .. [#] AnnualHeatingEfficiency required if there is a shared boiler with water loop distribution.
@@ -1166,7 +1182,7 @@ Each separate HVAC distribution system is entered as a ``/HPXML/Building/Buildin
1166
1182
  ============================== ======= ======= =========== ======== ========= =============================
1167
1183
 
1168
1184
  .. [#] DistributionSystemType child element choices are ``AirDistribution``, ``HydronicDistribution``, or ``Other=DSE``.
1169
- .. [#] ConditionedFloorAreaServed is required for AirDistribution type.
1185
+ .. [#] ConditionedFloorAreaServed required only when DistributionSystemType is AirDistribution and ``AirDistribution/Ducts`` are present.
1170
1186
 
1171
1187
  .. note::
1172
1188
 
@@ -1184,17 +1200,18 @@ To define an air distribution system, additional information is entered in ``HVA
1184
1200
  ============================================= ======= ======= =========== ======== ========= ==========================
1185
1201
  Element Type Units Constraints Required Default Notes
1186
1202
  ============================================= ======= ======= =========== ======== ========= ==========================
1187
- ``AirDistributionType`` string See [#]_ See [#]_ Type of air distribution
1188
- ``DuctLeakageMeasurement[DuctType="supply"]`` element 1 Yes Supply duct leakage value
1189
- ``DuctLeakageMeasurement[DuctType="return"]`` element 1 Yes Return duct leakage value
1203
+ ``AirDistributionType`` string See [#]_ Yes Type of air distribution
1204
+ ``DuctLeakageMeasurement[DuctType="supply"]`` element 1 See [#]_ Supply duct leakage value
1205
+ ``DuctLeakageMeasurement[DuctType="return"]`` element 1 See [#]_ Return duct leakage value
1190
1206
  ``Ducts`` element >= 0 No Supply/return ducts [#]_
1191
1207
  ``NumberofReturnRegisters`` integer >= 0 No See [#]_ Number of return registers
1192
1208
  ============================================= ======= ======= =========== ======== ========= ==========================
1193
1209
 
1194
- .. [#] AirDistributionType choices are "gravity", "high velocity", "regular velocity", or "fan coil".
1195
- .. [#] AirDistributionType only required if the distribution system is for shared boilers/chillers with fan coils, in which case value must be "fan coil".
1210
+ .. [#] AirDistributionType choices are "regular velocity", "gravity", or "fan coil" and are further restricted based on attached HVAC system type (e.g., only "regular velocity" or "gravity" for a furnace, only "fan coil" for a shared boiler, etc.).
1211
+ .. [#] Supply duct leakage required if AirDistributionType is "regular velocity" or "gravity" and optional if AirDistributionType is "fan coil".
1212
+ .. [#] Return duct leakage required if AirDistributionType is "regular velocity" or "gravity" and optional if AirDistributionType is "fan coil".
1196
1213
  .. [#] Provide a Ducts element for each supply duct and each return duct.
1197
- .. [#] If NumberofReturnRegisters not provided, defaults to one return register per conditioned floor per `ASHRAE Standard 152 <https://www.energy.gov/eere/buildings/downloads/ashrae-standard-152-spreadsheet>`_, rounded up to the nearest integer if needed.
1214
+ .. [#] If NumberofReturnRegisters not provided and ``AirDistribution/Ducts`` are present, defaults to one return register per conditioned floor per `ASHRAE Standard 152 <https://www.energy.gov/eere/buildings/downloads/ashrae-standard-152-spreadsheet>`_, rounded up to the nearest integer if needed.
1198
1215
 
1199
1216
  Additional information is entered in each ``DuctLeakageMeasurement``.
1200
1217
 
@@ -1795,7 +1812,7 @@ If not entered, the simulation will not include generators.
1795
1812
  ``NumberofBedroomsServed`` integer > 1 See [#]_ Number of bedrooms served
1796
1813
  ========================== ======= ======= =========== ======== ======= ============================================
1797
1814
 
1798
- .. [#] FuelType choices are "natural gas" or "propane".
1815
+ .. [#] FuelType choices are "natural gas", "fuel oil", "fuel oil 1", "fuel oil 2", "fuel oil 4", "fuel oil 5/6", "diesel", "propane", "kerosene", "coal", "coke", "bituminous coal", "anthracite coal", "wood", or "wood pellets".
1799
1816
  .. [#] AnnualOutputkWh must also be < AnnualConsumptionkBtu*3.412 (i.e., the generator must consume more energy than it produces).
1800
1817
  .. [#] NumberofBedroomsServed only required if IsSharedSystem is true, in which case it must be > NumberofBedrooms.
1801
1818
  Annual consumption and annual production will be apportioned to the dwelling unit using its number of bedrooms divided by the total number of bedrooms served by the generator.
@@ -2417,28 +2434,28 @@ HPXML Locations
2417
2434
 
2418
2435
  The various locations used in an HPXML file are defined as follows:
2419
2436
 
2420
- ============================== =========================================== ======================================= =============
2421
- Value Description Temperature Building Type
2422
- ============================== =========================================== ======================================= =============
2423
- outside Ambient environment Weather data Any
2424
- ground EnergyPlus calculation Any
2425
- living space Above-grade conditioned floor area EnergyPlus calculation Any
2426
- attic - vented EnergyPlus calculation Any
2427
- attic - unvented EnergyPlus calculation Any
2428
- basement - conditioned Below-grade conditioned floor area EnergyPlus calculation Any
2429
- basement - unconditioned EnergyPlus calculation Any
2430
- crawlspace - vented EnergyPlus calculation Any
2431
- crawlspace - unvented EnergyPlus calculation Any
2432
- garage Single-family garage (not shared parking) EnergyPlus calculation Any
2433
- other housing unit E.g., conditioned adjacent unit or corridor Same as living space SFA/MF only
2434
- other heated space E.g., shared laundry/equipment space Avg of living space/outside; min of 68F SFA/MF only
2435
- other multifamily buffer space E.g., enclosed unconditioned stairwell Avg of living space/outside; min of 50F SFA/MF only
2436
- other non-freezing space E.g., shared parking garage ceiling Floats with outside; minimum of 40F SFA/MF only
2437
- other exterior Water heater outside Weather data Any
2438
- exterior wall Ducts in exterior wall Avg of living space/outside Any
2439
- under slab Ducts under slab (ground) EnergyPlus calculation Any
2440
- roof deck Ducts on roof deck (outside) Weather data Any
2441
- ============================== =========================================== ======================================= =============
2437
+ ============================== ======================================================= ======================================= =============
2438
+ Value Description Temperature Building Type
2439
+ ============================== ======================================================= ======================================= =============
2440
+ outside Ambient environment Weather data Any
2441
+ ground EnergyPlus calculation Any
2442
+ living space Above-grade conditioned floor area EnergyPlus calculation Any
2443
+ attic - vented EnergyPlus calculation Any
2444
+ attic - unvented EnergyPlus calculation Any
2445
+ basement - conditioned Below-grade conditioned floor area EnergyPlus calculation Any
2446
+ basement - unconditioned EnergyPlus calculation Any
2447
+ crawlspace - vented EnergyPlus calculation Any
2448
+ crawlspace - unvented EnergyPlus calculation Any
2449
+ garage Single-family garage (not shared parking) EnergyPlus calculation Any
2450
+ other housing unit E.g., conditioned adjacent unit or conditioned corridor Same as living space SFA/MF only
2451
+ other heated space E.g., shared laundry/equipment space Avg of living space/outside; min of 68F SFA/MF only
2452
+ other multifamily buffer space E.g., enclosed unconditioned stairwell Avg of living space/outside; min of 50F SFA/MF only
2453
+ other non-freezing space E.g., shared parking garage ceiling Floats with outside; minimum of 40F SFA/MF only
2454
+ other exterior Water heater outside Weather data Any
2455
+ exterior wall Ducts in exterior wall Avg of living space/outside Any
2456
+ under slab Ducts under slab (ground) EnergyPlus calculation Any
2457
+ roof deck Ducts on roof deck (outside) Weather data Any
2458
+ ============================== ======================================================= ======================================= =============
2442
2459
 
2443
2460
  Validating & Debugging Errors
2444
2461
  -----------------------------
@@ -60,7 +60,7 @@ So the sum of all end uses for a given fuel (e.g., sum of all "End Use: Natural
60
60
  End Use: Electricity: Cooling Fans/Pumps (MBtu)
61
61
  End Use: Electricity: Hot Water (MBtu) Excludes recirc pump and solar thermal pump
62
62
  End Use: Electricity: Hot Water Recirc Pump (MBtu)
63
- End Use: Electricity: Hot Water Solar Thermal Pump (MBtu)
63
+ End Use: Electricity: Hot Water Solar Thermal Pump (MBtu) Non-zero only when using detailed (not simple) solar thermal inputs
64
64
  End Use: Electricity: Lighting Interior (MBtu)
65
65
  End Use: Electricity: Lighting Garage (MBtu)
66
66
  End Use: Electricity: Lighting Exterior (MBtu)
@@ -208,8 +208,12 @@ Current peak building loads are listed below.
208
208
  Annual Component Building Loads
209
209
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
210
210
 
211
+ **Note**: This section is only available if the ``--add-component-loads`` argument is used.
212
+ The argument is not used by default for faster performance.
213
+
211
214
  Component loads represent the estimated contribution of different building components to the annual heating/cooling building loads.
212
215
  The sum of component loads for heating (or cooling) will roughly equal the annual heating (or cooling) building load reported above.
216
+
213
217
  Current component loads disaggregated by Heating/Cooling are listed below.
214
218
 
215
219
  ================================================= =========================================================================================================
@@ -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'