urbanopt-cli 0.8.3 → 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (649) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +5 -6
  3. data/CHANGELOG.md +14 -0
  4. data/CMakeLists.txt +7 -7
  5. data/Gemfile +3 -1
  6. data/README.md +9 -0
  7. data/example_files/Gemfile +23 -16
  8. data/example_files/Gemfile.lock +177 -0
  9. data/example_files/base_workflow_res.osw +57 -14
  10. data/example_files/class_project_coincident.json +1322 -0
  11. data/example_files/class_project_diverse.json +1322 -0
  12. data/example_files/disco/config.json +42 -0
  13. data/example_files/disco/cost_database.xlsx +0 -0
  14. data/example_files/disco/technical_catalog.json +12126 -0
  15. data/example_files/mappers/Baseline.rb +10 -7
  16. data/example_files/mappers/ChilledWaterStorage.rb +98 -0
  17. data/example_files/mappers/ClassProject.rb +110 -0
  18. data/example_files/mappers/CreateBar.rb +1 -0
  19. data/example_files/mappers/HighEfficiency.rb +13 -11
  20. data/example_files/mappers/PeakHoursMelsShedding.rb +72 -0
  21. data/example_files/mappers/PeakHoursThermostatAdjust.rb +78 -0
  22. data/example_files/mappers/ThermalStorage.rb +1 -0
  23. data/example_files/mappers/base_workflow.osw +55 -14
  24. data/example_files/mappers/class_project_workflow.osw +328 -0
  25. data/example_files/mappers/createbar_workflow.osw +16 -16
  26. data/example_files/measures/BuildResidentialModel/measure.rb +7 -1
  27. data/example_files/measures/BuildResidentialModel/measure.xml +1313 -706
  28. data/example_files/opendss/electrical_database.json +1446 -1446
  29. data/example_files/python_deps/dependencies.json +5 -0
  30. data/example_files/python_deps/install_python.ps1 +96 -0
  31. data/example_files/python_deps/install_python.sh +120 -0
  32. data/example_files/residential/clothes_dryer.tsv +11 -11
  33. data/example_files/residential/clothes_washer.tsv +3 -3
  34. data/example_files/residential/dishwasher.tsv +3 -3
  35. data/example_files/resources/hpxml-measures/.github/pull_request_template.md +0 -1
  36. data/example_files/resources/hpxml-measures/.github/workflows/config.yml +8 -21
  37. data/example_files/resources/hpxml-measures/.gitignore +2 -0
  38. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/measure.rb +1272 -1094
  39. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/measure.xml +978 -659
  40. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/geometry.rb +52 -74
  41. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/build_residential_hpxml_test.rb +77 -140
  42. data/example_files/resources/hpxml-measures/BuildResidentialScheduleFile/measure.rb +30 -27
  43. data/example_files/resources/hpxml-measures/BuildResidentialScheduleFile/measure.xml +32 -13
  44. data/example_files/resources/hpxml-measures/BuildResidentialScheduleFile/resources/schedules.rb +55 -51
  45. data/example_files/resources/hpxml-measures/BuildResidentialScheduleFile/tests/build_residential_schedule_file_test.rb +89 -16
  46. data/example_files/resources/hpxml-measures/Changelog.md +65 -0
  47. data/example_files/resources/hpxml-measures/Gemfile +2 -4
  48. data/example_files/resources/hpxml-measures/Gemfile.lock +2 -13
  49. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/measure.rb +276 -300
  50. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/measure.xml +221 -215
  51. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/airflow.rb +215 -170
  52. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/battery.rb +108 -16
  53. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/constants.rb +24 -44
  54. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/constructions.rb +564 -197
  55. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/data/cambium/README.md +8 -8
  56. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/energyplus.rb +1 -0
  57. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/geometry.rb +7 -55
  58. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hotwater_appliances.rb +24 -19
  59. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hpxml.rb +541 -211
  60. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hpxml_defaults.rb +300 -172
  61. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hpxml_schema/HPXML.xsd +0 -2
  62. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hpxml_schema/HPXMLBaseElements.xsd +230 -141
  63. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hpxml_schema/HPXMLDataTypes.xsd +145 -137
  64. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hpxml_schematron/EPvalidator.xml +191 -97
  65. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hpxml_schematron/iso-schematron.xsd +391 -0
  66. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hvac.rb +194 -198
  67. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hvac_sizing.rb +140 -145
  68. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/lighting.rb +11 -11
  69. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/location.rb +33 -1
  70. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/materials.rb +4 -4
  71. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/meta_measure.rb +17 -9
  72. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/misc_loads.rb +14 -12
  73. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/output.rb +39 -17
  74. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/psychrometrics.rb +1 -1
  75. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/schedule_files/battery.csv +8761 -0
  76. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/schedules.rb +114 -57
  77. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/simcontrols.rb +1 -0
  78. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/utility_bills.rb +148 -0
  79. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/version.rb +2 -2
  80. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/waterheater.rb +85 -127
  81. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/weather.rb +26 -32
  82. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/xmlhelper.rb +2 -14
  83. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/xmlvalidator.rb +67 -0
  84. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_airflow.rb +117 -56
  85. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_battery.rb +141 -14
  86. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_defaults.rb +453 -344
  87. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_enclosure.rb +124 -20
  88. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_generator.rb +1 -1
  89. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_hotwater_appliance.rb +28 -32
  90. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_hvac.rb +172 -79
  91. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_hvac_sizing.rb +54 -8
  92. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_lighting.rb +3 -3
  93. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_location.rb +4 -4
  94. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_miscloads.rb +7 -7
  95. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_pv.rb +1 -1
  96. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_schedules.rb +6 -9
  97. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_simcontrols.rb +8 -8
  98. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_validation.rb +213 -95
  99. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_water_heater.rb +1 -10
  100. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_weather.rb +76 -0
  101. data/example_files/resources/hpxml-measures/README.md +2 -3
  102. data/example_files/resources/hpxml-measures/ReportSimulationOutput/measure.rb +585 -287
  103. data/example_files/resources/hpxml-measures/ReportSimulationOutput/measure.xml +304 -352
  104. data/example_files/resources/hpxml-measures/ReportSimulationOutput/tests/output_report_test.rb +404 -279
  105. data/example_files/resources/hpxml-measures/ReportUtilityBills/measure.rb +222 -501
  106. data/example_files/resources/hpxml-measures/ReportUtilityBills/measure.xml +137 -200
  107. data/example_files/resources/hpxml-measures/ReportUtilityBills/resources/detailed_rates/Sample Flat Rate Min Annual Charge.json +649 -0
  108. data/example_files/resources/hpxml-measures/ReportUtilityBills/resources/detailed_rates/Sample Flat Rate Min Monthly Charge.json +649 -0
  109. data/example_files/resources/hpxml-measures/ReportUtilityBills/resources/detailed_rates/Sample Flat Rate.json +647 -0
  110. data/example_files/resources/hpxml-measures/ReportUtilityBills/resources/detailed_rates/Sample Real-Time Pricing Rate Min Annual Charge.json +8776 -0
  111. data/example_files/resources/hpxml-measures/ReportUtilityBills/resources/detailed_rates/Sample Real-Time Pricing Rate Min Monthly Charge.json +8776 -0
  112. data/example_files/resources/hpxml-measures/ReportUtilityBills/resources/detailed_rates/Sample Real-Time Pricing Rate.json +8774 -0
  113. data/example_files/resources/hpxml-measures/ReportUtilityBills/resources/detailed_rates/Sample Tiered Rate Min Annual Charge.json +659 -0
  114. data/example_files/resources/hpxml-measures/ReportUtilityBills/resources/detailed_rates/Sample Tiered Rate Min Monthly Charge.json +659 -0
  115. data/example_files/resources/hpxml-measures/ReportUtilityBills/resources/detailed_rates/Sample Tiered Rate.json +657 -0
  116. data/example_files/resources/hpxml-measures/ReportUtilityBills/resources/detailed_rates/Sample Tiered Time-of-Use Rate Min Annual Charge.json +670 -0
  117. data/example_files/resources/hpxml-measures/ReportUtilityBills/resources/detailed_rates/Sample Tiered Time-of-Use Rate Min Monthly Charge.json +670 -0
  118. data/example_files/resources/hpxml-measures/ReportUtilityBills/resources/detailed_rates/Sample Tiered Time-of-Use Rate.json +668 -0
  119. data/example_files/resources/hpxml-measures/ReportUtilityBills/resources/detailed_rates/Sample Time-of-Use Rate Min Annual Charge.json +655 -0
  120. data/example_files/resources/hpxml-measures/ReportUtilityBills/resources/detailed_rates/Sample Time-of-Use Rate Min Monthly Charge.json +655 -0
  121. data/example_files/resources/hpxml-measures/ReportUtilityBills/resources/detailed_rates/Sample Time-of-Use Rate.json +653 -0
  122. data/example_files/resources/hpxml-measures/ReportUtilityBills/resources/detailed_rates/openei_rates.zip +0 -0
  123. data/example_files/resources/hpxml-measures/ReportUtilityBills/resources/{Data/UtilityRates → simple_rates}/Average_retail_price_of_electricity.csv +0 -0
  124. data/example_files/resources/hpxml-measures/ReportUtilityBills/resources/{Data/UtilityRates → simple_rates}/HouseholdConsumption.csv +0 -0
  125. data/example_files/resources/hpxml-measures/ReportUtilityBills/resources/{Data/UtilityRates → simple_rates}/NG_PRI_SUM_A_EPG0_PRS_DMCF_A.csv +0 -0
  126. data/example_files/resources/hpxml-measures/ReportUtilityBills/resources/{Data/UtilityRates → simple_rates}/PET_PRI_WFR_A_EPD2F_PRS_DPGAL_W.csv +0 -0
  127. data/example_files/resources/hpxml-measures/ReportUtilityBills/resources/{Data/UtilityRates → simple_rates}/PET_PRI_WFR_A_EPLLPA_PRS_DPGAL_W.csv +0 -0
  128. data/example_files/resources/hpxml-measures/ReportUtilityBills/resources/{Data/UtilityRates → simple_rates}/README.md +0 -0
  129. data/example_files/resources/hpxml-measures/ReportUtilityBills/resources/util.rb +506 -25
  130. data/example_files/resources/hpxml-measures/ReportUtilityBills/tests/Contains Demand Charges.json +1312 -0
  131. data/example_files/resources/hpxml-measures/ReportUtilityBills/tests/Invalid Fixed Charge Units.json +657 -0
  132. data/example_files/resources/hpxml-measures/ReportUtilityBills/tests/Invalid Min Charge Units.json +659 -0
  133. data/example_files/resources/hpxml-measures/ReportUtilityBills/tests/JacksonElectricMemberCorp-ResidentialSeniorCitizenLowIncomeAssistance.json +681 -0
  134. data/example_files/resources/hpxml-measures/ReportUtilityBills/tests/Missing Required Fields.json +54 -0
  135. data/example_files/resources/hpxml-measures/ReportUtilityBills/tests/data.csv +8761 -0
  136. data/example_files/resources/hpxml-measures/ReportUtilityBills/tests/utility_bills_test.rb +1006 -235
  137. data/example_files/resources/hpxml-measures/docs/source/conf.py +1 -1
  138. data/example_files/resources/hpxml-measures/docs/source/intro.rst +0 -1
  139. data/example_files/resources/hpxml-measures/docs/source/usage_instructions.rst +2 -2
  140. data/example_files/resources/hpxml-measures/docs/source/workflow_inputs.rst +461 -261
  141. data/example_files/resources/hpxml-measures/docs/source/workflow_outputs.rst +146 -152
  142. data/example_files/resources/hpxml-measures/tasks.rb +616 -802
  143. data/example_files/resources/hpxml-measures/workflow/real_homes/house001.xml +19 -11
  144. data/example_files/resources/hpxml-measures/workflow/real_homes/house002.xml +20 -12
  145. data/example_files/resources/hpxml-measures/workflow/real_homes/house003.xml +12 -7
  146. data/example_files/resources/hpxml-measures/workflow/real_homes/house004.xml +12 -7
  147. data/example_files/resources/hpxml-measures/workflow/real_homes/house005.xml +19 -11
  148. data/example_files/resources/hpxml-measures/workflow/real_homes/house006.xml +12 -7
  149. data/example_files/resources/hpxml-measures/workflow/real_homes/house007.xml +20 -12
  150. data/example_files/resources/hpxml-measures/workflow/real_homes/house008.xml +28 -16
  151. data/example_files/resources/hpxml-measures/workflow/real_homes/house009.xml +28 -17
  152. data/example_files/resources/hpxml-measures/workflow/real_homes/house010.xml +28 -16
  153. data/example_files/resources/hpxml-measures/workflow/real_homes/house011.xml +20 -12
  154. data/example_files/resources/hpxml-measures/workflow/real_homes/house012.xml +20 -12
  155. data/example_files/resources/hpxml-measures/workflow/real_homes/house013.xml +20 -12
  156. data/example_files/resources/hpxml-measures/workflow/real_homes/house014.xml +20 -12
  157. data/example_files/resources/hpxml-measures/workflow/real_homes/house015.xml +20 -12
  158. data/example_files/resources/hpxml-measures/workflow/real_homes/house016.xml +22 -12
  159. data/example_files/resources/hpxml-measures/workflow/real_homes/house017.xml +19 -11
  160. data/example_files/resources/hpxml-measures/workflow/real_homes/house018.xml +20 -12
  161. data/example_files/resources/hpxml-measures/workflow/real_homes/house019.xml +13 -7
  162. data/example_files/resources/hpxml-measures/workflow/real_homes/house020.xml +12 -7
  163. data/example_files/resources/hpxml-measures/workflow/real_homes/house021.xml +31 -16
  164. data/example_files/resources/hpxml-measures/workflow/real_homes/house022.xml +22 -12
  165. data/example_files/resources/hpxml-measures/workflow/real_homes/house023.xml +21 -12
  166. data/example_files/resources/hpxml-measures/workflow/real_homes/house024.xml +37 -22
  167. data/example_files/resources/hpxml-measures/workflow/real_homes/house025.xml +24 -12
  168. data/example_files/resources/hpxml-measures/workflow/real_homes/house026.xml +33 -21
  169. data/example_files/resources/hpxml-measures/workflow/real_homes/house027.xml +28 -16
  170. data/example_files/resources/hpxml-measures/workflow/real_homes/house028.xml +28 -16
  171. data/example_files/resources/hpxml-measures/workflow/real_homes/house029.xml +30 -17
  172. data/example_files/resources/hpxml-measures/workflow/real_homes/house030.xml +10 -7
  173. data/example_files/resources/hpxml-measures/workflow/real_homes/house031.xml +22 -11
  174. data/example_files/resources/hpxml-measures/workflow/real_homes/house032.xml +12 -7
  175. data/example_files/resources/hpxml-measures/workflow/real_homes/house033.xml +18 -12
  176. data/example_files/resources/hpxml-measures/workflow/real_homes/house034.xml +25 -16
  177. data/example_files/resources/hpxml-measures/workflow/real_homes/house035.xml +22 -12
  178. data/example_files/resources/hpxml-measures/workflow/real_homes/house036.xml +20 -12
  179. data/example_files/resources/hpxml-measures/workflow/real_homes/house037.xml +26 -17
  180. data/example_files/resources/hpxml-measures/workflow/real_homes/house038.xml +19 -11
  181. data/example_files/resources/hpxml-measures/workflow/real_homes/house039.xml +25 -16
  182. data/example_files/resources/hpxml-measures/workflow/real_homes/house040.xml +20 -12
  183. data/example_files/resources/hpxml-measures/workflow/real_homes/house041.xml +35 -21
  184. data/example_files/resources/hpxml-measures/workflow/real_homes/house042.xml +28 -17
  185. data/example_files/resources/hpxml-measures/workflow/real_homes/house043.xml +20 -12
  186. data/example_files/resources/hpxml-measures/workflow/real_homes/house044.xml +35 -21
  187. data/example_files/resources/hpxml-measures/workflow/real_homes/house045.xml +20 -12
  188. data/example_files/resources/hpxml-measures/workflow/real_homes/house046.xml +20 -13
  189. data/example_files/resources/hpxml-measures/workflow/real_homes/house047.xml +12 -9
  190. data/example_files/resources/hpxml-measures/workflow/real_homes/house048.xml +25 -14
  191. data/example_files/resources/hpxml-measures/workflow/real_homes/house049.xml +10 -7
  192. data/example_files/resources/hpxml-measures/workflow/real_homes/house050.xml +20 -11
  193. data/example_files/resources/hpxml-measures/workflow/run_simulation.rb +91 -88
  194. data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-coal.xml +18 -7
  195. data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-dehumidifier-ief-portable.xml +546 -535
  196. data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-dehumidifier-ief-whole-home.xml +546 -535
  197. data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-dehumidifier-multiple.xml +555 -544
  198. data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-dehumidifier.xml +18 -7
  199. data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-gas.xml +18 -7
  200. data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-modified.xml +18 -7
  201. data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-none.xml +18 -7
  202. data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-oil-location-miami-fl.xml +580 -569
  203. data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-oil.xml +18 -7
  204. data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-propane-location-portland-or.xml +580 -569
  205. data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-propane.xml +18 -7
  206. data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-wood.xml +18 -7
  207. data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-cathedral.xml +7 -0
  208. data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-conditioned.xml +17 -6
  209. data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-flat.xml +7 -0
  210. data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-radiant-barrier.xml +18 -7
  211. data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-unvented-insulated-roof.xml +18 -7
  212. data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-vented.xml +18 -7
  213. data/example_files/resources/hpxml-measures/workflow/sample_files/base-battery-scheduled.xml +600 -0
  214. data/example_files/resources/hpxml-measures/workflow/sample_files/base-battery.xml +598 -587
  215. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-adjacent-to-multifamily-buffer-space.xml +494 -485
  216. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-adjacent-to-multiple.xml +606 -593
  217. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-adjacent-to-non-freezing-space.xml +494 -485
  218. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-adjacent-to-other-heated-space.xml +494 -485
  219. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-adjacent-to-other-housing-unit.xml +494 -485
  220. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-calctype-operational.xml +480 -471
  221. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-chiller-baseboard.xml +464 -457
  222. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-chiller-fan-coil-ducted.xml +496 -487
  223. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-chiller-fan-coil.xml +466 -459
  224. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-chiller-water-loop-heat-pump.xml +518 -509
  225. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-cooling-tower-water-loop-heat-pump.xml +513 -504
  226. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-only-baseboard.xml +445 -438
  227. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-only-fan-coil-ducted.xml +476 -467
  228. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-only-fan-coil-eae.xml +443 -436
  229. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-only-fan-coil.xml +446 -439
  230. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-only-water-loop-heat-pump.xml +494 -485
  231. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-chiller-only-baseboard.xml +445 -438
  232. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-chiller-only-fan-coil-ducted.xml +476 -467
  233. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-chiller-only-fan-coil.xml +446 -439
  234. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-chiller-only-water-loop-heat-pump.xml +494 -485
  235. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-cooling-tower-only-water-loop-heat-pump.xml +489 -480
  236. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-generator.xml +499 -490
  237. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-ground-loop-ground-to-air-heat-pump.xml +491 -482
  238. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-laundry-room-multiple-water-heaters.xml +510 -0
  239. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-laundry-room.xml +495 -486
  240. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-mechvent-multiple.xml +709 -695
  241. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-mechvent-preconditioning.xml +528 -519
  242. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-mechvent.xml +512 -503
  243. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-pv.xml +504 -495
  244. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-water-heater-recirc.xml +497 -488
  245. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-water-heater.xml +490 -481
  246. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily.xml +487 -478
  247. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-single-family-attached-2stories.xml +639 -628
  248. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-single-family-attached-atticroof-cathedral.xml +587 -580
  249. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-single-family-attached.xml +639 -628
  250. data/example_files/resources/hpxml-measures/workflow/sample_files/base-calctype-operational-misc-defaults.xml +539 -528
  251. data/example_files/resources/hpxml-measures/workflow/sample_files/base-calctype-operational-misc-loads-large-uncommon.xml +644 -633
  252. data/example_files/resources/hpxml-measures/workflow/sample_files/base-calctype-operational-misc-loads-large-uncommon2.xml +644 -633
  253. data/example_files/resources/hpxml-measures/workflow/sample_files/base-calctype-operational.xml +575 -564
  254. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-combi-tankless-outside.xml +16 -7
  255. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-combi-tankless.xml +16 -7
  256. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater-2-speed.xml +18 -7
  257. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater-gshp.xml +585 -574
  258. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater-hpwh.xml +18 -7
  259. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater-tankless.xml +18 -7
  260. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater-var-speed.xml +18 -7
  261. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater.xml +18 -7
  262. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-dwhr.xml +18 -7
  263. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect-detailed-setpoints.xml +536 -0
  264. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect-dse.xml +16 -7
  265. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect-outside.xml +16 -7
  266. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect-standbyloss.xml +20 -8
  267. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect-with-solar-fraction.xml +16 -7
  268. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect.xml +16 -7
  269. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-jacket-electric.xml +18 -7
  270. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-jacket-gas.xml +18 -7
  271. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-jacket-hpwh.xml +18 -7
  272. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-jacket-indirect.xml +16 -7
  273. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-low-flow-fixtures.xml +18 -7
  274. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-multiple.xml +16 -7
  275. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-none.xml +18 -7
  276. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-recirc-demand.xml +19 -8
  277. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-recirc-manual.xml +19 -8
  278. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-recirc-nocontrol.xml +19 -8
  279. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-recirc-temperature.xml +19 -8
  280. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-recirc-timer.xml +19 -8
  281. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-direct-evacuated-tube.xml +18 -7
  282. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-direct-flat-plate.xml +18 -7
  283. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-direct-ics.xml +18 -7
  284. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-fraction.xml +18 -7
  285. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-indirect-flat-plate.xml +18 -7
  286. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-thermosyphon-flat-plate.xml +18 -7
  287. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-coal.xml +18 -7
  288. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-detailed-setpoints.xml +582 -571
  289. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-elec-uef.xml +583 -572
  290. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-gas-outside.xml +18 -7
  291. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-gas-uef-fhr.xml +584 -573
  292. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-gas-uef.xml +584 -573
  293. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-gas.xml +18 -7
  294. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump-detailed-schedules.xml +583 -572
  295. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump-operating-mode-heat-pump-only.xml +585 -574
  296. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump-outside.xml +18 -7
  297. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump-uef.xml +582 -571
  298. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump-with-solar-fraction.xml +18 -7
  299. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump-with-solar.xml +18 -7
  300. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump.xml +18 -7
  301. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-model-type-stratified-detailed-occupancy-stochastic.xml +586 -575
  302. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-model-type-stratified.xml +585 -574
  303. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-oil.xml +18 -7
  304. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-wood.xml +18 -7
  305. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-detailed-setpoints.xml +580 -569
  306. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-electric-outside.xml +18 -7
  307. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-electric-uef.xml +580 -569
  308. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-electric.xml +18 -7
  309. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-gas-uef.xml +580 -569
  310. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-gas-with-solar-fraction.xml +18 -7
  311. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-gas-with-solar.xml +18 -7
  312. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-gas.xml +18 -7
  313. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-propane.xml +18 -7
  314. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-2stories-garage.xml +28 -11
  315. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-2stories.xml +20 -7
  316. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-beds-1.xml +18 -7
  317. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-beds-2.xml +18 -7
  318. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-beds-4.xml +18 -7
  319. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-beds-5.xml +18 -7
  320. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-ceilingtypes.xml +607 -0
  321. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-floortypes.xml +550 -0
  322. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-garage.xml +27 -12
  323. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-ach-house-pressure.xml +18 -7
  324. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-cfm-house-pressure.xml +18 -7
  325. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-cfm50.xml +18 -7
  326. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-flue.xml +18 -7
  327. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-natural-ach.xml +18 -7
  328. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-orientations.xml +589 -578
  329. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-overhangs.xml +18 -7
  330. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-rooftypes.xml +18 -7
  331. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-skylights-physical-properties.xml +619 -608
  332. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-skylights-shading.xml +620 -609
  333. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-skylights-storms.xml +618 -607
  334. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-skylights.xml +18 -7
  335. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-split-level.xml +537 -526
  336. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-split-surfaces.xml +90 -43
  337. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-split-surfaces2.xml +2507 -2460
  338. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-thermal-mass.xml +595 -584
  339. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-walltypes.xml +19 -8
  340. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-windows-natural-ventilation-availability.xml +584 -0
  341. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-windows-none.xml +18 -7
  342. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-windows-physical-properties.xml +594 -583
  343. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-windows-shading.xml +597 -586
  344. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-windows-storms.xml +598 -587
  345. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-ambient.xml +27 -12
  346. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-basement-garage.xml +671 -656
  347. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-complex.xml +18 -7
  348. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-conditioned-basement-slab-insulation.xml +18 -7
  349. data/example_files/resources/hpxml-measures/workflow/sample_files/{base-foundation-conditioned-basement-wall-interior-insulation.xml → base-foundation-conditioned-basement-wall-insulation.xml} +585 -574
  350. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-conditioned-crawlspace.xml +582 -571
  351. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-multiple.xml +35 -16
  352. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-slab.xml +18 -7
  353. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-unconditioned-basement-above-grade.xml +27 -12
  354. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-unconditioned-basement-assembly-r.xml +27 -12
  355. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-unconditioned-basement-wall-insulation.xml +27 -12
  356. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-unconditioned-basement.xml +27 -12
  357. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-unvented-crawlspace.xml +27 -12
  358. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-vented-crawlspace.xml +27 -12
  359. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-walkout-basement.xml +18 -7
  360. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-1-speed-backup-lockout-temperature.xml +586 -575
  361. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-1-speed-cooling-only.xml +573 -562
  362. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-1-speed-heating-only.xml +580 -569
  363. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-1-speed-seer2-hspf2.xml +583 -0
  364. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-1-speed.xml +18 -7
  365. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-2-speed.xml +18 -7
  366. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-var-speed-backup-boiler-switchover-temperature.xml +600 -589
  367. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-var-speed-backup-boiler.xml +599 -588
  368. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-var-speed-backup-furnace.xml +629 -616
  369. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-var-speed.xml +18 -7
  370. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-1-speed-cooling-only.xml +573 -562
  371. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-1-speed-heating-only.xml +579 -568
  372. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-1-speed-sizing-methodology-acca.xml +581 -570
  373. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-1-speed-sizing-methodology-hers.xml +581 -570
  374. 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 +582 -0
  375. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-1-speed-sizing-methodology-maxload.xml +581 -570
  376. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-2-speed-sizing-methodology-acca.xml +581 -570
  377. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-2-speed-sizing-methodology-hers.xml +581 -570
  378. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-2-speed-sizing-methodology-maxload.xml +581 -570
  379. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-var-speed-backup-boiler.xml +598 -587
  380. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-var-speed-backup-furnace.xml +628 -615
  381. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-var-speed-sizing-methodology-acca.xml +581 -570
  382. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-var-speed-sizing-methodology-hers.xml +581 -570
  383. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-var-speed-sizing-methodology-maxload.xml +581 -570
  384. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-boiler-elec-only.xml +535 -526
  385. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-boiler-gas-central-ac-1-speed.xml +589 -578
  386. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-boiler-gas-only.xml +536 -527
  387. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-central-ac-only-1-speed.xml +18 -7
  388. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-central-ac-only-2-speed.xml +565 -554
  389. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-central-ac-only-var-speed.xml +565 -554
  390. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-central-ac-plus-air-to-air-heat-pump-heating.xml +18 -7
  391. 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 +582 -571
  392. 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 +582 -571
  393. 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 +582 -571
  394. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-dual-fuel-mini-split-heat-pump-ducted.xml +18 -7
  395. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-elec-resistance-only.xml +526 -517
  396. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-evap-cooler-furnace-gas.xml +573 -562
  397. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-floor-furnace-propane-only.xml +529 -520
  398. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-furnace-elec-only.xml +565 -554
  399. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-furnace-gas-central-ac-2-speed.xml +580 -569
  400. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-furnace-gas-central-ac-var-speed.xml +580 -569
  401. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-furnace-gas-only.xml +565 -554
  402. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-furnace-gas-room-ac.xml +578 -567
  403. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-ground-to-air-heat-pump-cooling-only.xml +575 -564
  404. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-ground-to-air-heat-pump-heating-only.xml +581 -570
  405. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-ground-to-air-heat-pump-sizing-methodology-acca.xml +583 -572
  406. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-ground-to-air-heat-pump-sizing-methodology-hers.xml +583 -572
  407. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-ground-to-air-heat-pump-sizing-methodology-maxload.xml +583 -572
  408. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-mini-split-air-conditioner-only-ducted.xml +18 -7
  409. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-mini-split-heat-pump-ducted-cooling-only.xml +18 -7
  410. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-mini-split-heat-pump-ducted-heating-only.xml +18 -7
  411. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-mini-split-heat-pump-ducted-sizing-methodology-acca.xml +580 -569
  412. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-mini-split-heat-pump-ducted-sizing-methodology-hers.xml +580 -569
  413. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-mini-split-heat-pump-ducted-sizing-methodology-maxload.xml +580 -569
  414. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-mini-split-heat-pump-ductless-backup-stove.xml +551 -542
  415. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-ptac-with-heating.xml +532 -530
  416. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-ptac.xml +525 -516
  417. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-pthp-sizing-methodology-acca.xml +541 -532
  418. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-pthp-sizing-methodology-hers.xml +541 -532
  419. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-pthp-sizing-methodology-maxload.xml +541 -532
  420. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-room-ac-only.xml +525 -516
  421. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-room-ac-with-heating.xml +533 -0
  422. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-room-ac-with-reverse-cycle-sizing-methodology-acca.xml +542 -0
  423. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-room-ac-with-reverse-cycle-sizing-methodology-hers.xml +542 -0
  424. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-room-ac-with-reverse-cycle-sizing-methodology-maxload.xml +542 -0
  425. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-stove-oil-only.xml +529 -520
  426. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-wall-furnace-elec-only.xml +529 -520
  427. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize.xml +580 -569
  428. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-coal-only.xml +16 -7
  429. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-elec-only.xml +16 -7
  430. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-gas-central-ac-1-speed.xml +18 -7
  431. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-gas-only.xml +16 -7
  432. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-oil-only.xml +16 -7
  433. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-propane-only.xml +16 -7
  434. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-wood-only.xml +16 -7
  435. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-central-ac-only-1-speed-seer2.xml +567 -0
  436. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-central-ac-only-1-speed.xml +18 -7
  437. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-central-ac-only-2-speed.xml +18 -7
  438. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-central-ac-only-var-speed.xml +18 -7
  439. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-central-ac-plus-air-to-air-heat-pump-heating.xml +18 -7
  440. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dse.xml +16 -7
  441. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dual-fuel-air-to-air-heat-pump-1-speed-electric.xml +18 -7
  442. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dual-fuel-air-to-air-heat-pump-1-speed.xml +18 -7
  443. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dual-fuel-air-to-air-heat-pump-2-speed.xml +18 -7
  444. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dual-fuel-air-to-air-heat-pump-var-speed.xml +18 -7
  445. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dual-fuel-mini-split-heat-pump-ducted.xml +18 -7
  446. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ducts-area-fractions.xml +611 -598
  447. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ducts-area-multipliers.xml +589 -0
  448. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ducts-leakage-cfm50.xml +582 -571
  449. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ducts-leakage-percent.xml +18 -7
  450. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-elec-resistance-only.xml +16 -7
  451. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-evap-cooler-furnace-gas.xml +18 -7
  452. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-evap-cooler-only-ducted.xml +17 -7
  453. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-evap-cooler-only.xml +16 -7
  454. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-fireplace-wood-only.xml +530 -521
  455. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-fixed-heater-gas-only.xml +530 -521
  456. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-floor-furnace-propane-only.xml +530 -521
  457. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-coal-only.xml +566 -555
  458. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-elec-central-ac-1-speed.xml +18 -7
  459. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-elec-only.xml +18 -7
  460. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-gas-central-ac-2-speed.xml +18 -7
  461. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-gas-central-ac-var-speed.xml +18 -7
  462. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-gas-only-detailed-setpoints.xml +566 -555
  463. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-gas-only.xml +566 -555
  464. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-gas-room-ac.xml +18 -7
  465. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-oil-only.xml +18 -7
  466. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-propane-only.xml +18 -7
  467. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-wood-only.xml +18 -7
  468. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-x3-dse.xml +16 -7
  469. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ground-to-air-heat-pump-cooling-only.xml +574 -563
  470. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ground-to-air-heat-pump-heating-only.xml +581 -570
  471. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ground-to-air-heat-pump.xml +583 -572
  472. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-air-to-air-heat-pump-1-speed.xml +587 -576
  473. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-air-to-air-heat-pump-2-speed.xml +587 -576
  474. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-air-to-air-heat-pump-var-speed.xml +587 -576
  475. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-furnace-gas-central-ac-1-speed.xml +591 -580
  476. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-furnace-gas-central-ac-2-speed.xml +591 -580
  477. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-furnace-gas-central-ac-var-speed.xml +591 -580
  478. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-furnace-gas-only.xml +570 -559
  479. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-ground-to-air-heat-pump.xml +586 -575
  480. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-mini-split-air-conditioner-only-ducted.xml +570 -559
  481. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-mini-split-heat-pump-ducted.xml +586 -575
  482. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-air-conditioner-only-ducted.xml +18 -7
  483. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-air-conditioner-only-ductless.xml +16 -7
  484. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ducted-cooling-only.xml +18 -7
  485. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ducted-heating-only.xml +18 -7
  486. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ducted.xml +18 -7
  487. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ductless-backup-stove.xml +552 -543
  488. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ductless.xml +16 -7
  489. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-multiple.xml +963 -938
  490. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-none.xml +33 -69
  491. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-portable-heater-gas-only.xml +530 -521
  492. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ptac-with-heating-electricity.xml +535 -0
  493. data/example_files/resources/hpxml-measures/workflow/sample_files/{base-hvac-ptac-with-heating.xml → base-hvac-ptac-with-heating-natural-gas.xml} +23 -21
  494. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ptac.xml +526 -517
  495. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-pthp.xml +541 -532
  496. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-room-ac-only-33percent.xml +16 -7
  497. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-room-ac-only-ceer.xml +526 -517
  498. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-room-ac-only-detailed-setpoints.xml +526 -517
  499. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-room-ac-only.xml +16 -7
  500. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-room-ac-with-heating.xml +535 -0
  501. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-room-ac-with-reverse-cycle.xml +542 -0
  502. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-seasons.xml +594 -583
  503. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-setpoints-daily-schedules.xml +586 -575
  504. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-setpoints-daily-setbacks.xml +18 -7
  505. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-setpoints.xml +18 -7
  506. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-stove-oil-only.xml +530 -521
  507. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-stove-wood-pellets-only.xml +530 -521
  508. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-undersized-allow-increased-fixed-capacities.xml +18 -7
  509. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-undersized.xml +18 -7
  510. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-wall-furnace-elec-only.xml +530 -521
  511. data/example_files/resources/hpxml-measures/workflow/sample_files/base-lighting-ceiling-fans.xml +18 -7
  512. data/example_files/resources/hpxml-measures/workflow/sample_files/base-lighting-holiday.xml +18 -7
  513. data/example_files/resources/hpxml-measures/workflow/sample_files/base-lighting-none.xml +18 -7
  514. data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-AMY-2012.xml +18 -7
  515. data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-baltimore-md.xml +27 -12
  516. data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-capetown-zaf.xml +591 -576
  517. data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-dallas-tx.xml +18 -7
  518. data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-duluth-mn.xml +27 -12
  519. data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-helena-mt.xml +582 -571
  520. data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-honolulu-hi.xml +537 -526
  521. data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-miami-fl.xml +18 -7
  522. data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-phoenix-az.xml +537 -526
  523. data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-portland-or.xml +601 -586
  524. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-balanced.xml +18 -7
  525. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-bath-kitchen-fans.xml +18 -7
  526. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-cfis-airflow-fraction-zero.xml +601 -587
  527. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-cfis-dse.xml +19 -7
  528. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-cfis-evap-cooler-only-ducted.xml +20 -7
  529. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-cfis-supplemental-fan-exhaust.xml +607 -0
  530. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-cfis-supplemental-fan-supply.xml +607 -0
  531. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-cfis.xml +21 -7
  532. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-erv-atre-asre.xml +18 -7
  533. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-erv.xml +18 -7
  534. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-exhaust-rated-flow-rate.xml +18 -7
  535. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-exhaust.xml +18 -7
  536. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-hrv-asre.xml +18 -7
  537. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-hrv.xml +18 -7
  538. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-multiple.xml +37 -19
  539. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-supply.xml +18 -7
  540. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-whole-house-fan.xml +18 -7
  541. data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-additional-properties.xml +590 -579
  542. data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-bills-none.xml +578 -0
  543. data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-bills-pv-detailed-only.xml +632 -0
  544. data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-bills-pv-mixed.xml +614 -0
  545. data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-bills-pv.xml +677 -0
  546. data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-bills.xml +593 -0
  547. data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-defaults.xml +27 -9
  548. data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-emissions.xml +676 -665
  549. data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-generators-battery-scheduled.xml +616 -0
  550. data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-generators-battery.xml +615 -0
  551. data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-generators.xml +598 -587
  552. data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-ground-conductivity.xml +586 -0
  553. data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-loads-large-uncommon.xml +18 -7
  554. data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-loads-large-uncommon2.xml +18 -7
  555. data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-loads-none.xml +18 -7
  556. data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-neighbor-shading.xml +18 -7
  557. data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-shielding-of-home.xml +583 -572
  558. data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-usage-multiplier.xml +18 -7
  559. data/example_files/resources/hpxml-measures/workflow/sample_files/base-multiple-buildings.xml +1700 -1677
  560. data/example_files/resources/hpxml-measures/workflow/sample_files/base-pv-battery-ah.xml +622 -611
  561. data/example_files/resources/hpxml-measures/workflow/sample_files/base-pv-battery-garage.xml +697 -682
  562. data/example_files/resources/hpxml-measures/workflow/sample_files/{base-pv-battery-lifetime-model.xml → base-pv-battery-round-trip-efficiency.xml} +20 -11
  563. data/example_files/resources/hpxml-measures/workflow/sample_files/base-pv-battery-scheduled.xml +624 -0
  564. data/example_files/resources/hpxml-measures/workflow/sample_files/base-pv-battery.xml +622 -611
  565. data/example_files/resources/hpxml-measures/workflow/sample_files/base-pv-generators-battery-scheduled.xml +640 -0
  566. data/example_files/resources/hpxml-measures/workflow/sample_files/base-pv-generators-battery.xml +639 -0
  567. data/example_files/resources/hpxml-measures/workflow/sample_files/base-pv-generators.xml +623 -0
  568. data/example_files/resources/hpxml-measures/workflow/sample_files/base-pv.xml +606 -595
  569. data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-detailed-all-10-mins.xml +582 -571
  570. data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-detailed-occupancy-smooth.xml +583 -572
  571. data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-detailed-occupancy-stochastic-10-mins.xml +584 -0
  572. data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-detailed-occupancy-stochastic-vacancy.xml +583 -572
  573. data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-detailed-occupancy-stochastic.xml +583 -572
  574. data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-detailed-setpoints-daily-schedules.xml +581 -570
  575. data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-detailed-setpoints-daily-setbacks.xml +581 -570
  576. data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-detailed-setpoints.xml +581 -570
  577. data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-simple.xml +636 -625
  578. data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-calendar-year-custom.xml +18 -7
  579. data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-daylight-saving-custom.xml +27 -14
  580. data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-daylight-saving-disabled.xml +21 -10
  581. data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-runperiod-1-month.xml +21 -10
  582. data/example_files/resources/hpxml-measures/workflow/sample_files/{base-dhw-tank-heat-pump-detailed-operating-modes.xml → base-simcontrol-temperature-capacitance-multiplier.xml} +25 -13
  583. data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-timestep-10-mins-occupancy-stochastic-10-mins.xml +584 -0
  584. data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-timestep-10-mins-occupancy-stochastic-60-mins.xml +584 -0
  585. data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-timestep-10-mins.xml +18 -7
  586. data/example_files/resources/hpxml-measures/workflow/sample_files/{base-dhw-tank-heat-pump-detailed-setpoints.xml → base-simcontrol-timestep-30-mins.xml} +25 -14
  587. data/example_files/resources/hpxml-measures/workflow/sample_files/base.xml +18 -7
  588. data/example_files/resources/hpxml-measures/workflow/template-build-and-run-hpxml-with-stochastic-occupancy.osw +18 -13
  589. data/example_files/resources/hpxml-measures/workflow/template-run-hpxml-with-stochastic-occupancy.osw +12 -7
  590. data/example_files/resources/hpxml-measures/workflow/template-run-hpxml.osw +8 -24
  591. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L100AC.xml +366 -358
  592. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L100AL.xml +369 -361
  593. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L110AC.xml +369 -361
  594. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L110AL.xml +369 -361
  595. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L120AC.xml +369 -361
  596. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L120AL.xml +369 -361
  597. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L130AC.xml +369 -361
  598. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L130AL.xml +369 -361
  599. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L140AC.xml +311 -303
  600. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L140AL.xml +311 -303
  601. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L150AC.xml +327 -319
  602. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L150AL.xml +327 -319
  603. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L155AC.xml +332 -324
  604. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L155AL.xml +332 -324
  605. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L160AC.xml +341 -333
  606. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L160AL.xml +341 -333
  607. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L170AC.xml +369 -361
  608. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L170AL.xml +369 -361
  609. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L200AC.xml +369 -361
  610. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L200AL.xml +369 -361
  611. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L202AC.xml +369 -361
  612. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L202AL.xml +369 -361
  613. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L302XC.xml +383 -379
  614. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L304XC.xml +383 -379
  615. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L322XC.xml +538 -534
  616. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L324XC.xml +550 -546
  617. data/example_files/resources/hpxml-measures/workflow/tests/base_results/results.csv +444 -410
  618. data/example_files/resources/hpxml-measures/workflow/tests/base_results/results_ashrae_140.csv +8 -8
  619. data/example_files/resources/hpxml-measures/workflow/tests/base_results/results_bills.csv +444 -410
  620. data/example_files/resources/hpxml-measures/workflow/tests/compare.py +18 -4
  621. data/example_files/resources/hpxml-measures/workflow/tests/hpxml_translator_test.rb +133 -288
  622. data/example_files/scripts/convert_urbanopt_to_disco.py +130 -0
  623. data/example_files/scripts/default_control_changes.csv +8 -0
  624. data/example_files/scripts/default_voltage_regulators.csv +3 -0
  625. data/example_files/scripts/read_data.py +331 -0
  626. data/example_files/visualization/input_visualization_feature.html +172 -81
  627. data/example_files/visualization/input_visualization_scenario.html +178 -82
  628. data/example_files/xml_building/17/README.md +2 -2
  629. data/example_files/xml_building/17/unit 1.xml +40 -41
  630. data/example_files/xml_building/17/unit 2.xml +35 -36
  631. data/example_files/xml_building/17/unit 3.xml +35 -36
  632. data/example_files/xml_building/17/unit 4.xml +41 -42
  633. data/lib/uo_cli/version.rb +1 -1
  634. data/lib/uo_cli.rb +596 -96
  635. data/uo_cli.gemspec +6 -5
  636. metadata +121 -36
  637. data/example_files/residential/exhaust.tsv +0 -3
  638. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/data/hvac_equipment_efficiency.csv +0 -493
  639. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/data/water_heater_efficiency.csv +0 -157
  640. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hpxml_schematron/HPXMLvalidator.xml +0 -620
  641. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/validator.rb +0 -107
  642. data/example_files/resources/hpxml-measures/ReportHPXMLOutput/measure.rb +0 -450
  643. data/example_files/resources/hpxml-measures/ReportHPXMLOutput/measure.xml +0 -85
  644. data/example_files/resources/hpxml-measures/ReportHPXMLOutput/resources/constants.rb +0 -72
  645. data/example_files/resources/hpxml-measures/ReportHPXMLOutput/tests/hpxml_output_report_test.rb +0 -290
  646. data/example_files/resources/hpxml-measures/ReportUtilityBills/tests/PV_10kW.csv +0 -8761
  647. data/example_files/resources/hpxml-measures/ReportUtilityBills/tests/PV_1kW.csv +0 -8761
  648. data/example_files/resources/hpxml-measures/ReportUtilityBills/tests/PV_None.csv +0 -8761
  649. data/example_files/resources/hpxml-measures/workflow/tests/base_results/results_hvac_sizing.csv +0 -410
