urbanopt-cli 0.9.3 → 0.10.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (641) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/{nightly_build.yml → nightly_ci_build.yml} +6 -5
  3. data/CHANGELOG.md +11 -2
  4. data/CMakeLists.txt +7 -7
  5. data/Gemfile +6 -5
  6. data/LICENSE.md +18 -15
  7. data/README.md +2 -1
  8. data/Rakefile +2 -37
  9. data/example_files/Gemfile +8 -8
  10. data/example_files/mappers/Baseline.rb +170 -191
  11. data/example_files/mappers/ChilledWaterStorage.rb +8 -30
  12. data/example_files/mappers/ClassProject.rb +2 -27
  13. data/example_files/mappers/CreateBar.rb +2 -28
  14. data/example_files/mappers/EvCharging.rb +2 -27
  15. data/example_files/mappers/FlexibleHotWater.rb +2 -27
  16. data/example_files/mappers/Floorspace.rb +2 -27
  17. data/example_files/mappers/HighEfficiency.rb +2 -27
  18. data/example_files/mappers/HighEfficiencyCreateBar.rb +2 -27
  19. data/example_files/mappers/HighEfficiencyFloorspace.rb +2 -27
  20. data/example_files/mappers/PeakHoursMelsShedding.rb +4 -27
  21. data/example_files/mappers/PeakHoursThermostatAdjust.rb +4 -27
  22. data/example_files/mappers/ThermalStorage.rb +2 -28
  23. data/example_files/measures/BuildResidentialModel/measure.rb +30 -60
  24. data/example_files/measures/BuildResidentialModel/measure.xml +253 -84
  25. data/example_files/measures/BuildResidentialModel/resources/util.rb +45 -45
  26. data/example_files/python_deps/dependencies.json +3 -3
  27. data/example_files/resources/hpxml-measures/.github/pull_request_template.md +1 -1
  28. data/example_files/resources/hpxml-measures/.github/workflows/config.yml +28 -19
  29. data/example_files/resources/hpxml-measures/.gitignore +0 -997
  30. data/example_files/resources/hpxml-measures/.readthedocs.yml +9 -0
  31. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/measure.rb +476 -230
  32. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/measure.xml +244 -75
  33. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/geometry.rb +42 -15
  34. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/build_residential_hpxml_test.rb +24 -9
  35. data/example_files/resources/hpxml-measures/BuildResidentialScheduleFile/measure.rb +11 -33
  36. data/example_files/resources/hpxml-measures/BuildResidentialScheduleFile/measure.xml +23 -50
  37. data/example_files/resources/hpxml-measures/BuildResidentialScheduleFile/resources/README.md +2 -2
  38. data/example_files/resources/hpxml-measures/BuildResidentialScheduleFile/resources/constants.rb +119 -0
  39. data/example_files/resources/hpxml-measures/BuildResidentialScheduleFile/resources/schedules.rb +67 -290
  40. data/example_files/resources/hpxml-measures/BuildResidentialScheduleFile/resources/schedules_config.md +6 -5
  41. data/example_files/resources/hpxml-measures/BuildResidentialScheduleFile/tests/build_residential_schedule_file_test.rb +78 -349
  42. data/example_files/resources/hpxml-measures/Changelog.md +80 -10
  43. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/measure.rb +212 -144
  44. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/measure.xml +164 -170
  45. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/airflow.rb +238 -167
  46. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/battery.rb +1 -1
  47. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/constants.rb +12 -4
  48. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/constructions.rb +36 -6
  49. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/data/unavailable_periods.csv +33 -0
  50. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/energyplus.rb +1 -0
  51. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/geometry.rb +9 -7
  52. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hotwater_appliances.rb +79 -61
  53. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hpxml.rb +387 -124
  54. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hpxml_defaults.rb +427 -196
  55. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hpxml_schema/HPXML.xsd +11515 -2
  56. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hpxml_schema/README.md +1 -0
  57. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hpxml_schematron/EPvalidator.xml +224 -85
  58. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hvac.rb +334 -319
  59. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hvac_sizing.rb +572 -838
  60. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/lighting.rb +162 -68
  61. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/location.rb +4 -20
  62. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/meta_measure.rb +12 -10
  63. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/misc_loads.rb +34 -37
  64. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/output.rb +8 -101
  65. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/psychrometrics.rb +31 -40
  66. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/pv.rb +1 -1
  67. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/schedule_files/occupancy-non-stochastic.csv +8761 -0
  68. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/schedule_files/occupancy-stochastic-10-mins.csv +52561 -52561
  69. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/schedule_files/occupancy-stochastic.csv +8761 -8761
  70. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/schedules.rb +384 -155
  71. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/unit_conversions.rb +1 -1
  72. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/util.rb +2 -2
  73. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/version.rb +2 -2
  74. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/waterheater.rb +68 -90
  75. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/weather.rb +34 -223
  76. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/xmlhelper.rb +1 -1
  77. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/xmlvalidator.rb +16 -4
  78. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_airflow.rb +94 -40
  79. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_defaults.rb +765 -302
  80. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_enclosure.rb +119 -69
  81. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_generator.rb +8 -8
  82. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_hotwater_appliance.rb +1 -1
  83. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_hvac.rb +51 -11
  84. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_hvac_sizing.rb +196 -9
  85. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_lighting.rb +36 -13
  86. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_miscloads.rb +3 -3
  87. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_pv.rb +2 -2
  88. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_schedules.rb +571 -61
  89. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_validation.rb +190 -81
  90. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_water_heater.rb +11 -11
  91. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_weather.rb +188 -50
  92. data/example_files/resources/hpxml-measures/README.md +3 -3
  93. data/example_files/resources/hpxml-measures/ReportSimulationOutput/measure.rb +659 -815
  94. data/example_files/resources/hpxml-measures/ReportSimulationOutput/measure.xml +301 -1112
  95. data/example_files/resources/hpxml-measures/ReportSimulationOutput/tests/output_report_test.rb +605 -350
  96. data/example_files/resources/hpxml-measures/ReportUtilityBills/measure.rb +18 -14
  97. data/example_files/resources/hpxml-measures/ReportUtilityBills/measure.xml +15 -15
  98. data/example_files/resources/hpxml-measures/ReportUtilityBills/tests/utility_bills_test.rb +13 -3
  99. data/example_files/resources/hpxml-measures/docs/source/usage_instructions.rst +3 -3
  100. data/example_files/resources/hpxml-measures/docs/source/workflow_inputs.rst +894 -596
  101. data/example_files/resources/hpxml-measures/docs/source/workflow_outputs.rst +127 -76
  102. data/example_files/resources/hpxml-measures/tasks.rb +185 -2802
  103. data/example_files/resources/hpxml-measures/workflow/hpxml_inputs.json +3401 -0
  104. data/example_files/resources/hpxml-measures/workflow/real_homes/house001.xml +0 -1
  105. data/example_files/resources/hpxml-measures/workflow/real_homes/house002.xml +0 -1
  106. data/example_files/resources/hpxml-measures/workflow/real_homes/house003.xml +0 -1
  107. data/example_files/resources/hpxml-measures/workflow/real_homes/house004.xml +0 -1
  108. data/example_files/resources/hpxml-measures/workflow/real_homes/house005.xml +0 -1
  109. data/example_files/resources/hpxml-measures/workflow/real_homes/house006.xml +1 -3
  110. data/example_files/resources/hpxml-measures/workflow/real_homes/house007.xml +0 -1
  111. data/example_files/resources/hpxml-measures/workflow/real_homes/house008.xml +1 -3
  112. data/example_files/resources/hpxml-measures/workflow/real_homes/house009.xml +0 -1
  113. data/example_files/resources/hpxml-measures/workflow/real_homes/house010.xml +1 -3
  114. data/example_files/resources/hpxml-measures/workflow/real_homes/house011.xml +0 -1
  115. data/example_files/resources/hpxml-measures/workflow/real_homes/house012.xml +0 -1
  116. data/example_files/resources/hpxml-measures/workflow/real_homes/house013.xml +0 -1
  117. data/example_files/resources/hpxml-measures/workflow/real_homes/house014.xml +0 -1
  118. data/example_files/resources/hpxml-measures/workflow/real_homes/house015.xml +0 -1
  119. data/example_files/resources/hpxml-measures/workflow/real_homes/house016.xml +3 -4
  120. data/example_files/resources/hpxml-measures/workflow/real_homes/house017.xml +17 -4
  121. data/example_files/resources/hpxml-measures/workflow/real_homes/house018.xml +2 -3
  122. data/example_files/resources/hpxml-measures/workflow/real_homes/house019.xml +3 -4
  123. data/example_files/resources/hpxml-measures/workflow/real_homes/house020.xml +3 -4
  124. data/example_files/resources/hpxml-measures/workflow/real_homes/house021.xml +4 -5
  125. data/example_files/resources/hpxml-measures/workflow/real_homes/house022.xml +3 -4
  126. data/example_files/resources/hpxml-measures/workflow/real_homes/house023.xml +3 -4
  127. data/example_files/resources/hpxml-measures/workflow/real_homes/house024.xml +3 -4
  128. data/example_files/resources/hpxml-measures/workflow/real_homes/house025.xml +3 -4
  129. data/example_files/resources/hpxml-measures/workflow/real_homes/house026.xml +1 -1
  130. data/example_files/resources/hpxml-measures/workflow/real_homes/house027.xml +1 -1
  131. data/example_files/resources/hpxml-measures/workflow/real_homes/house028.xml +1 -1
  132. data/example_files/resources/hpxml-measures/workflow/real_homes/house029.xml +1 -1
  133. data/example_files/resources/hpxml-measures/workflow/real_homes/house030.xml +0 -1
  134. data/example_files/resources/hpxml-measures/workflow/real_homes/house031.xml +4 -5
  135. data/example_files/resources/hpxml-measures/workflow/real_homes/house032.xml +3 -3
  136. data/example_files/resources/hpxml-measures/workflow/real_homes/house033.xml +3 -3
  137. data/example_files/resources/hpxml-measures/workflow/real_homes/house034.xml +3 -4
  138. data/example_files/resources/hpxml-measures/workflow/real_homes/house035.xml +3 -3
  139. data/example_files/resources/hpxml-measures/workflow/real_homes/house036.xml +3 -4
  140. data/example_files/resources/hpxml-measures/workflow/real_homes/house037.xml +3 -3
  141. data/example_files/resources/hpxml-measures/workflow/real_homes/house038.xml +3 -4
  142. data/example_files/resources/hpxml-measures/workflow/real_homes/house039.xml +3 -3
  143. data/example_files/resources/hpxml-measures/workflow/real_homes/house040.xml +3 -4
  144. data/example_files/resources/hpxml-measures/workflow/real_homes/house041.xml +0 -1
  145. data/example_files/resources/hpxml-measures/workflow/real_homes/house042.xml +0 -1
  146. data/example_files/resources/hpxml-measures/workflow/real_homes/house043.xml +0 -1
  147. data/example_files/resources/hpxml-measures/workflow/real_homes/house044.xml +0 -1
  148. data/example_files/resources/hpxml-measures/workflow/real_homes/house045.xml +0 -1
  149. data/example_files/resources/hpxml-measures/workflow/real_homes/house046.xml +1 -0
  150. data/example_files/resources/hpxml-measures/workflow/real_homes/house047.xml +1 -0
  151. data/example_files/resources/hpxml-measures/workflow/run_simulation.rb +12 -8
  152. data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-coal.xml +10 -40
  153. data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-dehumidifier-ief-portable.xml +10 -40
  154. data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-dehumidifier-ief-whole-home.xml +10 -40
  155. data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-dehumidifier-multiple.xml +10 -40
  156. data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-dehumidifier.xml +10 -40
  157. data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-gas.xml +10 -40
  158. data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-modified.xml +10 -40
  159. data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-none.xml +10 -40
  160. data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-oil-location-miami-fl.xml +10 -40
  161. data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-oil.xml +10 -40
  162. data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-propane-location-portland-or.xml +10 -40
  163. data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-propane.xml +10 -40
  164. data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-wood.xml +10 -40
  165. data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-cathedral.xml +10 -40
  166. data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-conditioned.xml +9 -39
  167. data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-flat.xml +9 -39
  168. data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-radiant-barrier.xml +10 -40
  169. data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-unvented-insulated-roof.xml +10 -40
  170. data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-vented.xml +10 -40
  171. data/example_files/resources/hpxml-measures/workflow/sample_files/base-battery-scheduled.xml +10 -40
  172. data/example_files/resources/hpxml-measures/workflow/sample_files/base-battery.xml +10 -40
  173. data/example_files/resources/hpxml-measures/workflow/sample_files/{base-bldgtype-single-family-attached-2stories.xml → base-bldgtype-attached-2stories.xml} +610 -639
  174. data/example_files/resources/hpxml-measures/workflow/sample_files/{base-bldgtype-single-family-attached-atticroof-cathedral.xml → base-bldgtype-attached-atticroof-cathedral.xml} +558 -587
  175. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-attached-infil-compartmentalization-test.xml +611 -0
  176. data/example_files/resources/hpxml-measures/workflow/sample_files/{base-bldgtype-single-family-attached.xml → base-bldgtype-attached.xml} +610 -639
  177. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-adjacent-to-multifamily-buffer-space.xml +10 -39
  178. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-adjacent-to-multiple.xml +10 -39
  179. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-adjacent-to-non-freezing-space.xml +10 -39
  180. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-adjacent-to-other-heated-space.xml +10 -39
  181. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-adjacent-to-other-housing-unit.xml +10 -39
  182. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-infil-compartmentalization-test.xml +462 -0
  183. data/example_files/resources/hpxml-measures/workflow/sample_files/{base-bldgtype-multifamily-calctype-operational.xml → base-bldgtype-multifamily-residents-1.xml} +453 -480
  184. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-chiller-baseboard.xml +10 -39
  185. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-chiller-fan-coil-ducted.xml +10 -39
  186. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-chiller-fan-coil.xml +10 -39
  187. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-chiller-water-loop-heat-pump.xml +10 -39
  188. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-cooling-tower-water-loop-heat-pump.xml +10 -39
  189. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-only-baseboard.xml +10 -39
  190. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-only-fan-coil-ducted.xml +10 -39
  191. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-only-fan-coil-eae.xml +10 -39
  192. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-only-fan-coil.xml +10 -39
  193. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-only-water-loop-heat-pump.xml +10 -39
  194. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-chiller-only-baseboard.xml +10 -39
  195. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-chiller-only-fan-coil-ducted.xml +10 -39
  196. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-chiller-only-fan-coil.xml +10 -39
  197. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-chiller-only-water-loop-heat-pump.xml +10 -39
  198. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-cooling-tower-only-water-loop-heat-pump.xml +10 -39
  199. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-generator.xml +11 -40
  200. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-ground-loop-ground-to-air-heat-pump.xml +10 -39
  201. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-laundry-room-multiple-water-heaters.xml +10 -39
  202. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-laundry-room.xml +10 -39
  203. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-mechvent-multiple.xml +10 -39
  204. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-mechvent-preconditioning.xml +10 -39
  205. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-mechvent.xml +10 -39
  206. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-pv.xml +15 -40
  207. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-water-heater-recirc.xml +10 -39
  208. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-water-heater.xml +10 -39
  209. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily.xml +10 -39
  210. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-combi-tankless-outside.xml +10 -40
  211. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-combi-tankless.xml +10 -40
  212. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater-2-speed.xml +10 -40
  213. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater-gshp.xml +10 -40
  214. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater-hpwh.xml +10 -40
  215. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater-tankless.xml +10 -40
  216. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater-var-speed.xml +10 -40
  217. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater.xml +10 -40
  218. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-dwhr.xml +10 -40
  219. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect-detailed-setpoints.xml +10 -40
  220. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect-dse.xml +10 -40
  221. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect-outside.xml +10 -40
  222. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect-standbyloss.xml +10 -40
  223. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect-with-solar-fraction.xml +10 -40
  224. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect.xml +10 -40
  225. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-jacket-electric.xml +10 -40
  226. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-jacket-gas.xml +10 -40
  227. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-jacket-hpwh.xml +10 -40
  228. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-jacket-indirect.xml +10 -40
  229. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-low-flow-fixtures.xml +10 -40
  230. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-multiple.xml +10 -40
  231. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-none.xml +10 -40
  232. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-recirc-demand.xml +10 -40
  233. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-recirc-manual.xml +10 -40
  234. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-recirc-nocontrol.xml +10 -40
  235. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-recirc-temperature.xml +10 -40
  236. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-recirc-timer.xml +10 -40
  237. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-direct-evacuated-tube.xml +10 -40
  238. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-direct-flat-plate.xml +10 -40
  239. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-direct-ics.xml +10 -40
  240. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-fraction.xml +10 -40
  241. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-indirect-flat-plate.xml +10 -40
  242. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-thermosyphon-flat-plate.xml +10 -40
  243. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-coal.xml +10 -40
  244. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-detailed-setpoints.xml +10 -40
  245. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-elec-uef.xml +10 -40
  246. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-gas-outside.xml +10 -40
  247. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-gas-uef-fhr.xml +10 -40
  248. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-gas-uef.xml +10 -40
  249. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-gas.xml +10 -40
  250. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump-detailed-schedules.xml +10 -40
  251. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump-operating-mode-heat-pump-only.xml +11 -43
  252. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump-outside.xml +10 -40
  253. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump-uef.xml +10 -40
  254. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump-with-solar-fraction.xml +10 -40
  255. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump-with-solar.xml +10 -40
  256. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump.xml +10 -40
  257. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-model-type-stratified-detailed-occupancy-stochastic.xml +10 -40
  258. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-model-type-stratified.xml +10 -40
  259. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-oil.xml +10 -40
  260. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-wood.xml +10 -40
  261. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-detailed-setpoints.xml +10 -40
  262. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-electric-outside.xml +10 -40
  263. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-electric-uef.xml +10 -40
  264. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-electric.xml +10 -40
  265. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-gas-uef.xml +10 -40
  266. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-gas-with-solar-fraction.xml +10 -40
  267. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-gas-with-solar.xml +10 -40
  268. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-gas.xml +10 -40
  269. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-propane.xml +10 -40
  270. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-2stories-garage.xml +19 -25
  271. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-2stories.xml +10 -40
  272. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-beds-1.xml +10 -40
  273. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-beds-2.xml +10 -40
  274. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-beds-4.xml +10 -40
  275. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-beds-5.xml +10 -40
  276. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-ceilingtypes.xml +10 -40
  277. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-floortypes.xml +10 -40
  278. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-garage.xml +18 -24
  279. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-ach-house-pressure.xml +11 -41
  280. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-cfm-house-pressure.xml +11 -41
  281. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-cfm50.xml +10 -40
  282. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-ela.xml +549 -0
  283. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-flue.xml +13 -43
  284. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-natural-ach.xml +10 -40
  285. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-natural-cfm.xml +552 -0
  286. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-orientations.xml +10 -40
  287. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-overhangs.xml +10 -40
  288. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-rooftypes.xml +17 -47
  289. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-skylights-physical-properties.xml +10 -40
  290. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-skylights-shading.xml +10 -40
  291. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-skylights-storms.xml +10 -40
  292. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-skylights.xml +10 -40
  293. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-split-level.xml +10 -40
  294. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-thermal-mass.xml +10 -40
  295. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-walltypes.xml +10 -40
  296. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-windows-natural-ventilation-availability.xml +10 -40
  297. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-windows-none.xml +10 -40
  298. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-windows-physical-properties.xml +10 -40
  299. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-windows-shading-seasons.xml +559 -0
  300. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-windows-shading.xml +10 -40
  301. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-windows-storms.xml +10 -40
  302. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-ambient.xml +10 -40
  303. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-basement-garage.xml +19 -25
  304. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-complex.xml +10 -40
  305. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-conditioned-basement-slab-insulation.xml +10 -40
  306. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-conditioned-basement-wall-insulation.xml +10 -40
  307. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-conditioned-crawlspace.xml +10 -40
  308. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-multiple.xml +10 -40
  309. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-slab.xml +10 -40
  310. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-unconditioned-basement-above-grade.xml +10 -40
  311. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-unconditioned-basement-assembly-r.xml +10 -40
  312. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-unconditioned-basement-wall-insulation.xml +10 -40
  313. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-unconditioned-basement.xml +10 -40
  314. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-unvented-crawlspace.xml +10 -40
  315. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-vented-crawlspace.xml +10 -40
  316. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-walkout-basement.xml +10 -40
  317. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-1-speed-autosized-backup.xml +557 -0
  318. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-1-speed-cooling-only.xml +16 -41
  319. data/example_files/resources/hpxml-measures/workflow/sample_files/{base-hvac-dual-fuel-air-to-air-heat-pump-1-speed-electric.xml → base-hvac-air-to-air-heat-pump-1-speed-heating-capacity-17f.xml} +552 -583
  320. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-1-speed-heating-only.xml +16 -41
  321. data/example_files/resources/hpxml-measures/workflow/sample_files/{base-hvac-air-to-air-heat-pump-1-speed-backup-lockout-temperature.xml → base-hvac-air-to-air-heat-pump-1-speed-lockout-temperatures.xml} +562 -586
  322. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-1-speed-seer2-hspf2.xml +16 -41
  323. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-1-speed.xml +16 -41
  324. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-2-speed.xml +16 -41
  325. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-var-speed-backup-boiler-hvac-seasons.xml +587 -0
  326. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-var-speed-backup-boiler-switchover-temperature.xml +17 -42
  327. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-var-speed-backup-boiler.xml +16 -41
  328. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-var-speed-backup-furnace.xml +16 -41
  329. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-var-speed.xml +16 -41
  330. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-1-speed-cooling-only.xml +10 -40
  331. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-1-speed-heating-only.xml +10 -40
  332. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-1-speed-sizing-methodology-acca.xml +10 -40
  333. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-1-speed-sizing-methodology-hers.xml +10 -40
  334. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-1-speed-sizing-methodology-maxload-miami-fl.xml +10 -40
  335. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-1-speed-sizing-methodology-maxload.xml +10 -40
  336. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-2-speed-sizing-methodology-acca.xml +10 -40
  337. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-2-speed-sizing-methodology-hers.xml +10 -40
  338. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-2-speed-sizing-methodology-maxload.xml +10 -40
  339. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-var-speed-backup-boiler.xml +10 -40
  340. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-var-speed-backup-furnace.xml +10 -40
  341. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-var-speed-sizing-methodology-acca.xml +10 -40
  342. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-var-speed-sizing-methodology-hers.xml +10 -40
  343. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-var-speed-sizing-methodology-maxload.xml +10 -40
  344. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-boiler-elec-only.xml +10 -40
  345. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-boiler-gas-central-ac-1-speed.xml +10 -40
  346. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-boiler-gas-only.xml +10 -40
  347. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-central-ac-only-1-speed.xml +10 -40
  348. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-central-ac-only-2-speed.xml +10 -40
  349. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-central-ac-only-var-speed.xml +10 -40
  350. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-central-ac-plus-air-to-air-heat-pump-heating.xml +10 -40
  351. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-dual-fuel-air-to-air-heat-pump-1-speed-sizing-methodology-acca.xml +11 -41
  352. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-dual-fuel-air-to-air-heat-pump-1-speed-sizing-methodology-hers.xml +11 -41
  353. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-dual-fuel-air-to-air-heat-pump-1-speed-sizing-methodology-maxload.xml +11 -41
  354. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-dual-fuel-mini-split-heat-pump-ducted-backup-hardsized.xml +553 -0
  355. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-dual-fuel-mini-split-heat-pump-ducted.xml +11 -41
  356. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-elec-resistance-only.xml +10 -40
  357. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-evap-cooler-furnace-gas.xml +10 -40
  358. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-floor-furnace-propane-only.xml +10 -40
  359. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-furnace-elec-only.xml +10 -40
  360. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-furnace-gas-central-ac-2-speed.xml +10 -40
  361. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-furnace-gas-central-ac-var-speed.xml +10 -40
  362. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-furnace-gas-only.xml +10 -40
  363. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-furnace-gas-room-ac.xml +10 -40
  364. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-ground-to-air-heat-pump-cooling-only.xml +10 -40
  365. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-ground-to-air-heat-pump-heating-only.xml +10 -40
  366. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-ground-to-air-heat-pump-sizing-methodology-acca.xml +10 -40
  367. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-ground-to-air-heat-pump-sizing-methodology-hers.xml +10 -40
  368. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-ground-to-air-heat-pump-sizing-methodology-maxload.xml +10 -40
  369. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-mini-split-air-conditioner-only-ducted.xml +10 -40
  370. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-mini-split-heat-pump-ducted-cooling-only.xml +10 -40
  371. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-mini-split-heat-pump-ducted-heating-only.xml +10 -40
  372. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-mini-split-heat-pump-ducted-sizing-methodology-acca.xml +10 -40
  373. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-mini-split-heat-pump-ducted-sizing-methodology-hers.xml +10 -40
  374. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-mini-split-heat-pump-ducted-sizing-methodology-maxload.xml +10 -40
  375. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-mini-split-heat-pump-ductless-backup-baseboard.xml +519 -0
  376. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-mini-split-heat-pump-ductless-backup-stove.xml +10 -40
  377. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-ptac-with-heating.xml +10 -40
  378. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-ptac.xml +10 -40
  379. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-pthp-sizing-methodology-acca.xml +16 -40
  380. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-pthp-sizing-methodology-hers.xml +16 -40
  381. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-pthp-sizing-methodology-maxload.xml +16 -40
  382. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-room-ac-only.xml +10 -40
  383. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-room-ac-with-heating.xml +10 -40
  384. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-room-ac-with-reverse-cycle-sizing-methodology-acca.xml +16 -40
  385. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-room-ac-with-reverse-cycle-sizing-methodology-hers.xml +16 -40
  386. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-room-ac-with-reverse-cycle-sizing-methodology-maxload.xml +16 -40
  387. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-sizing-controls.xml +566 -0
  388. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-stove-oil-only.xml +10 -40
  389. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-wall-furnace-elec-only.xml +10 -40
  390. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize.xml +10 -40
  391. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-coal-only.xml +10 -40
  392. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-elec-only.xml +10 -40
  393. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-gas-central-ac-1-speed.xml +10 -40
  394. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-gas-only-pilot.xml +513 -0
  395. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-gas-only.xml +10 -40
  396. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-oil-only.xml +10 -40
  397. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-propane-only.xml +10 -40
  398. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-wood-only.xml +10 -40
  399. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-central-ac-only-1-speed-seer2.xml +10 -40
  400. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-central-ac-only-1-speed.xml +10 -40
  401. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-central-ac-only-2-speed.xml +10 -40
  402. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-central-ac-only-var-speed.xml +10 -40
  403. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-central-ac-plus-air-to-air-heat-pump-heating.xml +16 -41
  404. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-crankcase-heater-40w.xml +556 -0
  405. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dse.xml +10 -40
  406. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dual-fuel-air-to-air-heat-pump-1-speed-lockout-temperatures.xml +560 -0
  407. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dual-fuel-air-to-air-heat-pump-1-speed.xml +17 -42
  408. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dual-fuel-air-to-air-heat-pump-2-speed.xml +17 -42
  409. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dual-fuel-air-to-air-heat-pump-var-speed.xml +17 -42
  410. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dual-fuel-mini-split-heat-pump-ducted.xml +17 -42
  411. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ducts-area-fractions.xml +10 -40
  412. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ducts-area-multipliers.xml +10 -40
  413. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ducts-buried.xml +555 -0
  414. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ducts-effective-rvalue.xml +553 -0
  415. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ducts-leakage-cfm50.xml +10 -40
  416. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ducts-leakage-percent.xml +10 -40
  417. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-elec-resistance-only.xml +10 -40
  418. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-evap-cooler-furnace-gas.xml +10 -40
  419. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-evap-cooler-only-ducted.xml +10 -40
  420. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-evap-cooler-only.xml +10 -40
  421. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-fireplace-wood-only.xml +10 -40
  422. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-fixed-heater-gas-only.xml +10 -40
  423. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-floor-furnace-propane-only-pilot-light.xml +506 -0
  424. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-floor-furnace-propane-only.xml +10 -40
  425. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-coal-only.xml +10 -40
  426. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-elec-central-ac-1-speed.xml +10 -40
  427. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-elec-only.xml +10 -40
  428. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-gas-central-ac-2-speed.xml +10 -40
  429. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-gas-central-ac-var-speed.xml +10 -40
  430. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-gas-only-detailed-setpoints.xml +10 -40
  431. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-gas-only-pilot.xml +542 -0
  432. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-gas-only.xml +10 -40
  433. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-gas-room-ac.xml +10 -40
  434. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-oil-only.xml +10 -40
  435. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-propane-only.xml +10 -40
  436. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-wood-only.xml +10 -40
  437. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-x3-dse.xml +10 -40
  438. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ground-to-air-heat-pump-cooling-only.xml +10 -40
  439. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ground-to-air-heat-pump-heating-only.xml +10 -40
  440. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ground-to-air-heat-pump.xml +10 -40
  441. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-air-to-air-heat-pump-1-speed.xml +14 -41
  442. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-air-to-air-heat-pump-2-speed.xml +14 -41
  443. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-air-to-air-heat-pump-var-speed.xml +14 -41
  444. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-furnace-gas-central-ac-1-speed.xml +10 -40
  445. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-furnace-gas-central-ac-2-speed.xml +10 -40
  446. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-furnace-gas-central-ac-var-speed.xml +10 -40
  447. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-furnace-gas-only.xml +10 -40
  448. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-ground-to-air-heat-pump.xml +10 -40
  449. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-mini-split-air-conditioner-only-ducted.xml +10 -40
  450. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-mini-split-heat-pump-ducted.xml +14 -41
  451. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-air-conditioner-only-ducted.xml +10 -40
  452. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-air-conditioner-only-ductless.xml +10 -40
  453. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ducted-cooling-only.xml +16 -41
  454. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ducted-heating-only.xml +16 -41
  455. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ducted.xml +16 -41
  456. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ductless-backup-baseboard.xml +525 -0
  457. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ductless-backup-furnace.xml +564 -0
  458. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ductless-backup-stove.xml +16 -41
  459. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ductless-heating-capacity-17f.xml +506 -0
  460. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ductless.xml +16 -41
  461. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-multiple.xml +10 -40
  462. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-none.xml +10 -40
  463. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-portable-heater-gas-only.xml +10 -40
  464. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ptac-with-heating-electricity.xml +10 -40
  465. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ptac-with-heating-natural-gas.xml +10 -40
  466. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ptac.xml +10 -40
  467. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-pthp-heating-capacity-17f.xml +513 -0
  468. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-pthp.xml +16 -40
  469. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-room-ac-only-33percent.xml +10 -40
  470. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-room-ac-only-ceer.xml +10 -40
  471. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-room-ac-only-detailed-setpoints.xml +10 -40
  472. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-room-ac-only.xml +10 -40
  473. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-room-ac-with-heating.xml +10 -40
  474. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-room-ac-with-reverse-cycle.xml +16 -40
  475. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-seasons.xml +10 -40
  476. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-setpoints-daily-schedules.xml +10 -40
  477. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-setpoints-daily-setbacks.xml +10 -40
  478. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-setpoints.xml +10 -40
  479. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-stove-oil-only.xml +10 -40
  480. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-stove-wood-pellets-only.xml +10 -40
  481. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-undersized-allow-increased-fixed-capacities.xml +10 -40
  482. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-undersized.xml +10 -40
  483. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-wall-furnace-elec-only.xml +10 -40
  484. data/example_files/resources/hpxml-measures/workflow/sample_files/base-lighting-ceiling-fans.xml +11 -41
  485. data/example_files/resources/hpxml-measures/workflow/sample_files/base-lighting-holiday.xml +10 -40
  486. data/example_files/resources/hpxml-measures/workflow/sample_files/base-lighting-kwh-per-year.xml +529 -0
  487. data/example_files/resources/hpxml-measures/workflow/sample_files/base-lighting-mixed.xml +537 -0
  488. data/example_files/resources/hpxml-measures/workflow/sample_files/base-lighting-none-ceiling-fans.xml +516 -0
  489. data/example_files/resources/hpxml-measures/workflow/sample_files/base-lighting-none.xml +1 -7
  490. data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-AMY-2012.xml +10 -40
  491. data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-baltimore-md.xml +10 -40
  492. data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-capetown-zaf.xml +10 -40
  493. data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-dallas-tx.xml +10 -40
  494. data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-duluth-mn.xml +10 -40
  495. data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-helena-mt.xml +10 -40
  496. data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-honolulu-hi.xml +10 -40
  497. data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-miami-fl.xml +10 -40
  498. data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-phoenix-az.xml +10 -40
  499. data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-portland-or.xml +10 -40
  500. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-balanced.xml +10 -40
  501. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-bath-kitchen-fans.xml +12 -42
  502. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-cfis-airflow-fraction-zero.xml +10 -40
  503. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-cfis-dse.xml +10 -40
  504. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-cfis-evap-cooler-only-ducted.xml +10 -40
  505. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-cfis-supplemental-fan-exhaust.xml +10 -40
  506. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-cfis-supplemental-fan-supply.xml +10 -40
  507. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-cfis.xml +10 -40
  508. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-erv-atre-asre.xml +10 -40
  509. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-erv.xml +10 -40
  510. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-exhaust-rated-flow-rate.xml +10 -40
  511. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-exhaust.xml +10 -40
  512. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-hrv-asre.xml +10 -40
  513. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-hrv.xml +10 -40
  514. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-multiple.xml +14 -44
  515. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-supply.xml +10 -40
  516. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-whole-house-fan.xml +10 -40
  517. data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-additional-properties.xml +10 -38
  518. data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-bills-none.xml +10 -40
  519. data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-bills-pv-detailed-only.xml +16 -42
  520. data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-bills-pv-mixed.xml +16 -42
  521. data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-bills-pv.xml +16 -42
  522. data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-bills.xml +10 -40
  523. data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-defaults.xml +14 -37
  524. data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-emissions.xml +16 -42
  525. data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-generators-battery-scheduled.xml +12 -42
  526. data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-generators-battery.xml +12 -42
  527. data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-generators.xml +12 -42
  528. data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-ground-conductivity.xml +10 -40
  529. data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-loads-large-uncommon.xml +10 -38
  530. data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-loads-large-uncommon2.xml +10 -38
  531. data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-loads-none.xml +10 -40
  532. data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-neighbor-shading-bldgtype-multifamily.xml +509 -0
  533. data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-neighbor-shading.xml +10 -40
  534. data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-shielding-of-home.xml +10 -40
  535. data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-usage-multiplier.xml +10 -41
  536. data/example_files/resources/hpxml-measures/workflow/sample_files/base-multiple-buildings.xml +30 -138
  537. data/example_files/resources/hpxml-measures/workflow/sample_files/base-pv-battery-ah.xml +16 -42
  538. data/example_files/resources/hpxml-measures/workflow/sample_files/base-pv-battery-garage.xml +24 -26
  539. data/example_files/resources/hpxml-measures/workflow/sample_files/base-pv-battery-round-trip-efficiency.xml +16 -42
  540. data/example_files/resources/hpxml-measures/workflow/sample_files/base-pv-battery-scheduled.xml +16 -42
  541. data/example_files/resources/hpxml-measures/workflow/sample_files/base-pv-battery.xml +16 -42
  542. data/example_files/resources/hpxml-measures/workflow/sample_files/base-pv-generators-battery-scheduled.xml +18 -44
  543. data/example_files/resources/hpxml-measures/workflow/sample_files/base-pv-generators-battery.xml +18 -44
  544. data/example_files/resources/hpxml-measures/workflow/sample_files/base-pv-generators.xml +18 -44
  545. data/example_files/resources/hpxml-measures/workflow/sample_files/base-pv.xml +16 -42
  546. data/example_files/resources/hpxml-measures/workflow/sample_files/base-residents-0-runperiod-1-month.xml +560 -0
  547. data/example_files/resources/hpxml-measures/workflow/sample_files/base-residents-0.xml +556 -0
  548. data/example_files/resources/hpxml-measures/workflow/sample_files/{base-calctype-operational-misc-loads-large-uncommon.xml → base-residents-1-misc-loads-large-uncommon.xml} +616 -644
  549. data/example_files/resources/hpxml-measures/workflow/sample_files/{base-calctype-operational-misc-loads-large-uncommon2.xml → base-residents-1-misc-loads-large-uncommon2.xml} +616 -644
  550. data/example_files/resources/hpxml-measures/workflow/sample_files/{base-calctype-operational.xml → base-residents-1.xml} +547 -575
  551. data/example_files/resources/hpxml-measures/workflow/sample_files/{base-calctype-operational-misc-defaults.xml → base-residents-5.xml} +515 -539
  552. data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-detailed-all-10-mins.xml +10 -40
  553. data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-detailed-occupancy-stochastic-10-mins.xml +10 -40
  554. data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-detailed-occupancy-stochastic-power-outage.xml +565 -0
  555. data/example_files/resources/hpxml-measures/workflow/sample_files/{base-schedules-detailed-occupancy-smooth.xml → base-schedules-detailed-occupancy-stochastic-vacancy-year-round.xml} +563 -583
  556. data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-detailed-occupancy-stochastic-vacancy.xml +21 -41
  557. data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-detailed-occupancy-stochastic.xml +10 -40
  558. data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-detailed-setpoints-daily-schedules.xml +10 -40
  559. data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-detailed-setpoints-daily-setbacks.xml +10 -40
  560. data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-detailed-setpoints.xml +10 -40
  561. data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-simple-power-outage-natvent-available.xml +565 -0
  562. data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-simple-power-outage-natvent-unavailable.xml +565 -0
  563. data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-simple-power-outage.xml +620 -0
  564. data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-simple-vacancy-year-round.xml +619 -0
  565. data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-simple-vacancy.xml +619 -0
  566. data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-simple.xml +10 -38
  567. data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-calendar-year-custom.xml +10 -40
  568. data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-daylight-saving-custom.xml +10 -40
  569. data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-daylight-saving-disabled.xml +10 -40
  570. data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-runperiod-1-month.xml +10 -40
  571. data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-temperature-capacitance-multiplier.xml +10 -40
  572. data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-timestep-10-mins-occupancy-stochastic-10-mins.xml +10 -40
  573. data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-timestep-10-mins-occupancy-stochastic-60-mins.xml +10 -40
  574. data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-timestep-10-mins.xml +10 -40
  575. data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-timestep-30-mins.xml +10 -40
  576. data/example_files/resources/hpxml-measures/workflow/sample_files/base.xml +10 -37
  577. data/example_files/resources/hpxml-measures/workflow/template-build-and-run-hpxml-with-stochastic-occupancy.osw +16 -4
  578. data/example_files/resources/hpxml-measures/workflow/template-run-hpxml-with-stochastic-occupancy-subset.osw +16 -3
  579. data/example_files/resources/hpxml-measures/workflow/template-run-hpxml-with-stochastic-occupancy.osw +16 -3
  580. data/example_files/resources/hpxml-measures/workflow/template-run-hpxml.osw +16 -2
  581. data/example_files/resources/hpxml-measures/workflow/tests/ACCA_Examples/Long_Residence.xml +386 -0
  582. data/example_files/resources/hpxml-measures/workflow/tests/ACCA_Examples/Vatilo_Residence.xml +381 -0
  583. data/example_files/resources/hpxml-measures/workflow/tests/ACCA_Examples/Victor_Residence.xml +370 -0
  584. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L100AC.xml +2 -2
  585. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L100AL.xml +2 -5
  586. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L110AC.xml +2 -5
  587. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L110AL.xml +2 -5
  588. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L120AC.xml +2 -5
  589. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L120AL.xml +2 -5
  590. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L130AC.xml +2 -5
  591. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L130AL.xml +2 -5
  592. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L140AC.xml +2 -5
  593. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L140AL.xml +2 -5
  594. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L150AC.xml +2 -5
  595. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L150AL.xml +2 -5
  596. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L155AC.xml +2 -5
  597. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L155AL.xml +2 -5
  598. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L160AC.xml +2 -5
  599. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L160AL.xml +2 -5
  600. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L170AC.xml +2 -12
  601. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L170AL.xml +2 -12
  602. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L200AC.xml +2 -5
  603. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L200AL.xml +2 -5
  604. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L202AC.xml +2 -5
  605. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L202AL.xml +2 -5
  606. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L302XC.xml +2 -5
  607. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L304XC.xml +2 -5
  608. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L322XC.xml +6 -9
  609. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L324XC.xml +6 -9
  610. data/example_files/resources/hpxml-measures/workflow/tests/base_results/results.csv +475 -444
  611. data/example_files/resources/hpxml-measures/workflow/tests/base_results/results_bills.csv +475 -444
  612. data/example_files/resources/hpxml-measures/workflow/tests/hpxml_translator_test.rb +177 -112
  613. data/example_files/resources/meta_measure.rb +2 -27
  614. data/example_files/xml_building/17/README.md +3 -3
  615. data/lib/uo_cli/version.rb +3 -38
  616. data/lib/uo_cli.rb +3 -38
  617. data/uo_cli.gemspec +6 -7
  618. metadata +70 -51
  619. data/example_files/resources/hpxml-measures/BuildResidentialScheduleFile/resources/schedules_config.json +0 -388
  620. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hpxml_schema/HPXMLBaseElements.xsd +0 -6136
  621. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hpxml_schema/HPXMLDataTypes.xsd +0 -4846
  622. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/schedule_files/occupancy-smooth.csv +0 -8761
  623. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/schedule_files/occupancy-stochastic-vacancy.csv +0 -8761
  624. data/example_files/resources/hpxml-measures/weather/USA_AZ_Phoenix-Sky.Harbor.Intl.AP.722780_TMY3-cache.csv +0 -35
  625. data/example_files/resources/hpxml-measures/weather/USA_CO_Colorado.Springs-Peterson.Field.724660_TMY3-cache.csv +0 -35
  626. data/example_files/resources/hpxml-measures/weather/USA_CO_Denver.Intl.AP.725650_TMY3-cache.csv +0 -35
  627. data/example_files/resources/hpxml-measures/weather/USA_DE_Wilmington-New.Castle.County.AP.724089_TMY3-cache.csv +0 -35
  628. data/example_files/resources/hpxml-measures/weather/USA_FL_Miami.Intl.AP.722020_TMY3-cache.csv +0 -35
  629. data/example_files/resources/hpxml-measures/weather/USA_HI_Honolulu.Intl.AP.911820_TMY3-cache.csv +0 -35
  630. data/example_files/resources/hpxml-measures/weather/USA_MD_Baltimore-Washington.Intl.AP.724060_TMY3-cache.csv +0 -35
  631. data/example_files/resources/hpxml-measures/weather/USA_MN_Duluth.Intl.AP.727450_TMY3-cache.csv +0 -35
  632. data/example_files/resources/hpxml-measures/weather/USA_MT_Helena.Rgnl.AP.727720_TMY3-cache.csv +0 -35
  633. data/example_files/resources/hpxml-measures/weather/USA_NC_Charlotte-Douglas.Intl.AP.723140_TMY3-cache.csv +0 -35
  634. data/example_files/resources/hpxml-measures/weather/USA_NJ_Cape.May.County.AP.745966_TMY3-cache.csv +0 -35
  635. data/example_files/resources/hpxml-measures/weather/USA_NV_Las.Vegas-McCarran.Intl.AP.723860_TMY3-cache.csv +0 -35
  636. data/example_files/resources/hpxml-measures/weather/USA_OR_Portland.Intl.AP.726980_TMY3-cache.csv +0 -35
  637. data/example_files/resources/hpxml-measures/weather/USA_TX_Dallas-Fort.Worth.Intl.AP.722590_TMY3-cache.csv +0 -35
  638. data/example_files/resources/hpxml-measures/weather/US_CO_Boulder_AMY_2012-cache.csv +0 -35
  639. data/example_files/resources/hpxml-measures/weather/ZAF_Cape.Town.688160_IWEC-cache.csv +0 -35
  640. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-split-surfaces.xml +0 -2508
  641. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-split-surfaces2.xml +0 -2508
