urbanopt-cli 0.5.2 → 0.6.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (829) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/.rubocop.yml +2 -2
  4. data/CHANGELOG.md +40 -0
  5. data/CMakeLists.txt +13 -13
  6. data/FindOpenStudioSDK.cmake +11 -6
  7. data/Gemfile +12 -6
  8. data/example_files/Gemfile +11 -8
  9. data/example_files/base_workflow_res.osw +10 -0
  10. data/example_files/example_project_combined.json +13 -3
  11. data/example_files/example_project_with_PV.json +751 -0
  12. data/example_files/example_project_with_streets.json +826 -0
  13. data/example_files/mappers/Baseline.rb +106 -50
  14. data/example_files/mappers/CreateBar.rb +31 -1
  15. data/example_files/mappers/FlexibleHotWater.rb +69 -0
  16. data/example_files/mappers/Floorspace.rb +31 -1
  17. data/example_files/mappers/HighEfficiency.rb +20 -8
  18. data/example_files/mappers/HighEfficiencyCreateBar.rb +3 -2
  19. data/example_files/mappers/HighEfficiencyFloorspace.rb +3 -2
  20. data/example_files/mappers/base_workflow.osw +5 -0
  21. data/example_files/mappers/createbar_workflow.osw +3 -1
  22. data/example_files/mappers/floorspace_workflow.osw +2 -1
  23. data/example_files/measures/BuildResidentialModel/measure.rb +70 -37
  24. data/example_files/osm_building/7.osm +0 -307
  25. data/example_files/osm_building/8.osm +0 -419
  26. data/example_files/osm_building/9.osm +0 -664
  27. data/example_files/reopt/base_assumptions.json +4 -4
  28. data/example_files/reopt/multiPV_assumptions.json +6 -5
  29. data/example_files/resources/hpxml-measures/.github/pull_request_template.md +1 -1
  30. data/example_files/resources/hpxml-measures/.github/workflows/config.yml +96 -3
  31. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/measure.rb +138 -73
  32. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/measure.xml +509 -487
  33. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/geometry.rb +11 -11
  34. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules.rb +33 -32
  35. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_config.json +388 -0
  36. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_config.md +43 -0
  37. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-coal.osw +5 -5
  38. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-dehumidifier-ief-portable.osw +5 -5
  39. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-dehumidifier-ief-whole-home.osw +5 -5
  40. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-dehumidifier.osw +5 -5
  41. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-gas.osw +5 -5
  42. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-modified.osw +5 -5
  43. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-none.osw +5 -5
  44. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-oil.osw +5 -5
  45. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-propane.osw +5 -5
  46. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-wood.osw +5 -5
  47. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-atticroof-flat.osw +5 -5
  48. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-atticroof-radiant-barrier.osw +5 -5
  49. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-atticroof-unvented-insulated-roof.osw +5 -5
  50. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-atticroof-vented.osw +5 -5
  51. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-bldgtype-multifamily-shared-boiler-only-baseboard.osw +341 -0
  52. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-bldgtype-multifamily-shared-boiler-only-fan-coil.osw +341 -0
  53. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-bldgtype-multifamily-shared-mechvent-preconditioning.osw +8 -8
  54. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-bldgtype-multifamily-shared-mechvent.osw +8 -8
  55. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-bldgtype-multifamily-shared-pv.osw +8 -8
  56. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-bldgtype-multifamily-shared-water-heater.osw +8 -8
  57. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-bldgtype-multifamily.osw +8 -8
  58. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-bldgtype-single-family-attached.osw +5 -5
  59. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-combi-tankless-outside.osw +5 -5
  60. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-combi-tankless.osw +5 -5
  61. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-dwhr.osw +5 -5
  62. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-indirect-outside.osw +5 -5
  63. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-indirect-standbyloss.osw +5 -5
  64. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-indirect-with-solar-fraction.osw +5 -5
  65. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-indirect.osw +5 -5
  66. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-jacket-electric.osw +5 -5
  67. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-jacket-gas.osw +5 -5
  68. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-jacket-hpwh.osw +5 -5
  69. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-jacket-indirect.osw +5 -5
  70. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-low-flow-fixtures.osw +5 -5
  71. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-none.osw +5 -5
  72. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-recirc-demand.osw +5 -5
  73. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-recirc-manual.osw +5 -5
  74. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-recirc-nocontrol.osw +5 -5
  75. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-recirc-temperature.osw +5 -5
  76. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-recirc-timer.osw +5 -5
  77. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-solar-direct-evacuated-tube.osw +5 -5
  78. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-solar-direct-flat-plate.osw +5 -5
  79. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-solar-direct-ics.osw +5 -5
  80. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-solar-fraction.osw +5 -5
  81. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-solar-indirect-flat-plate.osw +5 -5
  82. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-solar-thermosyphon-flat-plate.osw +5 -5
  83. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-coal.osw +5 -5
  84. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-elec-uef.osw +5 -5
  85. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-gas-outside.osw +5 -5
  86. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-gas-uef.osw +5 -5
  87. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-gas.osw +5 -5
  88. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-heat-pump-outside.osw +5 -5
  89. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-heat-pump-uef.osw +5 -5
  90. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-heat-pump-with-solar-fraction.osw +5 -5
  91. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-heat-pump-with-solar.osw +5 -5
  92. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-heat-pump.osw +5 -5
  93. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-oil.osw +5 -5
  94. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-wood.osw +5 -5
  95. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tankless-electric-outside.osw +5 -5
  96. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tankless-electric-uef.osw +5 -5
  97. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tankless-electric.osw +5 -5
  98. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tankless-gas-uef.osw +5 -5
  99. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tankless-gas-with-solar-fraction.osw +5 -5
  100. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tankless-gas-with-solar.osw +5 -5
  101. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tankless-gas.osw +5 -5
  102. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tankless-propane.osw +5 -5
  103. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-2stories-garage.osw +5 -5
  104. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-2stories.osw +5 -5
  105. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-beds-1.osw +5 -5
  106. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-beds-2.osw +5 -5
  107. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-beds-4.osw +5 -5
  108. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-beds-5.osw +5 -5
  109. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-garage.osw +5 -5
  110. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-infil-ach-house-pressure.osw +5 -5
  111. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-infil-cfm-house-pressure.osw +5 -5
  112. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-infil-cfm50.osw +5 -5
  113. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-infil-flue.osw +5 -5
  114. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-infil-natural-ach.osw +6 -6
  115. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-overhangs.osw +5 -5
  116. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-windows-none.osw +5 -5
  117. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-foundation-ambient.osw +5 -5
  118. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-foundation-conditioned-basement-slab-insulation.osw +5 -5
  119. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-foundation-slab.osw +5 -5
  120. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-foundation-unconditioned-basement-assembly-r.osw +5 -5
  121. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-foundation-unconditioned-basement-wall-insulation.osw +5 -5
  122. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-foundation-unconditioned-basement.osw +5 -5
  123. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-foundation-unvented-crawlspace.osw +5 -5
  124. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-foundation-vented-crawlspace.osw +5 -5
  125. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-air-to-air-heat-pump-1-speed-cooling-only.osw +4 -4
  126. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-air-to-air-heat-pump-1-speed-heating-only.osw +5 -5
  127. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-air-to-air-heat-pump-1-speed.osw +6 -6
  128. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-air-to-air-heat-pump-2-speed.osw +6 -6
  129. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-air-to-air-heat-pump-var-speed.osw +6 -6
  130. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-boiler-coal-only.osw +5 -5
  131. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-boiler-elec-only.osw +5 -5
  132. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-boiler-gas-central-ac-1-speed.osw +5 -5
  133. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-boiler-gas-only.osw +5 -5
  134. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-boiler-oil-only.osw +5 -5
  135. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-boiler-propane-only.osw +5 -5
  136. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-boiler-wood-only.osw +5 -5
  137. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-central-ac-only-1-speed.osw +5 -5
  138. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-central-ac-only-2-speed.osw +5 -5
  139. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-central-ac-only-var-speed.osw +5 -5
  140. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-central-ac-plus-air-to-air-heat-pump-heating.osw +6 -6
  141. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-dual-fuel-air-to-air-heat-pump-1-speed-electric.osw +5 -5
  142. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-dual-fuel-air-to-air-heat-pump-1-speed.osw +5 -5
  143. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-dual-fuel-air-to-air-heat-pump-2-speed.osw +5 -5
  144. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-dual-fuel-air-to-air-heat-pump-var-speed.osw +5 -5
  145. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-dual-fuel-mini-split-heat-pump-ducted.osw +5 -5
  146. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-ducts-leakage-percent.osw +5 -5
  147. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-elec-resistance-only.osw +5 -5
  148. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-evap-cooler-furnace-gas.osw +5 -5
  149. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-evap-cooler-only-ducted.osw +5 -5
  150. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-evap-cooler-only.osw +5 -5
  151. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-fireplace-wood-only.osw +5 -5
  152. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-fixed-heater-gas-only.osw +6 -6
  153. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-floor-furnace-propane-only.osw +5 -5
  154. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-coal-only.osw +5 -5
  155. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-elec-central-ac-1-speed.osw +5 -5
  156. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-elec-only.osw +5 -5
  157. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-gas-central-ac-2-speed.osw +5 -5
  158. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-gas-central-ac-var-speed.osw +5 -5
  159. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-gas-only.osw +5 -5
  160. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-gas-room-ac.osw +5 -5
  161. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-oil-only.osw +5 -5
  162. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-propane-only.osw +5 -5
  163. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-wood-only.osw +5 -5
  164. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-ground-to-air-heat-pump-cooling-only.osw +4 -4
  165. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-ground-to-air-heat-pump-heating-only.osw +4 -4
  166. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-ground-to-air-heat-pump.osw +5 -5
  167. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-install-quality-airflow-defect-furnace-gas-central-ac-1-speed.osw +5 -5
  168. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-install-quality-all-air-to-air-heat-pump-1-speed.osw +6 -6
  169. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-install-quality-all-air-to-air-heat-pump-2-speed.osw +6 -6
  170. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-install-quality-all-air-to-air-heat-pump-var-speed.osw +6 -6
  171. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-install-quality-all-furnace-gas-central-ac-1-speed.osw +5 -5
  172. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-install-quality-all-furnace-gas-central-ac-2-speed.osw +5 -5
  173. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-install-quality-all-furnace-gas-central-ac-var-speed.osw +5 -5
  174. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-install-quality-all-furnace-gas-only.osw +5 -5
  175. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-install-quality-all-ground-to-air-heat-pump.osw +5 -5
  176. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-install-quality-all-mini-split-air-conditioner-only-ducted.osw +5 -5
  177. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-install-quality-all-mini-split-heat-pump-ducted.osw +6 -6
  178. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-install-quality-charge-defect-furnace-gas-central-ac-1-speed.osw +5 -5
  179. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-install-quality-none-furnace-gas-central-ac-1-speed.osw +5 -5
  180. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-mini-split-air-conditioner-only-ducted.osw +5 -5
  181. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-mini-split-air-conditioner-only-ductless.osw +5 -5
  182. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-mini-split-heat-pump-ducted-cooling-only.osw +4 -4
  183. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-mini-split-heat-pump-ducted-heating-only.osw +5 -5
  184. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-mini-split-heat-pump-ducted.osw +6 -6
  185. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-mini-split-heat-pump-ductless.osw +6 -6
  186. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-none.osw +5 -5
  187. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-portable-heater-gas-only.osw +6 -6
  188. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-programmable-thermostat-detailed.osw +8 -8
  189. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-room-ac-only-33percent.osw +5 -5
  190. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-room-ac-only.osw +5 -5
  191. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-setpoints.osw +5 -5
  192. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-stove-oil-only.osw +5 -5
  193. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-stove-wood-pellets-only.osw +5 -5
  194. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-undersized.osw +5 -5
  195. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-wall-furnace-elec-only.osw +5 -5
  196. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-lighting-ceiling-fans.osw +5 -5
  197. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-lighting-detailed.osw +5 -5
  198. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-location-AMY-2012.osw +5 -5
  199. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-location-baltimore-md.osw +5 -5
  200. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-location-dallas-tx.osw +5 -5
  201. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-location-duluth-mn.osw +5 -5
  202. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-location-helena-mt.osw +5 -5
  203. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-location-honolulu-hi.osw +5 -5
  204. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-location-miami-fl.osw +5 -5
  205. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-location-phoenix-az.osw +5 -5
  206. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-location-portland-or.osw +5 -5
  207. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-balanced.osw +5 -5
  208. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-bath-kitchen-fans.osw +5 -5
  209. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-cfis-evap-cooler-only-ducted.osw +5 -5
  210. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-cfis.osw +5 -5
  211. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-erv-atre-asre.osw +5 -5
  212. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-erv.osw +5 -5
  213. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-exhaust-rated-flow-rate.osw +5 -5
  214. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-exhaust.osw +5 -5
  215. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-hrv-asre.osw +5 -5
  216. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-hrv.osw +5 -5
  217. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-supply.osw +5 -5
  218. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-whole-house-fan.osw +5 -5
  219. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-misc-defaults.osw +5 -5
  220. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-misc-loads-large-uncommon.osw +5 -5
  221. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-misc-loads-large-uncommon2.osw +5 -5
  222. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-misc-neighbor-shading.osw +5 -5
  223. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-misc-shielding-of-home.osw +5 -5
  224. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-misc-usage-multiplier.osw +5 -5
  225. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-pv.osw +5 -5
  226. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-schedules-stochastic-vacant.osw +5 -5
  227. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-schedules-stochastic.osw +5 -5
  228. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-schedules-user-specified.osw +5 -5
  229. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-simcontrol-calendar-year-custom.osw +5 -5
  230. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-simcontrol-daylight-saving-custom.osw +5 -5
  231. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-simcontrol-daylight-saving-disabled.osw +5 -5
  232. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-simcontrol-runperiod-1-month.osw +5 -5
  233. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-simcontrol-timestep-10-mins.osw +5 -5
  234. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base.osw +5 -5
  235. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/build_residential_hpxml_test.rb +4 -2
  236. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-auto.osw +5 -5
  237. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-double-exterior.osw +8 -8
  238. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-double-loaded-interior.osw +8 -8
  239. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-eaves.osw +8 -8
  240. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-single-exterior-front.osw +8 -8
  241. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-double-loaded-interior.osw +8 -8
  242. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-left-bottom-double-loaded-interior.osw +8 -8
  243. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-left-bottom.osw +8 -8
  244. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-left-middle-double-loaded-interior.osw +8 -8
  245. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-left-middle.osw +8 -8
  246. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-left-top-double-loaded-interior.osw +8 -8
  247. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-left-top.osw +8 -8
  248. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-middle-bottom-double-loaded-interior.osw +8 -8
  249. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-middle-bottom.osw +8 -8
  250. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-middle-middle-double-loaded-interior.osw +8 -8
  251. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-middle-middle.osw +8 -8
  252. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-middle-top-double-loaded-interior.osw +8 -8
  253. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-middle-top.osw +8 -8
  254. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-right-bottom-double-loaded-interior.osw +8 -8
  255. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-right-bottom.osw +8 -8
  256. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-right-middle-double-loaded-interior.osw +8 -8
  257. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-right-middle.osw +8 -8
  258. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-right-top-double-loaded-interior.osw +8 -8
  259. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-right-top.osw +8 -8
  260. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab.osw +8 -8
  261. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-double-loaded-interior.osw +8 -8
  262. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-left-bottom-double-loaded-interior.osw +8 -8
  263. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-left-bottom.osw +8 -8
  264. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-left-middle-double-loaded-interior.osw +8 -8
  265. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-left-middle.osw +8 -8
  266. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-left-top-double-loaded-interior.osw +8 -8
  267. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-left-top.osw +8 -8
  268. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-middle-bottom-double-loaded-interior.osw +8 -8
  269. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-middle-bottom.osw +8 -8
  270. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-middle-middle-double-loaded-interior.osw +8 -8
  271. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-middle-middle.osw +8 -8
  272. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-middle-top-double-loaded-interior.osw +8 -8
  273. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-middle-top.osw +8 -8
  274. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-right-bottom-double-loaded-interior.osw +8 -8
  275. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-right-bottom.osw +8 -8
  276. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-right-middle-double-loaded-interior.osw +8 -8
  277. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-right-middle.osw +8 -8
  278. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-right-top-double-loaded-interior.osw +8 -8
  279. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-right-top.osw +8 -8
  280. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace.osw +8 -8
  281. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-double-loaded-interior.osw +8 -8
  282. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-left-bottom-double-loaded-interior.osw +8 -8
  283. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-left-bottom.osw +8 -8
  284. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-left-middle-double-loaded-interior.osw +8 -8
  285. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-left-middle.osw +8 -8
  286. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-left-top-double-loaded-interior.osw +8 -8
  287. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-left-top.osw +8 -8
  288. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-middle-bottom-double-loaded-interior.osw +8 -8
  289. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-middle-bottom.osw +8 -8
  290. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-middle-middle-double-loaded-interior.osw +8 -8
  291. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-middle-middle.osw +8 -8
  292. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-middle-top-double-loaded-interior.osw +8 -8
  293. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-middle-top.osw +8 -8
  294. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-right-bottom-double-loaded-interior.osw +8 -8
  295. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-right-bottom.osw +8 -8
  296. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-right-middle-double-loaded-interior.osw +8 -8
  297. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-right-middle.osw +8 -8
  298. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-right-top-double-loaded-interior.osw +8 -8
  299. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-right-top.osw +8 -8
  300. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace.osw +8 -8
  301. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-atticroof-conditioned-eaves-gable.osw +5 -5
  302. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-atticroof-conditioned-eaves-hip.osw +5 -5
  303. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-atticroof-flat.osw +339 -0
  304. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-double-exterior.osw +5 -5
  305. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-double-loaded-interior.osw +5 -5
  306. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-single-exterior-front.osw +5 -5
  307. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-slab-middle.osw +5 -5
  308. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-slab-right.osw +5 -5
  309. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-slab.osw +5 -5
  310. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-unconditioned-basement-middle.osw +5 -5
  311. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-unconditioned-basement-right.osw +5 -5
  312. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-unconditioned-basement.osw +5 -5
  313. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-unvented-crawlspace-middle.osw +5 -5
  314. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-unvented-crawlspace-right.osw +5 -5
  315. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-unvented-crawlspace.osw +5 -5
  316. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-vented-crawlspace-middle.osw +5 -5
  317. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-vented-crawlspace-right.osw +5 -5
  318. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-vented-crawlspace.osw +5 -5
  319. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-dhw-solar-latitude.osw +5 -5
  320. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-enclosure-atticroof-conditioned-eaves-gable.osw +5 -5
  321. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-enclosure-atticroof-conditioned-eaves-hip.osw +5 -5
  322. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-enclosure-garage-atticroof-conditioned.osw +5 -5
  323. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-enclosure-garage-partially-protruded.osw +5 -5
  324. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-enclosure-windows-shading.osw +5 -5
  325. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-gas-hot-tub-heater-with-zero-kwh.osw +337 -0
  326. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-gas-pool-heater-with-zero-kwh.osw +337 -0
  327. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-pv-roofpitch.osw +5 -5
  328. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-schedules-random-seed.osw +5 -5
  329. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-second-heating-system-boiler-to-heat-pump.osw +5 -5
  330. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-second-heating-system-boiler-to-heating-system.osw +5 -5
  331. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-second-heating-system-fireplace-to-heat-pump.osw +5 -5
  332. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-second-heating-system-fireplace-to-heating-system.osw +4 -4
  333. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-second-heating-system-portable-heater-to-heat-pump.osw +5 -5
  334. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-second-heating-system-portable-heater-to-heating-system.osw +4 -4
  335. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-second-refrigerator.osw +5 -5
  336. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-zero-clothes-washer-kwh.osw +5 -5
  337. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-zero-dishwasher-kwh.osw +5 -5
  338. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-zero-extra-refrigerator-kwh.osw +5 -5
  339. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-zero-freezer-kwh.osw +5 -5
  340. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-zero-refrigerator-kwh.osw +5 -5
  341. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/conditioned-attic-with-floor-insulation.osw +5 -5
  342. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/conditioned-attic-with-one-floor-above-grade.osw +5 -5
  343. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/conditioned-basement-with-ceiling-insulation.osw +5 -5
  344. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/cooling-system-and-heat-pump.osw +5 -5
  345. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/dhw-indirect-without-boiler.osw +5 -5
  346. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/ducts-location-and-areas-not-same-type.osw +5 -5
  347. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/foundation-wall-insulation-greater-than-height.osw +5 -5
  348. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/heating-system-and-heat-pump.osw +5 -5
  349. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/multifamily-bottom-crawlspace-zero-foundation-height.osw +8 -8
  350. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/multifamily-bottom-slab-non-zero-foundation-height.osw +8 -8
  351. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/multifamily-no-building-orientation.osw +7 -7
  352. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/multipliers-without-fuel-loads.osw +5 -5
  353. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/multipliers-without-other-plug-loads.osw +5 -5
  354. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/multipliers-without-tv-plug-loads.osw +5 -5
  355. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/multipliers-without-vehicle-plug-loads.osw +5 -5
  356. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/multipliers-without-well-pump-plug-loads.osw +5 -5
  357. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/non-electric-heat-pump-water-heater.osw +5 -5
  358. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/non-integer-ceiling-fan-quantity.osw +5 -5
  359. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/non-integer-geometry-num-bathrooms.osw +5 -5
  360. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/second-heating-system-but-no-primary-heating.osw +5 -5
  361. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/second-heating-system-serves-majority-heat.osw +5 -5
  362. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/second-heating-system-serves-total-heat-load.osw +5 -5
  363. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/single-family-attached-ambient.osw +5 -5
  364. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/single-family-attached-no-building-orientation.osw +5 -5
  365. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/single-family-detached-finished-basement-zero-foundation-height.osw +5 -5
  366. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/single-family-detached-slab-non-zero-foundation-height.osw +5 -5
  367. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/{base-appliances-dehumidifier-50percent.osw → invalid_files/single-family-detached-with-shared-system.osw} +22 -22
  368. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/slab-non-zero-foundation-height-above-grade.osw +5 -5
  369. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/unconditioned-basement-with-wall-and-ceiling-insulation.osw +5 -5
  370. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/unvented-attic-with-floor-and-roof-insulation.osw +5 -5
  371. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/unvented-crawlspace-with-wall-and-ceiling-insulation.osw +5 -5
  372. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/vented-attic-with-floor-and-roof-insulation.osw +5 -5
  373. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/vented-crawlspace-with-wall-and-ceiling-insulation.osw +5 -5
  374. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/zero-number-of-bedrooms.osw +5 -5
  375. data/example_files/resources/hpxml-measures/Changelog.md +14 -3
  376. data/example_files/resources/hpxml-measures/Gemfile +1 -4
  377. data/example_files/resources/hpxml-measures/Gemfile.lock +6 -25
  378. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/measure.rb +136 -528
  379. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/measure.xml +131 -106
  380. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/BaseElements.xsd +2 -0
  381. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/EPvalidator.xml +31 -14
  382. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/HPXMLDataTypes.xsd +19 -0
  383. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/airflow.rb +5 -1
  384. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/constants.rb +4 -0
  385. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/constructions.rb +62 -0
  386. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/energyplus.rb +1 -0
  387. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/generator.rb +2 -1
  388. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/geometry.rb +388 -4
  389. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hpxml.rb +54 -14
  390. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hpxml_defaults.rb +40 -4
  391. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hvac.rb +110 -89
  392. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hvac_sizing.rb +2 -4
  393. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/meta_measure.rb +21 -10
  394. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/minitest_helper.rb +4 -26
  395. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/misc_loads.rb +12 -11
  396. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/pv.rb +2 -1
  397. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/schedules.rb +28 -1
  398. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/simcontrols.rb +20 -9
  399. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/version.rb +1 -1
  400. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/waterheater.rb +1 -0
  401. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/xmlhelper.rb +1 -0
  402. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_airflow.rb +2 -28
  403. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_defaults.rb +16 -7
  404. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/{test_constructions.rb → test_enclosure.rb} +12 -16
  405. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_generator.rb +0 -1
  406. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_hotwater_appliance.rb +0 -1
  407. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_hvac.rb +13 -38
  408. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_hvac_sizing.rb +0 -1
  409. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_lighting.rb +0 -1
  410. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_location.rb +0 -1
  411. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_miscloads.rb +0 -1
  412. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_pv.rb +0 -1
  413. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_simcontrols.rb +0 -1
  414. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_validation.rb +1 -2
  415. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_water_heater.rb +0 -1
  416. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/util.rb +26 -0
  417. data/example_files/resources/hpxml-measures/README.md +0 -1
  418. data/example_files/resources/hpxml-measures/Rakefile +1 -2
  419. data/example_files/resources/hpxml-measures/SimulationOutputReport/measure.rb +32 -13
  420. data/example_files/resources/hpxml-measures/SimulationOutputReport/measure.xml +37 -9
  421. data/example_files/resources/hpxml-measures/SimulationOutputReport/tests/output_report_test.rb +24 -7
  422. data/example_files/resources/hpxml-measures/docs/source/getting_started.rst +1 -1
  423. data/example_files/resources/hpxml-measures/docs/source/intro.rst +1 -0
  424. data/example_files/resources/hpxml-measures/docs/source/workflow_inputs.rst +75 -58
  425. data/example_files/resources/hpxml-measures/docs/source/workflow_outputs.rst +5 -1
  426. data/example_files/resources/hpxml-measures/tasks.rb +248 -263
  427. data/example_files/resources/hpxml-measures/weather/USA_CO_Denver.Intl.AP.725650_TMY3-cache.csv +10 -10
  428. data/example_files/resources/hpxml-measures/workflow/run_simulation.rb +17 -4
  429. data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-coal.xml +3 -2
  430. data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-dehumidifier-ief-portable.xml +3 -2
  431. data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-dehumidifier-ief-whole-home.xml +3 -2
  432. data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-dehumidifier-multiple.xml +3 -2
  433. data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-dehumidifier.xml +3 -2
  434. data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-gas.xml +3 -2
  435. data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-modified.xml +3 -2
  436. data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-none.xml +3 -2
  437. data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-oil.xml +3 -2
  438. data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-propane.xml +3 -2
  439. data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-wood.xml +3 -2
  440. data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-cathedral.xml +3 -2
  441. data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-conditioned.xml +3 -2
  442. data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-flat.xml +3 -2
  443. data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-radiant-barrier.xml +3 -2
  444. data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-unvented-insulated-roof.xml +3 -2
  445. data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-vented.xml +3 -2
  446. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-adjacent-to-multifamily-buffer-space.xml +3 -2
  447. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-adjacent-to-multiple.xml +3 -2
  448. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-adjacent-to-non-freezing-space.xml +3 -2
  449. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-adjacent-to-other-heated-space.xml +3 -2
  450. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-adjacent-to-other-housing-unit.xml +3 -2
  451. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-chiller-fan-coil.xml +0 -18
  452. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-chiller-water-loop-heat-pump.xml +1 -0
  453. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-cooling-tower-water-loop-heat-pump.xml +1 -0
  454. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-only-fan-coil-eae.xml +0 -18
  455. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-only-fan-coil.xml +0 -18
  456. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-only-water-loop-heat-pump.xml +1 -0
  457. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-chiller-only-fan-coil.xml +0 -18
  458. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-chiller-only-water-loop-heat-pump.xml +1 -0
  459. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-cooling-tower-only-water-loop-heat-pump.xml +1 -0
  460. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-generator.xml +3 -2
  461. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-ground-loop-ground-to-air-heat-pump.xml +4 -3
  462. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-laundry-room.xml +3 -2
  463. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-mechvent-multiple.xml +6 -4
  464. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-mechvent-preconditioning.xml +3 -2
  465. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-mechvent.xml +3 -2
  466. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-pv.xml +3 -2
  467. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-water-heater-recirc.xml +3 -2
  468. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-water-heater.xml +3 -2
  469. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily.xml +3 -2
  470. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-single-family-attached.xml +3 -2
  471. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-combi-tankless-outside.xml +1 -1
  472. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-combi-tankless.xml +1 -1
  473. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater-2-speed.xml +2 -1
  474. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater-gshp.xml +4 -3
  475. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater-hpwh.xml +3 -2
  476. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater-tankless.xml +2 -1
  477. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater-var-speed.xml +2 -1
  478. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater.xml +2 -1
  479. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-dwhr.xml +3 -2
  480. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect-dse.xml +1 -1
  481. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect-outside.xml +1 -1
  482. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect-standbyloss.xml +1 -1
  483. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect-with-solar-fraction.xml +1 -1
  484. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect.xml +1 -1
  485. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-jacket-electric.xml +3 -2
  486. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-jacket-gas.xml +3 -2
  487. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-jacket-hpwh.xml +3 -2
  488. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-jacket-indirect.xml +1 -1
  489. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-low-flow-fixtures.xml +3 -2
  490. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-multiple.xml +1 -1
  491. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-none.xml +3 -2
  492. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-recirc-demand.xml +3 -2
  493. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-recirc-manual.xml +3 -2
  494. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-recirc-nocontrol.xml +3 -2
  495. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-recirc-temperature.xml +3 -2
  496. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-recirc-timer.xml +3 -2
  497. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-direct-evacuated-tube.xml +3 -2
  498. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-direct-flat-plate.xml +3 -2
  499. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-direct-ics.xml +3 -2
  500. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-fraction.xml +3 -2
  501. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-indirect-flat-plate.xml +3 -2
  502. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-thermosyphon-flat-plate.xml +3 -2
  503. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-coal.xml +3 -2
  504. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-elec-uef.xml +3 -2
  505. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-gas-outside.xml +3 -2
  506. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-gas-uef.xml +3 -2
  507. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-gas.xml +3 -2
  508. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump-outside.xml +3 -2
  509. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump-uef.xml +3 -2
  510. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump-with-solar-fraction.xml +3 -2
  511. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump-with-solar.xml +3 -2
  512. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump.xml +3 -2
  513. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-oil.xml +3 -2
  514. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-wood.xml +3 -2
  515. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-electric-outside.xml +3 -2
  516. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-electric-uef.xml +3 -2
  517. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-electric.xml +3 -2
  518. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-gas-uef.xml +3 -2
  519. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-gas-with-solar-fraction.xml +3 -2
  520. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-gas-with-solar.xml +3 -2
  521. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-gas.xml +3 -2
  522. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-propane.xml +3 -2
  523. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-2stories-garage.xml +3 -2
  524. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-2stories.xml +3 -2
  525. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-beds-1.xml +3 -2
  526. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-beds-2.xml +3 -2
  527. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-beds-4.xml +3 -2
  528. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-beds-5.xml +3 -2
  529. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-garage.xml +3 -2
  530. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-ach-house-pressure.xml +3 -2
  531. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-cfm-house-pressure.xml +3 -2
  532. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-cfm50.xml +3 -2
  533. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-flue.xml +3 -2
  534. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-natural-ach.xml +4 -3
  535. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-overhangs.xml +3 -2
  536. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-rooftypes.xml +3 -2
  537. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-skylights-shading.xml +5 -4
  538. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-skylights.xml +5 -4
  539. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-split-level.xml +3 -2
  540. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-split-surfaces.xml +21 -20
  541. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-split-surfaces2.xml +21 -20
  542. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-walltypes.xml +3 -2
  543. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-windows-none.xml +3 -2
  544. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-windows-shading.xml +3 -2
  545. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-ambient.xml +3 -2
  546. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-basement-garage.xml +3 -2
  547. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-complex.xml +3 -2
  548. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-conditioned-basement-slab-insulation.xml +3 -2
  549. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-conditioned-basement-wall-interior-insulation.xml +3 -2
  550. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-multiple.xml +3 -2
  551. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-slab.xml +3 -2
  552. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-unconditioned-basement-above-grade.xml +3 -2
  553. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-unconditioned-basement-assembly-r.xml +3 -2
  554. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-unconditioned-basement-wall-insulation.xml +3 -2
  555. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-unconditioned-basement.xml +3 -2
  556. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-unvented-crawlspace.xml +3 -2
  557. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-vented-crawlspace.xml +3 -2
  558. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-walkout-basement.xml +3 -2
  559. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-1-speed-cooling-only.xml +2 -1
  560. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-1-speed-heating-only.xml +4 -3
  561. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-1-speed.xml +5 -4
  562. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-2-speed.xml +5 -4
  563. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-var-speed.xml +5 -4
  564. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-1-speed-cooling-only.xml +1 -0
  565. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-1-speed-heating-only.xml +1 -0
  566. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-1-speed-manual-s-oversize-allowances.xml +1 -0
  567. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-1-speed.xml +1 -0
  568. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-2-speed-manual-s-oversize-allowances.xml +1 -0
  569. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-2-speed.xml +1 -0
  570. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-var-speed-manual-s-oversize-allowances.xml +1 -0
  571. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-var-speed.xml +1 -0
  572. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-boiler-gas-central-ac-1-speed.xml +1 -0
  573. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-central-ac-only-1-speed.xml +1 -0
  574. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-central-ac-only-2-speed.xml +1 -0
  575. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-central-ac-only-var-speed.xml +1 -0
  576. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-central-ac-plus-air-to-air-heat-pump-heating.xml +1 -0
  577. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-dual-fuel-air-to-air-heat-pump-1-speed.xml +1 -0
  578. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-dual-fuel-mini-split-heat-pump-ducted.xml +1 -0
  579. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-evap-cooler-furnace-gas.xml +1 -0
  580. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-furnace-elec-only.xml +1 -0
  581. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-furnace-gas-central-ac-2-speed.xml +1 -0
  582. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-furnace-gas-central-ac-var-speed.xml +1 -0
  583. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-furnace-gas-only.xml +1 -0
  584. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-furnace-gas-room-ac.xml +1 -0
  585. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-ground-to-air-heat-pump-cooling-only.xml +1 -0
  586. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-ground-to-air-heat-pump-heating-only.xml +1 -0
  587. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-ground-to-air-heat-pump-manual-s-oversize-allowances.xml +1 -0
  588. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-ground-to-air-heat-pump.xml +1 -0
  589. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-mini-split-air-conditioner-only-ducted.xml +1 -0
  590. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-mini-split-heat-pump-ducted-cooling-only.xml +1 -0
  591. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-mini-split-heat-pump-ducted-heating-only.xml +1 -0
  592. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-mini-split-heat-pump-ducted-manual-s-oversize-allowances.xml +1 -0
  593. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-mini-split-heat-pump-ducted.xml +1 -0
  594. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize.xml +1 -0
  595. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-coal-only.xml +1 -1
  596. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-elec-only.xml +1 -1
  597. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-gas-central-ac-1-speed.xml +3 -2
  598. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-gas-only.xml +1 -1
  599. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-oil-only.xml +1 -1
  600. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-propane-only.xml +1 -1
  601. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-wood-only.xml +1 -1
  602. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-central-ac-only-1-speed.xml +2 -1
  603. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-central-ac-only-2-speed.xml +2 -1
  604. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-central-ac-only-var-speed.xml +2 -1
  605. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-central-ac-plus-air-to-air-heat-pump-heating.xml +6 -5
  606. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dse.xml +2 -2
  607. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dual-fuel-air-to-air-heat-pump-1-speed-electric.xml +4 -3
  608. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dual-fuel-air-to-air-heat-pump-1-speed.xml +4 -3
  609. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dual-fuel-air-to-air-heat-pump-2-speed.xml +4 -3
  610. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dual-fuel-air-to-air-heat-pump-var-speed.xml +4 -3
  611. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dual-fuel-mini-split-heat-pump-ducted.xml +4 -3
  612. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ducts-leakage-percent.xml +3 -2
  613. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-elec-resistance-only.xml +1 -1
  614. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-evap-cooler-furnace-gas.xml +3 -2
  615. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-evap-cooler-only-ducted.xml +3 -2
  616. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-evap-cooler-only.xml +1 -1
  617. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-fireplace-wood-only.xml +1 -1
  618. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-fixed-heater-gas-only.xml +1 -52
  619. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-floor-furnace-propane-only.xml +1 -1
  620. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-coal-only.xml +2 -1
  621. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-elec-central-ac-1-speed.xml +3 -2
  622. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-elec-only.xml +2 -1
  623. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-gas-central-ac-2-speed.xml +3 -2
  624. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-gas-central-ac-var-speed.xml +3 -2
  625. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-gas-only.xml +2 -1
  626. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-gas-room-ac.xml +3 -2
  627. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-oil-only.xml +2 -1
  628. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-propane-only.xml +2 -1
  629. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-wood-only.xml +2 -1
  630. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-x3-dse.xml +4 -4
  631. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ground-to-air-heat-pump-cooling-only.xml +2 -1
  632. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ground-to-air-heat-pump-heating-only.xml +3 -2
  633. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ground-to-air-heat-pump.xml +4 -3
  634. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-airflow-defect-furnace-gas-central-ac-1-speed.xml +3 -2
  635. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-all-air-to-air-heat-pump-1-speed.xml +5 -4
  636. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-all-air-to-air-heat-pump-2-speed.xml +5 -4
  637. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-all-air-to-air-heat-pump-var-speed.xml +5 -4
  638. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-all-furnace-gas-central-ac-1-speed.xml +3 -2
  639. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-all-furnace-gas-central-ac-2-speed.xml +3 -2
  640. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-all-furnace-gas-central-ac-var-speed.xml +3 -2
  641. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-all-furnace-gas-only.xml +2 -1
  642. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-all-ground-to-air-heat-pump.xml +4 -3
  643. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-all-mini-split-air-conditioner-only-ducted.xml +2 -1
  644. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-all-mini-split-heat-pump-ducted.xml +5 -4
  645. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-blower-efficiency-furnace-gas-central-ac-1-speed.xml +3 -2
  646. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-charge-defect-furnace-gas-central-ac-1-speed.xml +3 -2
  647. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-none-furnace-gas-central-ac-1-speed.xml +3 -2
  648. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-air-conditioner-only-ducted.xml +2 -1
  649. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-air-conditioner-only-ductless.xml +1 -1
  650. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ducted-cooling-only.xml +2 -1
  651. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ducted-heating-only.xml +4 -3
  652. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ducted.xml +5 -4
  653. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ductless.xml +3 -3
  654. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-multiple.xml +9 -5
  655. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-portable-heater-gas-only.xml +1 -52
  656. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-programmable-thermostat-detailed.xml +6 -5
  657. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-programmable-thermostat.xml +3 -2
  658. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-room-ac-only-33percent.xml +1 -1
  659. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-room-ac-only.xml +1 -1
  660. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-setpoints.xml +3 -2
  661. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-stove-oil-only.xml +1 -1
  662. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-stove-wood-pellets-only.xml +1 -1
  663. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-undersized-allow-increased-fixed-capacities.xml +3 -2
  664. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-undersized.xml +3 -2
  665. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-wall-furnace-elec-only.xml +1 -1
  666. data/example_files/resources/hpxml-measures/workflow/sample_files/base-lighting-ceiling-fans.xml +3 -2
  667. data/example_files/resources/hpxml-measures/workflow/sample_files/base-lighting-detailed.xml +3 -2
  668. data/example_files/resources/hpxml-measures/workflow/sample_files/base-lighting-none.xml +3 -2
  669. data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-AMY-2012.xml +3 -2
  670. data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-baltimore-md.xml +3 -2
  671. data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-dallas-tx.xml +3 -2
  672. data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-duluth-mn.xml +3 -2
  673. data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-helena-mt.xml +3 -2
  674. data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-honolulu-hi.xml +3 -2
  675. data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-miami-fl.xml +3 -2
  676. data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-phoenix-az.xml +3 -2
  677. data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-portland-or.xml +3 -2
  678. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-balanced.xml +3 -2
  679. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-bath-kitchen-fans.xml +3 -2
  680. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-cfis-dse.xml +2 -2
  681. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-cfis-evap-cooler-only-ducted.xml +3 -2
  682. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-cfis.xml +3 -2
  683. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-erv-atre-asre.xml +3 -2
  684. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-erv.xml +3 -2
  685. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-exhaust-rated-flow-rate.xml +3 -2
  686. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-exhaust.xml +3 -2
  687. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-hrv-asre.xml +3 -2
  688. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-hrv.xml +3 -2
  689. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-multiple.xml +30 -28
  690. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-supply.xml +3 -2
  691. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-whole-house-fan.xml +3 -2
  692. data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-defaults.xml +3 -2
  693. data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-generators.xml +4 -3
  694. data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-loads-large-uncommon.xml +3 -2
  695. data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-loads-large-uncommon2.xml +3 -2
  696. data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-loads-none.xml +3 -2
  697. data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-neighbor-shading.xml +3 -2
  698. data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-shielding-of-home.xml +3 -2
  699. data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-usage-multiplier.xml +3 -2
  700. data/example_files/resources/hpxml-measures/workflow/sample_files/base-multiple-buildings.xml +9 -6
  701. data/example_files/resources/hpxml-measures/workflow/sample_files/base-pv.xml +3 -2
  702. data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-stochastic-vacant.xml +3 -2
  703. data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-stochastic.xml +3 -2
  704. data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-user-specified.xml +3 -2
  705. data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-calendar-year-custom.xml +3 -2
  706. data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-daylight-saving-custom.xml +3 -2
  707. data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-daylight-saving-disabled.xml +3 -2
  708. data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-runperiod-1-month.xml +3 -2
  709. data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-timestep-10-mins.xml +3 -2
  710. data/example_files/resources/hpxml-measures/workflow/sample_files/base.xml +3 -2
  711. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/boiler-invalid-afue.xml +1 -1
  712. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/cfis-with-hydronic-distribution.xml +1 -1
  713. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/clothes-dryer-location.xml +3 -2
  714. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/clothes-washer-location.xml +3 -2
  715. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/cooking-range-location.xml +3 -2
  716. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/dehumidifier-fraction-served.xml +3 -2
  717. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/dehumidifier-setpoints.xml +3 -2
  718. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/dhw-frac-load-served.xml +1 -1
  719. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/dhw-invalid-ef-tank.xml +3 -2
  720. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/dhw-invalid-uef-tank-heat-pump.xml +3 -2
  721. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/dishwasher-location.xml +3 -2
  722. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/duct-leakage-cfm25.xml +3 -2
  723. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/duct-leakage-percent.xml +3 -2
  724. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/duct-location-unconditioned-space.xml +3 -2
  725. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/duct-location.xml +3 -2
  726. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/duplicate-id.xml +3 -2
  727. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-attic-missing-roof.xml +3 -2
  728. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-basement-missing-exterior-foundation-wall.xml +3 -2
  729. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-basement-missing-slab.xml +3 -2
  730. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-floor-area-exceeds-cfa.xml +4 -3
  731. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-floor-area-exceeds-cfa2.xml +4 -3
  732. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-garage-missing-exterior-wall.xml +3 -2
  733. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-garage-missing-roof-ceiling.xml +3 -2
  734. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-garage-missing-slab.xml +3 -2
  735. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-living-missing-ceiling-roof.xml +3 -2
  736. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-living-missing-exterior-wall.xml +3 -2
  737. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-living-missing-floor-slab.xml +3 -2
  738. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/frac-sensible-fuel-load.xml +3 -2
  739. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/frac-sensible-plug-load.xml +3 -2
  740. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/frac-total-fuel-load.xml +3 -2
  741. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/frac-total-plug-load.xml +3 -2
  742. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/furnace-invalid-afue.xml +3 -2
  743. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/generator-number-of-bedrooms-served.xml +3 -2
  744. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/generator-output-greater-than-consumption.xml +4 -3
  745. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/heat-pump-mixed-fixed-and-autosize-capacities.xml +2 -1
  746. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/hvac-distribution-multiple-attached-cooling.xml +9 -5
  747. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/hvac-distribution-multiple-attached-heating.xml +9 -5
  748. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/hvac-distribution-return-duct-leakage-missing.xml +3 -2
  749. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/hvac-dse-multiple-attached-cooling.xml +3 -3
  750. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/hvac-dse-multiple-attached-heating.xml +3 -3
  751. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/hvac-frac-load-served.xml +9 -5
  752. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/hvac-inconsistent-fan-powers.xml +3 -2
  753. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/hvac-invalid-distribution-system-type.xml +3 -2
  754. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/hvac-shared-negative-seer-eq.xml +407 -0
  755. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-assembly-effective-rvalue.xml +3 -2
  756. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-datatype-boolean.xml +3 -2
  757. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-datatype-float.xml +3 -2
  758. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-datatype-integer.xml +3 -2
  759. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-daylight-saving.xml +3 -2
  760. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-distribution-cfa-served.xml +3 -2
  761. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-epw-filepath.xml +3 -2
  762. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-facility-type-equipment.xml +3 -2
  763. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-facility-type-surfaces.xml +3 -2
  764. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-foundation-wall-properties.xml +3 -2
  765. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-id.xml +5 -4
  766. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-id2.xml +5 -4
  767. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-infiltration-volume.xml +3 -2
  768. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-input-parameters.xml +3 -2
  769. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-neighbor-shading-azimuth.xml +3 -2
  770. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-number-of-bedrooms-served.xml +3 -2
  771. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-number-of-conditioned-floors.xml +3 -2
  772. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-number-of-units-served.xml +3 -2
  773. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-relatedhvac-desuperheater.xml +2 -1
  774. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-relatedhvac-dhw-indirect.xml +1 -1
  775. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-runperiod.xml +3 -2
  776. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-schema-version.xml +3 -2
  777. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-shared-vent-in-unit-flowrate.xml +3 -2
  778. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-timestep.xml +3 -2
  779. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-window-height.xml +3 -2
  780. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/lighting-fractions.xml +3 -2
  781. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/missing-duct-location.xml +9 -5
  782. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/missing-elements.xml +3 -2
  783. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/multifamily-reference-appliance.xml +3 -2
  784. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/multifamily-reference-duct.xml +3 -2
  785. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/multifamily-reference-surface.xml +3 -2
  786. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/multifamily-reference-water-heater.xml +3 -2
  787. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/multiple-buildings-without-building-id.xml +9 -6
  788. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/multiple-buildings-wrong-building-id.xml +9 -6
  789. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/net-area-negative-roof.xml +4 -3
  790. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/net-area-negative-wall.xml +3 -2
  791. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/num-bedrooms-exceeds-limit.xml +3 -2
  792. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/orphaned-hvac-distribution.xml +2 -1
  793. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/refrigerator-location.xml +3 -2
  794. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/refrigerators-multiple-primary.xml +3 -2
  795. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/refrigerators-no-primary.xml +3 -2
  796. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/repeated-relatedhvac-desuperheater.xml +2 -1
  797. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/repeated-relatedhvac-dhw-indirect.xml +1 -1
  798. data/example_files/resources/hpxml-measures/workflow/sample_files/{base-appliances-dehumidifier-50percent.xml → invalid_files/solar-fraction-one.xml} +570 -524
  799. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/solar-thermal-system-with-combi-tankless.xml +1 -1
  800. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/solar-thermal-system-with-desuperheater.xml +2 -1
  801. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/solar-thermal-system-with-dhw-indirect.xml +1 -1
  802. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/unattached-cfis.xml +3 -2
  803. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/unattached-door.xml +3 -2
  804. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/unattached-hvac-distribution.xml +3 -2
  805. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/unattached-shared-clothes-washer-water-heater.xml +3 -2
  806. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/unattached-shared-dishwasher-water-heater.xml +3 -2
  807. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/unattached-skylight.xml +5 -4
  808. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/unattached-solar-thermal-system.xml +3 -2
  809. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/unattached-window.xml +3 -2
  810. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/water-heater-location-other.xml +3 -2
  811. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/water-heater-location.xml +3 -2
  812. data/example_files/resources/hpxml-measures/workflow/template.osw +1 -0
  813. data/example_files/resources/hpxml-measures/workflow/tests/base_results/results.csv +294 -0
  814. data/example_files/resources/hpxml-measures/workflow/tests/base_results/results_ashrae_140.csv +27 -0
  815. data/example_files/resources/hpxml-measures/workflow/tests/base_results/results_hvac_sizing.csv +294 -0
  816. data/example_files/resources/hpxml-measures/workflow/tests/compare.rb +130 -0
  817. data/example_files/resources/hpxml-measures/workflow/tests/hpxml_translator_test.rb +108 -38
  818. data/example_files/visualization/input_visualization_feature.html +15 -16
  819. data/example_files/visualization/input_visualization_scenario.html +16 -11
  820. data/lib/uo_cli/version.rb +1 -1
  821. data/lib/uo_cli.rb +158 -26
  822. data/scripts/setup-env-gitbash.sh +4 -4
  823. data/scripts/setup-env-unix.sh +4 -4
  824. data/scripts/setup-env.bat +3 -3
  825. data/scripts/setup-env.ps1 +3 -3
  826. data/uo_cli.gemspec +10 -7
  827. metadata +80 -24
  828. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_config.yml +0 -74
  829. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-multiple2.xml +0 -838