@@ -8,10 +8,15 @@ require_relative '../measure.rb'
8
8
  require 'fileutils'
9
9
 
10
10
  class BuildResidentialHPXMLTest < MiniTest::Test
11
- def test_workflows
12
- this_dir = File.dirname(__FILE__)
13
- tests_dir = File.join(this_dir, 'extra_files')
11
+ def setup
12
+ @output_path = File.join(File.dirname(__FILE__), 'extra_files')
13
+ end
14
+
15
+ def teardown
16
+ FileUtils.rm_rf(@output_path)
17
+ end
14
18
 
19
+ def test_workflows
15
20
  # Extra buildings that don't correspond with sample files
16
21
  hpxmls_files = {
17
22
  # Base files to derive from
@@ -35,11 +40,6 @@ class BuildResidentialHPXMLTest < MiniTest::Test
35
40
  'extra-enclosure-garage-atticroof-conditioned.xml' => 'base-sfd.xml',
36
41
  'extra-enclosure-atticroof-conditioned-eaves-gable.xml' => 'base-sfd.xml',
37
42
  'extra-enclosure-atticroof-conditioned-eaves-hip.xml' => 'extra-enclosure-atticroof-conditioned-eaves-gable.xml',
38
- 'extra-zero-refrigerator-kwh.xml' => 'base-sfd.xml',
39
- 'extra-zero-extra-refrigerator-kwh.xml' => 'base-sfd.xml',
40
- 'extra-zero-freezer-kwh.xml' => 'base-sfd.xml',
41
- 'extra-zero-clothes-washer-kwh.xml' => 'base-sfd.xml',
42
- 'extra-zero-dishwasher-kwh.xml' => 'base-sfd.xml',
43
43
  'extra-gas-pool-heater-with-zero-kwh.xml' => 'base-sfd.xml',
44
44
  'extra-gas-hot-tub-heater-with-zero-kwh.xml' => 'base-sfd.xml',
45
45
  'extra-no-rim-joists.xml' => 'base-sfd.xml',
@@ -47,6 +47,8 @@ class BuildResidentialHPXMLTest < MiniTest::Test
47
47
  'extra-state-code-different-than-epw.xml' => 'base-sfd.xml',
48
48
  'extra-time-zone-different-than-epw.xml' => 'base-sfd.xml',
49
49
  'extra-emissions-fossil-fuel-factors.xml' => 'base-sfd.xml',
50
+ 'extra-bills-fossil-fuel-rates.xml' => 'base-sfd.xml',
51
+ 'extra-seasons-building-america.xml' => 'base-sfd.xml',
50
52
 
51
53
  'extra-sfa-atticroof-flat.xml' => 'base-sfa.xml',
52
54
  'extra-sfa-atticroof-conditioned-eaves-gable.xml' => 'extra-sfa-slab.xml',
@@ -144,8 +146,6 @@ class BuildResidentialHPXMLTest < MiniTest::Test
144
146
 
145
147
  'error-heating-system-and-heat-pump.xml' => 'base-sfd.xml',
146
148
  'error-cooling-system-and-heat-pump.xml' => 'base-sfd.xml',
147
- 'error-non-integer-geometry-num-bathrooms.xml' => 'base-sfd.xml',
148
- 'error-non-integer-ceiling-fan-quantity.xml' => 'base-sfd.xml',
149
149
  'error-sfd-conditioned-basement-zero-foundation-height.xml' => 'base-sfd.xml',
150
150
  'error-sfd-adiabatic-walls.xml' => 'base-sfd.xml',
151
151
  'error-mf-bottom-crawlspace-zero-foundation-height.xml' => 'base-mf.xml',
@@ -169,6 +169,7 @@ class BuildResidentialHPXMLTest < MiniTest::Test
169
169
  'error-emissions-args-not-all-specified.xml' => 'base-sfd.xml',
170
170
  'error-emissions-args-not-all-same-size.xml' => 'base-sfd.xml',
171
171
  'error-emissions-natural-gas-args-not-all-specified.xml' => 'base-sfd.xml',
172
+ 'error-bills-args-not-all-same-size.xml' => 'base-sfd.xml',
172
173
  'error-invalid-aspect-ratio.xml' => 'base-sfd.xml',
173
174
  'error-negative-foundation-height.xml' => 'base-sfd.xml',
174
175
  'error-too-many-floors.xml' => 'base-sfd.xml',
@@ -194,24 +195,17 @@ class BuildResidentialHPXMLTest < MiniTest::Test
194
195
  'warning-unvented-attic-with-floor-and-roof-insulation.xml' => 'base-sfd.xml',
195
196
  'warning-conditioned-basement-with-ceiling-insulation.xml' => 'base-sfd.xml',
196
197
  'warning-conditioned-attic-with-floor-insulation.xml' => 'base-sfd.xml',
197
- 'warning-multipliers-without-tv-plug-loads.xml' => 'base-sfd.xml',
198
- 'warning-multipliers-without-other-plug-loads.xml' => 'base-sfd.xml',
199
- 'warning-multipliers-without-well-pump-plug-loads.xml' => 'base-sfd.xml',
200
- 'warning-multipliers-without-vehicle-plug-loads.xml' => 'base-sfd.xml',
201
- 'warning-multipliers-without-fuel-loads.xml' => 'base-sfd.xml',
202
198
  }