@@ -8,544 +8,119 @@ end
8
8
 
9
9
  def create_hpxmls
10
10
  this_dir = File.dirname(__FILE__)
11
- tests_dir = File.join(this_dir, 'workflow/sample_files')
11
+ workflow_dir = File.join(this_dir, 'workflow')
12
+ hpxml_inputs_tsv_path = File.join(workflow_dir, 'hpxml_inputs.json')
12
13
 
13
- # Hash of HPXML -> Parent HPXML
14
- hpxmls_files = {
15
- 'base.xml' => nil,
14
+ require 'json'
15
+ json_inputs = JSON.parse(File.read(hpxml_inputs_tsv_path))
16
+ abs_hpxml_files = []
17
+ dirs = json_inputs.keys.map { |file_path| File.dirname(file_path) }.uniq
16
18
 
17
- 'ASHRAE_Standard_140/L100AC.xml' => nil,
18
- 'ASHRAE_Standard_140/L100AL.xml' => 'ASHRAE_Standard_140/L100AC.xml',
19
- 'ASHRAE_Standard_140/L110AC.xml' => 'ASHRAE_Standard_140/L100AC.xml',
20
- 'ASHRAE_Standard_140/L110AL.xml' => 'ASHRAE_Standard_140/L100AL.xml',
21
- 'ASHRAE_Standard_140/L120AC.xml' => 'ASHRAE_Standard_140/L100AC.xml',
22
- 'ASHRAE_Standard_140/L120AL.xml' => 'ASHRAE_Standard_140/L100AL.xml',
23
- 'ASHRAE_Standard_140/L130AC.xml' => 'ASHRAE_Standard_140/L100AC.xml',
24
- 'ASHRAE_Standard_140/L130AL.xml' => 'ASHRAE_Standard_140/L100AL.xml',
25
- 'ASHRAE_Standard_140/L140AC.xml' => 'ASHRAE_Standard_140/L100AC.xml',
26
- 'ASHRAE_Standard_140/L140AL.xml' => 'ASHRAE_Standard_140/L100AL.xml',
27
- 'ASHRAE_Standard_140/L150AC.xml' => 'ASHRAE_Standard_140/L100AC.xml',
28
- 'ASHRAE_Standard_140/L150AL.xml' => 'ASHRAE_Standard_140/L100AL.xml',
29
- 'ASHRAE_Standard_140/L160AC.xml' => 'ASHRAE_Standard_140/L100AC.xml',
30
- 'ASHRAE_Standard_140/L160AL.xml' => 'ASHRAE_Standard_140/L100AL.xml',
31
- 'ASHRAE_Standard_140/L170AC.xml' => 'ASHRAE_Standard_140/L100AC.xml',
32
- 'ASHRAE_Standard_140/L170AL.xml' => 'ASHRAE_Standard_140/L100AL.xml',
33
- 'ASHRAE_Standard_140/L200AC.xml' => 'ASHRAE_Standard_140/L100AC.xml',
34
- 'ASHRAE_Standard_140/L200AL.xml' => 'ASHRAE_Standard_140/L100AL.xml',
35
- 'ASHRAE_Standard_140/L302XC.xml' => 'ASHRAE_Standard_140/L100AC.xml',
36
- 'ASHRAE_Standard_140/L322XC.xml' => 'ASHRAE_Standard_140/L100AC.xml',
37
- 'ASHRAE_Standard_140/L155AC.xml' => 'ASHRAE_Standard_140/L150AC.xml',
38
- 'ASHRAE_Standard_140/L155AL.xml' => 'ASHRAE_Standard_140/L150AL.xml',
39
- 'ASHRAE_Standard_140/L202AC.xml' => 'ASHRAE_Standard_140/L200AC.xml',
40
- 'ASHRAE_Standard_140/L202AL.xml' => 'ASHRAE_Standard_140/L200AL.xml',
41
- 'ASHRAE_Standard_140/L304XC.xml' => 'ASHRAE_Standard_140/L302XC.xml',
42
- 'ASHRAE_Standard_140/L324XC.xml' => 'ASHRAE_Standard_140/L322XC.xml',
19
+ schema_path = File.join(File.dirname(__FILE__), 'HPXMLtoOpenStudio', 'resources', 'hpxml_schema', 'HPXML.xsd')
20
+ schema_validator = XMLValidator.get_schema_validator(schema_path)
43
21
 
44
- 'base-appliances-coal.xml' => 'base.xml',
45
- 'base-appliances-dehumidifier.xml' => 'base-location-dallas-tx.xml',
46
- 'base-appliances-dehumidifier-ief-portable.xml' => 'base-appliances-dehumidifier.xml',
47
- 'base-appliances-dehumidifier-ief-whole-home.xml' => 'base-appliances-dehumidifier-ief-portable.xml',
48
- 'base-appliances-dehumidifier-multiple.xml' => 'base-appliances-dehumidifier.xml',
49
- 'base-appliances-gas.xml' => 'base.xml',
50
- 'base-appliances-modified.xml' => 'base.xml',
51
- 'base-appliances-none.xml' => 'base.xml',
52
- 'base-appliances-oil.xml' => 'base.xml',
53
- 'base-appliances-oil-location-miami-fl.xml' => 'base-appliances-oil.xml',
54
- 'base-appliances-propane.xml' => 'base.xml',
55
- 'base-appliances-propane-location-portland-or.xml' => 'base-appliances-propane.xml',
56
- 'base-appliances-wood.xml' => 'base.xml',
57
- 'base-atticroof-cathedral.xml' => 'base.xml',
58
- 'base-atticroof-conditioned.xml' => 'base.xml',
59
- 'base-atticroof-flat.xml' => 'base.xml',
60
- 'base-atticroof-radiant-barrier.xml' => 'base-location-dallas-tx.xml',
61
- 'base-atticroof-unvented-insulated-roof.xml' => 'base.xml',
62
- 'base-atticroof-vented.xml' => 'base.xml',
63
- 'base-battery.xml' => 'base.xml',
64
- 'base-battery-scheduled.xml' => 'base-battery.xml',
65
- 'base-bldgtype-multifamily.xml' => 'base.xml',
66
- 'base-bldgtype-multifamily-adjacent-to-multifamily-buffer-space.xml' => 'base-bldgtype-multifamily.xml',
67
- 'base-bldgtype-multifamily-adjacent-to-multiple.xml' => 'base-bldgtype-multifamily.xml',
68
- 'base-bldgtype-multifamily-adjacent-to-non-freezing-space.xml' => 'base-bldgtype-multifamily.xml',
69
- 'base-bldgtype-multifamily-adjacent-to-other-heated-space.xml' => 'base-bldgtype-multifamily.xml',
70
- 'base-bldgtype-multifamily-adjacent-to-other-housing-unit.xml' => 'base-bldgtype-multifamily.xml',
71
- 'base-bldgtype-multifamily-calctype-operational.xml' => 'base-bldgtype-multifamily.xml',
72
- 'base-bldgtype-multifamily-shared-boiler-chiller-baseboard.xml' => 'base-bldgtype-multifamily.xml',
73
- 'base-bldgtype-multifamily-shared-boiler-chiller-fan-coil.xml' => 'base-bldgtype-multifamily-shared-boiler-chiller-baseboard.xml',
74
- 'base-bldgtype-multifamily-shared-boiler-chiller-fan-coil-ducted.xml' => 'base-bldgtype-multifamily-shared-boiler-chiller-fan-coil.xml',
75
- 'base-bldgtype-multifamily-shared-boiler-chiller-water-loop-heat-pump.xml' => 'base-bldgtype-multifamily-shared-boiler-chiller-baseboard.xml',
76
- 'base-bldgtype-multifamily-shared-boiler-cooling-tower-water-loop-heat-pump.xml' => 'base-bldgtype-multifamily-shared-boiler-chiller-water-loop-heat-pump.xml',
77
- 'base-bldgtype-multifamily-shared-boiler-only-baseboard.xml' => 'base-bldgtype-multifamily.xml',
78
- 'base-bldgtype-multifamily-shared-boiler-only-fan-coil.xml' => 'base-bldgtype-multifamily-shared-boiler-only-baseboard.xml',
79
- 'base-bldgtype-multifamily-shared-boiler-only-fan-coil-ducted.xml' => 'base-bldgtype-multifamily-shared-boiler-only-fan-coil.xml',
80
- 'base-bldgtype-multifamily-shared-boiler-only-fan-coil-eae.xml' => 'base-bldgtype-multifamily-shared-boiler-only-fan-coil.xml',
81
- 'base-bldgtype-multifamily-shared-boiler-only-water-loop-heat-pump.xml' => 'base-bldgtype-multifamily-shared-boiler-only-baseboard.xml',
82
- 'base-bldgtype-multifamily-shared-chiller-only-baseboard.xml' => 'base-bldgtype-multifamily.xml',
83
- 'base-bldgtype-multifamily-shared-chiller-only-fan-coil.xml' => 'base-bldgtype-multifamily-shared-chiller-only-baseboard.xml',
84
- 'base-bldgtype-multifamily-shared-chiller-only-fan-coil-ducted.xml' => 'base-bldgtype-multifamily-shared-chiller-only-fan-coil.xml',
85
- 'base-bldgtype-multifamily-shared-chiller-only-water-loop-heat-pump.xml' => 'base-bldgtype-multifamily-shared-chiller-only-baseboard.xml',
86
- 'base-bldgtype-multifamily-shared-cooling-tower-only-water-loop-heat-pump.xml' => 'base-bldgtype-multifamily-shared-chiller-only-water-loop-heat-pump.xml',
87
- 'base-bldgtype-multifamily-shared-generator.xml' => 'base-bldgtype-multifamily.xml',
88
- 'base-bldgtype-multifamily-shared-ground-loop-ground-to-air-heat-pump.xml' => 'base-bldgtype-multifamily.xml',
89
- 'base-bldgtype-multifamily-shared-laundry-room.xml' => 'base-bldgtype-multifamily.xml',
90
- 'base-bldgtype-multifamily-shared-laundry-room-multiple-water-heaters.xml' => 'base-bldgtype-multifamily-shared-laundry-room.xml',
91
- 'base-bldgtype-multifamily-shared-mechvent.xml' => 'base-bldgtype-multifamily.xml',
92
- 'base-bldgtype-multifamily-shared-mechvent-multiple.xml' => 'base-bldgtype-multifamily.xml',
93
- 'base-bldgtype-multifamily-shared-mechvent-preconditioning.xml' => 'base-bldgtype-multifamily-shared-mechvent.xml',
94
- 'base-bldgtype-multifamily-shared-pv.xml' => 'base-bldgtype-multifamily.xml',
95
- 'base-bldgtype-multifamily-shared-water-heater.xml' => 'base-bldgtype-multifamily.xml',
96
- 'base-bldgtype-multifamily-shared-water-heater-recirc.xml' => 'base-bldgtype-multifamily-shared-water-heater.xml',
97
- 'base-bldgtype-single-family-attached.xml' => 'base.xml',
98
- 'base-bldgtype-single-family-attached-2stories.xml' => 'base-bldgtype-single-family-attached.xml',
99
- 'base-bldgtype-single-family-attached-atticroof-cathedral.xml' => 'base-bldgtype-single-family-attached-2stories.xml',
100
- 'base-calctype-operational.xml' => 'base.xml',
101
- 'base-calctype-operational-misc-defaults.xml' => 'base-misc-defaults.xml',
102
- 'base-calctype-operational-misc-loads-large-uncommon.xml' => 'base-misc-loads-large-uncommon.xml',
103
- 'base-calctype-operational-misc-loads-large-uncommon2.xml' => 'base-misc-loads-large-uncommon2.xml',
104
- 'base-dhw-combi-tankless.xml' => 'base-dhw-indirect.xml',
105
- 'base-dhw-combi-tankless-outside.xml' => 'base-dhw-combi-tankless.xml',
106
- 'base-dhw-desuperheater.xml' => 'base-hvac-central-ac-only-1-speed.xml',
107
- 'base-dhw-desuperheater-2-speed.xml' => 'base-hvac-central-ac-only-2-speed.xml',
108
- 'base-dhw-desuperheater-gshp.xml' => 'base-hvac-ground-to-air-heat-pump.xml',
109
- 'base-dhw-desuperheater-hpwh.xml' => 'base-dhw-tank-heat-pump.xml',
110
- 'base-dhw-desuperheater-tankless.xml' => 'base-hvac-central-ac-only-1-speed.xml',
111
- 'base-dhw-desuperheater-var-speed.xml' => 'base-hvac-central-ac-only-var-speed.xml',
112
- 'base-dhw-dwhr.xml' => 'base.xml',
113
- 'base-dhw-indirect.xml' => 'base-hvac-boiler-gas-only.xml',
114
- 'base-dhw-indirect-detailed-setpoints.xml' => 'base-dhw-indirect.xml',
115
- 'base-dhw-indirect-dse.xml' => 'base-dhw-indirect.xml',
116
- 'base-dhw-indirect-outside.xml' => 'base-dhw-indirect.xml',
117
- 'base-dhw-indirect-standbyloss.xml' => 'base-dhw-indirect.xml',
118
- 'base-dhw-indirect-with-solar-fraction.xml' => 'base-dhw-indirect.xml',
119
- 'base-dhw-jacket-electric.xml' => 'base.xml',
120
- 'base-dhw-jacket-gas.xml' => 'base-dhw-tank-gas.xml',
121
- 'base-dhw-jacket-hpwh.xml' => 'base-dhw-tank-heat-pump.xml',
122
- 'base-dhw-jacket-indirect.xml' => 'base-dhw-indirect.xml',
123
- 'base-dhw-low-flow-fixtures.xml' => 'base.xml',
124
- 'base-dhw-multiple.xml' => 'base-hvac-boiler-gas-only.xml',
125
- 'base-dhw-none.xml' => 'base.xml',
126
- 'base-dhw-recirc-demand.xml' => 'base.xml',
127
- 'base-dhw-recirc-manual.xml' => 'base.xml',
128
- 'base-dhw-recirc-nocontrol.xml' => 'base.xml',
129
- 'base-dhw-recirc-temperature.xml' => 'base.xml',
130
- 'base-dhw-recirc-timer.xml' => 'base.xml',
131
- 'base-dhw-solar-direct-evacuated-tube.xml' => 'base.xml',
132
- 'base-dhw-solar-direct-flat-plate.xml' => 'base-dhw-solar-indirect-flat-plate.xml',
133
- 'base-dhw-solar-direct-ics.xml' => 'base-dhw-solar-indirect-flat-plate.xml',
134
- 'base-dhw-solar-fraction.xml' => 'base.xml',
135
- 'base-dhw-solar-indirect-flat-plate.xml' => 'base.xml',
136
- 'base-dhw-solar-thermosyphon-flat-plate.xml' => 'base-dhw-solar-indirect-flat-plate.xml',
137
- 'base-dhw-tank-coal.xml' => 'base-dhw-tank-gas.xml',
138
- 'base-dhw-tank-detailed-setpoints.xml' => 'base.xml',
139
- 'base-dhw-tank-elec-uef.xml' => 'base.xml',
140
- 'base-dhw-tank-gas.xml' => 'base.xml',
141
- 'base-dhw-tank-gas-uef.xml' => 'base-dhw-tank-gas.xml',
142
- 'base-dhw-tank-gas-uef-fhr.xml' => 'base-dhw-tank-gas-uef.xml',
143
- 'base-dhw-tank-gas-outside.xml' => 'base-dhw-tank-gas.xml',
144
- 'base-dhw-tank-heat-pump.xml' => 'base.xml',
145
- 'base-dhw-tank-heat-pump-outside.xml' => 'base-dhw-tank-heat-pump.xml',
146
- 'base-dhw-tank-heat-pump-uef.xml' => 'base-dhw-tank-heat-pump.xml',
147
- 'base-dhw-tank-heat-pump-with-solar.xml' => 'base-dhw-tank-heat-pump.xml',
148
- 'base-dhw-tank-heat-pump-with-solar-fraction.xml' => 'base-dhw-tank-heat-pump.xml',
149
- 'base-dhw-tank-heat-pump-operating-mode-heat-pump-only.xml' => 'base-dhw-tank-heat-pump-uef.xml',
150
- 'base-dhw-tank-heat-pump-detailed-schedules.xml' => 'base-dhw-tank-heat-pump-uef.xml',
151
- 'base-dhw-tank-model-type-stratified.xml' => 'base.xml',
152
- 'base-dhw-tank-model-type-stratified-detailed-occupancy-stochastic.xml' => 'base-dhw-tank-model-type-stratified.xml',
153
- 'base-dhw-tank-oil.xml' => 'base-dhw-tank-gas.xml',
154
- 'base-dhw-tank-wood.xml' => 'base-dhw-tank-gas.xml',
155
- 'base-dhw-tankless-electric.xml' => 'base.xml',
156
- 'base-dhw-tankless-electric-outside.xml' => 'base-dhw-tankless-electric.xml',
157
- 'base-dhw-tankless-electric-uef.xml' => 'base-dhw-tankless-electric.xml',
158
- 'base-dhw-tankless-gas.xml' => 'base.xml',
159
- 'base-dhw-tankless-gas-uef.xml' => 'base-dhw-tankless-gas.xml',
160
- 'base-dhw-tankless-gas-with-solar.xml' => 'base-dhw-tankless-gas.xml',
161
- 'base-dhw-tankless-gas-with-solar-fraction.xml' => 'base-dhw-tankless-gas.xml',
162
- 'base-dhw-tankless-propane.xml' => 'base-dhw-tankless-gas.xml',
163
- 'base-dhw-tankless-detailed-setpoints.xml' => 'base-dhw-tankless-gas.xml',
164
- 'base-enclosure-2stories.xml' => 'base.xml',
165
- 'base-enclosure-2stories-garage.xml' => 'base-enclosure-2stories.xml',
166
- 'base-enclosure-beds-1.xml' => 'base.xml',
167
- 'base-enclosure-beds-2.xml' => 'base.xml',
168
- 'base-enclosure-beds-4.xml' => 'base.xml',
169
- 'base-enclosure-beds-5.xml' => 'base.xml',
170
- 'base-enclosure-ceilingtypes.xml' => 'base.xml',
171
- 'base-enclosure-floortypes.xml' => 'base-foundation-ambient.xml',
172
- 'base-enclosure-garage.xml' => 'base.xml',
173
- 'base-enclosure-infil-ach-house-pressure.xml' => 'base.xml',
174
- 'base-enclosure-infil-cfm-house-pressure.xml' => 'base-enclosure-infil-cfm50.xml',
175
- 'base-enclosure-infil-cfm50.xml' => 'base.xml',
176
- 'base-enclosure-infil-flue.xml' => 'base.xml',
177
- 'base-enclosure-infil-natural-ach.xml' => 'base.xml',
178
- 'base-enclosure-orientations.xml' => 'base.xml',
179
- 'base-enclosure-overhangs.xml' => 'base.xml',
180
- 'base-enclosure-rooftypes.xml' => 'base.xml',
181
- 'base-enclosure-skylights.xml' => 'base.xml',
182
- 'base-enclosure-skylights-physical-properties.xml' => 'base-enclosure-skylights.xml',
183
- 'base-enclosure-skylights-shading.xml' => 'base-enclosure-skylights.xml',
184
- 'base-enclosure-skylights-storms.xml' => 'base-enclosure-skylights.xml',
185
- 'base-enclosure-split-level.xml' => 'base-foundation-slab.xml',
186
- 'base-enclosure-split-surfaces.xml' => 'base-enclosure-skylights.xml', # Surfaces should collapse via HPXML.collapse_enclosure_surfaces()
187
- 'base-enclosure-split-surfaces2.xml' => 'base-enclosure-skylights.xml', # Surfaces should NOT collapse via HPXML.collapse_enclosure_surfaces()
188
- 'base-enclosure-walltypes.xml' => 'base.xml',
189
- 'base-enclosure-windows-natural-ventilation-availability.xml' => 'base.xml',
190
- 'base-enclosure-windows-none.xml' => 'base.xml',
191
- 'base-enclosure-windows-physical-properties.xml' => 'base.xml',
192
- 'base-enclosure-windows-shading.xml' => 'base.xml',
193
- 'base-enclosure-windows-storms.xml' => 'base.xml',
194
- 'base-enclosure-thermal-mass.xml' => 'base.xml',
195
- 'base-foundation-ambient.xml' => 'base.xml',
196
- 'base-foundation-basement-garage.xml' => 'base.xml',
197
- 'base-foundation-complex.xml' => 'base.xml',
198
- 'base-foundation-conditioned-basement-slab-insulation.xml' => 'base.xml',
199
- 'base-foundation-conditioned-basement-wall-insulation.xml' => 'base.xml',
200
- 'base-foundation-conditioned-crawlspace.xml' => 'base.xml',
201
- 'base-foundation-multiple.xml' => 'base-foundation-unconditioned-basement.xml',
202
- 'base-foundation-slab.xml' => 'base.xml',
203
- 'base-foundation-unconditioned-basement.xml' => 'base.xml',
204
- 'base-foundation-unconditioned-basement-above-grade.xml' => 'base-foundation-unconditioned-basement.xml',
205
- 'base-foundation-unconditioned-basement-assembly-r.xml' => 'base-foundation-unconditioned-basement.xml',
206
- 'base-foundation-unconditioned-basement-wall-insulation.xml' => 'base-foundation-unconditioned-basement.xml',
207
- 'base-foundation-unvented-crawlspace.xml' => 'base.xml',
208
- 'base-foundation-vented-crawlspace.xml' => 'base.xml',
209
- 'base-foundation-walkout-basement.xml' => 'base.xml',
210
- 'base-hvac-air-to-air-heat-pump-1-speed.xml' => 'base.xml',
211
- 'base-hvac-air-to-air-heat-pump-1-speed-cooling-only.xml' => 'base-hvac-air-to-air-heat-pump-1-speed.xml',
212
- 'base-hvac-air-to-air-heat-pump-1-speed-heating-only.xml' => 'base-hvac-air-to-air-heat-pump-1-speed.xml',
213
- 'base-hvac-air-to-air-heat-pump-1-speed-backup-lockout-temperature.xml' => 'base-hvac-air-to-air-heat-pump-1-speed.xml',
214
- 'base-hvac-air-to-air-heat-pump-1-speed-seer2-hspf2.xml' => 'base-hvac-air-to-air-heat-pump-1-speed.xml',
215
- 'base-hvac-air-to-air-heat-pump-2-speed.xml' => 'base.xml',
216
- 'base-hvac-air-to-air-heat-pump-var-speed.xml' => 'base.xml',
217
- 'base-hvac-air-to-air-heat-pump-var-speed-backup-boiler.xml' => 'base-hvac-air-to-air-heat-pump-var-speed.xml',
218
- 'base-hvac-air-to-air-heat-pump-var-speed-backup-boiler-switchover-temperature.xml' => 'base-hvac-air-to-air-heat-pump-var-speed-backup-boiler.xml',
219
- 'base-hvac-air-to-air-heat-pump-var-speed-backup-furnace.xml' => 'base-hvac-air-to-air-heat-pump-var-speed-backup-boiler.xml',
220
- 'base-hvac-autosize.xml' => 'base.xml',
221
- 'base-hvac-autosize-air-to-air-heat-pump-1-speed-cooling-only.xml' => 'base-hvac-air-to-air-heat-pump-1-speed-cooling-only.xml',
222
- 'base-hvac-autosize-air-to-air-heat-pump-1-speed-heating-only.xml' => 'base-hvac-air-to-air-heat-pump-1-speed-heating-only.xml',
223
- 'base-hvac-autosize-air-to-air-heat-pump-1-speed-sizing-methodology-acca.xml' => 'base-hvac-air-to-air-heat-pump-1-speed.xml',
224
- 'base-hvac-autosize-air-to-air-heat-pump-1-speed-sizing-methodology-hers.xml' => 'base-hvac-air-to-air-heat-pump-1-speed.xml',
225
- 'base-hvac-autosize-air-to-air-heat-pump-1-speed-sizing-methodology-maxload.xml' => 'base-hvac-air-to-air-heat-pump-1-speed.xml',
226
- 'base-hvac-autosize-air-to-air-heat-pump-1-speed-sizing-methodology-maxload-miami-fl.xml' => 'base-hvac-autosize-air-to-air-heat-pump-1-speed-sizing-methodology-maxload.xml',
227
- 'base-hvac-autosize-air-to-air-heat-pump-2-speed-sizing-methodology-acca.xml' => 'base-hvac-air-to-air-heat-pump-2-speed.xml',
228
- 'base-hvac-autosize-air-to-air-heat-pump-2-speed-sizing-methodology-hers.xml' => 'base-hvac-air-to-air-heat-pump-2-speed.xml',
229
- 'base-hvac-autosize-air-to-air-heat-pump-2-speed-sizing-methodology-maxload.xml' => 'base-hvac-air-to-air-heat-pump-2-speed.xml',
230
- 'base-hvac-autosize-air-to-air-heat-pump-var-speed-sizing-methodology-acca.xml' => 'base-hvac-air-to-air-heat-pump-var-speed.xml',
231
- 'base-hvac-autosize-air-to-air-heat-pump-var-speed-sizing-methodology-hers.xml' => 'base-hvac-air-to-air-heat-pump-var-speed.xml',
232
- 'base-hvac-autosize-air-to-air-heat-pump-var-speed-sizing-methodology-maxload.xml' => 'base-hvac-air-to-air-heat-pump-var-speed.xml',
233
- 'base-hvac-autosize-air-to-air-heat-pump-var-speed-backup-boiler.xml' => 'base-hvac-air-to-air-heat-pump-var-speed-backup-boiler.xml',
234
- 'base-hvac-autosize-air-to-air-heat-pump-var-speed-backup-furnace.xml' => 'base-hvac-air-to-air-heat-pump-var-speed-backup-furnace.xml',
235
- 'base-hvac-autosize-boiler-elec-only.xml' => 'base-hvac-boiler-elec-only.xml',
236
- 'base-hvac-autosize-boiler-gas-central-ac-1-speed.xml' => 'base-hvac-boiler-gas-central-ac-1-speed.xml',
237
- 'base-hvac-autosize-boiler-gas-only.xml' => 'base-hvac-boiler-gas-only.xml',
238
- 'base-hvac-autosize-central-ac-only-1-speed.xml' => 'base-hvac-central-ac-only-1-speed.xml',
239
- 'base-hvac-autosize-central-ac-only-2-speed.xml' => 'base-hvac-central-ac-only-2-speed.xml',
240
- 'base-hvac-autosize-central-ac-only-var-speed.xml' => 'base-hvac-central-ac-only-var-speed.xml',
241
- 'base-hvac-autosize-central-ac-plus-air-to-air-heat-pump-heating.xml' => 'base-hvac-central-ac-plus-air-to-air-heat-pump-heating.xml',
242
- 'base-hvac-autosize-dual-fuel-air-to-air-heat-pump-1-speed-sizing-methodology-acca.xml' => 'base-hvac-dual-fuel-air-to-air-heat-pump-1-speed.xml',
243
- 'base-hvac-autosize-dual-fuel-air-to-air-heat-pump-1-speed-sizing-methodology-hers.xml' => 'base-hvac-dual-fuel-air-to-air-heat-pump-1-speed.xml',
244
- 'base-hvac-autosize-dual-fuel-air-to-air-heat-pump-1-speed-sizing-methodology-maxload.xml' => 'base-hvac-dual-fuel-air-to-air-heat-pump-1-speed.xml',
245
- 'base-hvac-autosize-dual-fuel-mini-split-heat-pump-ducted.xml' => 'base-hvac-dual-fuel-mini-split-heat-pump-ducted.xml',
246
- 'base-hvac-autosize-elec-resistance-only.xml' => 'base-hvac-elec-resistance-only.xml',
247
- 'base-hvac-autosize-evap-cooler-furnace-gas.xml' => 'base-hvac-evap-cooler-furnace-gas.xml',
248
- 'base-hvac-autosize-floor-furnace-propane-only.xml' => 'base-hvac-floor-furnace-propane-only.xml',
249
- 'base-hvac-autosize-furnace-elec-only.xml' => 'base-hvac-furnace-elec-only.xml',
250
- 'base-hvac-autosize-furnace-gas-central-ac-2-speed.xml' => 'base-hvac-furnace-gas-central-ac-2-speed.xml',
251
- 'base-hvac-autosize-furnace-gas-central-ac-var-speed.xml' => 'base-hvac-furnace-gas-central-ac-var-speed.xml',
252
- 'base-hvac-autosize-furnace-gas-only.xml' => 'base-hvac-furnace-gas-only.xml',
253
- 'base-hvac-autosize-furnace-gas-room-ac.xml' => 'base-hvac-furnace-gas-room-ac.xml',
254
- 'base-hvac-autosize-ground-to-air-heat-pump-cooling-only.xml' => 'base-hvac-ground-to-air-heat-pump-cooling-only.xml',
255
- 'base-hvac-autosize-ground-to-air-heat-pump-heating-only.xml' => 'base-hvac-ground-to-air-heat-pump-heating-only.xml',
256
- 'base-hvac-autosize-ground-to-air-heat-pump-sizing-methodology-acca.xml' => 'base-hvac-ground-to-air-heat-pump.xml',
257
- 'base-hvac-autosize-ground-to-air-heat-pump-sizing-methodology-hers.xml' => 'base-hvac-ground-to-air-heat-pump.xml',
258
- 'base-hvac-autosize-ground-to-air-heat-pump-sizing-methodology-maxload.xml' => 'base-hvac-ground-to-air-heat-pump.xml',
259
- 'base-hvac-autosize-mini-split-heat-pump-ducted-cooling-only.xml' => 'base-hvac-mini-split-heat-pump-ducted-cooling-only.xml',
260
- 'base-hvac-autosize-mini-split-heat-pump-ducted-heating-only.xml' => 'base-hvac-mini-split-heat-pump-ducted-heating-only.xml',
261
- 'base-hvac-autosize-mini-split-heat-pump-ducted-sizing-methodology-acca.xml' => 'base-hvac-mini-split-heat-pump-ducted.xml',
262
- 'base-hvac-autosize-mini-split-heat-pump-ducted-sizing-methodology-hers.xml' => 'base-hvac-mini-split-heat-pump-ducted.xml',
263
- 'base-hvac-autosize-mini-split-heat-pump-ducted-sizing-methodology-maxload.xml' => 'base-hvac-mini-split-heat-pump-ducted.xml',
264
- 'base-hvac-autosize-mini-split-heat-pump-ductless-backup-stove.xml' => 'base-hvac-mini-split-heat-pump-ductless-backup-stove.xml',
265
- 'base-hvac-autosize-mini-split-air-conditioner-only-ducted.xml' => 'base-hvac-mini-split-air-conditioner-only-ducted.xml',
266
- 'base-hvac-autosize-ptac.xml' => 'base-hvac-ptac.xml',
267
- 'base-hvac-autosize-ptac-with-heating.xml' => 'base-hvac-ptac-with-heating-electricity.xml',
268
- 'base-hvac-autosize-pthp-sizing-methodology-acca.xml' => 'base-hvac-pthp.xml',
269
- 'base-hvac-autosize-pthp-sizing-methodology-hers.xml' => 'base-hvac-pthp.xml',
270
- 'base-hvac-autosize-pthp-sizing-methodology-maxload.xml' => 'base-hvac-pthp.xml',
271
- 'base-hvac-autosize-room-ac-with-reverse-cycle-sizing-methodology-acca.xml' => 'base-hvac-room-ac-with-reverse-cycle.xml',
272
- 'base-hvac-autosize-room-ac-with-reverse-cycle-sizing-methodology-hers.xml' => 'base-hvac-room-ac-with-reverse-cycle.xml',
273
- 'base-hvac-autosize-room-ac-with-reverse-cycle-sizing-methodology-maxload.xml' => 'base-hvac-room-ac-with-reverse-cycle.xml',
274
- 'base-hvac-autosize-room-ac-with-heating.xml' => 'base-hvac-room-ac-with-heating.xml',
275
- 'base-hvac-autosize-room-ac-only.xml' => 'base-hvac-room-ac-only.xml',
276
- 'base-hvac-autosize-stove-oil-only.xml' => 'base-hvac-stove-oil-only.xml',
277
- 'base-hvac-autosize-wall-furnace-elec-only.xml' => 'base-hvac-wall-furnace-elec-only.xml',
278
- 'base-hvac-boiler-coal-only.xml' => 'base-hvac-boiler-gas-only.xml',
279
- 'base-hvac-boiler-elec-only.xml' => 'base.xml',
280
- 'base-hvac-boiler-gas-central-ac-1-speed.xml' => 'base.xml',
281
- 'base-hvac-boiler-gas-only.xml' => 'base.xml',
282
- 'base-hvac-boiler-oil-only.xml' => 'base-hvac-boiler-gas-only.xml',
283
- 'base-hvac-boiler-propane-only.xml' => 'base-hvac-boiler-gas-only.xml',
284
- 'base-hvac-boiler-wood-only.xml' => 'base-hvac-boiler-gas-only.xml',
285
- 'base-hvac-central-ac-only-1-speed.xml' => 'base.xml',
286
- 'base-hvac-central-ac-only-1-speed-seer2.xml' => 'base-hvac-central-ac-only-1-speed.xml',
287
- 'base-hvac-central-ac-only-2-speed.xml' => 'base.xml',
288
- 'base-hvac-central-ac-only-var-speed.xml' => 'base.xml',
289
- 'base-hvac-central-ac-plus-air-to-air-heat-pump-heating.xml' => 'base-hvac-central-ac-only-1-speed.xml',
290
- 'base-hvac-dse.xml' => 'base.xml',
291
- 'base-hvac-dual-fuel-air-to-air-heat-pump-1-speed.xml' => 'base-hvac-air-to-air-heat-pump-1-speed.xml',
292
- 'base-hvac-dual-fuel-air-to-air-heat-pump-1-speed-electric.xml' => 'base-hvac-dual-fuel-air-to-air-heat-pump-1-speed.xml',
293
- 'base-hvac-dual-fuel-air-to-air-heat-pump-2-speed.xml' => 'base-hvac-air-to-air-heat-pump-2-speed.xml',
294
- 'base-hvac-dual-fuel-air-to-air-heat-pump-var-speed.xml' => 'base-hvac-air-to-air-heat-pump-var-speed.xml',
295
- 'base-hvac-dual-fuel-mini-split-heat-pump-ducted.xml' => 'base-hvac-mini-split-heat-pump-ducted.xml',
296
- 'base-hvac-ducts-leakage-cfm50.xml' => 'base.xml',
297
- 'base-hvac-ducts-leakage-percent.xml' => 'base.xml',
298
- 'base-hvac-ducts-area-fractions.xml' => 'base-enclosure-2stories.xml',
299
- 'base-hvac-ducts-area-multipliers.xml' => 'base.xml',
300
- 'base-hvac-elec-resistance-only.xml' => 'base.xml',
301
- 'base-hvac-evap-cooler-furnace-gas.xml' => 'base.xml',
302
- 'base-hvac-evap-cooler-only.xml' => 'base.xml',
303
- 'base-hvac-evap-cooler-only-ducted.xml' => 'base.xml',
304
- 'base-hvac-fireplace-wood-only.xml' => 'base-hvac-stove-oil-only.xml',
305
- 'base-hvac-fixed-heater-gas-only.xml' => 'base.xml',
306
- 'base-hvac-floor-furnace-propane-only.xml' => 'base-hvac-stove-oil-only.xml',
307
- 'base-hvac-furnace-coal-only.xml' => 'base-hvac-furnace-gas-only.xml',
308
- 'base-hvac-furnace-elec-central-ac-1-speed.xml' => 'base.xml',
309
- 'base-hvac-furnace-elec-only.xml' => 'base.xml',
310
- 'base-hvac-furnace-gas-central-ac-2-speed.xml' => 'base.xml',
311
- 'base-hvac-furnace-gas-central-ac-var-speed.xml' => 'base.xml',
312
- 'base-hvac-furnace-gas-only.xml' => 'base.xml',
313
- 'base-hvac-furnace-gas-only-detailed-setpoints.xml' => 'base-hvac-furnace-gas-only.xml',
314
- 'base-hvac-furnace-gas-room-ac.xml' => 'base.xml',
315
- 'base-hvac-furnace-oil-only.xml' => 'base-hvac-furnace-gas-only.xml',
316
- 'base-hvac-furnace-propane-only.xml' => 'base-hvac-furnace-gas-only.xml',
317
- 'base-hvac-furnace-wood-only.xml' => 'base-hvac-furnace-gas-only.xml',
318
- 'base-hvac-furnace-x3-dse.xml' => 'base.xml',
319
- 'base-hvac-ground-to-air-heat-pump.xml' => 'base.xml',
320
- 'base-hvac-ground-to-air-heat-pump-cooling-only.xml' => 'base-hvac-ground-to-air-heat-pump.xml',
321
- 'base-hvac-ground-to-air-heat-pump-heating-only.xml' => 'base-hvac-ground-to-air-heat-pump.xml',
322
- 'base-hvac-install-quality-air-to-air-heat-pump-1-speed.xml' => 'base-hvac-air-to-air-heat-pump-1-speed.xml',
323
- 'base-hvac-install-quality-air-to-air-heat-pump-2-speed.xml' => 'base-hvac-air-to-air-heat-pump-2-speed.xml',
324
- 'base-hvac-install-quality-air-to-air-heat-pump-var-speed.xml' => 'base-hvac-air-to-air-heat-pump-var-speed.xml',
325
- 'base-hvac-install-quality-furnace-gas-central-ac-1-speed.xml' => 'base.xml',
326
- 'base-hvac-install-quality-furnace-gas-central-ac-2-speed.xml' => 'base-hvac-furnace-gas-central-ac-2-speed.xml',
327
- 'base-hvac-install-quality-furnace-gas-central-ac-var-speed.xml' => 'base-hvac-furnace-gas-central-ac-var-speed.xml',
328
- 'base-hvac-install-quality-furnace-gas-only.xml' => 'base-hvac-furnace-gas-only.xml',
329
- 'base-hvac-install-quality-ground-to-air-heat-pump.xml' => 'base-hvac-ground-to-air-heat-pump.xml',
330
- 'base-hvac-install-quality-mini-split-heat-pump-ducted.xml' => 'base-hvac-mini-split-heat-pump-ducted.xml',
331
- 'base-hvac-install-quality-mini-split-air-conditioner-only-ducted.xml' => 'base-hvac-mini-split-air-conditioner-only-ducted.xml',
332
- 'base-hvac-mini-split-air-conditioner-only-ducted.xml' => 'base.xml',
333
- 'base-hvac-mini-split-air-conditioner-only-ductless.xml' => 'base-hvac-mini-split-air-conditioner-only-ducted.xml',
334
- 'base-hvac-mini-split-heat-pump-ducted.xml' => 'base.xml',
335
- 'base-hvac-mini-split-heat-pump-ducted-cooling-only.xml' => 'base-hvac-mini-split-heat-pump-ducted.xml',
336
- 'base-hvac-mini-split-heat-pump-ducted-heating-only.xml' => 'base-hvac-mini-split-heat-pump-ducted.xml',
337
- 'base-hvac-mini-split-heat-pump-ductless.xml' => 'base-hvac-mini-split-heat-pump-ducted.xml',
338
- 'base-hvac-mini-split-heat-pump-ductless-backup-stove.xml' => 'base-hvac-mini-split-heat-pump-ductless.xml',
339
- 'base-hvac-multiple.xml' => 'base.xml',
340
- 'base-hvac-none.xml' => 'base-location-honolulu-hi.xml',
341
- 'base-hvac-portable-heater-gas-only.xml' => 'base.xml',
342
- 'base-hvac-ptac.xml' => 'base.xml',
343
- 'base-hvac-ptac-with-heating-electricity.xml' => 'base-hvac-ptac.xml',
344
- 'base-hvac-ptac-with-heating-natural-gas.xml' => 'base-hvac-ptac.xml',
345
- 'base-hvac-pthp.xml' => 'base-hvac-ground-to-air-heat-pump.xml',
346
- 'base-hvac-room-ac-only.xml' => 'base.xml',
347
- 'base-hvac-room-ac-only-33percent.xml' => 'base-hvac-room-ac-only.xml',
348
- 'base-hvac-room-ac-only-ceer.xml' => 'base-hvac-room-ac-only.xml',
349
- 'base-hvac-room-ac-with-heating.xml' => 'base-hvac-room-ac-only.xml',
350
- 'base-hvac-room-ac-with-reverse-cycle.xml' => 'base-hvac-pthp.xml',
351
- 'base-hvac-room-ac-only-detailed-setpoints.xml' => 'base-hvac-room-ac-only.xml',
352
- 'base-hvac-seasons.xml' => 'base.xml',
353
- 'base-hvac-setpoints.xml' => 'base.xml',
354
- 'base-hvac-setpoints-daily-schedules.xml' => 'base-hvac-setpoints-daily-setbacks.xml',
355
- 'base-hvac-setpoints-daily-setbacks.xml' => 'base.xml',
356
- 'base-hvac-stove-oil-only.xml' => 'base.xml',
357
- 'base-hvac-stove-wood-pellets-only.xml' => 'base-hvac-stove-oil-only.xml',
358
- 'base-hvac-undersized.xml' => 'base.xml',
359
- 'base-hvac-undersized-allow-increased-fixed-capacities.xml' => 'base-hvac-undersized.xml',
360
- 'base-hvac-wall-furnace-elec-only.xml' => 'base.xml',
361
- 'base-lighting-ceiling-fans.xml' => 'base.xml',
362
- 'base-lighting-holiday.xml' => 'base.xml',
363
- 'base-lighting-none.xml' => 'base.xml',
364
- 'base-location-AMY-2012.xml' => 'base.xml',
365
- 'base-location-baltimore-md.xml' => 'base-foundation-unvented-crawlspace.xml',
366
- 'base-location-capetown-zaf.xml' => 'base-foundation-vented-crawlspace.xml',
367
- 'base-location-dallas-tx.xml' => 'base-foundation-slab.xml',
368
- 'base-location-duluth-mn.xml' => 'base-foundation-unconditioned-basement.xml',
369
- 'base-location-helena-mt.xml' => 'base.xml',
370
- 'base-location-honolulu-hi.xml' => 'base-foundation-slab.xml',
371
- 'base-location-miami-fl.xml' => 'base-foundation-slab.xml',
372
- 'base-location-phoenix-az.xml' => 'base-foundation-slab.xml',
373
- 'base-location-portland-or.xml' => 'base-foundation-vented-crawlspace.xml',
374
- 'base-mechvent-balanced.xml' => 'base.xml',
375
- 'base-mechvent-bath-kitchen-fans.xml' => 'base.xml',
376
- 'base-mechvent-cfis.xml' => 'base.xml',
377
- 'base-mechvent-cfis-airflow-fraction-zero.xml' => 'base-mechvent-cfis.xml',
378
- 'base-mechvent-cfis-dse.xml' => 'base-hvac-dse.xml',
379
- 'base-mechvent-cfis-evap-cooler-only-ducted.xml' => 'base-hvac-evap-cooler-only-ducted.xml',
380
- 'base-mechvent-cfis-supplemental-fan-exhaust.xml' => 'base-mechvent-cfis.xml',
381
- 'base-mechvent-cfis-supplemental-fan-supply.xml' => 'base-mechvent-cfis.xml',
382
- 'base-mechvent-erv.xml' => 'base.xml',
383
- 'base-mechvent-erv-atre-asre.xml' => 'base.xml',
384
- 'base-mechvent-exhaust.xml' => 'base.xml',
385
- 'base-mechvent-exhaust-rated-flow-rate.xml' => 'base.xml',
386
- 'base-mechvent-hrv.xml' => 'base.xml',
387
- 'base-mechvent-hrv-asre.xml' => 'base.xml',
388
- 'base-mechvent-multiple.xml' => 'base-mechvent-bath-kitchen-fans.xml',
389
- 'base-mechvent-supply.xml' => 'base.xml',
390
- 'base-mechvent-whole-house-fan.xml' => 'base.xml',
391
- 'base-misc-additional-properties.xml' => 'base.xml',
392
- 'base-misc-bills.xml' => 'base.xml',
393
- 'base-misc-bills-none.xml' => 'base.xml',
394
- 'base-misc-bills-pv.xml' => 'base-pv.xml',
395
- 'base-misc-bills-pv-detailed-only.xml' => 'base-pv.xml',
396
- 'base-misc-bills-pv-mixed.xml' => 'base-pv.xml',
397
- 'base-misc-defaults.xml' => 'base.xml',
398
- 'base-misc-emissions.xml' => 'base-pv-battery.xml',
399
- 'base-misc-generators.xml' => 'base.xml',
400
- 'base-misc-generators-battery.xml' => 'base-misc-generators.xml',
401
- 'base-misc-generators-battery-scheduled.xml' => 'base-misc-generators-battery.xml',
402
- 'base-misc-ground-conductivity.xml' => 'base.xml',
403
- 'base-misc-loads-large-uncommon.xml' => 'base-schedules-simple.xml',
404
- 'base-misc-loads-large-uncommon2.xml' => 'base-misc-loads-large-uncommon.xml',
405
- 'base-misc-loads-none.xml' => 'base.xml',
406
- 'base-misc-neighbor-shading.xml' => 'base.xml',
407
- 'base-misc-shielding-of-home.xml' => 'base.xml',
408
- 'base-misc-usage-multiplier.xml' => 'base.xml',
409
- 'base-multiple-buildings.xml' => 'base.xml',
410
- 'base-pv.xml' => 'base.xml',
411
- 'base-pv-battery.xml' => 'base-battery.xml',
412
- 'base-pv-battery-ah.xml' => 'base-pv-battery.xml',
413
- 'base-pv-battery-garage.xml' => 'base-enclosure-garage.xml',
414
- # 'base-pv-battery-lifetime-model.xml' => 'base-pv-battery.xml',
415
- 'base-pv-battery-round-trip-efficiency.xml' => 'base-pv-battery.xml',
416
- 'base-pv-battery-scheduled.xml' => 'base-pv-battery.xml',
417
- 'base-pv-generators.xml' => 'base-pv.xml',
418
- 'base-pv-generators-battery.xml' => 'base-pv-generators.xml',
419
- 'base-pv-generators-battery-scheduled.xml' => 'base-pv-generators-battery.xml',
420
- 'base-schedules-simple.xml' => 'base.xml',
421
- 'base-schedules-detailed-all-10-mins.xml' => 'base-simcontrol-timestep-10-mins.xml',
422
- 'base-schedules-detailed-occupancy-smooth.xml' => 'base.xml',
423
- 'base-schedules-detailed-occupancy-stochastic.xml' => 'base.xml',
424
- 'base-schedules-detailed-occupancy-stochastic-vacancy.xml' => 'base.xml',
425
- 'base-schedules-detailed-occupancy-stochastic-10-mins.xml' => 'base.xml',
426
- 'base-schedules-detailed-setpoints.xml' => 'base.xml',
427
- 'base-schedules-detailed-setpoints-daily-schedules.xml' => 'base.xml',
428
- 'base-schedules-detailed-setpoints-daily-setbacks.xml' => 'base.xml',
429
- 'base-simcontrol-calendar-year-custom.xml' => 'base.xml',
430
- 'base-simcontrol-daylight-saving-custom.xml' => 'base.xml',
431
- 'base-simcontrol-daylight-saving-disabled.xml' => 'base.xml',
432
- 'base-simcontrol-runperiod-1-month.xml' => 'base.xml',
433
- 'base-simcontrol-temperature-capacitance-multiplier.xml' => 'base.xml',
434
- 'base-simcontrol-timestep-10-mins.xml' => 'base.xml',
435
- 'base-simcontrol-timestep-10-mins-occupancy-stochastic-10-mins.xml' => 'base-simcontrol-timestep-10-mins.xml',
436
- 'base-simcontrol-timestep-10-mins-occupancy-stochastic-60-mins.xml' => 'base-simcontrol-timestep-10-mins.xml',
437
- 'base-simcontrol-timestep-30-mins.xml' => 'base.xml',
438
- }
22
+ schedules_regenerated = []
439
23
 