data/lib/uo_cli.rb CHANGED
@@ -46,6 +46,7 @@ require 'urbanopt/geojson'
46
46
  require 'urbanopt/scenario'
47
47
  require 'urbanopt/reopt'
48
48
  require 'urbanopt/reopt_scenario'
49
+ require 'urbanopt/rnm'
49
50
  require 'csv'
50
51
  require 'fileutils'
51
52
  require 'json'
@@ -59,10 +60,11 @@ module URBANopt
59
60
  COMMAND_MAP = {
60
61
  'create' => 'Make new things - project directory or files',
61
62
  'run' => 'Use files in your directory to simulate district energy use',
62
- 'opendss' => 'Run OpenDSS simulation',
63
63
  'process' => 'Post-process URBANopt simulations for additional insights',
64
64
  'visualize' => 'Visualize and compare results for features and scenarios',
65
65
  'validate' => 'Validate results with custom rules',
66
+ 'opendss' => 'Run OpenDSS simulation',
67
+ 'rnm' => 'Run RNM simulation',
66
68
  'delete' => 'Delete simulations for a specified scenario',
67
69
  'des_params' => 'Make a DES system parameters config file',
68
70
  'des_create' => 'Create a Modelica model',
@@ -106,9 +108,6 @@ module URBANopt
106
108
  "Add additional tags to specify the method for creating geometry, or use the default urban geometry creation method to create building geometry from geojson coordinates with core and perimeter zoning\n" \
107
109
  'Example: uo create --project-folder urbanopt_example_project', type: String, short: :p
108
110
 
109
- opt :electric, "\nCreate default project with FeatureFile containing electrical network\n" \
110
- "Example: uo create --project-folder urbanopt_example_project --electric", short: :l
111
-
112
111
  opt :create_bar, "\nCreate building geometry and add space types using the create bar from building type ratios measure\n" \
113
112
  "Refer to https://docs.urbanopt.net/ for more details about the workflow\n" \
114
113
  "Used with --project-folder\n" \
@@ -123,6 +122,15 @@ module URBANopt
123
122
  "This functionality has not been exhaustively tested and currently supports the Single-Family Detached building type and the Baseline Scenario only\n" \
124
123
  "Used with --project-folder\n" \
125
124
  "Example: uo create --project-folder urbanopt_example_project --combined\n", short: :d
125
+
126
+ opt :electric, "\nCreate default project with FeatureFile containing electrical network, used for OpenDSS analysis\n" \
127
+ "Example: uo create --project-folder urbanopt_example_project --electric", short: :l
128
+
129
+ opt :streets, "\nCreate default project wiht FeatureFile containing streets, used for RNM analysis\n" \
130
+ "Example: uo create --project-folder urbanopt_example_project --streets", short: :t
131
+
132
+ opt :photovoltaic, "\nCreate default project with FeatureFile containing community photovoltaic for the district and ground-mount photovoltaic associated with buildings, used for REopt analysis \n" \
133
+ "Example: uo create --project-folder urbanopt_example_project --photovoltaic", short: :v
126
134
 
127
135
  opt :empty, "\nUse with --project-folder argument to create an empty project folder\n" \
128
136
  "Then add your own Feature file in the project directory you created,\n" \
@@ -173,11 +181,11 @@ module URBANopt
173
181
 
174
182
  opt :scenario, "\nRun OpenDSS simulations for <scenario>\n" \
175
183
  "Requires --feature also be specified\n" \
176
- 'Example: uo opendss --scenario baseline_scenario-2.csv --feature example_project.json', default: 'baseline_scenario.csv', short: :s
184
+ 'Example: uo opendss --scenario baseline_scenario-2.csv --feature example_project.json', default: 'baseline_scenario.csv', required: true, short: :s
177
185
 
178
186
  opt :feature, "\nRun OpenDSS simulations according to <featurefile>\n" \
179
187
  "Requires --scenario also be specified\n" \
180
- 'Example: uo opendss --scenario baseline_scenario.csv --feature example_project.json', default: 'example_project_with_electric_network.json', short: :f
188
+ 'Example: uo opendss --scenario baseline_scenario.csv --feature example_project.json', default: 'example_project_with_electric_network.json', required: true, short: :f
181
189
 
182
190
  opt :equipment, "\nRun OpenDSS simulations using <equipmentfile>. If not specified, the electrical_database.json from urbanopt-ditto-reader will be used.\n" \
183
191
  'Example: uo opendss --scenario baseline_scenario.csv --feature example_project.json', type: String, short: :e
@@ -204,6 +212,33 @@ module URBANopt
204
212
  end
205
213
  end
206
214
 
215
+ # Define RNM commands
216
+ def opt_rnm
217
+ @subopts = Optimist.options do
218
+ banner "\nURBANopt #{@command}:\n\n"
219
+
220
+ opt :scenario, "\nRun RNM simulation for <scenario>. Scenario must be run and post-processed prior to calling the rnm command.\n" \
221
+ "Requires --feature also be specified\n" \
222
+ 'Example: uo rnm --scenario baseline_scenario-2.csv --feature example_project.json', default: 'baseline_scenario.csv', required: true, short: :s
223
+
224
+ opt :feature, "\nRun RNM simulation according to <featurefile>\n" \
225
+ "Requires --scenario also be specified\n" \
226
+ 'Example: uo rnm --scenario baseline_scenario.csv --feature example_project.json', default: 'example_project_with_streets.json', required: true, short: :f
227
+
228
+ opt :reopt, "\nInclude processed REopt optimization results in the simulation.\n" \
229
+ "Example: uo rnm --scenario baseline_scenario.csv --feature example_project.json --reopt", short: :r
230
+
231
+ opt :extended_catalog, "\nUse this option to specify the extended electrical catalog path.\n" \
232
+ "If this option is not included, the default catalog will be used", type: String, short: :c
233
+
234
+ opt :average_peak_catalog, "\nUse this option to specify the average peak catalog path.\n" \
235
+ "If this option is not included, the default catalog will be used", type: String, short: :a
236
+
237
+ opt :opendss, "\n If this option is specified, an OpenDSS-compatible electrical database will be created \n" \
238
+ "Example: uo rnm --scenario baseline_scenario.csv --feature example_project_with_streets.json --opendss", short: :o
239
+ end
240
+ end
241
+
207
242
  # Define post-processing commands
208
243
  def opt_process
209
244
  @subopts = Optimist.options do
@@ -219,10 +254,16 @@ module URBANopt
219
254
  opt :reopt_feature, "\nOptimize for each building individually with REopt\n" \
220
255
  'Example: uo process --reopt-feature'
221
256
 
257
+ opt :reopt_resilience, "\nInclude resilience reporting in REopt optimization\n" \
258
+ 'Example: uo process --reopt-scenario --reopt-resilience'
259
+
260
+ opt :reopt_keep_existing, "\nKeep existing reopt feature optimizations instead of rerunning them to avoid rate limit issues.\n" \
261
+ 'Example: uo process --reopt-feature --reopt-keep-existing', short: :k
262
+
222
263
  opt :with_database, "\nInclude a sql database output of post-processed results\n" \
223
264
  'Example: uo process --default --with-database'
224
265
 
225
- opt :reopt_scenario_assumptions_file, "\nPath to the scenario REopt assumptions JSON file you want to use. Use with the --reopt-scenario post-processor. " \
266
+ opt :reopt_scenario_assumptions_file, "\nPath to the scenario REopt assumptions JSON file you want to use. Use with the --reopt-scenario post-processor.\n" \
226
267
  "If not specified, the reopt/base_assumptions.json file will be used", type: String, short: :a
227
268
 
228
269
  opt :scenario, "\nSelect which scenario to optimize", default: 'baseline_scenario.csv', required: true, short: :s
@@ -344,7 +385,7 @@ module URBANopt
344
385
  @scenario_name = File.basename(@scenario_file_name, File.extname(@scenario_file_name))
345
386
  end
346
387
 
347
- # Simulate energy usage as defined by ScenarioCSV\
388
+ # Simulate energy usage as defined by ScenarioCSV
348
389
  def self.run_func
349
390
  run_dir = File.join(@root_dir, 'run', @scenario_name.downcase)
350
391
  csv_file = File.join(@root_dir, @scenario_file_name)
@@ -493,11 +534,15 @@ module URBANopt
493
534
 
494
535
  if @opthash.subopts[:electric] == true
495
536
  FileUtils.cp(File.join(path_item, 'example_project_with_electric_network.json'), dir_name)
537
+ elsif @opthash.subopts[:streets] == true
538
+ FileUtils.cp(File.join(path_item, 'example_project_with_streets.json'), dir_name)
539
+ elsif @opthash.subopts[:photovoltaic] == true
540
+ FileUtils.cp(File.join(path_item, 'example_project_with_PV.json'), dir_name)
496
541
  end
497
542
 
498
543
  if @opthash.subopts[:floorspace] == false
499
544
 
500
- if @opthash.subopts[:electric] != true
545
+ if @opthash.subopts[:electric] != true && @opthash.subopts[:streets] != true && @opthash.subopts[:photovoltaic] != true
501
546
  # copy feature file
502
547
  FileUtils.cp(File.join(path_item, 'example_project.json'), dir_name)
503
548
  end
@@ -514,6 +559,7 @@ module URBANopt
514
559
  FileUtils.cp(File.join(path_item, 'mappers/HighEfficiency.rb'), File.join(dir_name, 'mappers'))
515
560
  FileUtils.cp(File.join(path_item, 'mappers/ThermalStorage.rb'), File.join(dir_name, 'mappers'))
516
561
  FileUtils.cp(File.join(path_item, 'mappers/EvCharging.rb'), File.join(dir_name, 'mappers'))
562
+ FileUtils.cp(File.join(path_item, 'mappers/FlexibleHotWater.rb'), File.join(dir_name, 'mappers'))
517
563
 
518
564
  # copy osw file
519
565
  FileUtils.cp(File.join(path_item, 'mappers/base_workflow.osw'), File.join(dir_name, 'mappers'))
@@ -728,6 +774,7 @@ module URBANopt
728
774
  puts "\nDone\n"
729
775
  end
730
776
 
777
+ # Run OpenDSS simulation
731
778
  if @opthash.command == 'opendss'
732
779
 
733
780
  # first check python
@@ -797,11 +844,45 @@ module URBANopt
797
844
  begin
798
845
  system(ditto_cli_root + ditto_cli_addition)
799
846
  rescue FileNotFoundError
800
- abort("\nMust post-process results before running opendss. We recommend 'process --default'." \
801
- "Once opendss is run, you may then 'process --opendss'")
847
+ abort("\nMust post-process results before running OpenDSS. We recommend 'process --default'." \
848
+ "Once OpenDSS is run, you may then 'process --opendss'")
802
849
  end
803
850
  end
804
851
 
852
+ # Run RNM Simulation
853
+ if @opthash.command == 'rnm'
854
+
855
+ run_dir = File.join(@root_dir, 'run', @scenario_name.downcase)
856
+ # check if project has been post-processed appropriately
857
+ if !File.exist?(File.join(run_dir, 'default_scenario_report.json'))
858
+ abort("\nYou must first post-process the scenario before running RNM. We recommend 'process --default'.")
859
+ end
860
+
861
+ puts 'Preparing RNM inputs'
862
+ # prep arguments
863
+ reopt = @opthash.subopts[:reopt] ? true : false
864
+ opendss_catalog = @opthash.subopts[:opendss] ? true : false
865
+
866
+ # if paths below are nil, default paths will be used
867
+ extended_catalog_path = @opthash.subopts[:extended_catalog] ? @opthash.subopts[:extended_catalog] : nil
868
+ average_peak_catalog_path = @opthash.subopts[:average_peak_catalog] ? @opthash.subopts[:average_peak_catalog] : nil
869
+
870
+ # create inputs, run sim and get results
871
+ begin
872
+ runner = URBANopt::RNM::Runner.new(@scenario_name, run_dir, @opthash.subopts[:scenario], @opthash.subopts[:feature], extended_catalog_path:extended_catalog_path, average_peak_catalog_path:average_peak_catalog_path, reopt:reopt, opendss_catalog:opendss_catalog)
873
+ runner.create_simulation_files
874
+ runner.run
875
+ runner.post_process
876
+ rescue => error
877
+ abort("\nError: #{error.message}")
878
+ end
879
+
880
+ # TODO: aggregate back into scenario reports and geojson file
881
+ puts "\nRNM Results saved to: #{File.join(run_dir, 'rnm-us', 'results')}"
882
+ puts "\nDone\n"
883
+
884
+ end
885
+
805
886
  # Post-process the scenario
806
887
  if @opthash.command == 'process'
807
888
  if @opthash.subopts[:default] == false && @opthash.subopts[:opendss] == false && @opthash.subopts[:reopt_scenario] == false && @opthash.subopts[:reopt_feature] == false
@@ -829,7 +910,7 @@ module URBANopt
829
910
  results << { "process_type": 'default', "status": 'Complete', "timestamp": Time.now.strftime('%Y-%m-%dT%k:%M:%S.%L') }
830
911
  elsif @opthash.subopts[:opendss] == true
831
912
  puts "\nPost-processing OpenDSS results\n"
832
- opendss_folder = File.join(@root_dir, 'run', @scenario_name, 'opendss')
913
+ opendss_folder = File.join(@root_dir, 'run', @scenario_name.downcase, 'opendss')
833
914
  if File.directory?(opendss_folder)
834
915
  opendss_folder_name = File.basename(opendss_folder)
835
916
  opendss_post_processor = URBANopt::Scenario::OpenDSSPostProcessor.new(scenario_report, opendss_results_dir_name = opendss_folder_name)
@@ -848,15 +929,58 @@ module URBANopt
848
929
  scenario_assumptions = File.expand_path(@opthash.subopts[:reopt_scenario_assumptions_file]).to_s
849
930
  end
850
931
  puts "\nRunning the REopt Scenario post-processor with scenario assumptions file: #{scenario_assumptions}\n"
851
- reopt_post_processor = URBANopt::REopt::REoptPostProcessor.new(scenario_report, scenario_assumptions, scenario_base.reopt_feature_assumptions, DEVELOPER_NREL_KEY)
932
+ # Add community photovoltaic if present in the Feature File
933
+ community_photovoltaic = []
934
+ feature_file = JSON.parse(File.read(File.expand_path(@opthash.subopts[:feature])), symbolize_names: true)
935
+ feature_file[:features].each do |feature|
936
+ begin
937
+ if feature[:properties][:district_system_type]
938
+ if feature[:properties][:district_system_type] == 'Community Photovoltaic'
939
+ community_photovoltaic << feature
940
+ end
941
+ end
942
+ rescue
943
+ end
944
+ end
945
+ reopt_post_processor = URBANopt::REopt::REoptPostProcessor.new(
946
+ scenario_report,
947
+ scenario_assumptions,
948
+ scenario_base.reopt_feature_assumptions,
949
+ DEVELOPER_NREL_KEY,false
950
+ )
852
951
  if @opthash.subopts[:reopt_scenario] == true
853
952
  puts "\nPost-processing entire scenario with REopt\n"
854
- scenario_report_scenario = reopt_post_processor.run_scenario_report(scenario_report: scenario_report, save_name: 'scenario_optimization')
953
+ scenario_report_scenario = reopt_post_processor.run_scenario_report(
954
+ scenario_report: scenario_report,
955
+ save_name: 'scenario_optimization',
956
+ run_resilience: @opthash.subopts[:reopt_resilience],
957
+ community_photovoltaic: community_photovoltaic
958
+ )
855
959
  results << { "process_type": 'reopt_scenario', "status": 'Complete', "timestamp": Time.now.strftime('%Y-%m-%dT%k:%M:%S.%L') }
856
960
  puts "\nDone\n"
857
961
  elsif @opthash.subopts[:reopt_feature] == true
858
962
  puts "\nPost-processing each building individually with REopt\n"
859
- scenario_report_features = reopt_post_processor.run_scenario_report_features(scenario_report: scenario_report, save_names_feature_reports: ['feature_optimization'] * scenario_report.feature_reports.length, save_name_scenario_report: 'feature_optimization')
963
+ # Add groundmount photovoltaic if present in the Feature File
964
+ groundmount_photovoltaic = {}
965
+ feature_file = JSON.parse(File.read(File.expand_path(@opthash.subopts[:feature])), symbolize_names: true)
966
+ feature_file[:features].each do |feature|
967
+ begin
968
+ if feature[:properties][:district_system_type]
969
+ if feature[:properties][:district_system_type] == 'Ground Mount Photovoltaic'
970
+ groundmount_photovoltaic[feature[:properties][:associated_building_id]] = feature[:properties][:footprint_area]
971
+ end
972
+ end
973
+ rescue
974
+ end
975
+ end
976
+ scenario_report_features = reopt_post_processor.run_scenario_report_features(
977
+ scenario_report: scenario_report,
978
+ save_names_feature_reports: ['feature_optimization'] * scenario_report.feature_reports.length,
979
+ save_name_scenario_report: 'feature_optimization',
980
+ run_resilience: @opthash.subopts[:reopt_resilience],
981
+ keep_existing_output: @opthash.subopts[:reopt_keep_existing],
982
+ groundmount_photovoltaic: groundmount_photovoltaic
983
+ )
860
984
  results << { "process_type": 'reopt_feature', "status": 'Complete', "timestamp": Time.now.strftime('%Y-%m-%dT%k:%M:%S.%L') }
861
985
  puts "\nDone\n"
862
986
  end
@@ -881,11 +1005,16 @@ module URBANopt
881
1005
  scenario_folders = []
882
1006
  scenario_report_exists = false
883
1007
  Dir.glob(File.join(run_dir, '/*_scenario')) do |scenario_folder|
884
- scenario_report = File.join(scenario_folder, 'default_scenario_report.csv')
885
- if File.exist?(scenario_report)
886
- scenario_folders << scenario_folder
1008
+ scenario_report = File.join(scenario_folder, 'scenario_optimization.csv')
1009
+ # Check if Scenario Optimization REopt file exists and add that
1010
+ if File.exist?(File.join(scenario_folder, 'scenario_optimization.csv'))
1011
+ scenario_folders << File.join(scenario_folder, 'scenario_optimization.csv')
887
1012
  scenario_report_exists = true
888
- else
1013
+ # Check if Default Feature Report exists and add that
1014
+ elsif File.exist?(File.join(scenario_folder, 'default_scenario_report.csv'))
1015
+ scenario_folders << File.join(scenario_folder, 'default_scenario_report.csv')
1016
+ scenario_report_exists = true
1017
+ elsif
889
1018
  puts "\nERROR: Default reports not created for #{scenario_folder}. Please use 'process --default' to create default post processing reports for all scenarios first. Visualization not generated for #{scenario_folder}.\n"
890
1019
  end
891
1020
  end
@@ -921,11 +1050,14 @@ module URBANopt
921
1050
  feature_folders = []
922
1051
  # loop through building feature ids from scenario csv
923
1052
  csv['Feature Id'].each do |feature|
924
- feature_report = File.join(run_dir, feature, 'feature_reports')
925
- if File.exist?(feature_report)
1053
+ # Check if Feature Optimization REopt file exists and add that
1054
+ if File.exist?(File.join(run_dir, feature, 'feature_reports/feature_optimization.csv'))
926
1055
  feature_report_exists = true
927
- feature_folders << File.join(run_dir, feature)
928
- else
1056
+ feature_folders << File.join(run_dir, feature, 'feature_reports/feature_optimization.csv')
1057
+ elsif File.exist?(File.join(run_dir, feature, 'feature_reports/default_feature_report.csv'))
1058
+ feature_report_exists = true
1059
+ feature_folders << File.join(run_dir, feature, 'feature_reports/default_feature_report.csv')
1060
+ elsif
929
1061
  puts "\nERROR: Default reports not created for #{feature}. Please use 'process --default' to create default post processing reports for all features first. Visualization not generated for #{feature}.\n"
930
1062
  end
931
1063
  end
@@ -944,7 +1076,7 @@ module URBANopt
944
1076
  end
945
1077
  end
946
1078
  end
947
- html_out_path = File.join(@root_dir, 'run', @scenario_name, 'feature_comparison.html')
1079
+ html_out_path = File.join(@root_dir, 'run', @scenario_name.downcase, 'feature_comparison.html')
948
1080
  FileUtils.cp(html_in_path, html_out_path)
949
1081
  puts "\nDone\n"
950
1082
  end
@@ -966,8 +1098,8 @@ module URBANopt
966
1098
  feature_ids = CSV.read(@opthash.subopts[:scenario], headers: true)
967
1099
  feature_list = []
968
1100
  feature_ids['Feature Id'].each do |feature|
969
- if Dir.exist?(File.join(@root_dir, 'run', @scenario_name, feature))
970
- feature_list << File.join(@root_dir, 'run', @scenario_name, feature)
1101
+ if Dir.exist?(File.join(@root_dir, 'run', @scenario_name.downcase, feature))
1102
+ feature_list << File.join(@root_dir, 'run', @scenario_name.downcase, feature)
971
1103
  else
972
1104
  puts "Warning: did not find a directory for FeatureID: #{feature} ...skipping"
973
1105
  end
@@ -1,4 +1,4 @@
1
- #!/bin/bash
1
+ #!/bin/bash
2
2
  # This is a simple setup script that generates an enviroment file that
3
3
  # is used to setup the ruby enviroment to run the urbanopt-cli tool.
4
4
  # To use, just run this script in bash (e.g. ./setup-env.sh)
@@ -8,9 +8,9 @@
8
8
 
9
9
  BASE_DIR_NAME=$(dirname `which $0`)
10
10
 
11
- GEM_HOME=${BASE_DIR_NAME}/gems/ruby/2.5.0
12
- GEM_PATH=${BASE_DIR_NAME}/gems/ruby/2.5.0
13
- PATH=${BASE_DIR_NAME}/ruby/bin:${BASE_DIR_NAME}/gems/ruby/2.5.0/bin:$PATH
11
+ GEM_HOME=${BASE_DIR_NAME}/gems/ruby/2.7.0
12
+ GEM_PATH=${BASE_DIR_NAME}/gems/ruby/2.7.0
13
+ PATH=${BASE_DIR_NAME}/ruby/bin:${BASE_DIR_NAME}/gems/ruby/2.7.0/bin:$PATH
14
14
  RUBYLIB=${BASE_DIR_NAME}/OpenStudio/Ruby
15
15
  RUBY_DLL_PATH=${BASE_DIR_NAME}/OpenStudio/Ruby
16
16
 
@@ -1,4 +1,4 @@
1
- #!/bin/bash
1
+ #!/bin/bash
2
2
  # This is a simple setup script that generates an enviroment file that
3
3
  # is used to setup the ruby enviroment to run the urbanopt-cli tool.
4
4
  # To use, just run this script in bash (e.g. ./setup-env.sh)
@@ -7,9 +7,9 @@
7
7
 
8
8
  BASE_DIR_NAME="$(cd "$(dirname "$0")" && pwd)"
9
9
 
10
- GEM_HOME=${BASE_DIR_NAME}/gems/ruby/2.5.0
11
- GEM_PATH=${BASE_DIR_NAME}/gems/ruby/2.5.0
12
- PATH=${BASE_DIR_NAME}/ruby/bin:${BASE_DIR_NAME}/gems/ruby/2.5.0/bin:$PATH
10
+ GEM_HOME=${BASE_DIR_NAME}/gems/ruby/2.7.0
11
+ GEM_PATH=${BASE_DIR_NAME}/gems/ruby/2.7.0
12
+ PATH=${BASE_DIR_NAME}/ruby/bin:${BASE_DIR_NAME}/gems/ruby/2.7.0/bin:$PATH
13
13
  RUBYLIB=${BASE_DIR_NAME}/OpenStudio/Ruby
14
14
  RUBY_DLL_PATH=${BASE_DIR_NAME}/OpenStudio/Ruby
15
15
 
@@ -3,9 +3,9 @@ IF "%HOMEPATH%"=="" exit /B
3
3
 
4
4
  SET BASE_DIR_NAME=%~d0%~p0
5
5
 
6
- SET GEM_HOME=%BASE_DIR_NAME%\gems\ruby\2.5.0
7
- SET GEM_PATH=%BASE_DIR_NAME%\gems\ruby\2.5.0
8
- SET PATH=%BASE_DIR_NAME%\ruby\bin;%BASE_DIR_NAME%\gems\ruby\2.5.0\bin;%PATH%
6
+ SET GEM_HOME=%BASE_DIR_NAME%\gems\ruby\2.7.0
7
+ SET GEM_PATH=%BASE_DIR_NAME%\gems\ruby\2.7.0
8
+ SET PATH=%BASE_DIR_NAME%\ruby\bin;%BASE_DIR_NAME%\gems\ruby\2.7.0\bin;%PATH%
9
9
  SET RUBYLIB=%BASE_DIR_NAME%\OpenStudio\Ruby
10
10
  SET RUBY_DLL_PATH=%BASE_DIR_NAME%\OpenStudio\Ruby
11
11
 
@@ -9,9 +9,9 @@ if (-not (Test-Path $HOME)) { exit }
9
9
 
10
10
  $BASE_DIR_NAME = $PSScriptRoot
11
11
 
12
- $env:GEM_HOME = "$BASE_DIR_NAME\gems\ruby\2.5.0"
13
- $env:GEM_PATH = "$BASE_DIR_NAME\gems\ruby\2.5.0"
14
- $env:PATH += ";$BASE_DIR_NAME\ruby\bin;$BASE_DIR_NAME\gems\ruby\2.5.0\bin"
12
+ $env:GEM_HOME = "$BASE_DIR_NAME\gems\ruby\2.7.0"
13
+ $env:GEM_PATH = "$BASE_DIR_NAME\gems\ruby\2.7.0"
14
+ $env:PATH += ";$BASE_DIR_NAME\ruby\bin;$BASE_DIR_NAME\gems\ruby\2.7.0\bin"
15
15
  $env:RUBYLIB = "$BASE_DIR_NAME\OpenStudio\Ruby"
16
16
  $env:RUBY_DLL_PATH = "$BASE_DIR_NAME\OpenStudio\Ruby"
17
17
 
data/uo_cli.gemspec CHANGED
@@ -30,17 +30,20 @@ Gem::Specification.new do |spec|
30
30
  spec.bindir = 'bin'
31
31
  spec.executables = ['uo']
32
32
  spec.require_paths = ['lib', 'example_files']
33
- spec.required_ruby_version = '~> 2.5.0'
33
+ spec.required_ruby_version = '~> 2.7.0'
34
34
 
35
35
  # use specific versions of urbanopt and openstudio dependencies while under heavy development
36
36
  spec.add_runtime_dependency 'optimist', '~> 3'
37
- spec.add_runtime_dependency 'urbanopt-geojson', '~> 0.5.2'
38
- spec.add_runtime_dependency 'urbanopt-reopt', '~> 0.5.5'
39
- spec.add_runtime_dependency 'urbanopt-scenario', '~> 0.5.1'
40
- spec.add_runtime_dependency 'urbanopt-reporting', '~> 0.3.7'
37
+ spec.add_runtime_dependency 'urbanopt-geojson', '~> 0.6.6'
38
+ spec.add_runtime_dependency 'urbanopt-reporting', '~> 0.4.2'
39
+ spec.add_runtime_dependency 'urbanopt-scenario', '~> 0.6.3'
40
+ spec.add_runtime_dependency 'urbanopt-reopt', '~> 0.6.2'
41
+ spec.add_runtime_dependency 'urbanopt-rnm-us', '~> 0.1.1'
41
42
 
42
- spec.add_development_dependency 'bundler', '~> 2.1'
43
+ spec.add_development_dependency 'bundler', '>= 2.1.0'
43
44
  spec.add_development_dependency 'rake', '~> 13.0'
44
45
  spec.add_development_dependency 'rspec', '~> 3.7'
45
- spec.add_development_dependency 'rubocop', '~> 0.54'
46
+ spec.add_development_dependency 'rubocop', '~> 1.15.0'
47
+ spec.add_development_dependency 'rubocop-performance', '~> 1.11.3'
48
+ spec.add_development_dependency 'rubocop-checkstyle_formatter', '~> 0.4.0'
46
49
  end