203
199
 
204
200
  expected_errors = {
205
201
  'error-heating-system-and-heat-pump.xml' => 'Multiple central heating systems are not currently supported.',
206
202
  'error-cooling-system-and-heat-pump.xml' => 'Multiple central cooling systems are not currently supported.',
207
- 'error-non-integer-geometry-num-bathrooms.xml' => 'Number of bathrooms must be an integer.',
208
- 'error-non-integer-ceiling-fan-quantity.xml' => 'Quantity of ceiling fans must be an integer.',
209
203
  'error-sfd-conditioned-basement-zero-foundation-height.xml' => "Foundation type of 'ConditionedBasement' cannot have a height of zero.",
210
204
  'error-sfd-adiabatic-walls.xml' => 'No adiabatic surfaces can be applied to single-family detached homes.',
211
205
  'error-mf-conditioned-basement' => 'Conditioned basement/crawlspace foundation type for apartment units is not currently supported.',
212
206
  'error-mf-conditioned-crawlspace' => 'Conditioned basement/crawlspace foundation type for apartment units is not currently supported.',
213
207
  'error-mf-bottom-crawlspace-zero-foundation-height.xml' => "Foundation type of 'UnventedCrawlspace' cannot have a height of zero.",
214
- 'error-ducts-location-and-areas-not-same-type.xml' => 'Duct location and surface area not both auto or not both specified.',
208
+ 'error-ducts-location-and-areas-not-same-type.xml' => 'Duct location and surface area not both defaulted or not both specified.',
215
209
  'error-second-heating-system-serves-total-heat-load.xml' => 'The fraction of heat load served by the second heating system is 100%.',
216
210
  'error-second-heating-system-but-no-primary-heating.xml' => 'A second heating system was specified without a primary heating system.',
217
211
  'error-sfa-no-building-num-units.xml' => 'Did not specify the number of units in the building for single-family attached or apartment units.',
@@ -231,6 +225,7 @@ class BuildResidentialHPXMLTest < MiniTest::Test
231
225
  'error-emissions-args-not-all-specified.xml' => 'Did not specify all required emissions arguments.',
232
226
  'error-emissions-args-not-all-same-size.xml' => 'One or more emissions arguments does not have enough comma-separated elements specified.',
233
227
  'error-emissions-natural-gas-args-not-all-specified.xml' => 'Did not specify fossil fuel emissions units for natural gas emissions values.',
228
+ 'error-bills-args-not-all-same-size.xml' => 'One or more utility bill arguments does not have enough comma-separated elements specified.',
234
229
  'error-invalid-aspect-ratio.xml' => 'Aspect ratio must be greater than zero.',
235
230
  'error-negative-foundation-height.xml' => 'Foundation height cannot be negative.',
236
231
  'error-too-many-floors.xml' => 'Number of above-grade floors must be six or less.',
@@ -258,11 +253,6 @@ class BuildResidentialHPXMLTest < MiniTest::Test
258
253
  'warning-unvented-attic-with-floor-and-roof-insulation.xml' => 'Home with unconditioned attic type has both ceiling insulation and roof insulation.',
259
254
  'warning-conditioned-basement-with-ceiling-insulation.xml' => 'Home with conditioned basement has floor insulation.',
260
255
  'warning-conditioned-attic-with-floor-insulation.xml' => 'Home with conditioned attic has ceiling insulation.',
261
- 'warning-multipliers-without-tv-plug-loads.xml' => 'Specified a non-zero usage multiplier for zero television plug loads.',
262
- 'warning-multipliers-without-other-plug-loads.xml' => 'Specified a non-zero usage multiplier for zero other plug loads.',
263
- 'warning-multipliers-without-well-pump-plug-loads.xml' => 'Specified a non-zero usage multiplier for zero well pump plug loads.',
264
- 'warning-multipliers-without-vehicle-plug-loads.xml' => 'Specified a non-zero usage multiplier for zero vehicle plug loads.',
265
- 'warning-multipliers-without-fuel-loads.xml' => 'Specified a non-zero usage multiplier for a fuel load that is zero.',
266
256
  }