440
- puts "Generating #{hpxmls_files.size} HPXML files..."
24
+ puts "Generating #{json_inputs.size} HPXML files..."
441
25
 
442
- hpxmls_files.each_with_index do |(hpxml_file, orig_parent), i|
443
- puts "[#{i + 1}/#{hpxmls_files.size}] Generating #{hpxml_file}..."
26
+ json_inputs.keys.each_with_index do |hpxml_filename, i|
27
+ puts "[#{i + 1}/#{json_inputs.size}] Generating #{hpxml_filename}..."
28
+ hpxml_path = File.join(workflow_dir, hpxml_filename)
29
+ abs_hpxml_files << File.absolute_path(hpxml_path)
444
30
 
445
- begin
446
- all_hpxml_files = [hpxml_file]
447
- parent = orig_parent
448
- unless parent.nil?
449
- all_hpxml_files.unshift(parent)
31
+ # Build up json_input from parent_hpxml(s)
32
+ parent_hpxml_filenames = []
33
+ parent_hpxml_filename = json_inputs[hpxml_filename]['parent_hpxml']
34
+ while not parent_hpxml_filename.nil?
35
+ if not json_inputs.keys.include? parent_hpxml_filename
36
+ fail "Could not find parent_hpxml: #{parent_hpxml_filename}."
450
37
  end
451
- while not parent.nil?
452
- next unless hpxmls_files.keys.include? parent
453
38
 
454
- unless hpxmls_files[parent].nil?
455
- all_hpxml_files.unshift(hpxmls_files[parent])
456
- end
457
- parent = hpxmls_files[parent]
458
- end
459
-
460
- args = {}
461
- sch_args = {}
462
- all_hpxml_files.each do |f|
463
- set_measure_argument_values(f, args, sch_args, orig_parent)
464
- end
39
+ parent_hpxml_filenames << parent_hpxml_filename
40
+ parent_hpxml_filename = json_inputs[parent_hpxml_filename]['parent_hpxml']
41
+ end
42
+ json_input = { 'hpxml_path' => hpxml_path }
43
+ for parent_hpxml_filename in parent_hpxml_filenames.reverse
44
+ json_input.merge!(json_inputs[parent_hpxml_filename])
45
+ end
46
+ json_input.merge!(json_inputs[hpxml_filename])
47
+ json_input.delete('parent_hpxml')
465
48
 
466
- measures = {}
467
- measures['BuildResidentialHPXML'] = [args] if !args.empty?
468
- measures['BuildResidentialScheduleFile'] = [sch_args] if !sch_args.empty?
49
+ measures = {}
50
+ measures['BuildResidentialHPXML'] = [json_input]
469
51
 
470
- measures_dir = File.dirname(__FILE__)
471
- model = OpenStudio::Model::Model.new
472
- runner = OpenStudio::Measure::OSRunner.new(OpenStudio::WorkflowJSON.new)
52
+ # Re-generate stochastic schedule CSV?
53
+ csv_path = json_input['schedules_filepaths'].to_s.split(',').map(&:strip).find { |fp| fp.include? 'occupancy-stochastic' }
54
+ if (not csv_path.nil?) && (not schedules_regenerated.include? csv_path)
55
+ sch_args = { 'hpxml_path' => hpxml_path,
56
+ 'output_csv_path' => csv_path,
57
+ 'hpxml_output_path' => hpxml_path }
58
+ measures['BuildResidentialScheduleFile'] = [sch_args]
59
+ schedules_regenerated << csv_path
60
+ end
473
61
 
474
- # Apply measure
475
- success = apply_measures(measures_dir, measures, runner, model)
62
+ measures_dir = File.dirname(__FILE__)
63
+ model = OpenStudio::Model::Model.new
64
+ runner = OpenStudio::Measure::OSRunner.new(OpenStudio::WorkflowJSON.new)
476
65
 
477
- # Report errors
478
- runner.result.stepErrors.each do |s|
479
- puts "Error: #{s}"
480
- end
66
+ # Apply measure
67
+ success = apply_measures(measures_dir, measures, runner, model)
481
68
 
482
- if not success
483
- puts "\nError: Did not successfully generate #{hpxml_file}."
484
- exit!
485
- end
69
+ # Report errors
70
+ runner.result.stepErrors.each do |s|
71
+ puts "Error: #{s}"
72
+ end
486
73
 
487
- if hpxml_file.include? 'ASHRAE_Standard_140'
488
- hpxml_path = File.absolute_path(File.join(tests_dir, '..', 'tests', hpxml_file))
489
- hpxml = HPXML.new(hpxml_path: hpxml_path, collapse_enclosure: false)
490
- apply_hpxml_modification_ashrae_140(hpxml)
491
- else
492
- hpxml_path = File.absolute_path(File.join(tests_dir, hpxml_file))
493
- hpxml = HPXML.new(hpxml_path: hpxml_path, collapse_enclosure: false)
494
- apply_hpxml_modification(hpxml_file, hpxml)
495
- end
74
+ if not success
75
+ puts "\nError: Did not successfully generate #{hpxml_file}."
76
+ exit!
77
+ end
496
78
 
497
- hpxml_doc = hpxml.to_oga()
79
+ hpxml = HPXML.new(hpxml_path: hpxml_path)
80
+ if hpxml_path.include? 'ASHRAE_Standard_140'
81
+ apply_hpxml_modification_ashrae_140(hpxml)
82
+ else
83
+ apply_hpxml_modification(File.basename(hpxml_path), hpxml)
84
+ end
85
+ hpxml_doc = hpxml.to_oga()
498
86
 
499
- if ['base-multiple-buildings.xml'].include? hpxml_file
500
- # HPXML class doesn't support multiple buildings, so we'll stitch together manually.
501
- hpxml_element = XMLHelper.get_element(hpxml_doc, '/HPXML')
502
- building_element = XMLHelper.get_element(hpxml_element, 'Building')
503
- for i in 2..3
504
- new_building_element = Marshal.load(Marshal.dump(building_element)) # Deep copy
87
+ if hpxml_path.include? 'base-multiple-buildings.xml'
88
+ # HPXML class doesn't support multiple buildings, so we'll stitch together manually.
89
+ hpxml_element = XMLHelper.get_element(hpxml_doc, '/HPXML')
90
+ building_element = XMLHelper.get_element(hpxml_element, 'Building')
91
+ for i in 2..3
92
+ new_building_element = Marshal.load(Marshal.dump(building_element)) # Deep copy
505
93
 
506
- # Make all IDs unique so the HPXML is valid
507
- new_building_element.each_node do |node|
508
- next unless node.is_a?(Oga::XML::Element)
94
+ # Make all IDs unique so the HPXML is valid
95
+ new_building_element.each_node do |node|
96
+ next unless node.is_a?(Oga::XML::Element)
509
97
 
510
- if not XMLHelper.get_attribute_value(node, 'id').nil?
511
- XMLHelper.add_attribute(node, 'id', "#{XMLHelper.get_attribute_value(node, 'id')}_#{i}")
512
- elsif not XMLHelper.get_attribute_value(node, 'idref').nil?
513
- XMLHelper.add_attribute(node, 'idref', "#{XMLHelper.get_attribute_value(node, 'idref')}_#{i}")
514
- end
98
+ if not XMLHelper.get_attribute_value(node, 'id').nil?
99
+ XMLHelper.add_attribute(node, 'id', "#{XMLHelper.get_attribute_value(node, 'id')}_#{i}")
100
+ elsif not XMLHelper.get_attribute_value(node, 'idref').nil?
101
+ XMLHelper.add_attribute(node, 'idref', "#{XMLHelper.get_attribute_value(node, 'idref')}_#{i}")
515
102
  end
516
-
517
- hpxml_element.children << new_building_element
518
103
  end
519
- end
520
-
521
- XMLHelper.write_file(hpxml_doc, hpxml_path)
522
104
 
523
- schema_path = File.join(File.dirname(__FILE__), 'HPXMLtoOpenStudio', 'resources', 'hpxml_schema', 'HPXML.xsd')
524
- errors, _ = XMLValidator.validate_against_schema(hpxml_path, schema_path)
525
- if errors.size > 0
526
- puts "\nError: Did not successfully validate #{hpxml_file}."
527
- exit!
105
+ hpxml_element.children << new_building_element
528
106
  end
529
- rescue Exception => e
530
- puts "\n#{e}\n#{e.backtrace.join('\n')}"
531
- puts "\nError: Did not successfully generate #{hpxml_file}."
532
- exit!
533
107
  end
108
+
109
+ XMLHelper.write_file(hpxml_doc, hpxml_path)
110
+
111
+ errors, _warnings = XMLValidator.validate_against_schema(hpxml_path, schema_validator)
112
+ next unless errors.size > 0
113
+
114
+ puts errors.to_s
115
+ puts "\nError: Did not successfully validate #{hpxml_filename}."
116
+ exit!
534
117
  end
535
118
 
536
119
  puts "\n"
537
120
 
538
121
  # Print warnings about extra files
539
- abs_hpxml_files = []
540
- dirs = [nil]
541
- hpxmls_files.keys.each do |hpxml_file|
542
- abs_hpxml_files << File.absolute_path(File.join(tests_dir, hpxml_file))
543
- next unless hpxml_file.include? '/'
544
-
545
- dirs << hpxml_file.split('/')[0] + '/'
546
- end
547
- dirs.uniq.each do |dir|
548
- Dir["#{tests_dir}/#{dir}*.xml"].each do |hpxml|
122
+ dirs.each do |dir|
123
+ Dir["#{workflow_dir}/#{dir}/*.xml"].each do |hpxml|
549
124
  next if abs_hpxml_files.include? File.absolute_path(hpxml)
550
125
 
551
126
  puts "Warning: Extra HPXML file found at #{File.absolute_path(hpxml)}"
@@ -553,2003 +128,9 @@ def create_hpxmls
553
128
  end
554
129
  end
555
130
 