267
257
 
268
258
  puts "Generating #{hpxmls_files.size} HPXML files..."
@@ -309,7 +299,7 @@ class BuildResidentialHPXMLTest < MiniTest::Test
309
299
  flunk "Error: Did not successfully generate #{hpxml_file}."
310
300
  end
311
301
 
312
- hpxml_path = File.absolute_path(File.join(tests_dir, hpxml_file))
302
+ hpxml_path = File.absolute_path(File.join(@output_path, hpxml_file))
313
303
  hpxml = HPXML.new(hpxml_path: hpxml_path, collapse_enclosure: false)
314
304
  hpxml.header.xml_generated_by = 'build_residential_hpxml_test.rb'
315
305
  hpxml.header.created_date_and_time = Time.new(2000, 1, 1).strftime('%Y-%m-%dT%H:%M:%S%:z') # Hard-code to prevent diffs
@@ -320,12 +310,24 @@ class BuildResidentialHPXMLTest < MiniTest::Test
320
310
  flunk "Error: Did not successfully generate #{hpxml_file}.\n#{e}\n#{e.backtrace.join('\n')}"
321
311
  end
322
312
  end
313
+
314
+ # Check generated HPXML files
315
+ hpxml = HPXML.new(hpxml_path: File.absolute_path(File.join(@output_path, 'extra-seasons-building-america.xml')))
316
+ hvac_control = hpxml.hvac_controls[0]
317
+ assert_equal(10, hvac_control.seasons_heating_begin_month)
318
+ assert_equal(1, hvac_control.seasons_heating_begin_day)
319
+ assert_equal(6, hvac_control.seasons_heating_end_month)
320
+ assert_equal(30, hvac_control.seasons_heating_end_day)
321
+ assert_equal(5, hvac_control.seasons_cooling_begin_month)
322
+ assert_equal(1, hvac_control.seasons_cooling_begin_day)
323
+ assert_equal(10, hvac_control.seasons_cooling_end_month)
324
+ assert_equal(31, hvac_control.seasons_cooling_end_day)
323
325
  end
324
326
 
325
327
  private
326
328
 
327
329
  def _set_measure_argument_values(hpxml_file, args)
328
- args['hpxml_path'] = "tests/extra_files/#{hpxml_file}"
330
+ args['hpxml_path'] = File.join(File.dirname(__FILE__), "extra_files/#{hpxml_file}")
329
331
  args['apply_defaults'] = true
330
332
  args['apply_validation'] = true
331
333
 
@@ -359,10 +361,9 @@ class BuildResidentialHPXMLTest < MiniTest::Test
359
361
  args['geometry_unit_num_bedrooms'] = 3
360
362
  args['geometry_unit_num_bathrooms'] = 2
361
363
  args['geometry_unit_num_occupants'] = 3
362
- args['geometry_has_flue_or_chimney'] = Constants.Auto
363
364
  args['floor_over_foundation_assembly_r'] = 0
364
365
  args['floor_over_garage_assembly_r'] = 0
365
- args['foundation_wall_type'] = Constants.Auto
366
+ args['floor_type'] = HPXML::FloorTypeWoodFrame
366
367
  args['foundation_wall_thickness'] = 8.0
367
368
  args['foundation_wall_insulation_r'] = 8.9
368
369
  args['foundation_wall_insulation_distance_to_top'] = 0.0
@@ -385,10 +386,6 @@ class BuildResidentialHPXMLTest < MiniTest::Test
385
386
  args['neighbor_back_distance'] = 0