556
- def set_measure_argument_values(hpxml_file, args, sch_args, orig_parent)
557
- if hpxml_file.include? 'ASHRAE_Standard_140'
558
- args['hpxml_path'] = "workflow/tests/#{hpxml_file}"
559
- else
560
- args['hpxml_path'] = "workflow/sample_files/#{hpxml_file}"
561
- end
562
- args['apply_validation'] = false
563
-
564
- if ['base.xml'].include? hpxml_file
565
- args['simulation_control_timestep'] = 60
566
- args['site_iecc_zone'] = '5B'
567
- args['site_state_code'] = 'CO'
568
- args['weather_station_epw_filepath'] = 'USA_CO_Denver.Intl.AP.725650_TMY3.epw'
569
- args['site_type'] = HPXML::SiteTypeSuburban
570
- args['geometry_unit_type'] = HPXML::ResidentialTypeSFD
571
- args['geometry_unit_cfa'] = 2700.0
572
- args['geometry_unit_left_wall_is_adiabatic'] = false
573
- args['geometry_unit_right_wall_is_adiabatic'] = false
574
- args['geometry_unit_front_wall_is_adiabatic'] = false
575
- args['geometry_unit_back_wall_is_adiabatic'] = false
576
- args['geometry_unit_num_floors_above_grade'] = 1
577
- args['geometry_average_ceiling_height'] = 8.0
578
- args['geometry_unit_orientation'] = 180.0
579
- args['geometry_unit_aspect_ratio'] = 1.5
580
- args['geometry_garage_width'] = 0.0
581
- args['geometry_garage_depth'] = 20.0
582
- args['geometry_garage_protrusion'] = 0.0
583
- args['geometry_garage_position'] = 'Right'
584
- args['geometry_foundation_type'] = HPXML::FoundationTypeBasementConditioned
585
- args['geometry_foundation_height'] = 8.0
586
- args['geometry_foundation_height_above_grade'] = 1.0
587
- args['geometry_rim_joist_height'] = 9.25
588
- args['geometry_roof_type'] = 'gable'
589
- args['geometry_roof_pitch'] = '6:12'
590
- args['geometry_attic_type'] = HPXML::AtticTypeUnvented
591
- args['geometry_eaves_depth'] = 0
592
- args['geometry_unit_num_bedrooms'] = 3
593
- args['geometry_unit_num_bathrooms'] = 2
594
- args['geometry_unit_num_occupants'] = 3
595
- args['floor_over_foundation_assembly_r'] = 0
596
- args['floor_over_garage_assembly_r'] = 0
597
- args['floor_type'] = HPXML::FloorTypeWoodFrame
598
- args['foundation_wall_thickness'] = 8.0
599
- args['foundation_wall_insulation_r'] = 8.9
600
- args['foundation_wall_insulation_distance_to_top'] = 0.0
601
- args['foundation_wall_insulation_distance_to_bottom'] = 8.0
602
- args['rim_joist_assembly_r'] = 23.0
603
- args['slab_perimeter_insulation_r'] = 0
604
- args['slab_perimeter_depth'] = 0
605
- args['slab_under_insulation_r'] = 0
606
- args['slab_under_width'] = 0
607
- args['slab_thickness'] = 4.0
608
- args['slab_carpet_fraction'] = 0.0
609
- args['slab_carpet_r'] = 0.0
610
- args['ceiling_assembly_r'] = 39.3
611
- args['roof_material_type'] = HPXML::RoofTypeAsphaltShingles
612
- args['roof_color'] = HPXML::ColorMedium
613
- args['roof_assembly_r'] = 2.3
614
- args['roof_radiant_barrier'] = false
615
- args['roof_radiant_barrier_grade'] = 1
616
- args['neighbor_front_distance'] = 0
617
- args['neighbor_back_distance'] = 0
618
- args['neighbor_left_distance'] = 0
619
- args['neighbor_right_distance'] = 0
620
- args['wall_type'] = HPXML::WallTypeWoodStud
621
- args['wall_siding_type'] = HPXML::SidingTypeWood
622
- args['wall_color'] = HPXML::ColorMedium
623
- args['wall_assembly_r'] = 23
624
- args['window_front_wwr'] = 0
625
- args['window_back_wwr'] = 0
626
- args['window_left_wwr'] = 0
627
- args['window_right_wwr'] = 0
628
- args['window_area_front'] = 108.0
629
- args['window_area_back'] = 108.0
630
- args['window_area_left'] = 72.0
631
- args['window_area_right'] = 72.0
632
- args['window_aspect_ratio'] = 1.333
633
- args['window_fraction_operable'] = 0.67
634
- args['window_ufactor'] = 0.33
635
- args['window_shgc'] = 0.45
636
- args['window_interior_shading_winter'] = 0.85
637
- args['window_interior_shading_summer'] = 0.7
638
- args['overhangs_front_depth'] = 0
639
- args['overhangs_back_depth'] = 0
640
- args['overhangs_left_depth'] = 0
641
- args['overhangs_right_depth'] = 0
642
- args['overhangs_front_distance_to_top_of_window'] = 0
643
- args['overhangs_back_distance_to_top_of_window'] = 0
644
- args['overhangs_left_distance_to_top_of_window'] = 0
645
- args['overhangs_right_distance_to_top_of_window'] = 0
646
- args['overhangs_front_distance_to_bottom_of_window'] = 0
647
- args['overhangs_back_distance_to_bottom_of_window'] = 0
648
- args['overhangs_left_distance_to_bottom_of_window'] = 0
649
- args['overhangs_right_distance_to_bottom_of_window'] = 0
650
- args['skylight_area_front'] = 0
651
- args['skylight_area_back'] = 0
652
- args['skylight_area_left'] = 0
653
- args['skylight_area_right'] = 0
654
- args['skylight_ufactor'] = 0.33
655
- args['skylight_shgc'] = 0.45
656
- args['door_area'] = 40.0
657
- args['door_rvalue'] = 4.4
658
- args['air_leakage_units'] = HPXML::UnitsACH
659
- args['air_leakage_house_pressure'] = 50
660
- args['air_leakage_value'] = 3
661
- args['heating_system_type'] = HPXML::HVACTypeFurnace
662
- args['heating_system_fuel'] = HPXML::FuelTypeNaturalGas
663
- args['heating_system_heating_efficiency'] = 0.92
664
- args['heating_system_heating_capacity'] = 36000.0
665
- args['heating_system_fraction_heat_load_served'] = 1
666
- args['cooling_system_type'] = HPXML::HVACTypeCentralAirConditioner
667
- args['cooling_system_cooling_efficiency_type'] = HPXML::UnitsSEER
668
- args['cooling_system_cooling_efficiency'] = 13.0
669
- args['cooling_system_cooling_compressor_type'] = HPXML::HVACCompressorTypeSingleStage
670
- args['cooling_system_cooling_sensible_heat_fraction'] = 0.73
671
- args['cooling_system_cooling_capacity'] = 24000.0
672
- args['cooling_system_fraction_cool_load_served'] = 1
673
- args['cooling_system_is_ducted'] = false
674
- args['heat_pump_type'] = 'none'
675
- args['heat_pump_heating_efficiency_type'] = HPXML::UnitsHSPF
676
- args['heat_pump_heating_efficiency'] = 7.7
677
- args['heat_pump_cooling_efficiency_type'] = HPXML::UnitsSEER
678
- args['heat_pump_cooling_efficiency'] = 13.0
679
- args['heat_pump_cooling_compressor_type'] = HPXML::HVACCompressorTypeSingleStage
680
- args['heat_pump_cooling_sensible_heat_fraction'] = 0.73
681
- args['heat_pump_heating_capacity'] = 36000.0
682
- args['heat_pump_cooling_capacity'] = 36000.0
683
- args['heat_pump_fraction_heat_load_served'] = 1
684
- args['heat_pump_fraction_cool_load_served'] = 1
685
- args['heat_pump_backup_type'] = 'none'
686
- args['heat_pump_backup_fuel'] = HPXML::FuelTypeElectricity
687
- args['heat_pump_backup_heating_efficiency'] = 1
688
- args['heat_pump_backup_heating_capacity'] = 36000.0
689
- args['hvac_control_heating_weekday_setpoint'] = 68
690
- args['hvac_control_heating_weekend_setpoint'] = 68
691
- args['hvac_control_cooling_weekday_setpoint'] = 78
692
- args['hvac_control_cooling_weekend_setpoint'] = 78
693
- args['ducts_leakage_units'] = HPXML::UnitsCFM25
694
- args['ducts_supply_leakage_to_outside_value'] = 75.0
695
- args['ducts_return_leakage_to_outside_value'] = 25.0
696
- args['ducts_supply_insulation_r'] = 4.0
697
- args['ducts_return_insulation_r'] = 0.0
698
- args['ducts_supply_location'] = HPXML::LocationAtticUnvented
699
- args['ducts_return_location'] = HPXML::LocationAtticUnvented
700
- args['ducts_supply_surface_area'] = 150.0
701
- args['ducts_return_surface_area'] = 50.0
702
- args['heating_system_2_type'] = 'none'
703
- args['heating_system_2_fuel'] = HPXML::FuelTypeElectricity
704
- args['heating_system_2_heating_efficiency'] = 1.0
705
- args['heating_system_2_fraction_heat_load_served'] = 0.25
706
- args['mech_vent_fan_type'] = 'none'
707
- args['mech_vent_flow_rate'] = 110
708
- args['mech_vent_hours_in_operation'] = 24
709
- args['mech_vent_recovery_efficiency_type'] = 'Unadjusted'
710
- args['mech_vent_total_recovery_efficiency'] = 0.48
711
- args['mech_vent_sensible_recovery_efficiency'] = 0.72
712
- args['mech_vent_fan_power'] = 30
713
- args['mech_vent_num_units_served'] = 1
714
- args['mech_vent_2_fan_type'] = 'none'
715
- args['mech_vent_2_flow_rate'] = 110
716
- args['mech_vent_2_hours_in_operation'] = 24
717
- args['mech_vent_2_recovery_efficiency_type'] = 'Unadjusted'
718
- args['mech_vent_2_total_recovery_efficiency'] = 0.48
719
- args['mech_vent_2_sensible_recovery_efficiency'] = 0.72
720
- args['mech_vent_2_fan_power'] = 30
721
- args['kitchen_fans_quantity'] = 0
722
- args['bathroom_fans_quantity'] = 0
723
- args['whole_house_fan_present'] = false
724
- args['water_heater_type'] = HPXML::WaterHeaterTypeStorage
725
- args['water_heater_fuel_type'] = HPXML::FuelTypeElectricity
726
- args['water_heater_location'] = HPXML::LocationLivingSpace
727
- args['water_heater_tank_volume'] = 40
728
- args['water_heater_efficiency_type'] = 'EnergyFactor'
729
- args['water_heater_efficiency'] = 0.95
730
- args['water_heater_recovery_efficiency'] = 0.76
731
- args['water_heater_heating_capacity'] = 18767
732
- args['water_heater_jacket_rvalue'] = 0
733
- args['water_heater_setpoint_temperature'] = 125
734
- args['water_heater_num_units_served'] = 1
735
- args['hot_water_distribution_system_type'] = HPXML::DHWDistTypeStandard
736
- args['hot_water_distribution_standard_piping_length'] = 50
737
- args['hot_water_distribution_recirc_control_type'] = HPXML::DHWRecirControlTypeNone
738
- args['hot_water_distribution_recirc_piping_length'] = 50
739
- args['hot_water_distribution_recirc_branch_piping_length'] = 50
740
- args['hot_water_distribution_recirc_pump_power'] = 50
741
- args['hot_water_distribution_pipe_r'] = 0.0
742
- args['dwhr_facilities_connected'] = 'none'
743
- args['dwhr_equal_flow'] = true
744
- args['dwhr_efficiency'] = 0.55
745
- args['water_fixtures_shower_low_flow'] = true
746
- args['water_fixtures_sink_low_flow'] = false
747
- args['solar_thermal_system_type'] = 'none'
748
- args['solar_thermal_collector_area'] = 40.0
749
- args['solar_thermal_collector_loop_type'] = HPXML::SolarThermalLoopTypeDirect
750
- args['solar_thermal_collector_type'] = HPXML::SolarThermalTypeEvacuatedTube
751
- args['solar_thermal_collector_azimuth'] = 180
752
- args['solar_thermal_collector_tilt'] = 20
753
- args['solar_thermal_collector_rated_optical_efficiency'] = 0.5
754
- args['solar_thermal_collector_rated_thermal_losses'] = 0.2799
755
- args['solar_thermal_solar_fraction'] = 0
756
- args['pv_system_present'] = false
757
- args['pv_system_array_azimuth'] = 180
758
- args['pv_system_array_tilt'] = 20
759
- args['pv_system_max_power_output'] = 4000
760
- args['pv_system_2_present'] = false
761
- args['pv_system_2_array_azimuth'] = 180
762
- args['pv_system_2_array_tilt'] = 20
763
- args['pv_system_2_max_power_output'] = 4000
764
- args['battery_present'] = false
765
- args['lighting_present'] = true
766
- args['lighting_interior_fraction_cfl'] = 0.4
767
- args['lighting_interior_fraction_lfl'] = 0.1
768
- args['lighting_interior_fraction_led'] = 0.25
769
- args['lighting_exterior_fraction_cfl'] = 0.4
770
- args['lighting_exterior_fraction_lfl'] = 0.1
771
- args['lighting_exterior_fraction_led'] = 0.25
772
- args['lighting_garage_fraction_cfl'] = 0.4
773
- args['lighting_garage_fraction_lfl'] = 0.1
774
- args['lighting_garage_fraction_led'] = 0.25
775
- args['holiday_lighting_present'] = false
776
- args['dehumidifier_type'] = 'none'
777
- args['dehumidifier_efficiency_type'] = 'EnergyFactor'
778
- args['dehumidifier_efficiency'] = 1.8
779
- args['dehumidifier_capacity'] = 40
780
- args['dehumidifier_rh_setpoint'] = 0.5
781
- args['dehumidifier_fraction_dehumidification_load_served'] = 1
782
- args['clothes_washer_present'] = true
783
- args['clothes_washer_location'] = HPXML::LocationLivingSpace
784
- args['clothes_washer_efficiency_type'] = 'IntegratedModifiedEnergyFactor'
785
- args['clothes_washer_efficiency'] = 1.21
786
- args['clothes_washer_rated_annual_kwh'] = 380.0
787
- args['clothes_washer_label_electric_rate'] = 0.12
788
- args['clothes_washer_label_gas_rate'] = 1.09
789
- args['clothes_washer_label_annual_gas_cost'] = 27.0
790
- args['clothes_washer_label_usage'] = 6.0
791
- args['clothes_washer_capacity'] = 3.2
792
- args['clothes_dryer_present'] = true
793
- args['clothes_dryer_location'] = HPXML::LocationLivingSpace
794
- args['clothes_dryer_fuel_type'] = HPXML::FuelTypeElectricity
795
- args['clothes_dryer_efficiency_type'] = 'CombinedEnergyFactor'
796
- args['clothes_dryer_efficiency'] = 3.73
797
- args['clothes_dryer_vented_flow_rate'] = 150.0
798
- args['dishwasher_present'] = true
799
- args['dishwasher_location'] = HPXML::LocationLivingSpace
800
- args['dishwasher_efficiency_type'] = 'RatedAnnualkWh'
801
- args['dishwasher_efficiency'] = 307
802
- args['dishwasher_label_electric_rate'] = 0.12
803
- args['dishwasher_label_gas_rate'] = 1.09
804
- args['dishwasher_label_annual_gas_cost'] = 22.32
805
- args['dishwasher_label_usage'] = 4.0
806
- args['dishwasher_place_setting_capacity'] = 12
807
- args['refrigerator_present'] = true
808
- args['refrigerator_location'] = HPXML::LocationLivingSpace
809
- args['refrigerator_rated_annual_kwh'] = 650.0
810
- args['extra_refrigerator_present'] = false
811
- args['freezer_present'] = false
812
- args['cooking_range_oven_present'] = true
813
- args['cooking_range_oven_location'] = HPXML::LocationLivingSpace
814
- args['cooking_range_oven_fuel_type'] = HPXML::FuelTypeElectricity
815
- args['cooking_range_oven_is_induction'] = false
816
- args['cooking_range_oven_is_convection'] = false
817
- args['ceiling_fan_present'] = false
818
- args['misc_plug_loads_television_present'] = true
819
- args['misc_plug_loads_television_annual_kwh'] = 620.0
820
- args['misc_plug_loads_other_annual_kwh'] = 2457.0
821
- args['misc_plug_loads_other_frac_sensible'] = 0.855
822
- args['misc_plug_loads_other_frac_latent'] = 0.045
823
- args['misc_plug_loads_well_pump_present'] = false
824
- args['misc_plug_loads_vehicle_present'] = false
825
- args['misc_fuel_loads_grill_present'] = false
826
- args['misc_fuel_loads_grill_fuel_type'] = HPXML::FuelTypeNaturalGas
827
- args['misc_fuel_loads_lighting_present'] = false
828
- args['misc_fuel_loads_lighting_fuel_type'] = HPXML::FuelTypeNaturalGas
829
- args['misc_fuel_loads_fireplace_present'] = false
830
- args['misc_fuel_loads_fireplace_fuel_type'] = HPXML::FuelTypeNaturalGas
831
- args['pool_present'] = false
832
- args['pool_heater_type'] = HPXML::HeaterTypeElectricResistance
833
- args['hot_tub_present'] = false
834
- args['hot_tub_heater_type'] = HPXML::HeaterTypeElectricResistance
835
- args['utility_bill_scenario_names'] = 'Bills'
836
- elsif ['ASHRAE_Standard_140/L100AC.xml'].include? hpxml_file
837
- args['weather_station_epw_filepath'] = 'USA_CO_Colorado.Springs-Peterson.Field.724660_TMY3.epw'
838
- args['geometry_unit_type'] = HPXML::ResidentialTypeSFD
839
- args['geometry_unit_cfa'] = 1539.0
840
- args['geometry_unit_left_wall_is_adiabatic'] = false
841
- args['geometry_unit_right_wall_is_adiabatic'] = false
842
- args['geometry_unit_front_wall_is_adiabatic'] = false
843
- args['geometry_unit_back_wall_is_adiabatic'] = false
844
- args['geometry_unit_num_floors_above_grade'] = 1
845
- args['geometry_average_ceiling_height'] = 8.0
846
- args['geometry_unit_orientation'] = 180.0
847
- args['geometry_unit_aspect_ratio'] = 57.0 / 27.0
848
- args['geometry_garage_width'] = 0
849
- args['geometry_garage_depth'] = 0
850
- args['geometry_garage_protrusion'] = 0
851
- args['geometry_garage_position'] = 'Right'
852
- args['geometry_foundation_type'] = HPXML::FoundationTypeAmbient
853
- args['geometry_foundation_height'] = 7.25
854
- args['geometry_foundation_height_above_grade'] = 0.667
855
- args['geometry_rim_joist_height'] = 9.0
856
- args['geometry_roof_type'] = 'gable'
857
- args['geometry_roof_pitch'] = '4:12'
858
- args['geometry_attic_type'] = HPXML::AtticTypeVented
859
- args['geometry_eaves_depth'] = 0
860
- args['geometry_unit_num_bedrooms'] = 3
861
- args['geometry_unit_num_occupants'] = 0
862
- args['floor_over_foundation_assembly_r'] = 14.15
863
- args['floor_over_garage_assembly_r'] = 0
864
- args['floor_type'] = HPXML::FloorTypeWoodFrame
865
- args['foundation_wall_thickness'] = 6.0
866
- args['foundation_wall_insulation_r'] = 0
867
- args['foundation_wall_insulation_distance_to_top'] = 0
868
- args['foundation_wall_insulation_distance_to_bottom'] = 0
869
- args['rim_joist_assembly_r'] = 5.01
870
- args['slab_perimeter_insulation_r'] = 0
871
- args['slab_perimeter_depth'] = 0
872
- args['slab_under_insulation_r'] = 0
873
- args['slab_under_width'] = 0
874
- args['slab_thickness'] = 4.0
875
- args['slab_carpet_fraction'] = 0
876
- args['slab_carpet_r'] = 0
877
- args['ceiling_assembly_r'] = 18.45
878
- args['roof_material_type'] = HPXML::RoofTypeAsphaltShingles
879
- args['roof_color'] = HPXML::ColorMedium
880
- args['roof_assembly_r'] = 1.99
881
- args['roof_radiant_barrier'] = false
882
- args['roof_radiant_barrier_grade'] = 1
883
- args['neighbor_front_distance'] = 0
884
- args['neighbor_back_distance'] = 0
885
- args['neighbor_left_distance'] = 0
886
- args['neighbor_right_distance'] = 0
887
- args['wall_type'] = HPXML::WallTypeWoodStud
888
- args['wall_siding_type'] = HPXML::SidingTypeWood
889
- args['wall_color'] = HPXML::ColorMedium
890
- args['wall_assembly_r'] = 11.76
891
- args['window_front_wwr'] = 0
892
- args['window_back_wwr'] = 0
893
- args['window_left_wwr'] = 0
894
- args['window_right_wwr'] = 0
895
- args['window_area_front'] = 90
896
- args['window_area_back'] = 90
897
- args['window_area_left'] = 45
898
- args['window_area_right'] = 45
899
- args['window_aspect_ratio'] = 5.0 / 3.0
900
- args['window_fraction_operable'] = 0
901
- args['window_ufactor'] = 1.039
902
- args['window_shgc'] = 0.67
903
- args['window_interior_shading_winter'] = 1
904
- args['window_interior_shading_summer'] = 1
905
- args['overhangs_front_depth'] = 0
906
- args['overhangs_back_depth'] = 0
907
- args['overhangs_left_depth'] = 0
908
- args['overhangs_right_depth'] = 0
909
- args['overhangs_front_distance_to_top_of_window'] = 0
910
- args['overhangs_back_distance_to_top_of_window'] = 0
911
- args['overhangs_left_distance_to_top_of_window'] = 0
912
- args['overhangs_right_distance_to_top_of_window'] = 0
913
- args['overhangs_front_distance_to_bottom_of_window'] = 0
914
- args['overhangs_back_distance_to_bottom_of_window'] = 0
915
- args['overhangs_left_distance_to_bottom_of_window'] = 0
916
- args['overhangs_right_distance_to_bottom_of_window'] = 0
917
- args['skylight_area_front'] = 0
918
- args['skylight_area_back'] = 0
919
- args['skylight_area_left'] = 0
920
- args['skylight_area_right'] = 0
921
- args['skylight_ufactor'] = 0
922
- args['skylight_shgc'] = 0
923
- args['door_area'] = 40.0
924
- args['door_rvalue'] = 3.04
925
- args['air_leakage_units'] = HPXML::UnitsACHNatural
926
- args['air_leakage_house_pressure'] = 50
927
- args['air_leakage_value'] = 0.67
928
- args['heating_system_type'] = 'none'
929
- args['heating_system_fuel'] = HPXML::FuelTypeNaturalGas
930
- args['heating_system_heating_efficiency'] = 0
931
- args['heating_system_fraction_heat_load_served'] = 0
932
- args['cooling_system_type'] = 'none'
933
- args['cooling_system_cooling_efficiency_type'] = HPXML::UnitsSEER
934
- args['cooling_system_cooling_efficiency'] = 0
935
- args['cooling_system_cooling_compressor_type'] = HPXML::HVACCompressorTypeSingleStage
936
- args['cooling_system_cooling_sensible_heat_fraction'] = 0
937
- args['cooling_system_fraction_cool_load_served'] = 0
938
- args['cooling_system_is_ducted'] = false
939
- args['heat_pump_type'] = 'none'
940
- args['heat_pump_heating_efficiency_type'] = HPXML::UnitsHSPF
941
- args['heat_pump_heating_efficiency'] = 0
942
- args['heat_pump_cooling_efficiency_type'] = HPXML::UnitsSEER
943
- args['heat_pump_cooling_efficiency'] = 0
944
- args['heat_pump_cooling_compressor_type'] = HPXML::HVACCompressorTypeSingleStage
945
- args['heat_pump_cooling_sensible_heat_fraction'] = 0
946
- args['heat_pump_fraction_heat_load_served'] = 0
947
- args['heat_pump_fraction_cool_load_served'] = 0
948
- args['heat_pump_backup_type'] = 'none'
949
- args['heat_pump_backup_fuel'] = HPXML::FuelTypeElectricity
950
- args['heat_pump_backup_heating_efficiency'] = 0
951
- args['hvac_control_heating_weekday_setpoint'] = 68
952
- args['hvac_control_heating_weekend_setpoint'] = 68
953
- args['hvac_control_cooling_weekday_setpoint'] = 78
954
- args['hvac_control_cooling_weekend_setpoint'] = 78
955
- args['ducts_leakage_units'] = HPXML::UnitsCFM25
956
- args['ducts_supply_leakage_to_outside_value'] = 0
957
- args['ducts_return_leakage_to_outside_value'] = 0
958
- args['ducts_supply_insulation_r'] = 0
959
- args['ducts_return_insulation_r'] = 0
960
- args['ducts_supply_location'] = HPXML::LocationLivingSpace
961
- args['ducts_return_location'] = HPXML::LocationLivingSpace
962
- args['ducts_supply_surface_area'] = 0
963
- args['ducts_return_surface_area'] = 0
964
- args['heating_system_2_type'] = 'none'
965
- args['heating_system_2_fuel'] = HPXML::FuelTypeElectricity
966
- args['heating_system_2_heating_efficiency'] = 0
967
- args['heating_system_2_fraction_heat_load_served'] = 0
968
- args['mech_vent_fan_type'] = 'none'
969
- args['mech_vent_flow_rate'] = 0
970
- args['mech_vent_hours_in_operation'] = 0
971
- args['mech_vent_recovery_efficiency_type'] = 'Unadjusted'
972
- args['mech_vent_total_recovery_efficiency'] = 0
973
- args['mech_vent_sensible_recovery_efficiency'] = 0
974
- args['mech_vent_fan_power'] = 0
975
- args['mech_vent_num_units_served'] = 0
976
- args['mech_vent_2_fan_type'] = 'none'
977
- args['mech_vent_2_flow_rate'] = 0
978
- args['mech_vent_2_hours_in_operation'] = 0
979
- args['mech_vent_2_recovery_efficiency_type'] = 'Unadjusted'
980
- args['mech_vent_2_total_recovery_efficiency'] = 0
981
- args['mech_vent_2_sensible_recovery_efficiency'] = 0
982
- args['mech_vent_2_fan_power'] = 0
983
- args['kitchen_fans_quantity'] = 0
984
- args['bathroom_fans_quantity'] = 0
985
- args['whole_house_fan_present'] = false
986
- args['water_heater_type'] = 'none'
987
- args['water_heater_fuel_type'] = HPXML::FuelTypeElectricity
988
- args['water_heater_location'] = HPXML::LocationLivingSpace
989
- args['water_heater_tank_volume'] = 0
990
- args['water_heater_efficiency_type'] = 'EnergyFactor'
991
- args['water_heater_efficiency'] = 0
992
- args['water_heater_recovery_efficiency'] = 0
993
- args['water_heater_jacket_rvalue'] = 0
994
- args['water_heater_setpoint_temperature'] = 0
995
- args['water_heater_num_units_served'] = 0
996
- args['hot_water_distribution_system_type'] = HPXML::DHWDistTypeStandard
997
- args['hot_water_distribution_standard_piping_length'] = 0
998
- args['hot_water_distribution_recirc_control_type'] = HPXML::DHWRecirControlTypeNone
999
- args['hot_water_distribution_recirc_piping_length'] = 0
1000
- args['hot_water_distribution_recirc_branch_piping_length'] = 0
1001
- args['hot_water_distribution_recirc_pump_power'] = 0
1002
- args['hot_water_distribution_pipe_r'] = 0
1003
- args['dwhr_facilities_connected'] = 'none'
1004
- args['dwhr_equal_flow'] = true
1005
- args['dwhr_efficiency'] = 0
1006
- args['water_fixtures_shower_low_flow'] = false
1007
- args['water_fixtures_sink_low_flow'] = false
1008
- args['water_fixtures_usage_multiplier'] = 0
1009
- args['solar_thermal_system_type'] = 'none'
1010
- args['solar_thermal_collector_area'] = 0
1011
- args['solar_thermal_collector_loop_type'] = HPXML::SolarThermalLoopTypeDirect
1012
- args['solar_thermal_collector_type'] = HPXML::SolarThermalTypeEvacuatedTube
1013
- args['solar_thermal_collector_azimuth'] = 0
1014
- args['solar_thermal_collector_tilt'] = 0
1015
- args['solar_thermal_collector_rated_optical_efficiency'] = 0
1016
- args['solar_thermal_collector_rated_thermal_losses'] = 0
1017
- args['solar_thermal_solar_fraction'] = 0
1018
- args['pv_system_present'] = false
1019
- args['pv_system_array_azimuth'] = 0
1020
- args['pv_system_array_tilt'] = 0
1021
- args['pv_system_max_power_output'] = 0
1022
- args['pv_system_2_present'] = false
1023
- args['pv_system_2_array_azimuth'] = 0
1024
- args['pv_system_2_array_tilt'] = 0
1025
- args['pv_system_2_max_power_output'] = 0
1026
- args['battery_present'] = false
1027
- args['lighting_present'] = false
1028
- args['lighting_interior_fraction_cfl'] = 0
1029
- args['lighting_interior_fraction_lfl'] = 0
1030
- args['lighting_interior_fraction_led'] = 0
1031
- args['lighting_interior_usage_multiplier'] = 0
1032
- args['lighting_exterior_fraction_cfl'] = 0
1033
- args['lighting_exterior_fraction_lfl'] = 0
1034
- args['lighting_exterior_fraction_led'] = 0
1035
- args['lighting_exterior_usage_multiplier'] = 0
1036
- args['lighting_garage_fraction_cfl'] = 0
1037
- args['lighting_garage_fraction_lfl'] = 0
1038
- args['lighting_garage_fraction_led'] = 0
1039
- args['lighting_garage_usage_multiplier'] = 0
1040
- args['holiday_lighting_present'] = false
1041
- args['dehumidifier_type'] = 'none'
1042
- args['dehumidifier_efficiency_type'] = 'EnergyFactor'
1043
- args['dehumidifier_efficiency'] = 0
1044
- args['dehumidifier_capacity'] = 0
1045
- args['dehumidifier_rh_setpoint'] = 0
1046
- args['dehumidifier_fraction_dehumidification_load_served'] = 0
1047
- args['clothes_washer_present'] = false
1048
- args['clothes_washer_efficiency_type'] = 'IntegratedModifiedEnergyFactor'
1049
- args['clothes_dryer_present'] = false
1050
- args['clothes_dryer_fuel_type'] = HPXML::FuelTypeElectricity
1051
- args['clothes_dryer_efficiency_type'] = 'CombinedEnergyFactor'
1052
- args['dishwasher_present'] = false
1053
- args['dishwasher_efficiency_type'] = 'RatedAnnualkWh'
1054
- args['refrigerator_present'] = false
1055
- args['extra_refrigerator_present'] = false
1056
- args['freezer_present'] = false
1057
- args['cooking_range_oven_present'] = false
1058
- args['cooking_range_oven_fuel_type'] = HPXML::FuelTypeElectricity
1059
- args['ceiling_fan_present'] = false
1060
- args['misc_plug_loads_television_present'] = false
1061
- args['misc_plug_loads_other_annual_kwh'] = 7302.0
1062
- args['misc_plug_loads_other_frac_sensible'] = 0.822
1063
- args['misc_plug_loads_other_frac_latent'] = 0.178
1064
- args['misc_plug_loads_well_pump_present'] = false
1065
- args['misc_plug_loads_vehicle_present'] = false
1066
- args['misc_fuel_loads_grill_present'] = false
1067
- args['misc_fuel_loads_grill_fuel_type'] = HPXML::FuelTypeNaturalGas
1068
- args['misc_fuel_loads_lighting_present'] = false
1069
- args['misc_fuel_loads_lighting_fuel_type'] = HPXML::FuelTypeNaturalGas
1070
- args['misc_fuel_loads_fireplace_present'] = false
1071
- args['misc_fuel_loads_fireplace_fuel_type'] = HPXML::FuelTypeNaturalGas
1072
- args['pool_present'] = false
1073
- args['pool_heater_type'] = HPXML::HeaterTypeElectricResistance
1074
- args['hot_tub_present'] = false
1075
- args['hot_tub_heater_type'] = HPXML::HeaterTypeElectricResistance
1076
- end
1077
-
1078
- # ASHRAE 140
1079
- if ['ASHRAE_Standard_140/L100AL.xml'].include? hpxml_file
1080
- args['weather_station_epw_filepath'] = 'USA_NV_Las.Vegas-McCarran.Intl.AP.723860_TMY3.epw'
1081
- elsif ['ASHRAE_Standard_140/L110AC.xml',
1082
- 'ASHRAE_Standard_140/L110AL.xml'].include? hpxml_file
1083
- args['air_leakage_value'] = 1.5
1084
- elsif ['ASHRAE_Standard_140/L120AC.xml',
1085
- 'ASHRAE_Standard_140/L120AL.xml'].include? hpxml_file
1086
- args['wall_assembly_r'] = 23.58
1087
- args['ceiling_assembly_r'] = 57.49
1088
- elsif ['ASHRAE_Standard_140/L130AC.xml',
1089
- 'ASHRAE_Standard_140/L130AL.xml'].include? hpxml_file
1090
- args['window_ufactor'] = 0.3
1091
- args['window_shgc'] = 0.335
1092
- elsif ['ASHRAE_Standard_140/L140AC.xml',
1093
- 'ASHRAE_Standard_140/L140AL.xml'].include? hpxml_file
1094
- args['window_area_front'] = 0.0
1095
- args['window_area_back'] = 0.0
1096
- args['window_area_left'] = 0.0
1097
- args['window_area_right'] = 0.0
1098
- elsif ['ASHRAE_Standard_140/L150AC.xml',
1099
- 'ASHRAE_Standard_140/L150AL.xml'].include? hpxml_file
1100
- args['window_area_front'] = 270.0
1101
- args['window_area_back'] = 0.0
1102
- args['window_area_left'] = 0.0
1103
- args['window_area_right'] = 0.0
1104
- args['window_aspect_ratio'] = 5.0 / 1.5
1105
- elsif ['ASHRAE_Standard_140/L155AC.xml',
1106
- 'ASHRAE_Standard_140/L155AL.xml'].include? hpxml_file
1107
- args['overhangs_front_depth'] = 2.5
1108
- args['overhangs_front_distance_to_top_of_window'] = 1.0
1109
- args['overhangs_front_distance_to_bottom_of_window'] = 6.0
1110
- elsif ['ASHRAE_Standard_140/L160AC.xml',
1111
- 'ASHRAE_Standard_140/L160AL.xml'].include? hpxml_file
1112
- args['window_area_front'] = 0.0
1113
- args['window_area_back'] = 0.0
1114
- args['window_area_left'] = 135.0
1115
- args['window_area_right'] = 135.0
1116
- args['window_aspect_ratio'] = 5.0 / 1.5
1117
- elsif ['ASHRAE_Standard_140/L170AC.xml',
1118
- 'ASHRAE_Standard_140/L170AL.xml'].include? hpxml_file
1119
- args['misc_plug_loads_other_annual_kwh'] = 0.0
1120
- elsif ['ASHRAE_Standard_140/L200AC.xml',
1121
- 'ASHRAE_Standard_140/L200AL.xml'].include? hpxml_file
1122
- args['air_leakage_value'] = 1.5
1123
- args['wall_assembly_r'] = 4.84
1124
- args['ceiling_assembly_r'] = 11.75
1125
- args['floor_over_foundation_assembly_r'] = 4.24
1126
- elsif ['ASHRAE_Standard_140/L202AC.xml',
1127
- 'ASHRAE_Standard_140/L202AL.xml'].include? hpxml_file
1128
- args['wall_color'] = HPXML::ColorReflective
1129
- args['roof_color'] = HPXML::ColorReflective
1130
- elsif ['ASHRAE_Standard_140/L302XC.xml'].include? hpxml_file
1131
- args['geometry_foundation_type'] = HPXML::FoundationTypeSlab
1132
- args['slab_carpet_fraction'] = 1.0
1133
- args['slab_carpet_r'] = 2.08
1134
- elsif ['ASHRAE_Standard_140/L304XC.xml'].include? hpxml_file
1135
- args['slab_perimeter_insulation_r'] = 5.4
1136
- args['slab_perimeter_depth'] = 2.5
1137
- elsif ['ASHRAE_Standard_140/L322XC.xml'].include? hpxml_file
1138
- args['geometry_foundation_type'] = HPXML::FoundationTypeBasementConditioned
1139
- args['geometry_unit_cfa'] = 3078
1140
- args['air_leakage_value'] = 0.335
1141
- elsif ['ASHRAE_Standard_140/L324XC.xml'].include? hpxml_file
1142
- args['rim_joist_assembly_r'] = 13.14
1143
- args['foundation_wall_insulation_r'] = 10.2
1144
- args['foundation_wall_insulation_distance_to_bottom'] = 7.25
1145
- args['foundation_wall_insulation_location'] = 'interior'
1146
- end
1147
-
1148
- # Appliances
1149
- if ['base-appliances-coal.xml'].include? hpxml_file
1150
- args['clothes_dryer_fuel_type'] = HPXML::FuelTypeCoal
1151
- args['clothes_dryer_efficiency'] = 3.3
1152
- args.delete('clothes_dryer_vented_flow_rate')
1153
- args['cooking_range_oven_fuel_type'] = HPXML::FuelTypeCoal
1154
- elsif ['base-appliances-dehumidifier.xml'].include? hpxml_file
1155
- args['dehumidifier_type'] = HPXML::DehumidifierTypePortable
1156
- elsif ['base-appliances-dehumidifier-ief-portable.xml'].include? hpxml_file
1157
- args['dehumidifier_efficiency_type'] = 'IntegratedEnergyFactor'
1158
- args['dehumidifier_efficiency'] = 1.5
1159
- elsif ['base-appliances-dehumidifier-ief-whole-home.xml'].include? hpxml_file
1160
- args['dehumidifier_type'] = HPXML::DehumidifierTypeWholeHome
1161
- elsif ['base-appliances-gas.xml'].include? hpxml_file
1162
- args['clothes_dryer_fuel_type'] = HPXML::FuelTypeNaturalGas
1163
- args['clothes_dryer_efficiency'] = 3.3
1164
- args.delete('clothes_dryer_vented_flow_rate')
1165
- args['cooking_range_oven_fuel_type'] = HPXML::FuelTypeNaturalGas
1166
- elsif ['base-appliances-modified.xml'].include? hpxml_file
1167
- args['clothes_washer_efficiency_type'] = 'ModifiedEnergyFactor'
1168
- args['clothes_washer_efficiency'] = 1.65
1169
- args['clothes_dryer_efficiency_type'] = 'EnergyFactor'
1170
- args['clothes_dryer_efficiency'] = 4.29
1171
- args['clothes_dryer_vented_flow_rate'] = 0.0
1172
- args['dishwasher_efficiency_type'] = 'EnergyFactor'
1173
- args['dishwasher_efficiency'] = 0.7
1174
- args['dishwasher_place_setting_capacity'] = 6
1175
- elsif ['base-appliances-none.xml'].include? hpxml_file
1176
- args['clothes_washer_present'] = false
1177
- args['clothes_dryer_present'] = false
1178
- args['dishwasher_present'] = false
1179
- args['refrigerator_present'] = false
1180
- args['cooking_range_oven_present'] = false
1181
- elsif ['base-appliances-oil.xml',
1182
- 'base-appliances-oil-location-miami-fl.xml'].include? hpxml_file
1183
- args['clothes_dryer_fuel_type'] = HPXML::FuelTypeOil
1184
- args['clothes_dryer_efficiency'] = 3.3
1185
- args.delete('clothes_dryer_vented_flow_rate')
1186
- args['cooking_range_oven_fuel_type'] = HPXML::FuelTypeOil
1187
- elsif ['base-appliances-propane.xml',
1188
- 'base-appliances-propane-location-portland-or.xml'].include? hpxml_file
1189
- args['clothes_dryer_fuel_type'] = HPXML::FuelTypePropane
1190
- args['clothes_dryer_efficiency'] = 3.3
1191
- args.delete('clothes_dryer_vented_flow_rate')
1192
- args['cooking_range_oven_fuel_type'] = HPXML::FuelTypePropane
1193
- elsif ['base-appliances-wood.xml'].include? hpxml_file
1194
- args['clothes_dryer_fuel_type'] = HPXML::FuelTypeWoodCord
1195
- args['clothes_dryer_efficiency'] = 3.3
1196
- args.delete('clothes_dryer_vented_flow_rate')
1197
- args['cooking_range_oven_fuel_type'] = HPXML::FuelTypeWoodCord
1198
- end
1199
-
1200
- # Attic/roof
1201
- if ['base-atticroof-flat.xml'].include? hpxml_file
1202
- args['geometry_attic_type'] = HPXML::AtticTypeFlatRoof
1203
- args['roof_assembly_r'] = 25.8
1204
- args['ducts_supply_leakage_to_outside_value'] = 0.0
1205
- args['ducts_return_leakage_to_outside_value'] = 0.0
1206
- args['ducts_supply_location'] = HPXML::LocationBasementConditioned
1207
- args['ducts_return_location'] = HPXML::LocationBasementConditioned
1208
- elsif ['base-atticroof-radiant-barrier.xml'].include? hpxml_file
1209
- args['roof_radiant_barrier'] = true
1210
- args['roof_radiant_barrier_grade'] = 2
1211
- args['ceiling_assembly_r'] = 8.7
1212
- elsif ['base-atticroof-unvented-insulated-roof.xml'].include? hpxml_file
1213
- args['ceiling_assembly_r'] = 2.1
1214
- args['roof_assembly_r'] = 25.8
1215
- elsif ['base-atticroof-vented.xml'].include? hpxml_file
1216
- args['geometry_attic_type'] = HPXML::AtticTypeVented
1217
- args['water_heater_location'] = HPXML::LocationAtticVented
1218
- args['ducts_supply_location'] = HPXML::LocationAtticVented
1219
- args['ducts_return_location'] = HPXML::LocationAtticVented
1220
- elsif ['base-atticroof-conditioned.xml'].include? hpxml_file
1221
- args['geometry_attic_type'] = HPXML::AtticTypeConditioned
1222
- args['geometry_unit_num_floors_above_grade'] = 2
1223
- args['geometry_unit_cfa'] = 3600
1224
- args['ducts_supply_location'] = HPXML::LocationLivingSpace
1225
- args['ducts_return_location'] = HPXML::LocationLivingSpace
1226
- args['ducts_supply_leakage_to_outside_value'] = 50
1227
- args['ducts_return_leakage_to_outside_value'] = 100
1228
- args['water_heater_location'] = HPXML::LocationBasementConditioned
1229
- args['clothes_washer_location'] = HPXML::LocationBasementConditioned
1230
- args['clothes_dryer_location'] = HPXML::LocationBasementConditioned
1231
- args['dishwasher_location'] = HPXML::LocationBasementConditioned
1232
- args['refrigerator_location'] = HPXML::LocationBasementConditioned
1233
- args['cooking_range_oven_location'] = HPXML::LocationBasementConditioned
1234
- args['misc_plug_loads_other_annual_kwh'] = 3276
1235
- elsif ['base-atticroof-cathedral.xml'].include? hpxml_file
1236
- # BuildResHPXML measure doesn't support cathedral ceiling; model as
1237
- # conditioned attic and then update the resulting HPXML later.
1238
- args['geometry_attic_type'] = HPXML::AtticTypeConditioned
1239
- args['geometry_unit_num_floors_above_grade'] = 2
1240
- args['geometry_unit_cfa'] = 4050
1241
- args['window_area_left'] = 120.0
1242
- args['window_area_right'] = 120.0
1243
- args['window_aspect_ratio'] = 5.0 / 2.5
1244
- args['roof_assembly_r'] = 25.8
1245
- args['ducts_supply_location'] = HPXML::LocationLivingSpace
1246
- args['ducts_return_location'] = HPXML::LocationLivingSpace
1247
- args['ducts_supply_leakage_to_outside_value'] = 0
1248
- args['ducts_return_leakage_to_outside_value'] = 0
1249
- end
1250
-
1251
- # Single-Family Attached
1252
- if ['base-bldgtype-single-family-attached.xml'].include? hpxml_file
1253
- args['geometry_unit_type'] = HPXML::ResidentialTypeSFA
1254
- args['geometry_unit_cfa'] = 1800.0
1255
- args['geometry_unit_aspect_ratio'] = 0.6667
1256
- args['geometry_building_num_units'] = 3
1257
- args['geometry_unit_right_wall_is_adiabatic'] = true
1258
- args['window_front_wwr'] = 0.18
1259
- args['window_back_wwr'] = 0.18
1260
- args['window_left_wwr'] = 0.18
1261
- args['window_right_wwr'] = 0.18
1262
- args['window_area_front'] = 0
1263
- args['window_area_back'] = 0
1264
- args['window_area_left'] = 0
1265
- args['window_area_right'] = 0
1266
- args['heating_system_heating_capacity'] = 24000.0
1267
- args['misc_plug_loads_other_annual_kwh'] = 1638.0
1268
- elsif ['base-bldgtype-single-family-attached-2stories.xml'].include? hpxml_file
1269
- args['geometry_unit_num_floors_above_grade'] = 2
1270
- args['geometry_unit_cfa'] = 2700.0
1271
- args['heating_system_heating_capacity'] = 48000.0
1272
- args['cooling_system_cooling_capacity'] = 36000.0
1273
- args['ducts_supply_surface_area'] = 112.5
1274
- args['ducts_return_surface_area'] = 37.5
1275
- args['misc_plug_loads_other_annual_kwh'] = 2457.0
1276
- elsif ['base-bldgtype-single-family-attached-atticroof-cathedral.xml'].include? hpxml_file
1277
- args['geometry_attic_type'] = HPXML::AtticTypeConditioned
1278
- args['ducts_supply_location'] = HPXML::LocationLivingSpace
1279
- args['ducts_return_location'] = HPXML::LocationLivingSpace
1280
- args['ducts_supply_leakage_to_outside_value'] = 0
1281
- args['ducts_return_leakage_to_outside_value'] = 0
1282
- end
1283
-
1284
- # Multifamily
1285
- if ['base-bldgtype-multifamily.xml'].include? hpxml_file
1286
- args['geometry_unit_type'] = HPXML::ResidentialTypeApartment
1287
- args['geometry_unit_cfa'] = 900.0
1288
- args['geometry_unit_aspect_ratio'] = 0.6667
1289
- args['geometry_foundation_type'] = HPXML::FoundationTypeAboveApartment
1290
- args['geometry_attic_type'] = HPXML::AtticTypeBelowApartment
1291
- args['geometry_unit_right_wall_is_adiabatic'] = true
1292
- args['geometry_building_num_units'] = 6
1293
- args['window_front_wwr'] = 0.18
1294
- args['window_back_wwr'] = 0.18
1295
- args['window_left_wwr'] = 0.18
1296
- args['window_right_wwr'] = 0.18
1297
- args['window_area_front'] = 0
1298
- args['window_area_back'] = 0
1299
- args['window_area_left'] = 0
1300
- args['window_area_right'] = 0
1301
- args['heating_system_heating_capacity'] = 12000.0
1302
- args['cooling_system_cooling_capacity'] = 12000.0
1303
- args['ducts_supply_leakage_to_outside_value'] = 0.0
1304
- args['ducts_return_leakage_to_outside_value'] = 0.0
1305
- args['ducts_supply_location'] = HPXML::LocationLivingSpace
1306
- args['ducts_return_location'] = HPXML::LocationLivingSpace
1307
- args['ducts_supply_insulation_r'] = 0.0
1308
- args['door_area'] = 20.0
1309
- args['misc_plug_loads_other_annual_kwh'] = 819.0
1310
- elsif ['base-bldgtype-multifamily-shared-boiler-only-baseboard.xml',
1311
- 'base-bldgtype-multifamily-shared-boiler-chiller-baseboard.xml'].include? hpxml_file
1312
- args['heating_system_type'] = "Shared #{HPXML::HVACTypeBoiler} w/ Baseboard"
1313
- args['cooling_system_type'] = 'none'
1314
- elsif ['base-bldgtype-multifamily-shared-boiler-only-fan-coil.xml',
1315
- 'base-bldgtype-multifamily-shared-boiler-chiller-fan-coil.xml'].include? hpxml_file
1316
- args['heating_system_type'] = "Shared #{HPXML::HVACTypeBoiler} w/ Ductless Fan Coil"
1317
- elsif ['base-bldgtype-multifamily-shared-chiller-only-baseboard.xml'].include? hpxml_file
1318
- args['heating_system_type'] = 'none'
1319
- args['cooling_system_type'] = 'none'
1320
- elsif ['base-bldgtype-multifamily-shared-mechvent.xml'].include? hpxml_file
1321
- args['mech_vent_fan_type'] = HPXML::MechVentTypeSupply
1322
- args['mech_vent_flow_rate'] = 800
1323
- args['mech_vent_fan_power'] = 240
1324
- args['mech_vent_num_units_served'] = 10
1325
- args['mech_vent_shared_frac_recirculation'] = 0.5
1326
- args['mech_vent_2_fan_type'] = HPXML::MechVentTypeExhaust
1327
- args['mech_vent_2_flow_rate'] = 72
1328
- args['mech_vent_2_fan_power'] = 26
1329
- elsif ['base-bldgtype-multifamily-shared-mechvent-preconditioning.xml'].include? hpxml_file
1330
- args['mech_vent_shared_preheating_fuel'] = HPXML::FuelTypeNaturalGas
1331
- args['mech_vent_shared_preheating_efficiency'] = 0.92
1332
- args['mech_vent_shared_preheating_fraction_heat_load_served'] = 0.7
1333
- args['mech_vent_shared_precooling_fuel'] = HPXML::FuelTypeElectricity
1334
- args['mech_vent_shared_precooling_efficiency'] = 4.0
1335
- args['mech_vent_shared_precooling_fraction_cool_load_served'] = 0.8
1336
- elsif ['base-bldgtype-multifamily-shared-pv.xml'].include? hpxml_file
1337
- args['pv_system_present'] = true
1338
- args['pv_system_num_bedrooms_served'] = 6 * 3
1339
- args['pv_system_location'] = HPXML::LocationGround
1340
- args['pv_system_module_type'] = HPXML::PVModuleTypeStandard
1341
- args['pv_system_tracking'] = HPXML::PVTrackingTypeFixed
1342
- args['pv_system_array_azimuth'] = 225
1343
- args['pv_system_array_tilt'] = 30
1344
- args['pv_system_max_power_output'] = 30000
1345
- args['pv_system_inverter_efficiency'] = 0.96
1346
- args['pv_system_system_losses_fraction'] = 0.14
1347
- elsif ['base-bldgtype-multifamily-shared-water-heater.xml'].include? hpxml_file
1348
- args['water_heater_fuel_type'] = HPXML::FuelTypeNaturalGas
1349
- args['water_heater_num_units_served'] = 6
1350
- args['water_heater_tank_volume'] = 120
1351
- args['water_heater_efficiency'] = 0.59
1352
- args['water_heater_recovery_efficiency'] = 0.76
1353
- args['water_heater_heating_capacity'] = 40000
1354
- end
1355
-
1356
- # Occ Calc Type
1357
- if ['base-calctype-operational.xml',
1358
- 'base-calctype-operational-misc-loads-large-uncommon.xml',
1359
- 'base-calctype-operational-misc-loads-large-uncommon2.xml',
1360
- 'base-bldgtype-multifamily-calctype-operational.xml'].include? hpxml_file
1361
- args['occupancy_calculation_type'] = HPXML::OccupancyCalculationTypeOperational
1362
- args['geometry_unit_num_occupants'] = 1
1363
- args.delete('misc_plug_loads_television_annual_kwh')
1364
- args.delete('misc_plug_loads_other_annual_kwh')
1365
- args.delete('pool_pump_annual_kwh')
1366
- args.delete('pool_heater_annual_therm')
1367
- args.delete('pool_heater_annual_kwh')
1368
- args.delete('hot_tub_pump_annual_kwh')
1369
- args.delete('hot_tub_heater_annual_therm')
1370
- args.delete('hot_tub_heater_annual_kwh')
1371
- args.delete('misc_plug_loads_well_pump_annual_kwh')
1372
- args.delete('misc_plug_loads_vehicle_annual_kwh')
1373
- args.delete('misc_fuel_loads_grill_annual_therm')
1374
- args.delete('misc_fuel_loads_lighting_annual_therm')
1375
- args.delete('misc_fuel_loads_fireplace_annual_therm')
1376
- elsif ['base-calctype-operational-misc-defaults.xml'].include? hpxml_file
1377
- args['occupancy_calculation_type'] = HPXML::OccupancyCalculationTypeOperational
1378
- args['geometry_unit_num_occupants'] = 5
1379
- end
1380
-
1381
- # DHW
1382
- if ['base-dhw-combi-tankless.xml'].include? hpxml_file
1383
- args['water_heater_type'] = HPXML::WaterHeaterTypeCombiTankless
1384
- args.delete('water_heater_tank_volume')
1385
- elsif ['base-dhw-combi-tankless-outside.xml',
1386
- 'base-dhw-indirect-outside.xml',
1387
- 'base-dhw-tank-gas-outside.xml',
1388
- 'base-dhw-tank-heat-pump-outside.xml',
1389
- 'base-dhw-tankless-electric-outside.xml'].include? hpxml_file
1390
- args['water_heater_location'] = HPXML::LocationOtherExterior
1391
- elsif ['base-dhw-dwhr.xml'].include? hpxml_file
1392
- args['dwhr_facilities_connected'] = HPXML::DWHRFacilitiesConnectedAll
1393
- elsif ['base-dhw-indirect.xml'].include? hpxml_file
1394
- args['water_heater_type'] = HPXML::WaterHeaterTypeCombiStorage
1395
- args['water_heater_tank_volume'] = 50
1396
- elsif ['base-dhw-indirect-standbyloss.xml'].include? hpxml_file
1397
- args['water_heater_standby_loss'] = 1.0
1398
- elsif ['base-dhw-indirect-with-solar-fraction.xml',
1399
- 'base-dhw-solar-fraction.xml',
1400
- 'base-dhw-tank-heat-pump-with-solar-fraction.xml',
1401
- 'base-dhw-tankless-gas-with-solar-fraction.xml'].include? hpxml_file
1402
- args['solar_thermal_system_type'] = HPXML::SolarThermalSystemType
1403
- args['solar_thermal_solar_fraction'] = 0.65
1404
- elsif ['base-dhw-jacket-electric.xml',
1405
- 'base-dhw-jacket-gas.xml',
1406
- 'base-dhw-jacket-hpwh.xml',
1407
- 'base-dhw-jacket-indirect.xml'].include? hpxml_file
1408
- args['water_heater_jacket_rvalue'] = 10.0
1409
- elsif ['base-dhw-low-flow-fixtures.xml'].include? hpxml_file
1410
- args['water_fixtures_sink_low_flow'] = true
1411
- elsif ['base-dhw-none.xml'].include? hpxml_file
1412
- args['water_heater_type'] = 'none'
1413
- elsif ['base-dhw-recirc-demand.xml'].include? hpxml_file
1414
- args['hot_water_distribution_system_type'] = HPXML::DHWDistTypeRecirc
1415
- args['hot_water_distribution_recirc_control_type'] = HPXML::DHWRecirControlTypeSensor
1416
- args['hot_water_distribution_pipe_r'] = 3.0
1417
- elsif ['base-dhw-recirc-manual.xml'].include? hpxml_file
1418
- args['hot_water_distribution_system_type'] = HPXML::DHWDistTypeRecirc
1419
- args['hot_water_distribution_recirc_control_type'] = HPXML::DHWRecirControlTypeManual
1420
- args['hot_water_distribution_pipe_r'] = 3.0
1421
- elsif ['base-dhw-recirc-nocontrol.xml'].include? hpxml_file
1422
- args['hot_water_distribution_system_type'] = HPXML::DHWDistTypeRecirc
1423
- elsif ['base-dhw-recirc-temperature.xml'].include? hpxml_file
1424
- args['hot_water_distribution_system_type'] = HPXML::DHWDistTypeRecirc
1425
- args['hot_water_distribution_recirc_control_type'] = HPXML::DHWRecirControlTypeTemperature
1426
- elsif ['base-dhw-recirc-timer.xml'].include? hpxml_file
1427
- args['hot_water_distribution_system_type'] = HPXML::DHWDistTypeRecirc
1428
- args['hot_water_distribution_recirc_control_type'] = HPXML::DHWRecirControlTypeTimer
1429
- elsif ['base-dhw-solar-direct-evacuated-tube.xml'].include? hpxml_file
1430
- args['solar_thermal_system_type'] = HPXML::SolarThermalSystemType
1431
- args['solar_thermal_storage_volume'] = 60
1432
- elsif ['base-dhw-solar-indirect-flat-plate.xml'].include? hpxml_file
1433
- args['solar_thermal_system_type'] = HPXML::SolarThermalSystemType
1434
- args['solar_thermal_collector_type'] = HPXML::SolarThermalTypeSingleGlazing
1435
- args['solar_thermal_collector_rated_optical_efficiency'] = 0.77
1436
- args['solar_thermal_collector_rated_thermal_losses'] = 0.793
1437
- args['solar_thermal_storage_volume'] = 60
1438
- args['solar_thermal_collector_loop_type'] = HPXML::SolarThermalLoopTypeIndirect
1439
- elsif ['base-dhw-solar-direct-flat-plate.xml'].include? hpxml_file
1440
- args['solar_thermal_collector_loop_type'] = HPXML::SolarThermalLoopTypeDirect
1441
- elsif ['base-dhw-solar-direct-ics.xml'].include? hpxml_file
1442
- args['solar_thermal_collector_type'] = HPXML::SolarThermalTypeICS
1443
- args['solar_thermal_collector_loop_type'] = HPXML::SolarThermalLoopTypeDirect
1444
- elsif ['base-dhw-solar-thermosyphon-flat-plate.xml'].include? hpxml_file
1445
- args['solar_thermal_collector_loop_type'] = HPXML::SolarThermalLoopTypeThermosyphon
1446
- elsif ['base-dhw-tank-coal.xml'].include? hpxml_file
1447
- args['water_heater_fuel_type'] = HPXML::FuelTypeCoal
1448
- elsif ['base-dhw-tank-elec-uef.xml'].include? hpxml_file
1449
- args['water_heater_tank_volume'] = 30
1450
- args['water_heater_efficiency_type'] = 'UniformEnergyFactor'
1451
- args['water_heater_efficiency'] = 0.93
1452
- args['water_heater_usage_bin'] = HPXML::WaterHeaterUsageBinLow
1453
- args['water_heater_recovery_efficiency'] = 0.98
1454
- args['water_heater_heating_capacity'] = 15354
1455
- elsif ['base-dhw-tank-gas.xml'].include? hpxml_file
1456
- args['water_heater_fuel_type'] = HPXML::FuelTypeNaturalGas
1457
- args['water_heater_tank_volume'] = 50
1458
- args['water_heater_efficiency'] = 0.59
1459
- args['water_heater_heating_capacity'] = 40000
1460
- elsif ['base-dhw-tank-gas-uef.xml'].include? hpxml_file
1461
- args['water_heater_tank_volume'] = 30
1462
- args['water_heater_efficiency_type'] = 'UniformEnergyFactor'
1463
- args['water_heater_usage_bin'] = HPXML::WaterHeaterUsageBinMedium
1464
- args['water_heater_recovery_efficiency'] = 0.75
1465
- args['water_heater_heating_capacity'] = 30000
1466
- elsif ['base-dhw-tank-heat-pump.xml'].include? hpxml_file
1467
- args['water_heater_type'] = HPXML::WaterHeaterTypeHeatPump
1468
- args['water_heater_tank_volume'] = 80
1469
- args['water_heater_efficiency'] = 2.3
1470
- elsif ['base-dhw-tank-heat-pump-uef.xml'].include? hpxml_file
1471
- args['water_heater_tank_volume'] = 50
1472
- args['water_heater_efficiency_type'] = 'UniformEnergyFactor'
1473
- args['water_heater_efficiency'] = 3.75
1474
- args['water_heater_usage_bin'] = HPXML::WaterHeaterUsageBinMedium
1475
- args['water_heater_heating_capacity'] = 18767
1476
- elsif ['base-dhw-tank-heat-pump-with-solar.xml',
1477
- 'base-dhw-tankless-gas-with-solar.xml'].include? hpxml_file
1478
- args['solar_thermal_system_type'] = HPXML::SolarThermalSystemType
1479
- args['solar_thermal_collector_loop_type'] = HPXML::SolarThermalLoopTypeIndirect
1480
- args['solar_thermal_collector_type'] = HPXML::SolarThermalTypeSingleGlazing
1481
- args['solar_thermal_collector_rated_optical_efficiency'] = 0.77
1482
- args['solar_thermal_collector_rated_thermal_losses'] = 0.793
1483
- args['solar_thermal_storage_volume'] = 60
1484
- elsif ['base-dhw-tankless-electric.xml'].include? hpxml_file
1485
- args['water_heater_type'] = HPXML::WaterHeaterTypeTankless
1486
- args.delete('water_heater_tank_volume')
1487
- args['water_heater_efficiency'] = 0.99
1488
- elsif ['base-dhw-tankless-electric-uef.xml'].include? hpxml_file
1489
- args['water_heater_efficiency_type'] = 'UniformEnergyFactor'
1490
- args['water_heater_efficiency'] = 0.98
1491
- elsif ['base-dhw-tankless-gas.xml'].include? hpxml_file
1492
- args['water_heater_type'] = HPXML::WaterHeaterTypeTankless
1493
- args['water_heater_fuel_type'] = HPXML::FuelTypeNaturalGas
1494
- args.delete('water_heater_tank_volume')
1495
- args['water_heater_efficiency'] = 0.82
1496
- elsif ['base-dhw-tankless-gas-uef.xml'].include? hpxml_file
1497
- args['water_heater_efficiency_type'] = 'UniformEnergyFactor'
1498
- args['water_heater_efficiency'] = 0.93
1499
- elsif ['base-dhw-tankless-propane.xml'].include? hpxml_file
1500
- args['water_heater_fuel_type'] = HPXML::FuelTypePropane
1501
- elsif ['base-dhw-tank-oil.xml'].include? hpxml_file
1502
- args['water_heater_fuel_type'] = HPXML::FuelTypeOil
1503
- elsif ['base-dhw-tank-wood.xml'].include? hpxml_file
1504
- args['water_heater_fuel_type'] = HPXML::FuelTypeWoodCord
1505
- elsif ['base-dhw-desuperheater.xml',
1506
- 'base-dhw-desuperheater-2-speed.xml',
1507
- 'base-dhw-desuperheater-var-speed.xml',
1508
- 'base-dhw-desuperheater-hpwh.xml',
1509
- 'base-dhw-desuperheater-gshp.xml'].include? hpxml_file
1510
- args['water_heater_uses_desuperheater'] = true
1511
- elsif ['base-dhw-desuperheater-tankless.xml'].include? hpxml_file
1512
- args['water_heater_uses_desuperheater'] = true
1513
- args['water_heater_type'] = HPXML::WaterHeaterTypeTankless
1514
- args.delete('water_heater_tank_volume')
1515
- args['water_heater_efficiency'] = 0.99
1516
- elsif ['base-dhw-tank-heat-pump-operating-mode-heat-pump-only.xml'].include? hpxml_file
1517
- args['water_heater_operating_mode'] = HPXML::WaterHeaterOperatingModeHeatPumpOnly
1518
- elsif ['base-dhw-tank-model-type-stratified.xml'].include? hpxml_file
1519
- args['water_heater_tank_model_type'] = HPXML::WaterHeaterTankModelTypeStratified
1520
- end
1521
-
1522
- # Enclosure
1523
- if ['base-enclosure-2stories.xml'].include? hpxml_file
1524
- args['geometry_unit_cfa'] = 4050.0
1525
- args['geometry_unit_num_floors_above_grade'] = 2
1526
- args['window_area_front'] = 216.0
1527
- args['window_area_back'] = 216.0
1528
- args['window_area_left'] = 144.0
1529
- args['window_area_right'] = 144.0
1530
- args['heating_system_heating_capacity'] = 48000.0
1531
- args['cooling_system_cooling_capacity'] = 36000.0
1532
- args['ducts_supply_surface_area'] = 112.5
1533
- args['ducts_return_surface_area'] = 37.5
1534
- args['misc_plug_loads_other_annual_kwh'] = 3685.5
1535
- elsif ['base-enclosure-2stories-garage.xml'].include? hpxml_file
1536
- args['geometry_unit_cfa'] = 3250.0
1537
- args['geometry_garage_width'] = 20.0
1538
- args['misc_plug_loads_other_annual_kwh'] = 2957.5
1539
- args['floor_over_garage_assembly_r'] = 39.3
1540
- elsif ['base-enclosure-beds-1.xml'].include? hpxml_file
1541
- args['geometry_unit_num_bedrooms'] = 1
1542
- args['geometry_unit_num_bathrooms'] = 1
1543
- args['geometry_unit_num_occupants'] = 1
1544
- args['misc_plug_loads_television_annual_kwh'] = 482.0
1545
- elsif ['base-enclosure-beds-2.xml'].include? hpxml_file
1546
- args['geometry_unit_num_bedrooms'] = 2
1547
- args['geometry_unit_num_bathrooms'] = 1
1548
- args['geometry_unit_num_occupants'] = 2
1549
- args['misc_plug_loads_television_annual_kwh'] = 551.0
1550
- elsif ['base-enclosure-beds-4.xml'].include? hpxml_file
1551
- args['geometry_unit_num_bedrooms'] = 4
1552
- args['geometry_unit_num_occupants'] = 4
1553
- args['misc_plug_loads_television_annual_kwh'] = 689.0
1554
- elsif ['base-enclosure-beds-5.xml'].include? hpxml_file
1555
- args['geometry_unit_num_bedrooms'] = 5
1556
- args['geometry_unit_num_bathrooms'] = 3
1557
- args['geometry_unit_num_occupants'] = 5
1558
- args['misc_plug_loads_television_annual_kwh'] = 758.0
1559
- elsif ['base-enclosure-garage.xml'].include? hpxml_file
1560
- args['geometry_garage_width'] = 30.0
1561
- args['geometry_garage_protrusion'] = 1.0
1562
- args['window_area_front'] = 12.0
1563
- args['window_aspect_ratio'] = 5.0 / 1.5
1564
- args['ducts_supply_location'] = HPXML::LocationGarage
1565
- args['ducts_return_location'] = HPXML::LocationGarage
1566
- args['water_heater_location'] = HPXML::LocationGarage
1567
- args['clothes_washer_location'] = HPXML::LocationGarage
1568
- args['clothes_dryer_location'] = HPXML::LocationGarage
1569
- args['dishwasher_location'] = HPXML::LocationGarage
1570
- args['refrigerator_location'] = HPXML::LocationGarage
1571
- args['cooking_range_oven_location'] = HPXML::LocationGarage
1572
- elsif ['base-enclosure-infil-ach-house-pressure.xml',
1573
- 'base-enclosure-infil-cfm-house-pressure.xml'].include? hpxml_file
1574
- args['air_leakage_house_pressure'] = 45
1575
- args['air_leakage_value'] *= 0.9338
1576
- elsif ['base-enclosure-infil-cfm50.xml'].include? hpxml_file
1577
- args['air_leakage_units'] = HPXML::UnitsCFM
1578
- args['air_leakage_value'] = 1080
1579
- elsif ['base-enclosure-infil-flue.xml'].include? hpxml_file
1580
- args['geometry_has_flue_or_chimney'] = 'true'
1581
- elsif ['base-enclosure-infil-natural-ach.xml'].include? hpxml_file
1582
- args['air_leakage_units'] = HPXML::UnitsACHNatural
1583
- args['air_leakage_value'] = 0.2
1584
- elsif ['base-enclosure-overhangs.xml'].include? hpxml_file
1585
- args['overhangs_back_depth'] = 2.5
1586
- args['overhangs_back_distance_to_bottom_of_window'] = 4.0
1587
- args['overhangs_left_depth'] = 1.5
1588
- args['overhangs_left_distance_to_top_of_window'] = 2.0
1589
- args['overhangs_left_distance_to_bottom_of_window'] = 7.0
1590
- args['overhangs_right_depth'] = 1.5
1591
- args['overhangs_right_distance_to_top_of_window'] = 2.0
1592
- args['overhangs_right_distance_to_bottom_of_window'] = 6.0
1593
- elsif ['base-enclosure-windows-natural-ventilation-availability.xml'].include? hpxml_file
1594
- args['window_natvent_availability'] = 7
1595
- elsif ['base-enclosure-windows-none.xml'].include? hpxml_file
1596
- args['window_area_front'] = 0
1597
- args['window_area_back'] = 0
1598
- args['window_area_left'] = 0
1599
- args['window_area_right'] = 0
1600
- elsif ['base-enclosure-windows-storms.xml'].include? hpxml_file
1601
- args['window_ufactor'] = 0.6
1602
- args['window_storm_type'] = HPXML::WindowGlassTypeLowE
1603
- elsif ['base-enclosure-skylights.xml'].include? hpxml_file
1604
- args['skylight_area_front'] = 15
1605
- args['skylight_area_back'] = 15
1606
- elsif ['base-enclosure-skylights-storms.xml'].include? hpxml_file
1607
- args['skylight_ufactor'] = 0.6
1608
- args['skylight_storm_type'] = HPXML::WindowGlassTypeClear
1609
- end
1610
-
1611
- # Foundation
1612
- if ['base-foundation-ambient.xml'].include? hpxml_file
1613
- args['geometry_unit_cfa'] = 1350.0
1614
- args['geometry_foundation_type'] = HPXML::FoundationTypeAmbient
1615
- args.delete('geometry_rim_joist_height')
1616
- args['floor_over_foundation_assembly_r'] = 18.7
1617
- args.delete('rim_joist_assembly_r')
1618
- args['misc_plug_loads_other_annual_kwh'] = 1228.5
1619
- elsif ['base-foundation-conditioned-basement-slab-insulation.xml'].include? hpxml_file
1620
- args['slab_under_insulation_r'] = 10
1621
- args['slab_under_width'] = 4
1622
- elsif ['base-foundation-conditioned-basement-wall-insulation.xml'].include? hpxml_file
1623
- args['foundation_wall_type'] = HPXML::FoundationWallTypeConcreteBlockFoamCore
1624
- args['foundation_wall_insulation_r'] = 18.9
1625
- args['foundation_wall_insulation_distance_to_top'] = 1.0
1626
- elsif ['base-foundation-slab.xml'].include? hpxml_file
1627
- args['geometry_unit_cfa'] = 1350.0
1628
- args['geometry_foundation_type'] = HPXML::FoundationTypeSlab
1629
- args['geometry_foundation_height'] = 0.0
1630
- args['geometry_foundation_height_above_grade'] = 0.0
1631
- args.delete('foundation_wall_insulation_distance_to_bottom')
1632
- args['slab_under_insulation_r'] = 5
1633
- args['slab_under_width'] = 999
1634
- args['slab_carpet_fraction'] = 1.0
1635
- args['slab_carpet_r'] = 2.5
1636
- args['ducts_supply_location'] = HPXML::LocationUnderSlab
1637
- args['ducts_return_location'] = HPXML::LocationUnderSlab
1638
- args['misc_plug_loads_other_annual_kwh'] = 1228.5
1639
- elsif ['base-foundation-unconditioned-basement.xml'].include? hpxml_file
1640
- args['geometry_unit_cfa'] = 1350.0
1641
- args['geometry_foundation_type'] = HPXML::FoundationTypeBasementUnconditioned
1642
- args['floor_over_foundation_assembly_r'] = 18.7
1643
- args['foundation_wall_insulation_r'] = 0
1644
- args['foundation_wall_insulation_distance_to_bottom'] = 0.0
1645
- args['rim_joist_assembly_r'] = 4.0
1646
- args['ducts_supply_location'] = HPXML::LocationBasementUnconditioned
1647
- args['ducts_return_location'] = HPXML::LocationBasementUnconditioned
1648
- args['water_heater_location'] = HPXML::LocationBasementUnconditioned
1649
- args['clothes_washer_location'] = HPXML::LocationBasementUnconditioned
1650
- args['clothes_dryer_location'] = HPXML::LocationBasementUnconditioned
1651
- args['dishwasher_location'] = HPXML::LocationBasementUnconditioned
1652
- args['refrigerator_location'] = HPXML::LocationBasementUnconditioned
1653
- args['cooking_range_oven_location'] = HPXML::LocationBasementUnconditioned
1654
- args['misc_plug_loads_other_annual_kwh'] = 1228.5
1655
- elsif ['base-foundation-basement-garage.xml'].include? hpxml_file
1656
- args['misc_plug_loads_other_annual_kwh'] = 1729
1657
- elsif ['base-foundation-unconditioned-basement-above-grade.xml'].include? hpxml_file
1658
- args['geometry_foundation_height_above_grade'] = 4.0
1659
- elsif ['base-foundation-unconditioned-basement-assembly-r.xml'].include? hpxml_file
1660
- args['foundation_wall_assembly_r'] = 10.69
1661
- elsif ['base-foundation-unconditioned-basement-wall-insulation.xml'].include? hpxml_file
1662
- args['floor_over_foundation_assembly_r'] = 2.1
1663
- args['foundation_wall_insulation_r'] = 8.9
1664
- args['foundation_wall_insulation_distance_to_bottom'] = 4.0
1665
- args['rim_joist_assembly_r'] = 23.0
1666
- elsif ['base-foundation-unvented-crawlspace.xml'].include? hpxml_file
1667
- args['geometry_unit_cfa'] = 1350.0
1668
- args['geometry_foundation_type'] = HPXML::FoundationTypeCrawlspaceUnvented
1669
- args['geometry_foundation_height'] = 4.0
1670
- args['slab_thickness'] = 0.0
1671
- args['floor_over_foundation_assembly_r'] = 18.7
1672
- args['foundation_wall_insulation_distance_to_bottom'] = 4.0
1673
- args['ducts_supply_location'] = HPXML::LocationCrawlspaceUnvented
1674
- args['ducts_return_location'] = HPXML::LocationCrawlspaceUnvented
1675
- args['water_heater_location'] = HPXML::LocationCrawlspaceUnvented
1676
- args['misc_plug_loads_other_annual_kwh'] = 1228.5
1677
- elsif ['base-foundation-vented-crawlspace.xml'].include? hpxml_file
1678
- args['geometry_unit_cfa'] = 1350.0
1679
- args['geometry_foundation_type'] = HPXML::FoundationTypeCrawlspaceVented
1680
- args['geometry_foundation_height'] = 4.0
1681
- args['slab_thickness'] = 0.0
1682
- args['floor_over_foundation_assembly_r'] = 18.7
1683
- args['foundation_wall_insulation_distance_to_bottom'] = 4.0
1684
- args['ducts_supply_location'] = HPXML::LocationCrawlspaceVented
1685
- args['ducts_return_location'] = HPXML::LocationCrawlspaceVented
1686
- args['water_heater_location'] = HPXML::LocationCrawlspaceVented
1687
- args['misc_plug_loads_other_annual_kwh'] = 1228.5
1688
- elsif ['base-foundation-conditioned-crawlspace.xml'].include? hpxml_file
1689
- args['geometry_unit_cfa'] = 1350.0
1690
- args['geometry_foundation_type'] = HPXML::FoundationTypeCrawlspaceConditioned
1691
- args['geometry_foundation_height'] = 4.0
1692
- args['floor_over_foundation_assembly_r'] = 18.7
1693
- args['foundation_wall_insulation_distance_to_bottom'] = 4.0
1694
- args['ducts_supply_location'] = HPXML::LocationCrawlspaceConditioned
1695
- args['ducts_return_location'] = HPXML::LocationCrawlspaceConditioned
1696
- args['ducts_supply_leakage_to_outside_value'] = 0.0
1697
- args['ducts_return_leakage_to_outside_value'] = 0.0
1698
- args['water_heater_location'] = HPXML::LocationCrawlspaceConditioned
1699
- args['misc_plug_loads_other_annual_kwh'] = 1228.5
1700
- elsif ['base-foundation-walkout-basement.xml'].include? hpxml_file
1701
- args['geometry_foundation_height_above_grade'] = 5.0
1702
- args['foundation_wall_insulation_distance_to_bottom'] = 4.0
1703
- end
1704
-
1705
- # HVAC
1706
- if ['base-hvac-air-to-air-heat-pump-1-speed.xml'].include? hpxml_file
1707
- args['heating_system_type'] = 'none'
1708
- args['cooling_system_type'] = 'none'
1709
- args['heat_pump_type'] = HPXML::HVACTypeHeatPumpAirToAir
1710
- args['heat_pump_heating_capacity_17_f'] = args['heat_pump_heating_capacity'] * 0.6
1711
- args['heat_pump_backup_type'] = HPXML::HeatPumpBackupTypeIntegrated
1712
- elsif ['base-hvac-air-to-air-heat-pump-1-speed-seer2-hspf2.xml'].include? hpxml_file
1713
- args['heat_pump_cooling_efficiency_type'] = HPXML::UnitsSEER2
1714
- args['heat_pump_cooling_efficiency'] = (args['heat_pump_cooling_efficiency'] * 0.95).round(1)
1715
- args['heat_pump_heating_efficiency_type'] = HPXML::UnitsHSPF2
1716
- args['heat_pump_heating_efficiency'] = (args['heat_pump_heating_efficiency'] * 0.85).round(1)
1717
- elsif ['base-hvac-air-to-air-heat-pump-1-speed-cooling-only.xml'].include? hpxml_file
1718
- args['heat_pump_heating_capacity'] = 0.0
1719
- args['heat_pump_heating_capacity_17_f'] = 0.0
1720
- args['heat_pump_fraction_heat_load_served'] = 0
1721
- args['heat_pump_backup_type'] = 'none'
1722
- elsif ['base-hvac-air-to-air-heat-pump-1-speed-heating-only.xml'].include? hpxml_file
1723
- args['heat_pump_cooling_capacity'] = 0.0
1724
- args['heat_pump_fraction_cool_load_served'] = 0
1725
- elsif ['base-hvac-air-to-air-heat-pump-1-speed-backup-lockout-temperature.xml'].include? hpxml_file
1726
- args['hvac_control_heating_weekday_setpoint'] = '64, 64, 64, 64, 64, 64, 64, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 64, 64'
1727
- args['hvac_control_heating_weekend_setpoint'] = '64, 64, 64, 64, 64, 64, 64, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 64, 64'
1728
- args['heat_pump_backup_heating_lockout_temp'] = 35.0
1729
- elsif ['base-hvac-air-to-air-heat-pump-2-speed.xml'].include? hpxml_file
1730
- args['heating_system_type'] = 'none'
1731
- args['cooling_system_type'] = 'none'
1732
- args['heat_pump_type'] = HPXML::HVACTypeHeatPumpAirToAir
1733
- args['heat_pump_heating_efficiency'] = 9.3
1734
- args['heat_pump_cooling_compressor_type'] = HPXML::HVACCompressorTypeTwoStage
1735
- args['heat_pump_heating_capacity_17_f'] = args['heat_pump_heating_capacity'] * 0.6
1736
- args['heat_pump_cooling_efficiency'] = 18.0
1737
- args['heat_pump_backup_type'] = HPXML::HeatPumpBackupTypeIntegrated
1738
- elsif ['base-hvac-air-to-air-heat-pump-var-speed.xml'].include? hpxml_file
1739
- args['heating_system_type'] = 'none'
1740
- args['cooling_system_type'] = 'none'
1741
- args['heat_pump_type'] = HPXML::HVACTypeHeatPumpAirToAir
1742
- args['heat_pump_heating_efficiency'] = 10.0
1743
- args['heat_pump_cooling_compressor_type'] = HPXML::HVACCompressorTypeVariableSpeed
1744
- args['heat_pump_cooling_sensible_heat_fraction'] = 0.78
1745
- args['heat_pump_heating_capacity_17_f'] = args['heat_pump_heating_capacity'] * 0.6
1746
- args['heat_pump_cooling_efficiency'] = 22.0
1747
- args['heat_pump_backup_type'] = HPXML::HeatPumpBackupTypeIntegrated
1748
- elsif ['base-hvac-air-to-air-heat-pump-var-speed-backup-boiler.xml'].include? hpxml_file
1749
- args['heat_pump_backup_type'] = HPXML::HeatPumpBackupTypeSeparate
1750
- args['heat_pump_heating_capacity'] = 18000.0
1751
- args['heat_pump_cooling_capacity'] = 18000.0
1752
- args['heat_pump_heating_capacity_17_f'] = args['heat_pump_heating_capacity'] * 0.6
1753
- args['heating_system_2_type'] = HPXML::HVACTypeBoiler
1754
- args['heating_system_2_fuel'] = HPXML::FuelTypeNaturalGas
1755
- args['heating_system_2_heating_efficiency'] = 0.8
1756
- args['heating_system_2_heating_capacity'] = 60000.0
1757
- elsif ['base-hvac-air-to-air-heat-pump-var-speed-backup-boiler-switchover-temperature.xml'].include? hpxml_file
1758
- args['heat_pump_backup_heating_switchover_temp'] = 25
1759
- elsif hpxml_file.include? 'autosize'
1760
- args.delete('heating_system_heating_capacity')
1761
- args.delete('heating_system_2_heating_capacity')
1762
- args.delete('cooling_system_cooling_capacity')
1763
- args.delete('heat_pump_heating_capacity')
1764
- args.delete('cooling_system_integrated_heating_system_capacity')
1765
- if hpxml_file.include? 'sizing-methodology-hers'
1766
- args['heat_pump_sizing_methodology'] = HPXML::HeatPumpSizingHERS
1767
- elsif hpxml_file.include? 'sizing-methodology-maxload'
1768
- args['heat_pump_sizing_methodology'] = HPXML::HeatPumpSizingMaxLoad
1769
- elsif hpxml_file.include? 'sizing-methodology-acca'
1770
- args['heat_pump_sizing_methodology'] = HPXML::HeatPumpSizingACCA
1771
- else
1772
- args['heat_pump_sizing_methodology'] = HPXML::HeatPumpSizingHERS
1773
- end
1774
- args.delete('heat_pump_heating_capacity_17_f')
1775
- args.delete('heat_pump_backup_heating_capacity')
1776
- args.delete('heat_pump_cooling_capacity')
1777
- elsif ['base-hvac-boiler-coal-only.xml',
1778
- 'base-hvac-furnace-coal-only.xml'].include? hpxml_file
1779
- args['heating_system_fuel'] = HPXML::FuelTypeCoal
1780
- elsif ['base-hvac-boiler-elec-only.xml'].include? hpxml_file
1781
- args['heating_system_type'] = HPXML::HVACTypeBoiler
1782
- args['heating_system_fuel'] = HPXML::FuelTypeElectricity
1783
- args['heating_system_heating_efficiency'] = 0.98
1784
- args['cooling_system_type'] = 'none'
1785
- elsif ['base-hvac-boiler-gas-central-ac-1-speed.xml'].include? hpxml_file
1786
- args['heating_system_type'] = HPXML::HVACTypeBoiler
1787
- elsif ['base-hvac-boiler-gas-only.xml'].include? hpxml_file
1788
- args['heating_system_type'] = HPXML::HVACTypeBoiler
1789
- args['cooling_system_type'] = 'none'
1790
- elsif ['base-hvac-boiler-oil-only.xml',
1791
- 'base-hvac-furnace-oil-only.xml'].include? hpxml_file
1792
- args['heating_system_fuel'] = HPXML::FuelTypeOil
1793
- elsif ['base-hvac-boiler-propane-only.xml',
1794
- 'base-hvac-furnace-propane-only.xml'].include? hpxml_file
1795
- args['heating_system_fuel'] = HPXML::FuelTypePropane
1796
- elsif ['base-hvac-boiler-wood-only.xml',
1797
- 'base-hvac-furnace-wood-only.xml'].include? hpxml_file
1798
- args['heating_system_fuel'] = HPXML::FuelTypeWoodCord
1799
- elsif ['base-hvac-central-ac-only-1-speed.xml'].include? hpxml_file
1800
- args['heating_system_type'] = 'none'
1801
- elsif ['base-hvac-central-ac-only-1-speed-seer2.xml'].include? hpxml_file
1802
- args['cooling_system_cooling_efficiency_type'] = HPXML::UnitsSEER2
1803
- args['cooling_system_cooling_efficiency'] = (args['cooling_system_cooling_efficiency'] * 0.95).round(1)
1804
- elsif ['base-hvac-central-ac-only-2-speed.xml'].include? hpxml_file
1805
- args['heating_system_type'] = 'none'
1806
- args['cooling_system_cooling_efficiency'] = 18.0
1807
- args['cooling_system_cooling_compressor_type'] = HPXML::HVACCompressorTypeTwoStage
1808
- elsif ['base-hvac-central-ac-only-var-speed.xml'].include? hpxml_file
1809
- args['heating_system_type'] = 'none'
1810
- args['cooling_system_cooling_efficiency'] = 24.0
1811
- args['cooling_system_cooling_compressor_type'] = HPXML::HVACCompressorTypeVariableSpeed
1812
- args['cooling_system_cooling_sensible_heat_fraction'] = 0.78
1813
- elsif ['base-hvac-central-ac-plus-air-to-air-heat-pump-heating.xml'].include? hpxml_file
1814
- args['heat_pump_type'] = HPXML::HVACTypeHeatPumpAirToAir
1815
- args['heat_pump_heating_efficiency'] = 7.7
1816
- args['heat_pump_heating_capacity_17_f'] = args['heat_pump_heating_capacity'] * 0.6
1817
- args['heat_pump_fraction_cool_load_served'] = 0
1818
- args['heat_pump_backup_type'] = HPXML::HeatPumpBackupTypeIntegrated
1819
- args['heat_pump_backup_fuel'] = HPXML::FuelTypeElectricity
1820
- elsif ['base-hvac-dual-fuel-air-to-air-heat-pump-1-speed.xml'].include? hpxml_file
1821
- args['heat_pump_heating_efficiency'] = 7.7
1822
- args['heat_pump_backup_fuel'] = HPXML::FuelTypeNaturalGas
1823
- args['heat_pump_backup_heating_efficiency'] = 0.95
1824
- args['heat_pump_backup_heating_switchover_temp'] = 25
1825
- elsif ['base-hvac-dual-fuel-air-to-air-heat-pump-1-speed-electric.xml'].include? hpxml_file
1826
- args['heat_pump_backup_fuel'] = HPXML::FuelTypeElectricity
1827
- args['heat_pump_backup_heating_efficiency'] = 1.0
1828
- elsif ['base-hvac-dual-fuel-air-to-air-heat-pump-2-speed.xml',
1829
- 'base-hvac-dual-fuel-air-to-air-heat-pump-var-speed.xml'].include? hpxml_file
1830
- args['heat_pump_backup_fuel'] = HPXML::FuelTypeNaturalGas
1831
- args['heat_pump_backup_heating_efficiency'] = 0.95
1832
- args['heat_pump_backup_heating_switchover_temp'] = 25
1833
- elsif ['base-hvac-dual-fuel-mini-split-heat-pump-ducted.xml'].include? hpxml_file
1834
- args['heat_pump_heating_capacity'] = 36000.0
1835
- args['heat_pump_backup_fuel'] = HPXML::FuelTypeNaturalGas
1836
- args['heat_pump_backup_heating_efficiency'] = 0.95
1837
- args['heat_pump_backup_heating_switchover_temp'] = 25
1838
- elsif ['base-hvac-ducts-leakage-cfm50.xml'].include? hpxml_file
1839
- args['ducts_leakage_units'] = HPXML::UnitsCFM50
1840
- args['ducts_supply_leakage_to_outside_value'] = 100
1841
- args['ducts_return_leakage_to_outside_value'] = 125
1842
- elsif ['base-hvac-ducts-leakage-percent.xml'].include? hpxml_file
1843
- args['ducts_leakage_units'] = HPXML::UnitsPercent
1844
- args['ducts_supply_leakage_to_outside_value'] = 0.1
1845
- args['ducts_return_leakage_to_outside_value'] = 0.05
1846
- elsif ['base-hvac-elec-resistance-only.xml'].include? hpxml_file
1847
- args['heating_system_type'] = HPXML::HVACTypeElectricResistance
1848
- args['heating_system_fuel'] = HPXML::FuelTypeElectricity
1849
- args['heating_system_heating_efficiency'] = 1.0
1850
- args['cooling_system_type'] = 'none'
1851
- elsif ['base-hvac-evap-cooler-furnace-gas.xml'].include? hpxml_file
1852
- args['cooling_system_type'] = HPXML::HVACTypeEvaporativeCooler
1853
- args.delete('cooling_system_cooling_compressor_type')
1854
- args.delete('cooling_system_cooling_sensible_heat_fraction')
1855
- elsif ['base-hvac-evap-cooler-only.xml'].include? hpxml_file
1856
- args['heating_system_type'] = 'none'
1857
- args['cooling_system_type'] = HPXML::HVACTypeEvaporativeCooler
1858
- args.delete('cooling_system_cooling_compressor_type')
1859
- args.delete('cooling_system_cooling_sensible_heat_fraction')
1860
- elsif ['base-hvac-evap-cooler-only-ducted.xml'].include? hpxml_file
1861
- args['heating_system_type'] = 'none'
1862
- args['cooling_system_type'] = HPXML::HVACTypeEvaporativeCooler
1863
- args.delete('cooling_system_cooling_compressor_type')
1864
- args.delete('cooling_system_cooling_sensible_heat_fraction')
1865
- args['cooling_system_is_ducted'] = true
1866
- args['ducts_return_leakage_to_outside_value'] = 0.0
1867
- elsif ['base-hvac-fireplace-wood-only.xml'].include? hpxml_file
1868
- args['heating_system_type'] = HPXML::HVACTypeFireplace
1869
- args['heating_system_fuel'] = HPXML::FuelTypeWoodCord
1870
- elsif ['base-hvac-fixed-heater-gas-only.xml'].include? hpxml_file
1871
- args['heating_system_type'] = HPXML::HVACTypeFixedHeater
1872
- args['heating_system_heating_efficiency'] = 1.0
1873
- args['cooling_system_type'] = 'none'
1874
- elsif ['base-hvac-floor-furnace-propane-only.xml'].include? hpxml_file
1875
- args['heating_system_type'] = HPXML::HVACTypeFloorFurnace
1876
- args['heating_system_fuel'] = HPXML::FuelTypePropane
1877
- elsif ['base-hvac-furnace-elec-central-ac-1-speed.xml'].include? hpxml_file
1878
- args['heating_system_fuel'] = HPXML::FuelTypeElectricity
1879
- args['heating_system_heating_efficiency'] = 1.0
1880
- elsif ['base-hvac-furnace-elec-only.xml'].include? hpxml_file
1881
- args['heating_system_fuel'] = HPXML::FuelTypeElectricity
1882
- args['heating_system_heating_efficiency'] = 0.98
1883
- args['cooling_system_type'] = 'none'
1884
- elsif ['base-hvac-furnace-gas-central-ac-2-speed.xml'].include? hpxml_file
1885
- args['cooling_system_cooling_efficiency'] = 18.0
1886
- args['cooling_system_cooling_compressor_type'] = HPXML::HVACCompressorTypeTwoStage
1887
- elsif ['base-hvac-furnace-gas-central-ac-var-speed.xml'].include? hpxml_file
1888
- args['cooling_system_cooling_efficiency'] = 24.0
1889
- args['cooling_system_cooling_compressor_type'] = HPXML::HVACCompressorTypeVariableSpeed
1890
- args['cooling_system_cooling_sensible_heat_fraction'] = 0.78
1891
- elsif ['base-hvac-furnace-gas-only.xml'].include? hpxml_file
1892
- args['cooling_system_type'] = 'none'
1893
- elsif ['base-hvac-furnace-gas-room-ac.xml'].include? hpxml_file
1894
- args['cooling_system_type'] = HPXML::HVACTypeRoomAirConditioner
1895
- args['cooling_system_cooling_efficiency_type'] = HPXML::UnitsEER
1896
- args['cooling_system_cooling_efficiency'] = 8.5
1897
- args.delete('cooling_system_cooling_compressor_type')
1898
- args['cooling_system_cooling_sensible_heat_fraction'] = 0.65
1899
- elsif ['base-hvac-mini-split-air-conditioner-only-ducted.xml'].include? hpxml_file
1900
- args['heating_system_type'] = 'none'
1901
- args['cooling_system_type'] = HPXML::HVACTypeMiniSplitAirConditioner
1902
- args['cooling_system_cooling_efficiency'] = 19.0
1903
- args.delete('cooling_system_cooling_compressor_type')
1904
- args['cooling_system_is_ducted'] = true
1905
- args['ducts_supply_leakage_to_outside_value'] = 15.0
1906
- args['ducts_return_leakage_to_outside_value'] = 5.0
1907
- args['ducts_supply_insulation_r'] = 0.0
1908
- args['ducts_supply_surface_area'] = 30.0
1909
- args['ducts_return_surface_area'] = 10.0
1910
- elsif ['base-hvac-mini-split-air-conditioner-only-ductless.xml'].include? hpxml_file
1911
- args['cooling_system_is_ducted'] = false
1912
- elsif ['base-hvac-ground-to-air-heat-pump.xml'].include? hpxml_file
1913
- args['heating_system_type'] = 'none'
1914
- args['cooling_system_type'] = 'none'
1915
- args['heat_pump_type'] = HPXML::HVACTypeHeatPumpGroundToAir
1916
- args['heat_pump_heating_efficiency_type'] = HPXML::UnitsCOP
1917
- args['heat_pump_heating_efficiency'] = 3.6
1918
- args['heat_pump_cooling_efficiency_type'] = HPXML::UnitsEER
1919
- args['heat_pump_cooling_efficiency'] = 16.6
1920
- args.delete('heat_pump_cooling_compressor_type')
1921
- args['heat_pump_backup_type'] = HPXML::HeatPumpBackupTypeIntegrated
1922
- elsif ['base-hvac-ground-to-air-heat-pump-cooling-only.xml'].include? hpxml_file
1923
- args['heat_pump_heating_capacity'] = 0.0
1924
- args['heat_pump_fraction_heat_load_served'] = 0
1925
- args['heat_pump_backup_type'] = 'none'
1926
- elsif ['base-hvac-ground-to-air-heat-pump-heating-only.xml'].include? hpxml_file
1927
- args['heat_pump_cooling_capacity'] = 0.0
1928
- args['heat_pump_fraction_cool_load_served'] = 0
1929
- elsif ['base-hvac-seasons.xml'].include? hpxml_file
1930
- args['hvac_control_heating_season_period'] = 'Nov 1 - May 1'
1931
- args['hvac_control_cooling_season_period'] = 'Jun 1 - Oct 1'
1932
- elsif ['base-hvac-install-quality-air-to-air-heat-pump-1-speed.xml',
1933
- 'base-hvac-install-quality-air-to-air-heat-pump-2-speed.xml',
1934
- 'base-hvac-install-quality-air-to-air-heat-pump-var-speed.xml',
1935
- 'base-hvac-install-quality-ground-to-air-heat-pump.xml',
1936
- 'base-hvac-install-quality-mini-split-heat-pump-ducted.xml'].include? hpxml_file
1937
- args['heat_pump_airflow_defect_ratio'] = -0.25
1938
- args['heat_pump_charge_defect_ratio'] = -0.25
1939
- elsif ['base-hvac-install-quality-furnace-gas-central-ac-1-speed.xml',
1940
- 'base-hvac-install-quality-furnace-gas-central-ac-2-speed.xml',
1941
- 'base-hvac-install-quality-furnace-gas-central-ac-var-speed.xml'].include? hpxml_file
1942
- args['heating_system_airflow_defect_ratio'] = -0.25
1943
- args['cooling_system_airflow_defect_ratio'] = -0.25
1944
- args['cooling_system_charge_defect_ratio'] = -0.25
1945
- elsif ['base-hvac-install-quality-furnace-gas-only.xml'].include? hpxml_file
1946
- args['heating_system_airflow_defect_ratio'] = -0.25
1947
- elsif ['base-hvac-install-quality-mini-split-air-conditioner-only-ducted.xml'].include? hpxml_file
1948
- args['cooling_system_airflow_defect_ratio'] = -0.25
1949
- args['cooling_system_charge_defect_ratio'] = -0.25
1950
- elsif ['base-hvac-mini-split-heat-pump-ducted.xml'].include? hpxml_file
1951
- args['heating_system_type'] = 'none'
1952
- args['cooling_system_type'] = 'none'
1953
- args['heat_pump_type'] = HPXML::HVACTypeHeatPumpMiniSplit
1954
- args['heat_pump_heating_capacity_17_f'] = args['heat_pump_heating_capacity'] * 0.6
1955
- args['heat_pump_heating_efficiency'] = 10.0
1956
- args['heat_pump_cooling_efficiency'] = 19.0
1957
- args.delete('heat_pump_cooling_compressor_type')
1958
- args['heat_pump_backup_type'] = HPXML::HeatPumpBackupTypeIntegrated
1959
- args['heat_pump_is_ducted'] = true
1960
- args['ducts_supply_leakage_to_outside_value'] = 15.0
1961
- args['ducts_return_leakage_to_outside_value'] = 5.0
1962
- args['ducts_supply_insulation_r'] = 0.0
1963
- args['ducts_supply_surface_area'] = 30.0
1964
- args['ducts_return_surface_area'] = 10.0
1965
- elsif ['base-hvac-mini-split-heat-pump-ducted-cooling-only.xml'].include? hpxml_file
1966
- args['heat_pump_heating_capacity'] = 0
1967
- args['heat_pump_heating_capacity_17_f'] = 0
1968
- args['heat_pump_fraction_heat_load_served'] = 0
1969
- args['heat_pump_backup_type'] = 'none'
1970
- elsif ['base-hvac-mini-split-heat-pump-ducted-heating-only.xml'].include? hpxml_file
1971
- args['heat_pump_cooling_capacity'] = 0
1972
- args['heat_pump_fraction_cool_load_served'] = 0
1973
- args['heat_pump_backup_fuel'] = HPXML::FuelTypeElectricity
1974
- elsif ['base-hvac-mini-split-heat-pump-ductless.xml'].include? hpxml_file
1975
- args['heat_pump_backup_type'] = 'none'
1976
- args['heat_pump_is_ducted'] = false
1977
- elsif ['base-hvac-mini-split-heat-pump-ductless-backup-stove.xml'].include? hpxml_file
1978
- args['heat_pump_backup_type'] = HPXML::HeatPumpBackupTypeSeparate
1979
- args['heat_pump_heating_capacity'] = 18000.0
1980
- args['heat_pump_cooling_capacity'] = 18000.0
1981
- args['heat_pump_heating_capacity_17_f'] = args['heat_pump_heating_capacity'] * 0.6
1982
- args['heating_system_2_type'] = HPXML::HVACTypeStove
1983
- args['heating_system_2_fuel'] = HPXML::FuelTypeOil
1984
- args['heating_system_2_heating_efficiency'] = 0.6
1985
- args['heating_system_2_heating_capacity'] = 60000.0
1986
- elsif ['base-hvac-none.xml'].include? hpxml_file
1987
- args['heating_system_type'] = 'none'
1988
- args['cooling_system_type'] = 'none'
1989
- elsif ['base-hvac-portable-heater-gas-only.xml'].include? hpxml_file
1990
- args['heating_system_type'] = HPXML::HVACTypePortableHeater
1991
- args['heating_system_heating_efficiency'] = 1.0
1992
- args['cooling_system_type'] = 'none'
1993
- elsif ['base-hvac-setpoints-daily-schedules.xml'].include? hpxml_file
1994
- args['hvac_control_heating_weekday_setpoint'] = '64, 64, 64, 64, 64, 64, 64, 70, 70, 66, 66, 66, 66, 66, 66, 66, 66, 68, 68, 68, 68, 68, 64, 64'
1995
- args['hvac_control_heating_weekend_setpoint'] = '68, 68, 68, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70'
1996
- args['hvac_control_cooling_weekday_setpoint'] = '80, 80, 80, 80, 80, 80, 80, 75, 75, 80, 80, 80, 80, 80, 80, 80, 80, 78, 78, 78, 78, 78, 80, 80'
1997
- args['hvac_control_cooling_weekend_setpoint'] = '78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78'
1998
- elsif ['base-hvac-room-ac-only.xml'].include? hpxml_file
1999
- args['heating_system_type'] = 'none'
2000
- args['cooling_system_type'] = HPXML::HVACTypeRoomAirConditioner
2001
- args['cooling_system_cooling_efficiency_type'] = HPXML::UnitsEER
2002
- args['cooling_system_cooling_efficiency'] = 8.5
2003
- args.delete('cooling_system_cooling_compressor_type')
2004
- args['cooling_system_cooling_sensible_heat_fraction'] = 0.65
2005
- elsif ['base-hvac-room-ac-only-ceer.xml'].include? hpxml_file
2006
- args['cooling_system_cooling_efficiency_type'] = HPXML::UnitsCEER
2007
- args['cooling_system_cooling_efficiency'] = 8.4
2008
- elsif ['base-hvac-room-ac-only-33percent.xml'].include? hpxml_file
2009
- args['cooling_system_fraction_cool_load_served'] = 0.33
2010
- args['cooling_system_cooling_capacity'] = 8000.0
2011
- elsif ['base-hvac-room-ac-with-heating.xml',
2012
- 'base-hvac-ptac-with-heating-electricity.xml',
2013
- 'base-hvac-ptac-with-heating-natural-gas.xml'].include? hpxml_file
2014
- args['cooling_system_integrated_heating_system_capacity'] = 36000.0
2015
- args['cooling_system_integrated_heating_system_fraction_heat_load_served'] = 1.0
2016
- if ['base-hvac-ptac-with-heating-natural-gas.xml'].include? hpxml_file
2017
- args['cooling_system_integrated_heating_system_fuel'] = HPXML::FuelTypeNaturalGas
2018
- args['cooling_system_integrated_heating_system_efficiency_percent'] = 0.8
2019
- else
2020
- args['cooling_system_integrated_heating_system_fuel'] = HPXML::FuelTypeElectricity
2021
- args['cooling_system_integrated_heating_system_efficiency_percent'] = 1.0
2022
- end
2023
- elsif ['base-hvac-setpoints.xml'].include? hpxml_file
2024
- args['hvac_control_heating_weekday_setpoint'] = 60
2025
- args['hvac_control_heating_weekend_setpoint'] = 60
2026
- args['hvac_control_cooling_weekday_setpoint'] = 80
2027
- args['hvac_control_cooling_weekend_setpoint'] = 80
2028
- elsif ['base-hvac-stove-oil-only.xml'].include? hpxml_file
2029
- args['heating_system_type'] = HPXML::HVACTypeStove
2030
- args['heating_system_fuel'] = HPXML::FuelTypeOil
2031
- args['heating_system_heating_efficiency'] = 0.8
2032
- args['cooling_system_type'] = 'none'
2033
- elsif ['base-hvac-stove-wood-pellets-only.xml'].include? hpxml_file
2034
- args['heating_system_fuel'] = HPXML::FuelTypeWoodPellets
2035
- elsif ['base-hvac-undersized.xml'].include? hpxml_file
2036
- args['heating_system_heating_capacity'] = 3600.0
2037
- args['cooling_system_cooling_capacity'] = 2400.0
2038
- args['ducts_supply_leakage_to_outside_value'] = 7.5
2039
- args['ducts_return_leakage_to_outside_value'] = 2.5
2040
- elsif ['base-hvac-wall-furnace-elec-only.xml'].include? hpxml_file
2041
- args['heating_system_type'] = HPXML::HVACTypeWallFurnace
2042
- args['heating_system_fuel'] = HPXML::FuelTypeElectricity
2043
- args['heating_system_heating_efficiency'] = 0.98
2044
- args['cooling_system_type'] = 'none'
2045
- elsif ['base-hvac-pthp.xml'].include? hpxml_file
2046
- args['heat_pump_type'] = HPXML::HVACTypeHeatPumpPTHP
2047
- args['heat_pump_cooling_efficiency'] = 11.4
2048
- args['heat_pump_cooling_sensible_heat_fraction'] = 0.65
2049
- elsif ['base-hvac-room-ac-with-reverse-cycle.xml'].include? hpxml_file
2050
- args['heat_pump_type'] = HPXML::HVACTypeHeatPumpRoom
2051
- elsif ['base-hvac-ptac.xml'].include? hpxml_file
2052
- args['heating_system_type'] = 'none'
2053
- args['cooling_system_type'] = HPXML::HVACTypePTAC
2054
- args['cooling_system_cooling_efficiency_type'] = HPXML::UnitsEER
2055
- args['cooling_system_cooling_efficiency'] = 10.7
2056
- args['cooling_system_cooling_sensible_heat_fraction'] = 0.65
2057
- end
2058
-
2059
- # Lighting
2060
- if ['base-lighting-none.xml'].include? hpxml_file
2061
- args['lighting_present'] = false
2062
- elsif ['base-lighting-ceiling-fans.xml'].include? hpxml_file
2063
- args['ceiling_fan_present'] = true
2064
- args['ceiling_fan_efficiency'] = 100.0
2065
- args['ceiling_fan_quantity'] = 4
2066
- args['ceiling_fan_cooling_setpoint_temp_offset'] = 0.5
2067
- elsif ['base-lighting-holiday.xml'].include? hpxml_file
2068
- args['holiday_lighting_present'] = true
2069
- args['holiday_lighting_daily_kwh'] = 1.1
2070
- args['holiday_lighting_period'] = 'Nov 24 - Jan 6'
2071
- end
2072
-
2073
- # Location
2074
- if ['base-location-AMY-2012.xml'].include? hpxml_file
2075
- args['weather_station_epw_filepath'] = 'US_CO_Boulder_AMY_2012.epw'
2076
- elsif ['base-location-baltimore-md.xml'].include? hpxml_file
2077
- args['site_iecc_zone'] = '4A'
2078
- args['site_state_code'] = 'MD'
2079
- args['weather_station_epw_filepath'] = 'USA_MD_Baltimore-Washington.Intl.AP.724060_TMY3.epw'
2080
- args['heating_system_heating_capacity'] = 24000.0
2081
- elsif ['base-location-dallas-tx.xml'].include? hpxml_file
2082
- args['site_iecc_zone'] = '3A'
2083
- args['site_state_code'] = 'TX'
2084
- args['weather_station_epw_filepath'] = 'USA_TX_Dallas-Fort.Worth.Intl.AP.722590_TMY3.epw'
2085
- args['heating_system_heating_capacity'] = 24000.0
2086
- elsif ['base-location-duluth-mn.xml'].include? hpxml_file
2087
- args['site_iecc_zone'] = '7'
2088
- args['site_state_code'] = 'MN'
2089
- args['weather_station_epw_filepath'] = 'USA_MN_Duluth.Intl.AP.727450_TMY3.epw'
2090
- elsif ['base-location-helena-mt.xml'].include? hpxml_file
2091
- args['site_iecc_zone'] = '6B'
2092
- args['site_state_code'] = 'MT'
2093
- args['weather_station_epw_filepath'] = 'USA_MT_Helena.Rgnl.AP.727720_TMY3.epw'
2094
- args['heating_system_heating_capacity'] = 48000.0
2095
- elsif ['base-location-honolulu-hi.xml'].include? hpxml_file
2096
- args['site_iecc_zone'] = '1A'
2097
- args['site_state_code'] = 'HI'
2098
- args['weather_station_epw_filepath'] = 'USA_HI_Honolulu.Intl.AP.911820_TMY3.epw'
2099
- args['heating_system_heating_capacity'] = 12000.0
2100
- elsif ['base-location-miami-fl.xml',
2101
- 'base-appliances-oil-location-miami-fl.xml'].include? hpxml_file
2102
- args['site_iecc_zone'] = '1A'
2103
- args['site_state_code'] = 'FL'
2104
- args['weather_station_epw_filepath'] = 'USA_FL_Miami.Intl.AP.722020_TMY3.epw'
2105
- args['heating_system_heating_capacity'] = 12000.0
2106
- elsif ['base-hvac-autosize-air-to-air-heat-pump-1-speed-sizing-methodology-maxload-miami-fl.xml'].include? hpxml_file
2107
- args['site_iecc_zone'] = '1A'
2108
- args['site_state_code'] = 'FL'
2109
- args['weather_station_epw_filepath'] = 'USA_FL_Miami.Intl.AP.722020_TMY3.epw'
2110
- elsif ['base-location-phoenix-az.xml'].include? hpxml_file
2111
- args['site_iecc_zone'] = '2B'
2112
- args['site_state_code'] = 'AZ'
2113
- args['weather_station_epw_filepath'] = 'USA_AZ_Phoenix-Sky.Harbor.Intl.AP.722780_TMY3.epw'
2114
- args['heating_system_heating_capacity'] = 24000.0
2115
- elsif ['base-location-portland-or.xml',
2116
- 'base-appliances-propane-location-portland-or.xml'].include? hpxml_file
2117
- args['site_iecc_zone'] = '4C'
2118
- args['site_state_code'] = 'OR'
2119
- args['weather_station_epw_filepath'] = 'USA_OR_Portland.Intl.AP.726980_TMY3.epw'
2120
- args['heating_system_heating_capacity'] = 24000.0
2121
- elsif ['base-location-capetown-zaf.xml'].include? hpxml_file
2122
- args.delete('site_iecc_zone')
2123
- args.delete('site_state_code')
2124
- args['weather_station_epw_filepath'] = 'ZAF_Cape.Town.688160_IWEC.epw'
2125
- args['heating_system_heating_capacity'] = 24000.0
2126
- elsif ['base-misc-defaults.xml'].include? hpxml_file
2127
- args.delete('site_iecc_zone')
2128
- args.delete('site_state_code')
2129
- elsif ['base-misc-ground-conductivity.xml'].include? hpxml_file
2130
- args['site_ground_conductivity'] = 0.8
2131
- end
2132
-
2133
- # Mechanical Ventilation
2134
- if ['base-mechvent-balanced.xml'].include? hpxml_file
2135
- args['mech_vent_fan_type'] = HPXML::MechVentTypeBalanced
2136
- args['mech_vent_fan_power'] = 60
2137
- elsif ['base-mechvent-bath-kitchen-fans.xml'].include? hpxml_file
2138
- args['kitchen_fans_quantity'] = 1
2139
- args['kitchen_fans_flow_rate'] = 100.0
2140
- args['kitchen_fans_hours_in_operation'] = 1.5
2141
- args['kitchen_fans_power'] = 30.0
2142
- args['kitchen_fans_start_hour'] = 18
2143
- args['bathroom_fans_quantity'] = 2
2144
- args['bathroom_fans_flow_rate'] = 50.0
2145
- args['bathroom_fans_hours_in_operation'] = 1.5
2146
- args['bathroom_fans_power'] = 15.0
2147
- args['bathroom_fans_start_hour'] = 7
2148
- elsif ['base-mechvent-cfis.xml',
2149
- 'base-mechvent-cfis-dse.xml'].include? hpxml_file
2150
- args['mech_vent_fan_type'] = HPXML::MechVentTypeCFIS
2151
- args['mech_vent_flow_rate'] = 330
2152
- args['mech_vent_hours_in_operation'] = 8
2153
- args['mech_vent_fan_power'] = 300
2154
- elsif ['base-mechvent-cfis-evap-cooler-only-ducted.xml'].include? hpxml_file
2155
- args['mech_vent_fan_type'] = HPXML::MechVentTypeCFIS
2156
- args['mech_vent_flow_rate'] = 330
2157
- args['mech_vent_hours_in_operation'] = 8
2158
- args['mech_vent_fan_power'] = 300
2159
- elsif ['base-mechvent-erv.xml'].include? hpxml_file
2160
- args['mech_vent_fan_type'] = HPXML::MechVentTypeERV
2161
- args['mech_vent_fan_power'] = 60
2162
- elsif ['base-mechvent-erv-atre-asre.xml'].include? hpxml_file
2163
- args['mech_vent_fan_type'] = HPXML::MechVentTypeERV
2164
- args['mech_vent_recovery_efficiency_type'] = 'Adjusted'
2165
- args['mech_vent_total_recovery_efficiency'] = 0.526
2166
- args['mech_vent_sensible_recovery_efficiency'] = 0.79
2167
- args['mech_vent_fan_power'] = 60
2168
- elsif ['base-mechvent-exhaust.xml'].include? hpxml_file
2169
- args['mech_vent_fan_type'] = HPXML::MechVentTypeExhaust
2170
- elsif ['base-mechvent-exhaust-rated-flow-rate.xml'].include? hpxml_file
2171
- args['mech_vent_fan_type'] = HPXML::MechVentTypeExhaust
2172
- elsif ['base-mechvent-hrv.xml'].include? hpxml_file
2173
- args['mech_vent_fan_type'] = HPXML::MechVentTypeHRV
2174
- args['mech_vent_fan_power'] = 60
2175
- elsif ['base-mechvent-hrv-asre.xml'].include? hpxml_file
2176
- args['mech_vent_fan_type'] = HPXML::MechVentTypeHRV
2177
- args['mech_vent_recovery_efficiency_type'] = 'Adjusted'
2178
- args['mech_vent_sensible_recovery_efficiency'] = 0.79
2179
- args['mech_vent_fan_power'] = 60
2180
- elsif ['base-mechvent-supply.xml'].include? hpxml_file
2181
- args['mech_vent_fan_type'] = HPXML::MechVentTypeSupply
2182
- elsif ['base-mechvent-whole-house-fan.xml'].include? hpxml_file
2183
- args['whole_house_fan_present'] = true
2184
- args['whole_house_fan_flow_rate'] = 4500.0
2185
- args['whole_house_fan_power'] = 300.0
2186
- end
2187
-
2188
- # Misc
2189
- if not orig_parent.nil?
2190
- args['additional_properties'] = "ParentHPXMLFile=#{File.basename(orig_parent)}"
2191
- end
2192
- if ['base-misc-additional-properties.xml'].include? hpxml_file
2193
- args['additional_properties'] += '|LowIncome=false|Remodeled|Description=2-story home in Denver|comma=,|special=<|special2=>|special3=/|special4=\\'
2194
- elsif ['base-misc-bills.xml'].include? hpxml_file
2195
- args['utility_bill_scenario_names'] = 'Bills'
2196
- args['utility_bill_electricity_fixed_charges'] = '12'
2197
- args['utility_bill_electricity_marginal_rates'] = '0.12'
2198
- args['utility_bill_natural_gas_fixed_charges'] = '12'
2199
- args['utility_bill_natural_gas_marginal_rates'] = '1.10'
2200
- elsif ['base-misc-bills-none.xml'].include? hpxml_file
2201
- args.delete('utility_bill_scenario_names')
2202
- elsif ['base-misc-bills-pv.xml'].include? hpxml_file
2203
- args['pv_system_max_power_output'] = 10000 # Ensure there is excess annual PV production
2204
- args['utility_bill_scenario_names'] = 'Net Metering w/ Wholesale Excess Rate, Net Metering w/ Retail Excess Rate, Feed-In Tariff'
2205
- args['utility_bill_electricity_fixed_charges'] = '10, 10, 10'
2206
- args['utility_bill_electricity_marginal_rates'] = '0.12, 0.12, 0.12'
2207
- args['utility_bill_natural_gas_fixed_charges'] = '11, 11, 11'
2208
- args['utility_bill_natural_gas_marginal_rates'] = '1.10, 1.10, 1.10'
2209
- args['utility_bill_pv_compensation_types'] = "#{HPXML::PVCompensationTypeNetMetering}, #{HPXML::PVCompensationTypeNetMetering}, #{HPXML::PVCompensationTypeFeedInTariff}"
2210
- args['utility_bill_pv_net_metering_annual_excess_sellback_rate_types'] = "#{HPXML::PVAnnualExcessSellbackRateTypeUserSpecified}, #{HPXML::PVAnnualExcessSellbackRateTypeRetailElectricityCost}, NA"
2211
- args['utility_bill_pv_net_metering_annual_excess_sellback_rates'] = '0.035, NA, NA'
2212
- args['utility_bill_pv_feed_in_tariff_rates'] = 'NA, NA, 0.13'
2213
- args['utility_bill_pv_monthly_grid_connection_fee_units'] = "#{HPXML::UnitsDollarsPerkW}, #{HPXML::UnitsDollarsPerkW}, #{HPXML::UnitsDollars}"
2214
- args['utility_bill_pv_monthly_grid_connection_fees'] = '2.5, 2.5, 7.5'
2215
- elsif ['base-misc-bills-pv-detailed-only.xml'].include? hpxml_file
2216
- args['utility_bill_scenario_names'] = 'Tiered, TOU, Tiered and TOU, Real-Time Pricing'
2217
- args['utility_bill_electricity_filepaths'] = '../../ReportUtilityBills/resources/detailed_rates/Sample Tiered Rate.json, ../../ReportUtilityBills/resources/detailed_rates/Sample Time-of-Use Rate.json, ../../ReportUtilityBills/resources/detailed_rates/Sample Tiered Time-of-Use Rate.json, ../../ReportUtilityBills/resources/detailed_rates/Sample Real-Time Pricing Rate.json'
2218
- elsif ['base-misc-bills-pv-mixed.xml'].include? hpxml_file
2219
- args['utility_bill_scenario_names'] = 'Simple, Detailed'
2220
- args['utility_bill_electricity_filepaths'] = 'NA, ../../ReportUtilityBills/resources/detailed_rates/Sample Tiered Rate.json'
2221
- elsif ['base-misc-defaults.xml'].include? hpxml_file
2222
- args.delete('simulation_control_timestep')
2223
- args.delete('site_type')
2224
- args.delete('geometry_unit_num_bathrooms')
2225
- args.delete('geometry_unit_num_occupants')
2226
- args.delete('foundation_wall_insulation_distance_to_top')
2227
- args.delete('foundation_wall_insulation_distance_to_bottom')
2228
- args.delete('foundation_wall_thickness')
2229
- args.delete('slab_thickness')
2230
- args.delete('slab_carpet_fraction')
2231
- args.delete('roof_material_type')
2232
- args['roof_color'] = HPXML::ColorLight
2233
- args.delete('roof_material_type')
2234
- args.delete('wall_siding_type')
2235
- args.delete('window_fraction_operable')
2236
- args.delete('window_interior_shading_winter')
2237
- args.delete('window_interior_shading_summer')
2238
- args.delete('cooling_system_cooling_compressor_type')
2239
- args.delete('cooling_system_cooling_sensible_heat_fraction')
2240
- args['mech_vent_fan_type'] = HPXML::MechVentTypeExhaust
2241
- args.delete('mech_vent_hours_in_operation')
2242
- args.delete('mech_vent_fan_power')
2243
- args.delete('ducts_supply_location')
2244
- args.delete('ducts_return_location')
2245
- args.delete('ducts_supply_surface_area')
2246
- args.delete('ducts_return_surface_area')
2247
- args['ducts_number_of_return_registers'] = 2
2248
- args.delete('kitchen_fans_quantity')
2249
- args.delete('bathroom_fans_quantity')
2250
- args.delete('water_heater_location')
2251
- args.delete('water_heater_tank_volume')
2252
- args.delete('water_heater_setpoint_temperature')
2253
- args.delete('hot_water_distribution_standard_piping_length')
2254
- args.delete('hot_water_distribution_pipe_r')
2255
- args['solar_thermal_system_type'] = HPXML::SolarThermalSystemType
2256
- args['solar_thermal_collector_type'] = HPXML::SolarThermalTypeSingleGlazing
2257
- args['solar_thermal_collector_rated_optical_efficiency'] = 0.77
2258
- args['solar_thermal_collector_rated_thermal_losses'] = 0.793
2259
- args['pv_system_present'] = true
2260
- args.delete('pv_system_module_type')
2261
- args.delete('pv_system_inverter_efficiency')
2262
- args.delete('pv_system_system_losses_fraction')
2263
- args['battery_present'] = true
2264
- args.delete('battery_location')
2265
- args.delete('clothes_washer_location')
2266
- args.delete('clothes_washer_efficiency')
2267
- args.delete('clothes_washer_rated_annual_kwh')
2268
- args.delete('clothes_washer_label_electric_rate')
2269
- args.delete('clothes_washer_label_gas_rate')
2270
- args.delete('clothes_washer_label_annual_gas_cost')
2271
- args.delete('clothes_washer_label_usage')
2272
- args.delete('clothes_washer_capacity')
2273
- args.delete('clothes_dryer_location')
2274
- args.delete('clothes_dryer_efficiency')
2275
- args.delete('clothes_dryer_vented_flow_rate')
2276
- args.delete('dishwasher_location')
2277
- args.delete('dishwasher_efficiency')
2278
- args.delete('dishwasher_label_electric_rate')
2279
- args.delete('dishwasher_label_gas_rate')
2280
- args.delete('dishwasher_label_annual_gas_cost')
2281
- args.delete('dishwasher_label_usage')
2282
- args.delete('dishwasher_place_setting_capacity')
2283
- args.delete('refrigerator_location')
2284
- args.delete('refrigerator_rated_annual_kwh')
2285
- args.delete('cooking_range_oven_location')
2286
- args.delete('cooking_range_oven_is_induction')
2287
- args.delete('cooking_range_oven_is_convection')
2288
- args['ceiling_fan_present'] = true
2289
- args.delete('misc_plug_loads_television_annual_kwh')
2290
- args.delete('misc_plug_loads_other_annual_kwh')
2291
- args.delete('misc_plug_loads_other_frac_sensible')
2292
- args.delete('misc_plug_loads_other_frac_latent')
2293
- args.delete('mech_vent_flow_rate')
2294
- args.delete('kitchen_fans_flow_rate')
2295
- args.delete('bathroom_fans_flow_rate')
2296
- args['whole_house_fan_present'] = true
2297
- args.delete('whole_house_fan_flow_rate')
2298
- args.delete('whole_house_fan_power')
2299
- args.delete('hvac_control_heating_weekday_setpoint')
2300
- args.delete('hvac_control_heating_weekend_setpoint')
2301
- args.delete('hvac_control_cooling_weekday_setpoint')
2302
- args.delete('hvac_control_cooling_weekend_setpoint')
2303
- elsif ['base-misc-emissions.xml'].include? hpxml_file
2304
- args['emissions_scenario_names'] = 'Cambium Hourly MidCase LRMER RMPA, Cambium Hourly LowRECosts LRMER RMPA, Cambium Annual MidCase AER National, eGRID RMPA, eGRID RMPA'
2305
- args['emissions_types'] = 'CO2e, CO2e, CO2e, SO2, NOx'
2306
- args['emissions_electricity_units'] = 'kg/MWh, kg/MWh, kg/MWh, lb/MWh, lb/MWh'
2307
- args['emissions_electricity_values_or_filepaths'] = '../../HPXMLtoOpenStudio/resources/data/cambium/LRMER_MidCase.csv, ../../HPXMLtoOpenStudio/resources/data/cambium/LRMER_LowRECosts.csv, 392.6, 0.384, 0.67'
2308
- args['emissions_electricity_number_of_header_rows'] = '1, 1, , , '
2309
- args['emissions_electricity_column_numbers'] = '17, 17, , , '
2310
- elsif ['base-misc-loads-large-uncommon.xml'].include? hpxml_file
2311
- args.delete('extra_refrigerator_location')
2312
- args['extra_refrigerator_present'] = true
2313
- args['extra_refrigerator_rated_annual_kwh'] = 700.0
2314
- args['freezer_present'] = true
2315
- args['freezer_location'] = HPXML::LocationLivingSpace
2316
- args['freezer_rated_annual_kwh'] = 300.0
2317
- args['misc_plug_loads_well_pump_present'] = true
2318
- args['misc_plug_loads_well_pump_annual_kwh'] = 475.0
2319
- args['misc_plug_loads_vehicle_present'] = true
2320
- args['misc_plug_loads_vehicle_annual_kwh'] = 1500.0
2321
- args['misc_fuel_loads_grill_present'] = true
2322
- args['misc_fuel_loads_grill_fuel_type'] = HPXML::FuelTypePropane
2323
- args['misc_fuel_loads_grill_annual_therm'] = 25.0
2324
- args['misc_fuel_loads_lighting_present'] = true
2325
- args['misc_fuel_loads_lighting_annual_therm'] = 28.0
2326
- args['misc_fuel_loads_fireplace_present'] = true
2327
- args['misc_fuel_loads_fireplace_fuel_type'] = HPXML::FuelTypeWoodCord
2328
- args['misc_fuel_loads_fireplace_annual_therm'] = 55.0
2329
- args['misc_fuel_loads_fireplace_frac_sensible'] = 0.5
2330
- args['misc_fuel_loads_fireplace_frac_latent'] = 0.1
2331
- args['pool_present'] = true
2332
- args['pool_heater_type'] = HPXML::HeaterTypeGas
2333
- args['pool_pump_annual_kwh'] = 2700.0
2334
- args['pool_heater_annual_therm'] = 500.0
2335
- args['hot_tub_present'] = true
2336
- args['hot_tub_pump_annual_kwh'] = 1000.0
2337
- args['hot_tub_heater_annual_kwh'] = 1300.0
2338
- elsif ['base-misc-loads-large-uncommon2.xml'].include? hpxml_file
2339
- args['pool_heater_type'] = HPXML::TypeNone
2340
- args['hot_tub_heater_type'] = HPXML::HeaterTypeHeatPump
2341
- args['hot_tub_heater_annual_kwh'] = 260.0
2342
- args['misc_fuel_loads_grill_fuel_type'] = HPXML::FuelTypeOil
2343
- args['misc_fuel_loads_fireplace_fuel_type'] = HPXML::FuelTypeWoodPellets
2344
- elsif ['base-misc-neighbor-shading.xml'].include? hpxml_file
2345
- args['neighbor_back_distance'] = 10
2346
- args['neighbor_front_distance'] = 15
2347
- args['neighbor_front_height'] = 12
2348
- elsif ['base-misc-shielding-of-home.xml'].include? hpxml_file
2349
- args['site_shielding_of_home'] = HPXML::ShieldingWellShielded
2350
- elsif ['base-misc-usage-multiplier.xml'].include? hpxml_file
2351
- args['water_fixtures_usage_multiplier'] = 0.9
2352
- args['lighting_interior_usage_multiplier'] = 0.9
2353
- args['lighting_exterior_usage_multiplier'] = 0.9
2354
- args['lighting_garage_usage_multiplier'] = 0.9
2355
- args['clothes_washer_usage_multiplier'] = 0.9
2356
- args['clothes_dryer_usage_multiplier'] = 0.9
2357
- args['dishwasher_usage_multiplier'] = 0.9
2358
- args['refrigerator_usage_multiplier'] = 0.9
2359
- args['freezer_present'] = true
2360
- args['freezer_location'] = HPXML::LocationLivingSpace
2361
- args['freezer_rated_annual_kwh'] = 300.0
2362
- args['freezer_usage_multiplier'] = 0.9
2363
- args['cooking_range_oven_usage_multiplier'] = 0.9
2364
- args['misc_plug_loads_television_usage_multiplier'] = 0.9
2365
- args['misc_plug_loads_other_usage_multiplier'] = 0.9
2366
- args['pool_present'] = true
2367
- args['pool_pump_annual_kwh'] = 2700.0
2368
- args['pool_pump_usage_multiplier'] = 0.9
2369
- args['pool_heater_type'] = HPXML::HeaterTypeGas
2370
- args['pool_heater_annual_therm'] = 500.0
2371
- args['pool_heater_usage_multiplier'] = 0.9
2372
- args['hot_tub_present'] = true
2373
- args['hot_tub_pump_annual_kwh'] = 1000.0
2374
- args['hot_tub_pump_usage_multiplier'] = 0.9
2375
- args['hot_tub_heater_annual_kwh'] = 1300.0
2376
- args['hot_tub_heater_usage_multiplier'] = 0.9
2377
- args['misc_fuel_loads_grill_present'] = true
2378
- args['misc_fuel_loads_grill_fuel_type'] = HPXML::FuelTypePropane
2379
- args['misc_fuel_loads_grill_annual_therm'] = 25.0
2380
- args['misc_fuel_loads_grill_usage_multiplier'] = 0.9
2381
- args['misc_fuel_loads_lighting_present'] = true
2382
- args['misc_fuel_loads_lighting_annual_therm'] = 28.0
2383
- args['misc_fuel_loads_lighting_usage_multiplier'] = 0.9
2384
- args['misc_fuel_loads_fireplace_present'] = true
2385
- args['misc_fuel_loads_fireplace_fuel_type'] = HPXML::FuelTypeWoodCord
2386
- args['misc_fuel_loads_fireplace_annual_therm'] = 55.0
2387
- args['misc_fuel_loads_fireplace_frac_sensible'] = 0.5
2388
- args['misc_fuel_loads_fireplace_frac_latent'] = 0.1
2389
- args['misc_fuel_loads_fireplace_usage_multiplier'] = 0.9
2390
- elsif ['base-misc-loads-none.xml'].include? hpxml_file
2391
- args['misc_plug_loads_television_present'] = false
2392
- args['misc_plug_loads_other_annual_kwh'] = 0.0
2393
- args.delete('misc_plug_loads_other_frac_sensible')
2394
- args.delete('misc_plug_loads_other_frac_latent')
2395
- end
2396
-
2397
- # PV
2398
- if ['base-pv.xml',
2399
- 'base-pv-battery.xml',
2400
- 'base-pv-battery-garage.xml'].include? hpxml_file
2401
- args['pv_system_present'] = true
2402
- args['pv_system_module_type'] = HPXML::PVModuleTypeStandard
2403
- args['pv_system_location'] = HPXML::LocationRoof
2404
- args['pv_system_tracking'] = HPXML::PVTrackingTypeFixed
2405
- args['pv_system_inverter_efficiency'] = 0.96
2406
- args['pv_system_system_losses_fraction'] = 0.14
2407
- args['pv_system_2_present'] = true
2408
- args['pv_system_2_module_type'] = HPXML::PVModuleTypePremium
2409
- args['pv_system_2_location'] = HPXML::LocationRoof
2410
- args['pv_system_2_tracking'] = HPXML::PVTrackingTypeFixed
2411
- args['pv_system_2_array_azimuth'] = 90
2412
- args['pv_system_2_max_power_output'] = 1500
2413
- end
2414
-
2415
- # Battery
2416
- if ['base-battery.xml',
2417
- 'base-misc-generators-battery.xml',
2418
- 'base-pv-battery-garage.xml',
2419
- 'base-pv-generators-battery.xml'].include? hpxml_file
2420
- args['battery_present'] = true
2421
- if hpxml_file == 'base-pv-battery-garage.xml'
2422
- args['battery_location'] = HPXML::LocationGarage
2423
- else
2424
- args['battery_location'] = HPXML::LocationOutside
2425
- end
2426
- args['battery_power'] = 6000
2427
- args['battery_capacity'] = 20
2428
- args['battery_usable_capacity'] = 18
2429
- elsif ['base-pv-battery-round-trip-efficiency.xml'].include? hpxml_file
2430
- args['battery_round_trip_efficiency'] = 0.8
2431
- end
2432
-
2433
- # Simulation Control
2434
- if ['base-simcontrol-calendar-year-custom.xml'].include? hpxml_file
2435
- args['simulation_control_run_period_calendar_year'] = 2010
2436
- elsif ['base-simcontrol-daylight-saving-custom.xml'].include? hpxml_file
2437
- args['simulation_control_daylight_saving_enabled'] = true
2438
- args['simulation_control_daylight_saving_period'] = 'Mar 10 - Nov 6'
2439
- elsif ['base-simcontrol-daylight-saving-disabled.xml'].include? hpxml_file
2440
- args['simulation_control_daylight_saving_enabled'] = false
2441
- elsif ['base-simcontrol-runperiod-1-month.xml'].include? hpxml_file
2442
- args['simulation_control_run_period'] = 'Feb 1 - Feb 28'
2443
- elsif ['base-simcontrol-temperature-capacitance-multiplier.xml'].include? hpxml_file
2444
- args['simulation_control_temperature_capacitance_multiplier'] = 7.0
2445
- elsif ['base-simcontrol-timestep-10-mins.xml'].include? hpxml_file
2446
- args['simulation_control_timestep'] = 10
2447
- elsif ['base-simcontrol-timestep-10-mins-occupancy-stochastic-10-mins.xml'].include? hpxml_file
2448
- args['schedules_filepaths'] = '../../HPXMLtoOpenStudio/resources/schedule_files/occupancy-stochastic-10-mins.csv'
2449
- elsif ['base-simcontrol-timestep-10-mins-occupancy-stochastic-60-mins.xml'].include? hpxml_file
2450
- args['schedules_filepaths'] = '../../HPXMLtoOpenStudio/resources/schedule_files/occupancy-stochastic.csv'
2451
- elsif ['base-simcontrol-timestep-30-mins.xml'].include? hpxml_file
2452
- args['simulation_control_timestep'] = 30
2453
- end
2454
-
2455
- # Occupancy Schedules
2456
- if ['base-schedules-detailed-occupancy-smooth.xml'].include? hpxml_file
2457
- sch_args['hpxml_path'] = args['hpxml_path']
2458
- sch_args['schedules_type'] = 'smooth'
2459
- sch_args['output_csv_path'] = '../../HPXMLtoOpenStudio/resources/schedule_files/occupancy-smooth.csv'
2460
- sch_args['hpxml_output_path'] = sch_args['hpxml_path']
2461
- elsif ['base-schedules-detailed-occupancy-stochastic.xml'].include? hpxml_file
2462
- sch_args['hpxml_path'] = args['hpxml_path']
2463
- sch_args['schedules_type'] = 'stochastic'
2464
- sch_args['output_csv_path'] = '../../HPXMLtoOpenStudio/resources/schedule_files/occupancy-stochastic.csv'
2465
- sch_args['hpxml_output_path'] = sch_args['hpxml_path']
2466
- elsif ['base-schedules-detailed-occupancy-stochastic-vacancy.xml'].include? hpxml_file
2467
- sch_args['hpxml_path'] = args['hpxml_path']
2468
- sch_args['schedules_type'] = 'stochastic'
2469
- sch_args['schedules_vacancy_period'] = 'Dec 1 - Jan 31'
2470
- sch_args['output_csv_path'] = '../../HPXMLtoOpenStudio/resources/schedule_files/occupancy-stochastic-vacancy.csv'
2471
- sch_args['hpxml_output_path'] = sch_args['hpxml_path']
2472
- elsif ['base-schedules-detailed-occupancy-stochastic-10-mins.xml'].include? hpxml_file
2473
- args['schedules_filepaths'] = '../../HPXMLtoOpenStudio/resources/schedule_files/occupancy-stochastic-10-mins.csv'
2474
- elsif ['base-schedules-detailed-all-10-mins.xml'].include? hpxml_file
2475
- sch_args['hpxml_path'] = args['hpxml_path']
2476
- sch_args['schedules_type'] = 'stochastic'
2477
- sch_args['output_csv_path'] = '../../HPXMLtoOpenStudio/resources/schedule_files/occupancy-stochastic-10-mins.csv'
2478
- sch_args['hpxml_output_path'] = sch_args['hpxml_path']
2479
- end
2480
-
2481
- # Setpoint Schedules
2482
- if ['base-schedules-detailed-setpoints.xml'].include? hpxml_file
2483
- args.delete('hvac_control_heating_weekday_setpoint')
2484
- args.delete('hvac_control_heating_weekend_setpoint')
2485
- args.delete('hvac_control_cooling_weekday_setpoint')
2486
- args.delete('hvac_control_cooling_weekend_setpoint')
2487
- args['schedules_filepaths'] = '../../HPXMLtoOpenStudio/resources/schedule_files/setpoints.csv'
2488
- elsif ['base-schedules-detailed-setpoints-daily-schedules.xml'].include? hpxml_file
2489
- args.delete('hvac_control_heating_weekday_setpoint')
2490
- args.delete('hvac_control_heating_weekend_setpoint')
2491
- args.delete('hvac_control_cooling_weekday_setpoint')
2492
- args.delete('hvac_control_cooling_weekend_setpoint')
2493
- args['schedules_filepaths'] = '../../HPXMLtoOpenStudio/resources/schedule_files/setpoints-daily-schedules.csv'
2494
- elsif ['base-schedules-detailed-setpoints-daily-setbacks.xml'].include? hpxml_file
2495
- args.delete('hvac_control_heating_weekday_setpoint')
2496
- args.delete('hvac_control_heating_weekend_setpoint')
2497
- args.delete('hvac_control_cooling_weekday_setpoint')
2498
- args.delete('hvac_control_cooling_weekend_setpoint')
2499
- args['schedules_filepaths'] = '../../HPXMLtoOpenStudio/resources/schedule_files/setpoints-daily-setbacks.csv'
2500
- elsif ['base-schedules-detailed-all-10-mins.xml'].include? hpxml_file
2501
- args.delete('hvac_control_heating_weekday_setpoint')
2502
- args.delete('hvac_control_heating_weekend_setpoint')
2503
- args.delete('hvac_control_cooling_weekday_setpoint')
2504
- args.delete('hvac_control_cooling_weekend_setpoint')
2505
- args['schedules_filepaths'] = '../../HPXMLtoOpenStudio/resources/schedule_files/setpoints-10-mins.csv'
2506
- elsif ['base-hvac-furnace-gas-only-detailed-setpoints.xml'].include? hpxml_file
2507
- args.delete('hvac_control_heating_weekday_setpoint')
2508
- args.delete('hvac_control_heating_weekend_setpoint')
2509
- args['schedules_filepaths'] = '../../HPXMLtoOpenStudio/resources/schedule_files/setpoints-heating-only.csv'
2510
- elsif ['base-hvac-room-ac-only-detailed-setpoints.xml'].include? hpxml_file
2511
- args.delete('hvac_control_cooling_weekday_setpoint')
2512
- args.delete('hvac_control_cooling_weekend_setpoint')
2513
- args['schedules_filepaths'] = '../../HPXMLtoOpenStudio/resources/schedule_files/setpoints-cooling-only.csv'
2514
- end
2515
-
2516
- # Water Heater Schedules
2517
- if ['base-dhw-tank-heat-pump-detailed-setpoints.xml',
2518
- 'base-dhw-indirect-detailed-setpoints.xml',
2519
- 'base-dhw-tank-detailed-setpoints.xml',
2520
- 'base-dhw-tankless-detailed-setpoints.xml'].include? hpxml_file
2521
- args.delete('water_heater_setpoint_temperature')
2522
- args['schedules_filepaths'] = '../../HPXMLtoOpenStudio/resources/schedule_files/water-heater-setpoints.csv'
2523
- elsif ['base-dhw-tank-heat-pump-detailed-operating-modes.xml'].include? hpxml_file
2524
- args.delete('water_heater_setpoint_temperature')
2525
- args['schedules_filepaths'] = '../../HPXMLtoOpenStudio/resources/schedule_files/water-heater-operating-modes.csv'
2526
- elsif ['base-dhw-tank-heat-pump-detailed-schedules.xml'].include? hpxml_file
2527
- args.delete('water_heater_setpoint_temperature')
2528
- args['schedules_filepaths'] = '../../HPXMLtoOpenStudio/resources/schedule_files/water-heater-setpoints.csv, ../../HPXMLtoOpenStudio/resources/schedule_files/water-heater-operating-modes.csv'
2529
- elsif ['base-dhw-tank-model-type-stratified-detailed-occupancy-stochastic.xml'].include? hpxml_file
2530
- sch_args['hpxml_path'] = args['hpxml_path']
2531
- sch_args['schedules_type'] = 'stochastic'
2532
- sch_args['output_csv_path'] = '../../HPXMLtoOpenStudio/resources/schedule_files/occupancy-stochastic.csv'
2533
- sch_args['hpxml_output_path'] = sch_args['hpxml_path']
2534
- elsif ['base-schedules-detailed-all-10-mins.xml'].include? hpxml_file
2535
- args.delete('water_heater_setpoint_temperature')
2536
- args['schedules_filepaths'] += ', ../../HPXMLtoOpenStudio/resources/schedule_files/water-heater-setpoints-10-mins.csv'
2537
- end
2538
-
2539
- # Battery Schedules
2540
- if ['base-battery-scheduled.xml',
2541
- 'base-misc-generators-battery-scheduled.xml',
2542
- 'base-pv-battery-scheduled.xml',
2543
- 'base-pv-generators-battery-scheduled.xml'].include? hpxml_file
2544
- args['schedules_filepaths'] = '../../HPXMLtoOpenStudio/resources/schedule_files/battery.csv'
2545
- end
2546
- end
2547
-
2548
131
  def apply_hpxml_modification_ashrae_140(hpxml)