386
387
  args['neighbor_left_distance'] = 0
387
388
  args['neighbor_right_distance'] = 0
388
- args['neighbor_front_height'] = Constants.Auto
389
- args['neighbor_back_height'] = Constants.Auto
390
- args['neighbor_left_height'] = Constants.Auto
391
- args['neighbor_right_height'] = Constants.Auto
392
389
  args['wall_type'] = HPXML::WallTypeWoodStud
393
390
  args['wall_siding_type'] = HPXML::SidingTypeWood
394
391
  args['wall_color'] = HPXML::ColorMedium
@@ -430,7 +427,6 @@ class BuildResidentialHPXMLTest < MiniTest::Test
430
427
  args['air_leakage_units'] = HPXML::UnitsACH
431
428
  args['air_leakage_house_pressure'] = 50
432
429
  args['air_leakage_value'] = 3
433
- args['site_shielding_of_home'] = Constants.Auto
434
430
  args['heating_system_type'] = HPXML::HVACTypeFurnace
435
431
  args['heating_system_fuel'] = HPXML::FuelTypeNaturalGas
436
432
  args['heating_system_heating_efficiency'] = 0.92
@@ -452,7 +448,6 @@ class BuildResidentialHPXMLTest < MiniTest::Test
452
448
  args['heat_pump_cooling_compressor_type'] = HPXML::HVACCompressorTypeSingleStage
453
449
  args['heat_pump_cooling_sensible_heat_fraction'] = 0.73
454
450
  args['heat_pump_heating_capacity'] = 36000.0
455
- args['heat_pump_heating_capacity_17_f'] = Constants.Auto
456
451
  args['heat_pump_cooling_capacity'] = 36000.0
457
452
  args['heat_pump_fraction_heat_load_served'] = 1
458
453
  args['heat_pump_fraction_cool_load_served'] = 1
@@ -477,7 +472,6 @@ class BuildResidentialHPXMLTest < MiniTest::Test
477
472
  args['heating_system_2_type'] = 'none'
478
473
  args['heating_system_2_fuel'] = HPXML::FuelTypeElectricity
479
474
  args['heating_system_2_heating_efficiency'] = 1.0
480
- args['heating_system_2_heating_capacity'] = Constants.Auto
481
475
  args['heating_system_2_fraction_heat_load_served'] = 0.25
482
476
  args['mech_vent_fan_type'] = 'none'
483
477
  args['mech_vent_flow_rate'] = 110
@@ -497,8 +491,6 @@ class BuildResidentialHPXMLTest < MiniTest::Test
497
491
  args['kitchen_fans_quantity'] = 0
498
492
  args['bathroom_fans_quantity'] = 0
499
493
  args['whole_house_fan_present'] = false
500
- args['whole_house_fan_flow_rate'] = 4500
501
- args['whole_house_fan_power'] = 300
502
494
  args['water_heater_type'] = HPXML::WaterHeaterTypeStorage
503
495
  args['water_heater_fuel_type'] = HPXML::FuelTypeElectricity
504
496
  args['water_heater_location'] = HPXML::LocationLivingSpace
@@ -523,7 +515,6 @@ class BuildResidentialHPXMLTest < MiniTest::Test
523
515
  args['dwhr_efficiency'] = 0.55
524
516
  args['water_fixtures_shower_low_flow'] = true
525
517
  args['water_fixtures_sink_low_flow'] = false
526
- args['water_fixtures_usage_multiplier'] = 1.0
527
518
  args['solar_thermal_system_type'] = 'none'
528
519
  args['solar_thermal_collector_area'] = 40.0
529
520
  args['solar_thermal_collector_loop_type'] = HPXML::SolarThermalLoopTypeDirect
@@ -532,46 +523,34 @@ class BuildResidentialHPXMLTest < MiniTest::Test
532
523
  args['solar_thermal_collector_tilt'] = 20
533
524
  args['solar_thermal_collector_rated_optical_efficiency'] = 0.5
534
525
  args['solar_thermal_collector_rated_thermal_losses'] = 0.2799
535
- args['solar_thermal_storage_volume'] = Constants.Auto
536
526
  args['solar_thermal_solar_fraction'] = 0
537
- args['pv_system_module_type'] = 'none'
538
- args['pv_system_location'] = Constants.Auto
539
- args['pv_system_tracking'] = Constants.Auto
527
+ args['pv_system_present'] = false
540
528
  args['pv_system_array_azimuth'] = 180
541
529
  args['pv_system_array_tilt'] = 20
542
530
  args['pv_system_max_power_output'] = 4000
543
- args['pv_system_inverter_efficiency'] = 0.96
544
- args['pv_system_system_losses_fraction'] = 0.14
545
- args['pv_system_num_bedrooms_served'] = 3
546
- args['pv_system_2_module_type'] = 'none'
547
- args['pv_system_2_location'] = Constants.Auto
548
- args['pv_system_2_tracking'] = Constants.Auto
531
+ args['pv_system_2_present'] = false
549
532
  args['pv_system_2_array_azimuth'] = 180
550
533
  args['pv_system_2_array_tilt'] = 20
551
534
  args['pv_system_2_max_power_output'] = 4000
552
- args['battery_location'] = 'none'
553
- args['battery_power'] = Constants.Auto
554
- args['battery_capacity'] = Constants.Auto
535
+ args['battery_present'] = false
536
+ args['lighting_present'] = true
555
537
  args['lighting_interior_fraction_cfl'] = 0.4
556
538
  args['lighting_interior_fraction_lfl'] = 0.1
557
539
  args['lighting_interior_fraction_led'] = 0.25
558
- args['lighting_interior_usage_multiplier'] = 1.0
559
540
  args['lighting_exterior_fraction_cfl'] = 0.4
560
541
  args['lighting_exterior_fraction_lfl'] = 0.1
561
542
  args['lighting_exterior_fraction_led'] = 0.25
562
- args['lighting_exterior_usage_multiplier'] = 1.0
563
543
  args['lighting_garage_fraction_cfl'] = 0.4
564
544
  args['lighting_garage_fraction_lfl'] = 0.1
565
545
  args['lighting_garage_fraction_led'] = 0.25
566
- args['lighting_garage_usage_multiplier'] = 1.0
567
546
  args['holiday_lighting_present'] = false
568
- args['holiday_lighting_daily_kwh'] = Constants.Auto
569
547
  args['dehumidifier_type'] = 'none'
570
548
  args['dehumidifier_efficiency_type'] = 'EnergyFactor'
571
549
  args['dehumidifier_efficiency'] = 1.8
572
550
  args['dehumidifier_capacity'] = 40
573
551
  args['dehumidifier_rh_setpoint'] = 0.5
574
552
  args['dehumidifier_fraction_dehumidification_load_served'] = 1
553
+ args['clothes_washer_present'] = true
575
554
  args['clothes_washer_location'] = HPXML::LocationLivingSpace
576
555
  args['clothes_washer_efficiency_type'] = 'IntegratedModifiedEnergyFactor'
577
556
  args['clothes_washer_efficiency'] = 1.21
@@ -581,13 +560,13 @@ class BuildResidentialHPXMLTest < MiniTest::Test
581
560
  args['clothes_washer_label_annual_gas_cost'] = 27.0
582
561
  args['clothes_washer_label_usage'] = 6.0
583
562
  args['clothes_washer_capacity'] = 3.2
584
- args['clothes_washer_usage_multiplier'] = 1.0
563
+ args['clothes_dryer_present'] = true
585
564
  args['clothes_dryer_location'] = HPXML::LocationLivingSpace
586
565
  args['clothes_dryer_fuel_type'] = HPXML::FuelTypeElectricity
587
566
  args['clothes_dryer_efficiency_type'] = 'CombinedEnergyFactor'
588
567
  args['clothes_dryer_efficiency'] = 3.73
589
568
  args['clothes_dryer_vented_flow_rate'] = 150.0
590
- args['clothes_dryer_usage_multiplier'] = 1.0
569
+ args['dishwasher_present'] = true
591
570
  args['dishwasher_location'] = HPXML::LocationLivingSpace
592
571
  args['dishwasher_efficiency_type'] = 'RatedAnnualkWh'
593
572
  args['dishwasher_efficiency'] = 307
@@ -596,66 +575,34 @@ class BuildResidentialHPXMLTest < MiniTest::Test
596
575
  args['dishwasher_label_annual_gas_cost'] = 22.32
597
576
  args['dishwasher_label_usage'] = 4.0
598
577
  args['dishwasher_place_setting_capacity'] = 12
599
- args['dishwasher_usage_multiplier'] = 1.0
578
+ args['refrigerator_present'] = true
600
579
  args['refrigerator_location'] = HPXML::LocationLivingSpace
601
580
  args['refrigerator_rated_annual_kwh'] = 650.0
602
- args['refrigerator_usage_multiplier'] = 1.0
603
- args['extra_refrigerator_location'] = 'none'
604
- args['extra_refrigerator_rated_annual_kwh'] = Constants.Auto
605
- args['extra_refrigerator_usage_multiplier'] = 1.0
606
- args['freezer_location'] = 'none'
607
- args['freezer_rated_annual_kwh'] = Constants.Auto
608
- args['freezer_usage_multiplier'] = 1.0
581
+ args['extra_refrigerator_present'] = false
582
+ args['freezer_present'] = false
583
+ args['cooking_range_oven_present'] = true
609
584
  args['cooking_range_oven_location'] = HPXML::LocationLivingSpace
610
585
  args['cooking_range_oven_fuel_type'] = HPXML::FuelTypeElectricity
611
586
  args['cooking_range_oven_is_induction'] = false
612
587
  args['cooking_range_oven_is_convection'] = false
613
- args['cooking_range_oven_usage_multiplier'] = 1.0
614
588
  args['ceiling_fan_present'] = false
615
- args['ceiling_fan_efficiency'] = Constants.Auto
616
- args['ceiling_fan_quantity'] = Constants.Auto
617
- args['ceiling_fan_cooling_setpoint_temp_offset'] = 0
618
589
  args['misc_plug_loads_television_present'] = true
619
590
  args['misc_plug_loads_television_annual_kwh'] = 620.0
620
- args['misc_plug_loads_television_usage_multiplier'] = 1.0
621
591
  args['misc_plug_loads_other_annual_kwh'] = 2457.0
622
592
  args['misc_plug_loads_other_frac_sensible'] = 0.855
623
593
  args['misc_plug_loads_other_frac_latent'] = 0.045
624
- args['misc_plug_loads_other_usage_multiplier'] = 1.0
625
594
  args['misc_plug_loads_well_pump_present'] = false
626
- args['misc_plug_loads_well_pump_annual_kwh'] = Constants.Auto
627
- args['misc_plug_loads_well_pump_usage_multiplier'] = 0.0
628
595
  args['misc_plug_loads_vehicle_present'] = false
629
- args['misc_plug_loads_vehicle_annual_kwh'] = Constants.Auto
630
- args['misc_plug_loads_vehicle_usage_multiplier'] = 0.0
631
596
  args['misc_fuel_loads_grill_present'] = false
632
597
  args['misc_fuel_loads_grill_fuel_type'] = HPXML::FuelTypeNaturalGas
633
- args['misc_fuel_loads_grill_annual_therm'] = Constants.Auto
634
- args['misc_fuel_loads_grill_usage_multiplier'] = 0.0
635
598
  args['misc_fuel_loads_lighting_present'] = false
636
599
  args['misc_fuel_loads_lighting_fuel_type'] = HPXML::FuelTypeNaturalGas
637
- args['misc_fuel_loads_lighting_annual_therm'] = Constants.Auto
638
- args['misc_fuel_loads_lighting_usage_multiplier'] = 0.0
639
600
  args['misc_fuel_loads_fireplace_present'] = false
640
601
  args['misc_fuel_loads_fireplace_fuel_type'] = HPXML::FuelTypeNaturalGas
641
- args['misc_fuel_loads_fireplace_annual_therm'] = Constants.Auto
642
- args['misc_fuel_loads_fireplace_frac_sensible'] = Constants.Auto
643
- args['misc_fuel_loads_fireplace_frac_latent'] = Constants.Auto
644
- args['misc_fuel_loads_fireplace_usage_multiplier'] = 0.0
645
602
  args['pool_present'] = false
646
- args['pool_pump_annual_kwh'] = Constants.Auto
647
- args['pool_pump_usage_multiplier'] = 1.0
648
603
  args['pool_heater_type'] = HPXML::HeaterTypeElectricResistance
649
- args['pool_heater_annual_kwh'] = Constants.Auto
650
- args['pool_heater_annual_therm'] = Constants.Auto
651
- args['pool_heater_usage_multiplier'] = 1.0
652
604
  args['hot_tub_present'] = false
653
- args['hot_tub_pump_annual_kwh'] = Constants.Auto
654
- args['hot_tub_pump_usage_multiplier'] = 1.0
655
605
  args['hot_tub_heater_type'] = HPXML::HeaterTypeElectricResistance
656
- args['hot_tub_heater_annual_kwh'] = Constants.Auto
657
- args['hot_tub_heater_annual_therm'] = Constants.Auto
658
- args['hot_tub_heater_usage_multiplier'] = 1.0
659
606
  elsif ['base-sfa.xml'].include? hpxml_file
660
607
  args['geometry_unit_type'] = HPXML::ResidentialTypeSFA
661
608
  args['geometry_unit_cfa'] = 1800.0
@@ -697,17 +644,17 @@ class BuildResidentialHPXMLTest < MiniTest::Test
697
644
 
698
645
  # Extras
699
646
  if ['extra-auto.xml'].include? hpxml_file
700
- args['geometry_unit_num_occupants'] = Constants.Auto
701
- args['ducts_supply_location'] = Constants.Auto
702
- args['ducts_return_location'] = Constants.Auto
703
- args['ducts_supply_surface_area'] = Constants.Auto
704
- args['ducts_return_surface_area'] = Constants.Auto
705
- args['water_heater_location'] = Constants.Auto
706
- args['water_heater_tank_volume'] = Constants.Auto
707
- args['hot_water_distribution_standard_piping_length'] = Constants.Auto
708
- args['clothes_washer_location'] = Constants.Auto
709
- args['clothes_dryer_location'] = Constants.Auto
710
- args['refrigerator_location'] = Constants.Auto
647
+ args.delete('geometry_unit_num_occupants')
648
+ args.delete('ducts_supply_location')
649
+ args.delete('ducts_return_location')
650
+ args.delete('ducts_supply_surface_area')
651
+ args.delete('ducts_return_surface_area')
652
+ args.delete('water_heater_location')
653
+ args.delete('water_heater_tank_volume')
654
+ args.delete('hot_water_distribution_standard_piping_length')
655
+ args.delete('clothes_washer_location')
656
+ args.delete('clothes_dryer_location')
657
+ args.delete('refrigerator_location')
711
658
  elsif ['extra-pv-roofpitch.xml'].include? hpxml_file
712
659
  args['pv_system_module_type'] = HPXML::PVModuleTypeStandard
713
660
  args['pv_system_2_module_type'] = HPXML::PVModuleTypeStandard
@@ -802,7 +749,7 @@ class BuildResidentialHPXMLTest < MiniTest::Test
802
749
  args['geometry_foundation_type'] = HPXML::FoundationTypeSlab
803
750
  args['geometry_foundation_height'] = 0.0
804
751
  args['geometry_foundation_height_above_grade'] = 0.0
805
- args['foundation_wall_insulation_distance_to_bottom'] = Constants.Auto
752
+ args.delete('foundation_wall_insulation_distance_to_bottom')
806
753
  args['geometry_unit_cfa'] = 4500.0
807
754
  args['geometry_unit_num_floors_above_grade'] = 2
808
755
  args['geometry_attic_type'] = HPXML::AtticTypeConditioned
@@ -811,17 +758,6 @@ class BuildResidentialHPXMLTest < MiniTest::Test
811
758
  args['ducts_return_location'] = HPXML::LocationUnderSlab
812
759
  elsif ['extra-enclosure-atticroof-conditioned-eaves-hip.xml'].include? hpxml_file
813
760
  args['geometry_roof_type'] = 'hip'
814
- elsif ['extra-zero-refrigerator-kwh.xml'].include? hpxml_file
815
- args['refrigerator_rated_annual_kwh'] = 0
816
- elsif ['extra-zero-extra-refrigerator-kwh.xml'].include? hpxml_file
817
- args['extra_refrigerator_rated_annual_kwh'] = 0
818
- elsif ['extra-zero-freezer-kwh.xml'].include? hpxml_file
819
- args['freezer_rated_annual_kwh'] = 0
820
- elsif ['extra-zero-clothes-washer-kwh.xml'].include? hpxml_file
821
- args['clothes_washer_rated_annual_kwh'] = 0
822
- args['clothes_dryer_location'] = 'none'
823
- elsif ['extra-zero-dishwasher-kwh.xml'].include? hpxml_file
824
- args['dishwasher_efficiency'] = 0
825
761
  elsif ['extra-gas-pool-heater-with-zero-kwh.xml'].include? hpxml_file
826
762
  args['pool_present'] = true
827
763
  args['pool_heater_type'] = HPXML::HeaterTypeGas
@@ -850,6 +786,21 @@ class BuildResidentialHPXMLTest < MiniTest::Test
850
786
  args['emissions_fuel_oil_values'] = '161.0, 0.0015'
851
787
  args['emissions_coal_values'] = '211.1, 0.0020'
852
788
  args['emissions_wood_values'] = '200.0, 0.0025'
789
+ elsif ['extra-bills-fossil-fuel-rates.xml'].include? hpxml_file
790
+ args['utility_bill_scenario_names'] = 'Scenario1, Scenario2'
791
+ args['utility_bill_propane_fixed_charges'] = '1, 2'
792
+ args['utility_bill_propane_marginal_rates'] = '3, 4'
793
+ args['utility_bill_fuel_oil_fixed_charges'] = '5, 6'
794
+ args['utility_bill_fuel_oil_marginal_rates'] = '6, 7'
795
+ args['utility_bill_coal_fixed_charges'] = '8, 9'
796
+ args['utility_bill_coal_marginal_rates'] = '10, 11'
797
+ args['utility_bill_wood_fixed_charges'] = '12, 13'
798
+ args['utility_bill_wood_marginal_rates'] = '14, 15'
799
+ args['utility_bill_wood_pellets_fixed_charges'] = '16, 17'
800
+ args['utility_bill_wood_pellets_marginal_rates'] = '18, 19'
801
+ elsif ['extra-seasons-building-america.xml'].include? hpxml_file
802
+ args['hvac_control_heating_season_period'] = HPXML::BuildingAmerica
803
+ args['hvac_control_cooling_season_period'] = HPXML::BuildingAmerica
853
804
  elsif ['extra-sfa-atticroof-flat.xml'].include? hpxml_file
854
805
  args['geometry_attic_type'] = HPXML::AtticTypeFlatRoof
855
806
  args['ducts_supply_leakage_to_outside_value'] = 0.0
@@ -870,7 +821,7 @@ class BuildResidentialHPXMLTest < MiniTest::Test
870
821
  args['geometry_foundation_type'] = HPXML::FoundationTypeSlab
871
822
  args['geometry_foundation_height'] = 0.0
872
823
  args['geometry_foundation_height_above_grade'] = 0.0
873
- args['foundation_wall_insulation_distance_to_bottom'] = Constants.Auto
824
+ args.delete('foundation_wall_insulation_distance_to_bottom')
874
825
  elsif ['extra-sfa-vented-crawlspace.xml'].include? hpxml_file
875
826
  args['geometry_foundation_type'] = HPXML::FoundationTypeCrawlspaceVented
876
827
  args['geometry_foundation_height'] = 4.0
@@ -922,7 +873,7 @@ class BuildResidentialHPXMLTest < MiniTest::Test
922
873
  args['geometry_foundation_type'] = HPXML::FoundationTypeSlab
923
874
  args['geometry_foundation_height'] = 0.0
924
875
  args['geometry_foundation_height_above_grade'] = 0.0
925
- args['foundation_wall_insulation_distance_to_bottom'] = Constants.Auto
876
+ args.delete('foundation_wall_insulation_distance_to_bottom')
926
877
  elsif ['extra-mf-vented-crawlspace.xml'].include? hpxml_file
927
878
  args['geometry_building_num_units'] = 18
928
879
  args['geometry_foundation_type'] = HPXML::FoundationTypeCrawlspaceVented
@@ -1037,13 +988,9 @@ class BuildResidentialHPXMLTest < MiniTest::Test
1037
988
  elsif ['error-cooling-system-and-heat-pump.xml'].include? hpxml_file
1038
989
  args['heating_system_type'] = 'none'
1039
990
  args['heat_pump_type'] = HPXML::HVACTypeHeatPumpAirToAir
1040
- elsif ['error-non-integer-geometry-num-bathrooms.xml'].include? hpxml_file
1041
- args['geometry_unit_num_bathrooms'] = 1.5
1042
- elsif ['error-non-integer-ceiling-fan-quantity.xml'].include? hpxml_file
1043
- args['ceiling_fan_quantity'] = 0.5
1044
991
  elsif ['error-sfd-conditioned-basement-zero-foundation-height.xml'].include? hpxml_file
1045
992
  args['geometry_foundation_height'] = 0.0
1046
- args['foundation_wall_insulation_distance_to_bottom'] = Constants.Auto
993
+ args.delete('foundation_wall_insulation_distance_to_bottom')
1047
994
  elsif ['error-sfd-adiabatic-walls.xml'].include? hpxml_file
1048
995
  args['geometry_unit_left_wall_is_adiabatic'] = true
1049
996
  elsif ['error-mf-conditioned-basement'].include? hpxml_file
@@ -1054,9 +1001,9 @@ class BuildResidentialHPXMLTest < MiniTest::Test
1054
1001
  args['geometry_foundation_type'] = HPXML::FoundationTypeCrawlspaceUnvented
1055
1002
  args['geometry_foundation_height'] = 0.0
1056
1003
  args['geometry_attic_type'] = HPXML::AtticTypeBelowApartment
1057
- args['foundation_wall_insulation_distance_to_bottom'] = Constants.Auto
1004
+ args.delete('foundation_wall_insulation_distance_to_bottom')
1058
1005
  elsif ['error-ducts-location-and-areas-not-same-type.xml'].include? hpxml_file
1059
- args['ducts_supply_location'] = Constants.Auto
1006
+ args.delete('ducts_supply_location')
1060
1007
  elsif ['error-second-heating-system-serves-total-heat-load.xml'].include? hpxml_file