2549
132
  # Set detailed HPXML values for ASHRAE 140 test files
2550
133
 
2551
- renumber_hpxml_ids(hpxml)
2552
-
2553
134
  # ------------ #
2554
135
  # HPXML Header #
2555
136
  # ------------ #
@@ -2617,6 +198,7 @@ def apply_hpxml_modification_ashrae_140(hpxml)
2617
198
  hpxml.doors[0].area /= 2.0
2618
199
  hpxml.doors << hpxml.doors[0].dup
2619
200
  hpxml.doors[1].azimuth = 0
201
+ hpxml.doors[1].id = 'Door2'
2620
202
  end
2621
203
  hpxml.windows.each do |window|
2622
204
  next if window.overhangs_depth.nil?
@@ -2636,28 +218,16 @@ def apply_hpxml_modification_ashrae_140(hpxml)
2636
218
  # HPXML MiscLoads #
2637
219
  # --------------- #
2638
220
 
2639
- hpxml.plug_loads[0].weekday_fractions = '0.0203, 0.0203, 0.0203, 0.0203, 0.0203, 0.0339, 0.0426, 0.0852, 0.0497, 0.0304, 0.0304, 0.0406, 0.0304, 0.0254, 0.0264, 0.0264, 0.0386, 0.0416, 0.0447, 0.0700, 0.0700, 0.0731, 0.0731, 0.0660'
2640
- hpxml.plug_loads[0].weekend_fractions = '0.0203, 0.0203, 0.0203, 0.0203, 0.0203, 0.0339, 0.0426, 0.0852, 0.0497, 0.0304, 0.0304, 0.0406, 0.0304, 0.0254, 0.0264, 0.0264, 0.0386, 0.0416, 0.0447, 0.0700, 0.0700, 0.0731, 0.0731, 0.0660'
2641
- hpxml.plug_loads[0].monthly_multipliers = '1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0'
2642
-
2643
- # ----- #
2644
- # FINAL #
2645
- # ----- #
2646
-
2647
- renumber_hpxml_ids(hpxml)
221
+ if hpxml.plug_loads[0].kwh_per_year > 0
222
+ hpxml.plug_loads[0].weekday_fractions = '0.0203, 0.0203, 0.0203, 0.0203, 0.0203, 0.0339, 0.0426, 0.0852, 0.0497, 0.0304, 0.0304, 0.0406, 0.0304, 0.0254, 0.0264, 0.0264, 0.0386, 0.0416, 0.0447, 0.0700, 0.0700, 0.0731, 0.0731, 0.0660'
223
+ hpxml.plug_loads[0].weekend_fractions = '0.0203, 0.0203, 0.0203, 0.0203, 0.0203, 0.0339, 0.0426, 0.0852, 0.0497, 0.0304, 0.0304, 0.0406, 0.0304, 0.0254, 0.0264, 0.0264, 0.0386, 0.0416, 0.0447, 0.0700, 0.0700, 0.0731, 0.0731, 0.0660'
224
+ hpxml.plug_loads[0].monthly_multipliers = '1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0'
225
+ end
2648
226
  end