1061
1008
  args['heating_system_2_type'] = HPXML::HVACTypeFireplace
1062
1009
  args['heating_system_2_fraction_heat_load_served'] = 1.0
@@ -1107,6 +1054,10 @@ class BuildResidentialHPXMLTest < MiniTest::Test
1107
1054
  args['emissions_electricity_values_or_filepaths'] = '../../HPXMLtoOpenStudio/resources/data/cambium/LRMER_MidCase.csv'
1108
1055
  elsif ['error-emissions-natural-gas-args-not-all-specified.xml'].include? hpxml_file
1109
1056
  args['emissions_natural_gas_values'] = '117.6'
1057
+ elsif ['error-bills-args-not-all-same-size.xml'].include? hpxml_file
1058
+ args['utility_bill_scenario_names'] = 'Scenario1'
1059
+ args['utility_bill_electricity_fixed_charges'] = '1'
1060
+ args['utility_bill_electricity_marginal_rates'] = '2,2'
1110
1061
  elsif ['error-invalid-aspect-ratio.xml'].include? hpxml_file
1111
1062
  args['geometry_unit_aspect_ratio'] = -1
1112
1063
  elsif ['error-negative-foundation-height.xml'].include? hpxml_file
@@ -1156,7 +1107,7 @@ class BuildResidentialHPXMLTest < MiniTest::Test
1156
1107
  elsif ['warning-slab-non-zero-foundation-height-above-grade.xml'].include? hpxml_file
1157
1108
  args['geometry_foundation_type'] = HPXML::FoundationTypeSlab
1158
1109
  args['geometry_foundation_height'] = 0.0
1159
- args['foundation_wall_insulation_distance_to_bottom'] = Constants.Auto
1110
+ args.delete('foundation_wall_insulation_distance_to_bottom')
1160
1111
  elsif ['warning-second-heating-system-serves-majority-heat.xml'].include? hpxml_file
1161
1112
  args['heating_system_fraction_heat_load_served'] = 0.4
1162
1113
  args['heating_system_2_type'] = HPXML::HVACTypeFireplace
@@ -1193,20 +1144,6 @@ class BuildResidentialHPXMLTest < MiniTest::Test
1193
1144
  args['geometry_attic_type'] = HPXML::AtticTypeConditioned
1194
1145
  args['ducts_supply_location'] = HPXML::LocationLivingSpace
1195
1146
  args['ducts_return_location'] = HPXML::LocationLivingSpace
1196
- elsif ['warning-multipliers-without-tv-plug-loads.xml'].include? hpxml_file
1197
- args['misc_plug_loads_television_annual_kwh'] = 0.0
1198
- elsif ['warning-multipliers-without-other-plug-loads.xml'].include? hpxml_file
1199
- args['misc_plug_loads_other_annual_kwh'] = 0.0
1200
- elsif ['warning-multipliers-without-well-pump-plug-loads.xml'].include? hpxml_file
1201
- args['misc_plug_loads_well_pump_annual_kwh'] = 0.0
1202
- args['misc_plug_loads_well_pump_usage_multiplier'] = 1.0
1203
- elsif ['warning-multipliers-without-vehicle-plug-loads.xml'].include? hpxml_file
1204
- args['misc_plug_loads_vehicle_annual_kwh'] = 0.0
1205
- args['misc_plug_loads_vehicle_usage_multiplier'] = 1.0
1206
- elsif ['warning-multipliers-without-fuel-loads.xml'].include? hpxml_file
1207
- args['misc_fuel_loads_grill_usage_multiplier'] = 1.0
1208
- args['misc_fuel_loads_lighting_usage_multiplier'] = 1.0
1209
- args['misc_fuel_loads_fireplace_usage_multiplier'] = 1.0
1210
1147
  end
1211
1148
  end
1212
1149
 
@@ -1222,7 +1159,7 @@ class BuildResidentialHPXMLTest < MiniTest::Test
1222
1159
  end
1223
1160
  if not expected_warning.nil?
1224
1161
  if runner.result.stepWarnings.select { |s| s == expected_warning }.size <= 0
1225
- runner.result.stepErrors.each do |s|
1162
+ runner.result.stepWarnings.each do |s|
1226
1163
  puts "WARNING: #{s}"
1227
1164
  end
1228
1165
  end
@@ -6,14 +6,14 @@
6
6
  require 'openstudio'
7
7
  require 'pathname'
8
8
  require 'oga'
9
- require_relative 'resources/schedules'
10
- require_relative '../HPXMLtoOpenStudio/resources/constants'
11
- require_relative '../HPXMLtoOpenStudio/resources/geometry'
12
- require_relative '../HPXMLtoOpenStudio/resources/hpxml'
13
- require_relative '../HPXMLtoOpenStudio/resources/lighting'
14
- require_relative '../HPXMLtoOpenStudio/resources/meta_measure'
15
- require_relative '../HPXMLtoOpenStudio/resources/schedules'
16
- require_relative '../HPXMLtoOpenStudio/resources/xmlhelper'
9
+ Dir["#{File.dirname(__FILE__)}/resources/*.rb"].each do |resource_file|
10
+ require resource_file
11
+ end
12
+ Dir["#{File.dirname(__FILE__)}/../HPXMLtoOpenStudio/resources/*.rb"].each do |resource_file|
13
+ next if resource_file.include? 'minitest_helper.rb'
14
+
15
+ require resource_file
16
+ end
17
17
 
18
18
  # start the measure
19
19
  class BuildResidentialScheduleFile < OpenStudio::Measure::ModelMeasure
@@ -33,7 +33,7 @@ class BuildResidentialScheduleFile < OpenStudio::Measure::ModelMeasure
33
33
  end
34
34
 
35
35
  # define the arguments that the user will input
36
- def arguments(model)
36
+ def arguments(model) # rubocop:disable Lint/UnusedMethodArgument
37
37
  args = OpenStudio::Measure::OSArgumentVector.new
38
38
 
39
39
  arg = OpenStudio::Measure::OSArgument.makeStringArgument('hpxml_path', true)
@@ -64,7 +64,7 @@ class BuildResidentialScheduleFile < OpenStudio::Measure::ModelMeasure
64
64
 
65
65
  arg = OpenStudio::Measure::OSArgument.makeStringArgument('output_csv_path', true)
66
66
  arg.setDisplayName('Schedules: Output CSV Path')
67
- arg.setDescription('Absolute/relative path of the csv file containing user-specified occupancy schedules. Relative paths are relative to the HPXML output path.')
67
+ arg.setDescription('Absolute/relative path of the CSV file containing occupancy schedules. Relative paths are relative to the HPXML output path.')
68
68
  args << arg
69
69
 
70
70
  arg = OpenStudio::Measure::OSArgument.makeStringArgument('hpxml_output_path', true)
@@ -72,6 +72,12 @@ class BuildResidentialScheduleFile < OpenStudio::Measure::ModelMeasure
72
72
  arg.setDescription('Absolute/relative output path of the HPXML file. This HPXML file will include the output CSV path.')
73
73
  args << arg
74
74
 
75
+ arg = OpenStudio::Measure::OSArgument.makeBoolArgument('debug', false)
76
+ arg.setDisplayName('Debug Mode?')
77
+ arg.setDescription('Applicable when schedules type is stochastic. If true: Write extra state column(s).')
78
+ arg.setDefaultValue(false)
79
+ args << arg
80
+
75
81
  return args
76
82
  end
77
83
 
@@ -90,7 +96,7 @@ class BuildResidentialScheduleFile < OpenStudio::Measure::ModelMeasure
90
96
 
91
97
  hpxml_path = args[:hpxml_path]
92
98
  unless (Pathname.new hpxml_path).absolute?
93
- hpxml_path = File.expand_path(File.join(File.dirname(__FILE__), hpxml_path))
99
+ hpxml_path = File.expand_path(hpxml_path)
94
100
  end
95
101
  unless File.exist?(hpxml_path) && hpxml_path.downcase.end_with?('.xml')
96
102
  fail "'#{hpxml_path}' does not exist or is not an .xml file."
@@ -98,21 +104,14 @@ class BuildResidentialScheduleFile < OpenStudio::Measure::ModelMeasure
98
104
 
99
105
  hpxml_output_path = args[:hpxml_output_path]
100
106
  unless (Pathname.new hpxml_output_path).absolute?
101
- hpxml_output_path = File.expand_path(File.join(File.dirname(__FILE__), hpxml_output_path))
107
+ hpxml_output_path = File.expand_path(hpxml_output_path)
102
108
  end
103
109
  args[:hpxml_output_path] = hpxml_output_path
104
110
 
105
111
  hpxml = HPXML.new(hpxml_path: hpxml_path)
106
112
 
107
113
  # create EpwFile object
108
- epw_path = hpxml.climate_and_risk_zones.weather_station_epw_filepath
109
- if not File.exist? epw_path
110
- epw_path = File.join(File.expand_path(File.join(File.dirname(__FILE__), '..', 'weather')), epw_path) # a filename was entered for weather_station_epw_filepath
111
- end
112
- if not File.exist? epw_path
113
- runner.registerError("Could not find EPW file at '#{epw_path}'.")
114
- return false
115
- end
114
+ epw_path = Location.get_epw_path(hpxml, hpxml_path)
116
115
  epw_file = OpenStudio::EpwFile.new(epw_path)
117
116
 
118
117
  # create the schedules
@@ -177,13 +176,7 @@ class BuildResidentialScheduleFile < OpenStudio::Measure::ModelMeasure
177
176
  args[:mkc_ts_per_day] = 96
178
177
  args[:mkc_ts_per_hour] = args[:mkc_ts_per_day] / 24
179
178
 
180
- calendar_year = 2007 # default to TMY
181
- if !hpxml.header.sim_calendar_year.nil?
182
- calendar_year = hpxml.header.sim_calendar_year
183
- end
184
- if epw_file.startDateActualYear.is_initialized # AMY
185
- calendar_year = epw_file.startDateActualYear.get
186
- end
179
+ calendar_year = Location.get_sim_calendar_year(hpxml.header.sim_calendar_year, epw_file)
187
180
  args[:sim_year] = calendar_year
188
181
  args[:sim_start_day] = DateTime.new(args[:sim_year], 1, 1)
189
182
  args[:total_days_in_year] = Constants.NumDaysInYear(calendar_year)
@@ -201,6 +194,10 @@ class BuildResidentialScheduleFile < OpenStudio::Measure::ModelMeasure
201
194
  else
202
195
  args[:geometry_num_occupants] = hpxml.building_occupancy.number_of_residents
203
196
  end
197
+ # Stochastic occupancy required integer number of occupants
198
+ if args[:schedules_type] == 'stochastic'
199
+ args[:geometry_num_occupants] = Float(Integer(args[:geometry_num_occupants]))
200
+ end
204
201
 
205
202
  if args[:schedules_vacancy_period].is_initialized
206
203
  begin_month, begin_day, end_month, end_day = Schedule.parse_date_range(args[:schedules_vacancy_period].get)
@@ -209,6 +206,12 @@ class BuildResidentialScheduleFile < OpenStudio::Measure::ModelMeasure
209
206
  args[:schedules_vacancy_end_month] = end_month
210
207
  args[:schedules_vacancy_end_day] = end_day
211
208
  end
209
+
210
+ debug = false
211
+ if args[:schedules_type] == 'stochastic' && args[:debug].is_initialized
212
+ debug = args[:debug].get
213
+ end
214
+ args[:debug] = debug
212
215
  end
213
216
  end
214
217