2649
227
 
2650
228
  def apply_hpxml_modification(hpxml_file, hpxml)
2651
229
  # Set detailed HPXML values for sample files
2652
230
 
2653
- if hpxml_file.include? 'split-surfaces'
2654
- (hpxml.roofs + hpxml.rim_joists + hpxml.walls + hpxml.foundation_walls).each do |surface|
2655
- surface.azimuth = nil
2656
- end
2657
- hpxml.collapse_enclosure_surfaces()
2658
- end
2659
- renumber_hpxml_ids(hpxml)
2660
-
2661
231
  # ------------ #
2662
232
  # HPXML Header #
2663
233
  # ------------ #
@@ -2684,6 +254,9 @@ def apply_hpxml_modification(hpxml_file, hpxml)
2684
254
 
2685
255
  # Logic that can only be applied based on the file name
2686
256
  if ['base-schedules-simple.xml',
257
+ 'base-schedules-simple-vacancy.xml',
258
+ 'base-schedules-simple-vacancy-year-round.xml',
259
+ 'base-schedules-simple-power-outage.xml',
2687
260
  'base-misc-loads-large-uncommon.xml',
2688
261
  'base-misc-loads-large-uncommon2.xml'].include? hpxml_file
2689
262
  hpxml.building_occupancy.weekday_fractions = '0.061, 0.061, 0.061, 0.061, 0.061, 0.061, 0.061, 0.053, 0.025, 0.015, 0.015, 0.015, 0.015, 0.015, 0.015, 0.015, 0.018, 0.033, 0.054, 0.054, 0.054, 0.061, 0.061, 0.061'
@@ -2710,6 +283,8 @@ def apply_hpxml_modification(hpxml_file, hpxml)
2710
283
  hpxml.building_construction.conditioned_floor_area -= 400 * 2
2711
284
  hpxml.building_construction.conditioned_building_volume -= 400 * 2 * 8
2712
285
  hpxml.air_infiltration_measurements[0].infiltration_volume = hpxml.building_construction.conditioned_building_volume
286
+ elsif ['base-bldgtype-multifamily-infil-compartmentalization-test.xml'].include? hpxml_file
287
+ hpxml.air_infiltration_measurements[0].a_ext = 0.2
2713
288
  end
2714
289
 
2715
290
  # --------------- #
@@ -2784,7 +359,7 @@ def apply_hpxml_modification(hpxml_file, hpxml)
2784
359
  wall = hpxml.walls.select { |w|
2785
360
  w.interior_adjacent_to == HPXML::LocationLivingSpace &&
2786
361
  w.exterior_adjacent_to == HPXML::LocationOtherHousingUnit
2787
- } [0]
362
+ }[0]
2788
363
  wall.exterior_adjacent_to = adjacent_to
2789
364
  hpxml.floors[0].exterior_adjacent_to = adjacent_to
2790
365
  hpxml.floors[1].exterior_adjacent_to = adjacent_to
@@ -2794,7 +369,7 @@ def apply_hpxml_modification(hpxml_file, hpxml)
2794
369
  hpxml.floors[1].insulation_assembly_r_value = 18.7
2795
370
  end
2796
371
  hpxml.windows.each do |window|
2797
- window.area *= 0.35
372
+ window.area = (window.area * 0.35).round(1)
2798
373
  end
2799
374
  hpxml.doors.add(id: "Door#{hpxml.doors.size + 1}",
2800
375
  wall_idref: wall.id,
@@ -2813,11 +388,8 @@ def apply_hpxml_modification(hpxml_file, hpxml)
2813
388
  wall = hpxml.walls.select { |w|
2814
389
  w.interior_adjacent_to == HPXML::LocationLivingSpace &&
2815
390
  w.exterior_adjacent_to == HPXML::LocationOtherHousingUnit
2816
- } [0]
391
+ }[0]
2817
392
  wall.delete
2818
- hpxml.walls.select.with_index { |w, i| w.id = "Wall#{i + 1}" }
2819
- hpxml.windows.select { |w| w.wall_idref = hpxml.walls[-1].id }
2820
- hpxml.doors.select { |d| d.wall_idref = hpxml.walls[-1].id }
2821
393
  hpxml.walls.add(id: "Wall#{hpxml.walls.size + 1}",
2822
394
  exterior_adjacent_to: HPXML::LocationOtherHeatedSpace,
2823
395
  interior_adjacent_to: HPXML::LocationLivingSpace,
@@ -2855,6 +427,8 @@ def apply_hpxml_modification(hpxml_file, hpxml)
2855
427
  interior_finish_type: HPXML::InteriorFinishGypsumBoard,
2856
428
  insulation_assembly_r_value: 4.0)
2857
429
  hpxml.floors[0].delete
430
+ hpxml.floors[0].id = 'Floor1'
431
+ hpxml.floors[0].insulation_id = 'Floor1Insulation'
2858
432
  hpxml.floors.add(id: "Floor#{hpxml.floors.size + 1}",
2859
433
  exterior_adjacent_to: HPXML::LocationOtherNonFreezingSpace,
2860
434
  interior_adjacent_to: HPXML::LocationLivingSpace,
@@ -2879,7 +453,7 @@ def apply_hpxml_modification(hpxml_file, hpxml)
2879
453
  wall = hpxml.walls.select { |w|
2880
454
  w.interior_adjacent_to == HPXML::LocationLivingSpace &&
2881
455
  w.exterior_adjacent_to == HPXML::LocationOtherMultifamilyBufferSpace
2882
- } [0]
456
+ }[0]
2883
457
  hpxml.windows.add(id: "Window#{hpxml.windows.size + 1}",
2884
458
  area: 50,
2885
459
  azimuth: 270,
@@ -2890,7 +464,7 @@ def apply_hpxml_modification(hpxml_file, hpxml)
2890
464
  wall = hpxml.walls.select { |w|
2891
465
  w.interior_adjacent_to == HPXML::LocationLivingSpace &&
2892
466
  w.exterior_adjacent_to == HPXML::LocationOtherHeatedSpace
2893
- } [0]
467
+ }[0]
2894
468
  hpxml.doors.add(id: "Door#{hpxml.doors.size + 1}",
2895
469
  wall_idref: wall.id,
2896
470
  area: 20,
@@ -2899,7 +473,7 @@ def apply_hpxml_modification(hpxml_file, hpxml)
2899
473
  wall = hpxml.walls.select { |w|
2900
474
  w.interior_adjacent_to == HPXML::LocationLivingSpace &&
2901
475
  w.exterior_adjacent_to == HPXML::LocationOtherHousingUnit
2902
- } [0]
476
+ }[0]
2903
477
  hpxml.doors.add(id: "Door#{hpxml.doors.size + 1}",
2904
478
  wall_idref: wall.id,
2905
479
  area: 20,
@@ -3124,6 +698,7 @@ def apply_hpxml_modification(hpxml_file, hpxml)
3124
698
  'base-hvac-ducts-area-fractions.xml'].include? hpxml_file
3125
699
  hpxml.rim_joists << hpxml.rim_joists[-1].dup
3126
700
  hpxml.rim_joists[-1].id = "RimJoist#{hpxml.rim_joists.size}"
701
+ hpxml.rim_joists[-1].insulation_id = "RimJoist#{hpxml.rim_joists.size}Insulation"
3127
702
  hpxml.rim_joists[-1].interior_adjacent_to = HPXML::LocationLivingSpace
3128
703
  hpxml.rim_joists[-1].area = 116
3129
704
  elsif ['base-foundation-conditioned-basement-wall-insulation.xml'].include? hpxml_file
@@ -3285,19 +860,7 @@ def apply_hpxml_modification(hpxml_file, hpxml)
3285
860
  exterior_adjacent_to: HPXML::LocationGround,
3286
861
  interior_adjacent_to: HPXML::LocationBasementConditioned,
3287
862
  height: 4,
3288
- area: 120,
3289
- thickness: 8,
3290
- depth_below_grade: 3,
3291
- interior_finish_type: HPXML::InteriorFinishGypsumBoard,
3292
- insulation_interior_r_value: 0,
3293
- insulation_exterior_distance_to_top: 0,
3294
- insulation_exterior_distance_to_bottom: 4,
3295
- insulation_exterior_r_value: 8.9)
3296
- hpxml.foundation_walls.add(id: "FoundationWall#{hpxml.foundation_walls.size + 1}",
3297
- exterior_adjacent_to: HPXML::LocationGround,
3298
- interior_adjacent_to: HPXML::LocationBasementConditioned,
3299
- height: 4,
3300
- area: 80,
863
+ area: 200,
3301
864
  thickness: 8,
3302
865
  depth_below_grade: 3,
3303
866
  interior_finish_type: HPXML::InteriorFinishGypsumBoard,
@@ -3324,20 +887,9 @@ def apply_hpxml_modification(hpxml_file, hpxml)
3324
887
  carpet_r_value: 0)
3325
888
  hpxml.slabs.add(id: "Slab#{hpxml.slabs.size + 1}",
3326
889
  interior_adjacent_to: HPXML::LocationBasementConditioned,
3327
- area: 405,
3328
- thickness: 4,
3329
- exposed_perimeter: 45,
3330
- perimeter_insulation_depth: 1,
3331
- under_slab_insulation_width: 0,
3332
- perimeter_insulation_r_value: 5,
3333
- under_slab_insulation_r_value: 0,
3334
- carpet_fraction: 0,
3335
- carpet_r_value: 0)
3336
- hpxml.slabs.add(id: "Slab#{hpxml.slabs.size + 1}",
3337
- interior_adjacent_to: HPXML::LocationBasementConditioned,
3338
- area: 270,
890
+ area: 675,
3339
891
  thickness: 4,
3340
- exposed_perimeter: 30,
892
+ exposed_perimeter: 75,
3341
893
  perimeter_insulation_depth: 1,
3342
894
  under_slab_insulation_width: 0,
3343
895
  perimeter_insulation_r_value: 5,
@@ -3438,6 +990,7 @@ def apply_hpxml_modification(hpxml_file, hpxml)
3438
990
  end
3439
991
  hpxml.floors << ceiling
3440
992
  hpxml.floors[-1].id = "Floor#{hpxml.floors.size}"
993
+ hpxml.floors[-1].insulation_id = "Floor#{hpxml.floors.size}Insulation"
3441
994
  elsif ['base-enclosure-walltypes.xml'].include? hpxml_file
3442
995
  hpxml.rim_joists.reverse_each do |rim_joist|
3443
996
  rim_joist.delete
@@ -3510,6 +1063,7 @@ def apply_hpxml_modification(hpxml_file, hpxml)
3510
1063
  gable_walls.each do |gable_wall|
3511
1064
  hpxml.walls << gable_wall
3512
1065
  hpxml.walls[-1].id = "Wall#{hpxml.walls.size}"
1066
+ hpxml.walls[-1].insulation_id = "Wall#{hpxml.walls.size}Insulation"
3513
1067
  hpxml.attics[0].attached_to_wall_idrefs << hpxml.walls[-1].id
3514
1068
  end
3515
1069
  hpxml.windows.reverse_each do |window|
@@ -3585,138 +1139,6 @@ def apply_hpxml_modification(hpxml_file, hpxml)
3585
1139
  insulation_assembly_r_value: roof_type[0] == HPXML::RoofTypeEPS ? 7.0 : 2.3)
3586
1140
  hpxml.attics[0].attached_to_roof_idrefs << hpxml.roofs[-1].id
3587
1141
  end
3588
- elsif ['base-enclosure-split-surfaces.xml',
3589
- 'base-enclosure-split-surfaces2.xml'].include? hpxml_file
3590
- for n in 1..hpxml.roofs.size
3591
- hpxml.roofs[n - 1].area /= 9.0
3592
- for i in 2..9
3593
- hpxml.roofs << hpxml.roofs[n - 1].dup
3594
- hpxml.roofs[-1].id += "_#{i}"
3595
- if hpxml_file == 'base-enclosure-split-surfaces2.xml'
3596
- hpxml.roofs[-1].insulation_assembly_r_value += 0.01 * i
3597
- end
3598
- end
3599
- end
3600
- hpxml.roofs << hpxml.roofs[-1].dup
3601
- hpxml.roofs[-1].id += '_tiny'
3602
- hpxml.roofs[-1].area = 0.05
3603
- for n in 1..hpxml.rim_joists.size
3604
- hpxml.rim_joists[n - 1].area /= 9.0
3605
- for i in 2..9
3606
- hpxml.rim_joists << hpxml.rim_joists[n - 1].dup
3607
- hpxml.rim_joists[-1].id += "_#{i}"
3608
- if hpxml_file == 'base-enclosure-split-surfaces2.xml'
3609
- hpxml.rim_joists[-1].insulation_assembly_r_value += 0.01 * i
3610
- end
3611
- end
3612
- end
3613
- hpxml.rim_joists << hpxml.rim_joists[-1].dup
3614
- hpxml.rim_joists[-1].id += '_tiny'
3615
- hpxml.rim_joists[-1].area = 0.05
3616
- for n in 1..hpxml.walls.size
3617
- hpxml.walls[n - 1].area /= 9.0
3618
- for i in 2..9
3619
- hpxml.walls << hpxml.walls[n - 1].dup
3620
- hpxml.walls[-1].id += "_#{i}"
3621
- if hpxml_file == 'base-enclosure-split-surfaces2.xml'
3622
- hpxml.walls[-1].insulation_assembly_r_value += 0.01 * i
3623
- end
3624
- end
3625
- end
3626
- hpxml.walls << hpxml.walls[-1].dup
3627
- hpxml.walls[-1].id += '_tiny'
3628
- hpxml.walls[-1].area = 0.05
3629
- for n in 1..hpxml.foundation_walls.size
3630
- hpxml.foundation_walls[n - 1].area /= 9.0
3631
- for i in 2..9
3632
- hpxml.foundation_walls << hpxml.foundation_walls[n - 1].dup
3633
- hpxml.foundation_walls[-1].id += "_#{i}"
3634
- if hpxml_file == 'base-enclosure-split-surfaces2.xml'
3635
- hpxml.foundation_walls[-1].insulation_exterior_r_value += 0.01 * i
3636
- end
3637
- end
3638
- end
3639
- hpxml.foundation_walls << hpxml.foundation_walls[-1].dup
3640
- hpxml.foundation_walls[-1].id += '_tiny'
3641
- hpxml.foundation_walls[-1].area = 0.05
3642
- for n in 1..hpxml.floors.size
3643
- hpxml.floors[n - 1].area /= 9.0
3644
- for i in 2..9
3645
- hpxml.floors << hpxml.floors[n - 1].dup
3646
- hpxml.floors[-1].id += "_#{i}"
3647
- if hpxml_file == 'base-enclosure-split-surfaces2.xml'
3648
- hpxml.floors[-1].insulation_assembly_r_value += 0.01 * i
3649
- end
3650
- end
3651
- end
3652
- hpxml.floors << hpxml.floors[-1].dup
3653
- hpxml.floors[-1].id += '_tiny'
3654
- hpxml.floors[-1].area = 0.05
3655
- for n in 1..hpxml.slabs.size
3656
- hpxml.slabs[n - 1].area /= 9.0
3657
- hpxml.slabs[n - 1].exposed_perimeter /= 9.0
3658
- for i in 2..9
3659
- hpxml.slabs << hpxml.slabs[n - 1].dup
3660
- hpxml.slabs[-1].id += "_#{i}"
3661
- if hpxml_file == 'base-enclosure-split-surfaces2.xml'
3662
- hpxml.slabs[-1].perimeter_insulation_depth += 0.01 * i
3663
- hpxml.slabs[-1].perimeter_insulation_r_value += 0.01 * i
3664
- end
3665
- end
3666
- end
3667
- hpxml.slabs << hpxml.slabs[-1].dup
3668
- hpxml.slabs[-1].id += '_tiny'
3669
- hpxml.slabs[-1].area = 0.05
3670
- for n in 1..hpxml.windows.size
3671
- hpxml.windows[n - 1].area /= 9.0
3672
- hpxml.windows[n - 1].fraction_operable = 0.0
3673
- for i in 2..9
3674
- hpxml.windows << hpxml.windows[n - 1].dup
3675
- hpxml.windows[-1].id += "_#{i}"
3676
- hpxml.windows[-1].wall_idref += "_#{i}"
3677
- if i >= 4
3678
- hpxml.windows[-1].fraction_operable = 1.0
3679
- end
3680
- next unless hpxml_file == 'base-enclosure-split-surfaces2.xml'
3681
-
3682
- hpxml.windows[-1].ufactor += 0.01 * i
3683
- hpxml.windows[-1].interior_shading_factor_summer -= 0.02 * i
3684
- hpxml.windows[-1].interior_shading_factor_winter -= 0.01 * i
3685
- end
3686
- end
3687
- hpxml.windows << hpxml.windows[-1].dup
3688
- hpxml.windows[-1].id += '_tiny'
3689
- hpxml.windows[-1].area = 0.05
3690
- for n in 1..hpxml.skylights.size
3691
- hpxml.skylights[n - 1].area /= 9.0
3692
- for i in 2..9
3693
- hpxml.skylights << hpxml.skylights[n - 1].dup
3694
- hpxml.skylights[-1].id += "_#{i}"
3695
- hpxml.skylights[-1].roof_idref += "_#{i}"
3696
- next unless hpxml_file == 'base-enclosure-split-surfaces2.xml'
3697
-
3698
- hpxml.skylights[-1].ufactor += 0.01 * i
3699
- hpxml.skylights[-1].interior_shading_factor_summer -= 0.02 * i
3700
- hpxml.skylights[-1].interior_shading_factor_winter -= 0.01 * i
3701
- end
3702
- end
3703
- hpxml.skylights << hpxml.skylights[-1].dup
3704
- hpxml.skylights[-1].id += '_tiny'
3705
- hpxml.skylights[-1].area = 0.05
3706
- for n in 1..hpxml.doors.size
3707
- hpxml.doors[n - 1].area /= 9.0
3708
- for i in 2..9
3709
- hpxml.doors << hpxml.doors[n - 1].dup
3710
- hpxml.doors[-1].id += "_#{i}"
3711
- hpxml.doors[-1].wall_idref += "_#{i}"
3712
- if hpxml_file == 'base-enclosure-split-surfaces2.xml'
3713
- hpxml.doors[-1].r_value += 0.01 * i
3714
- end
3715
- end
3716
- end
3717
- hpxml.doors << hpxml.doors[-1].dup
3718
- hpxml.doors[-1].id += '_tiny'
3719
- hpxml.doors[-1].area = 0.05
3720
1142
  elsif ['base-enclosure-overhangs.xml'].include? hpxml_file
3721
1143
  # Test relaxed overhangs validation; https://github.com/NREL/OpenStudio-HPXML/issues/866
3722
1144
  hpxml.windows.each do |window|
@@ -3732,13 +1154,17 @@ def apply_hpxml_modification(hpxml_file, hpxml)
3732
1154
  grg_wall = hpxml.walls.select { |w|
3733
1155
  w.interior_adjacent_to == HPXML::LocationGarage &&
3734
1156
  w.exterior_adjacent_to == HPXML::LocationOutside
3735
- } [0]
1157
+ }[0]
3736
1158
  hpxml.doors.add(id: "Door#{hpxml.doors.size + 1}",
3737
1159
  wall_idref: grg_wall.id,
3738
1160
  area: 70,
3739
1161
  azimuth: 180,
3740
1162
  r_value: 4.4)
3741
1163
  end
1164
+ if ['base-misc-neighbor-shading-bldgtype-multifamily.xml'].include? hpxml_file
1165
+ wall = hpxml.walls.select { |w| w.azimuth == hpxml.neighbor_buildings[0].azimuth }[0]
1166
+ wall.exterior_adjacent_to = HPXML::LocationOtherHeatedSpace
1167
+ end
3742
1168
 
3743
1169
  # ---------- #
3744
1170
  # HPXML HVAC #
@@ -3956,9 +1382,6 @@ def apply_hpxml_modification(hpxml_file, hpxml)
3956
1382
  hpxml.heating_systems[i].fraction_heat_load_served = 0.35
3957
1383
  end
3958
1384
  end
3959
- elsif ['base-hvac-dual-fuel-air-to-air-heat-pump-1-speed-electric.xml'].include? hpxml_file
3960
- hpxml.heat_pumps[0].backup_heating_efficiency_afue = hpxml.heat_pumps[0].backup_heating_efficiency_percent
3961
- hpxml.heat_pumps[0].backup_heating_efficiency_percent = nil
3962
1385
  elsif ['base-enclosure-2stories.xml',
3963
1386
  'base-enclosure-2stories-garage.xml',
3964
1387
  'base-hvac-ducts-area-fractions.xml'].include? hpxml_file
@@ -3982,6 +1405,11 @@ def apply_hpxml_modification(hpxml_file, hpxml)
3982
1405
  hpxml.hvac_distributions[0].conditioned_floor_area_served = 4050.0
3983
1406
  hpxml.hvac_distributions[0].number_of_return_registers = 3
3984
1407
  end
1408
+ elsif ['base-hvac-ducts-effective-rvalue.xml'].include? hpxml_file
1409
+ hpxml.hvac_distributions[0].ducts[0].duct_insulation_r_value = nil
1410
+ hpxml.hvac_distributions[0].ducts[1].duct_insulation_r_value = nil
1411
+ hpxml.hvac_distributions[0].ducts[0].duct_effective_r_value = 4.5
1412
+ hpxml.hvac_distributions[0].ducts[1].duct_effective_r_value = 1.7
3985
1413
  elsif ['base-hvac-multiple.xml'].include? hpxml_file
3986
1414
  hpxml.hvac_distributions.reverse_each do |hvac_distribution|
3987
1415
  hvac_distribution.delete
@@ -4234,6 +1662,21 @@ def apply_hpxml_modification(hpxml_file, hpxml)
4234
1662
  hpxml.hvac_distributions[0].ducts[0].duct_surface_area_multiplier = 0.5
4235
1663
  hpxml.hvac_distributions[0].ducts[1].duct_surface_area_multiplier = 1.5
4236
1664
  end
1665
+ if ['base-hvac-autosize-sizing-controls.xml'].include? hpxml_file
1666
+ hpxml.header.manualj_heating_design_temp = 0
1667
+ hpxml.header.manualj_cooling_design_temp = 100
1668
+ hpxml.header.manualj_heating_setpoint = 60
1669
+ hpxml.header.manualj_cooling_setpoint = 80
1670
+ hpxml.header.manualj_humidity_setpoint = 0.55
1671
+ hpxml.header.manualj_internal_loads_sensible = 4000
1672
+ hpxml.header.manualj_internal_loads_latent = 200
1673
+ hpxml.header.manualj_num_occupants = 5
1674
+ end
1675
+ if hpxml_file.include? 'heating-capacity-17f'
1676
+ hpxml.heat_pumps[0].heating_capacity_17F = hpxml.heat_pumps[0].heating_capacity * hpxml.heat_pumps[0].heating_capacity_retention_fraction
1677
+ hpxml.heat_pumps[0].heating_capacity_retention_fraction = nil
1678
+ hpxml.heat_pumps[0].heating_capacity_retention_temp = nil
1679
+ end
4237
1680
 
4238
1681
  # ------------------ #
4239
1682
  # HPXML WaterHeating #
@@ -4241,6 +1684,9 @@ def apply_hpxml_modification(hpxml_file, hpxml)
4241
1684
 
4242
1685
  # Logic that can only be applied based on the file name
4243
1686
  if ['base-schedules-simple.xml',
1687
+ 'base-schedules-simple-vacancy.xml',
1688
+ 'base-schedules-simple-vacancy-year-round.xml',
1689
+ 'base-schedules-simple-power-outage.xml',
4244
1690
  'base-misc-loads-large-uncommon.xml',
4245
1691
  'base-misc-loads-large-uncommon2.xml'].include? hpxml_file
4246
1692
  hpxml.water_heating.water_fixtures_weekday_fractions = '0.012, 0.006, 0.004, 0.005, 0.010, 0.034, 0.078, 0.087, 0.080, 0.067, 0.056, 0.047, 0.040, 0.035, 0.033, 0.031, 0.039, 0.051, 0.060, 0.060, 0.055, 0.048, 0.038, 0.026'
@@ -4480,7 +1926,7 @@ def apply_hpxml_modification(hpxml_file, hpxml)
4480
1926
  fan_power: 37.5,
4481
1927
  used_for_whole_building_ventilation: true,
4482
1928
  cfis_addtl_runtime_operating_mode: HPXML::CFISModeSupplementalFan,
4483
- cfis_supplemental_fan_idref: hpxml.ventilation_fans.select { |f| f.fan_type == HPXML::MechVentTypeExhaust }[0].id,
1929
+ cfis_supplemental_fan_idref: hpxml.ventilation_fans.find { |f| f.fan_type == HPXML::MechVentTypeExhaust }.id,
4484
1930
  distribution_system_idref: 'HVACDistribution2')
4485
1931
  # Test ventilation system w/ zero airflow and hours
4486
1932
  hpxml.ventilation_fans.add(id: "VentilationFan#{hpxml.ventilation_fans.size + 1}",
@@ -4530,17 +1976,17 @@ def apply_hpxml_modification(hpxml_file, hpxml)
4530
1976
  hpxml.generators.add(id: "Generator#{hpxml.generators.size + 1}",
4531
1977
  fuel_type: HPXML::FuelTypeNaturalGas,
4532
1978
  annual_consumption_kbtu: 8500,
4533
- annual_output_kwh: 500)
1979
+ annual_output_kwh: 1200)
4534
1980
  hpxml.generators.add(id: "Generator#{hpxml.generators.size + 1}",
4535
1981
  fuel_type: HPXML::FuelTypeOil,
4536
1982
  annual_consumption_kbtu: 8500,
4537
- annual_output_kwh: 500)
1983
+ annual_output_kwh: 1200)
4538
1984
  elsif ['base-bldgtype-multifamily-shared-generator.xml'].include? hpxml_file
4539
1985
  hpxml.generators.add(id: "Generator#{hpxml.generators.size + 1}",
4540
1986
  is_shared_system: true,
4541
1987
  fuel_type: HPXML::FuelTypePropane,
4542
1988
  annual_consumption_kbtu: 85000,
4543
- annual_output_kwh: 5000,
1989
+ annual_output_kwh: 12000,
4544
1990
  number_of_bedrooms_served: 18)
4545
1991
  end
4546
1992
 
@@ -4565,6 +2011,9 @@ def apply_hpxml_modification(hpxml_file, hpxml)
4565
2011
 
4566
2012
  # Logic that can only be applied based on the file name
4567
2013
  if ['base-schedules-simple.xml',
2014
+ 'base-schedules-simple-vacancy.xml',
2015
+ 'base-schedules-simple-vacancy-year-round.xml',
2016
+ 'base-schedules-simple-power-outage.xml',
4568
2017
  'base-misc-loads-large-uncommon.xml',
4569
2018
  'base-misc-loads-large-uncommon2.xml'].include? hpxml_file
4570
2019
  hpxml.clothes_washers[0].weekday_fractions = '0.009, 0.007, 0.004, 0.004, 0.007, 0.011, 0.022, 0.049, 0.073, 0.086, 0.084, 0.075, 0.067, 0.060, 0.049, 0.052, 0.050, 0.049, 0.049, 0.049, 0.049, 0.047, 0.032, 0.017'
@@ -4649,6 +2098,9 @@ def apply_hpxml_modification(hpxml_file, hpxml)
4649
2098
  hpxml.lighting.holiday_weekday_fractions = '0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.008, 0.098, 0.168, 0.194, 0.284, 0.192, 0.037, 0.019'
4650
2099
  hpxml.lighting.holiday_weekend_fractions = '0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.008, 0.098, 0.168, 0.194, 0.284, 0.192, 0.037, 0.019'
4651
2100
  elsif ['base-schedules-simple.xml',
2101
+ 'base-schedules-simple-vacancy.xml',
2102
+ 'base-schedules-simple-vacancy-year-round.xml',
2103
+ 'base-schedules-simple-power-outage.xml',
4652
2104
  'base-misc-loads-large-uncommon.xml',
4653
2105
  'base-misc-loads-large-uncommon2.xml'].include? hpxml_file
4654
2106
  hpxml.lighting.interior_weekday_fractions = '0.124, 0.074, 0.050, 0.050, 0.053, 0.140, 0.330, 0.420, 0.430, 0.424, 0.411, 0.394, 0.382, 0.378, 0.378, 0.379, 0.386, 0.412, 0.484, 0.619, 0.783, 0.880, 0.597, 0.249'
@@ -4660,6 +2112,35 @@ def apply_hpxml_modification(hpxml_file, hpxml)
4660
2112
  hpxml.lighting.garage_weekday_fractions = '0.046, 0.046, 0.046, 0.046, 0.046, 0.037, 0.035, 0.034, 0.033, 0.028, 0.022, 0.015, 0.012, 0.011, 0.011, 0.012, 0.019, 0.037, 0.049, 0.065, 0.091, 0.105, 0.091, 0.063'
4661
2113
  hpxml.lighting.garage_weekend_fractions = '0.046, 0.046, 0.045, 0.045, 0.046, 0.045, 0.044, 0.041, 0.036, 0.03, 0.024, 0.016, 0.012, 0.011, 0.011, 0.012, 0.019, 0.038, 0.048, 0.06, 0.083, 0.098, 0.085, 0.059'
4662
2114
  hpxml.lighting.garage_monthly_multipliers = '1.248, 1.257, 0.993, 0.989, 0.993, 0.827, 0.821, 0.821, 0.827, 0.99, 0.987, 1.248'
2115
+ elsif ['base-lighting-kwh-per-year.xml'].include? hpxml_file
2116
+ ltg_kwhs_per_year = { HPXML::LocationInterior => 1500,
2117
+ HPXML::LocationExterior => 150,
2118
+ HPXML::LocationGarage => 0 }
2119
+ hpxml.lighting_groups.clear
2120
+ ltg_kwhs_per_year.each do |location, kwh_per_year|
2121
+ hpxml.lighting_groups.add(id: "LightingGroup#{hpxml.lighting_groups.size + 1}",
2122
+ location: location,
2123
+ kwh_per_year: kwh_per_year)
2124
+ end
2125
+ elsif ['base-lighting-mixed.xml'].include? hpxml_file
2126
+ hpxml.lighting_groups.reverse_each do |lg|
2127
+ next unless lg.location == HPXML::LocationExterior
2128
+
2129
+ lg.delete
2130
+ end
2131
+ hpxml.lighting_groups.each_with_index do |lg, i|
2132
+ lg.id = "LightingGroup#{i + 1}"
2133
+ end
2134
+ hpxml.lighting_groups.add(id: "LightingGroup#{hpxml.lighting_groups.size + 1}",
2135
+ location: HPXML::LocationExterior,
2136
+ kwh_per_year: 150)
2137
+ elsif ['base-foundation-basement-garage.xml'].include? hpxml_file
2138
+ int_lighting_groups = hpxml.lighting_groups.select { |lg| lg.location == HPXML::LocationInterior }
2139
+ int_lighting_groups.each do |lg|
2140
+ hpxml.lighting_groups << lg.dup
2141
+ hpxml.lighting_groups[-1].location = HPXML::LocationGarage
2142
+ hpxml.lighting_groups[-1].id = "LightingGroup#{hpxml.lighting_groups.size}"
2143
+ end
4663
2144
  end
4664
2145
 
4665
2146
  # --------------- #
@@ -4668,6 +2149,9 @@ def apply_hpxml_modification(hpxml_file, hpxml)
4668
2149
 
4669
2150
  # Logic that can only be applied based on the file name
4670
2151
  if ['base-schedules-simple.xml',
2152
+ 'base-schedules-simple-vacancy.xml',
2153
+ 'base-schedules-simple-vacancy-year-round.xml',
2154
+ 'base-schedules-simple-power-outage.xml',
4671
2155
  'base-misc-loads-large-uncommon.xml',
4672
2156
  'base-misc-loads-large-uncommon2.xml'].include? hpxml_file
4673
2157
  hpxml.plug_loads[0].weekday_fractions = '0.045, 0.019, 0.01, 0.001, 0.001, 0.001, 0.005, 0.009, 0.018, 0.026, 0.032, 0.038, 0.04, 0.041, 0.043, 0.045, 0.05, 0.055, 0.07, 0.085, 0.097, 0.108, 0.089, 0.07'
@@ -4698,91 +2182,6 @@ def apply_hpxml_modification(hpxml_file, hpxml)
4698
2182
  hpxml.fuel_loads[2].weekend_fractions = '0.044, 0.023, 0.019, 0.015, 0.016, 0.018, 0.026, 0.033, 0.033, 0.032, 0.033, 0.033, 0.032, 0.032, 0.032, 0.033, 0.045, 0.057, 0.066, 0.076, 0.081, 0.086, 0.075, 0.065'
4699
2183
  hpxml.fuel_loads[2].monthly_multipliers = '1.154, 1.161, 1.013, 1.010, 1.013, 0.888, 0.883, 0.883, 0.888, 0.978, 0.974, 1.154'
4700
2184
  end
4701
-
4702
- # ----- #
4703
- # FINAL #
4704
- # ----- #
4705
-
4706
- # Collapse some surfaces whose azimuth is a minor effect to simplify HPXMLs.
4707
- if not hpxml_file.include? 'split-surfaces'
4708
- (hpxml.roofs + hpxml.rim_joists + hpxml.walls + hpxml.foundation_walls).each do |surface|
4709
- surface.azimuth = nil
4710
- end
4711
- hpxml.collapse_enclosure_surfaces()
4712
- end
4713
-
4714
- # After surfaces are collapsed, round all areas
4715
- (hpxml.roofs +
4716
- hpxml.rim_joists +
4717
- hpxml.walls +
4718
- hpxml.foundation_walls +
4719
- hpxml.floors +
4720
- hpxml.slabs +
4721
- hpxml.windows +
4722
- hpxml.skylights +
4723
- hpxml.doors).each do |s|
4724
- next if s.area.nil?
4725
-
4726
- s.area = s.area.round(1)
4727
- end
4728
-
4729
- renumber_hpxml_ids(hpxml)
4730
- end
4731
-
4732
- def renumber_hpxml_ids(hpxml)
4733
- # Renumber surfaces
4734
- { hpxml.walls => 'Wall',
4735
- hpxml.foundation_walls => 'FoundationWall',
4736
- hpxml.rim_joists => 'RimJoist',
4737
- hpxml.floors => 'Floor',
4738
- hpxml.roofs => 'Roof',
4739
- hpxml.slabs => 'Slab',
4740
- hpxml.windows => 'Window',
4741
- hpxml.doors => 'Door',
4742
- hpxml.skylights => 'Skylight' }.each do |surfs, surf_name|
4743
- surfs.each_with_index do |surf, i|
4744
- (hpxml.attics + hpxml.foundations).each do |attic_or_fnd|
4745
- if attic_or_fnd.respond_to?(:attached_to_roof_idrefs) && !attic_or_fnd.attached_to_roof_idrefs.nil? && !attic_or_fnd.attached_to_roof_idrefs.delete(surf.id).nil?
4746
- attic_or_fnd.attached_to_roof_idrefs << "#{surf_name}#{i + 1}"
4747
- end
4748
- if attic_or_fnd.respond_to?(:attached_to_wall_idrefs) && !attic_or_fnd.attached_to_wall_idrefs.nil? && !attic_or_fnd.attached_to_wall_idrefs.delete(surf.id).nil?
4749
- attic_or_fnd.attached_to_wall_idrefs << "#{surf_name}#{i + 1}"
4750
- end
4751
- if attic_or_fnd.respond_to?(:attached_to_rim_joist_idrefs) && !attic_or_fnd.attached_to_rim_joist_idrefs.nil? && !attic_or_fnd.attached_to_rim_joist_idrefs.delete(surf.id).nil?
4752
- attic_or_fnd.attached_to_rim_joist_idrefs << "#{surf_name}#{i + 1}"
4753
- end
4754
- if attic_or_fnd.respond_to?(:attached_to_floor_idrefs) && !attic_or_fnd.attached_to_floor_idrefs.nil? && !attic_or_fnd.attached_to_floor_idrefs.delete(surf.id).nil?
4755
- attic_or_fnd.attached_to_floor_idrefs << "#{surf_name}#{i + 1}"
4756
- end
4757
- if attic_or_fnd.respond_to?(:attached_to_slab_idrefs) && !attic_or_fnd.attached_to_slab_idrefs.nil? && !attic_or_fnd.attached_to_slab_idrefs.delete(surf.id).nil?
4758
- attic_or_fnd.attached_to_slab_idrefs << "#{surf_name}#{i + 1}"
4759
- end
4760
- if attic_or_fnd.respond_to?(:attached_to_foundation_wall_idrefs) && !attic_or_fnd.attached_to_foundation_wall_idrefs.nil? && !attic_or_fnd.attached_to_foundation_wall_idrefs.delete(surf.id).nil?
4761
- attic_or_fnd.attached_to_foundation_wall_idrefs << "#{surf_name}#{i + 1}"
4762
- end
4763
- end
4764
- (hpxml.windows + hpxml.doors).each do |subsurf|
4765
- if subsurf.respond_to?(:wall_idref) && (subsurf.wall_idref == surf.id)
4766
- subsurf.wall_idref = "#{surf_name}#{i + 1}"
4767
- end
4768
- end
4769
- hpxml.skylights.each do |subsurf|
4770
- if subsurf.respond_to?(:roof_idref) && (subsurf.roof_idref == surf.id)
4771
- subsurf.roof_idref = "#{surf_name}#{i + 1}"
4772
- end
4773
- end
4774
- surf.id = "#{surf_name}#{i + 1}"
4775
- if surf.respond_to? :insulation_id
4776
- surf.insulation_id = "#{surf_name}#{i + 1}Insulation"
4777
- end
4778
- if surf.respond_to? :perimeter_insulation_id
4779
- surf.perimeter_insulation_id = "#{surf_name}#{i + 1}PerimeterInsulation"
4780
- end
4781
- if surf.respond_to? :under_slab_insulation_id
4782
- surf.under_slab_insulation_id = "#{surf_name}#{i + 1}UnderSlabInsulation"
4783
- end
4784
- end
4785
- end
4786
2185
  end
4787
2186
 
4788
2187
  def download_utility_rates
@@ -4815,7 +2214,7 @@ def download_utility_rates
4815
2214
  exit!
4816
2215
  end
4817
2216
 
4818
- command_list = [:update_measures, :update_hpxmls, :cache_weather, :create_release_zips, :download_utility_rates]
2217
+ command_list = [:update_measures, :update_hpxmls, :create_release_zips, :download_utility_rates]
4819
2218
 
4820
2219
  def display_usage(command_list)
4821
2220
  puts "Usage: openstudio #{File.basename(__FILE__)} [COMMAND]\nCommands:\n " + command_list.join("\n ")
@@ -4865,7 +2264,7 @@ if ARGV[0].to_sym == :update_measures
4865
2264
  'Style/SelfAssignment',
4866
2265
  'Style/StringLiterals',
4867
2266
  'Style/StringLiteralsInInterpolation']
4868
- commands = ["\"require 'rubocop/rake_task'\"",
2267
+ commands = ["\"require 'rubocop/rake_task' \"",
4869
2268
  "\"RuboCop::RakeTask.new(:rubocop) do |t| t.options = ['--auto-correct', '--format', 'simple', '--only', '#{cops.join(',')}'] end\"",
4870
2269
  '"Rake.application[:rubocop].invoke"']
4871
2270
  command = "#{OpenStudio.getOpenStudioCLI} -e #{commands.join(' -e ')}"
@@ -4926,26 +2325,10 @@ if ARGV[0].to_sym == :update_hpxmls
4926
2325
  ENV['HOMEDRIVE'] = 'C:\\' if !ENV['HOMEDRIVE'].nil? && ENV['HOMEDRIVE'].start_with?('U:')
4927
2326
 
4928
2327
  # Create sample/test HPXMLs
4929
- create_hpxmls()
4930
- end
4931
-
4932
- if ARGV[0].to_sym == :cache_weather
4933
2328
  OpenStudio::Logger.instance.standardOutLogger.setLogLevel(OpenStudio::Fatal)
4934
- runner = OpenStudio::Measure::OSRunner.new(OpenStudio::WorkflowJSON.new)
4935
- puts 'Creating cache *.csv for weather files...'
4936
-
4937
- Dir['weather/*.epw'].each do |epw|
4938
- next if File.exist? epw.gsub('.epw', '.cache')
4939
-
4940
- puts "Processing #{epw}..."
4941
- model = OpenStudio::Model::Model.new
4942
- epw_file = OpenStudio::EpwFile.new(epw)
4943
- OpenStudio::Model::WeatherFile.setWeatherFile(model, epw_file).get
4944
- weather = WeatherProcess.new(model, runner)
4945
- File.open(epw.gsub('.epw', '-cache.csv'), 'wb') do |file|
4946
- weather.dump_to_csv(file)
4947
- end
4948
- end
2329
+ t = Time.now
2330
+ create_hpxmls()
2331
+ puts "Completed in #{(Time.now - t).round(1)}s"
4949
2332
  end
4950
2333
 
4951
2334
  if ARGV[0].to_sym == :download_utility_rates