urbanopt-cli 0.8.2 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (650) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +5 -6
  3. data/CHANGELOG.md +21 -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 +601 -101
  635. data/scripts/setup-env.bat +6 -7
  636. data/uo_cli.gemspec +6 -5
  637. metadata +121 -36
  638. data/example_files/residential/exhaust.tsv +0 -3
  639. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/data/hvac_equipment_efficiency.csv +0 -493
  640. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/data/water_heater_efficiency.csv +0 -157
  641. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hpxml_schematron/HPXMLvalidator.xml +0 -620
  642. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/validator.rb +0 -107
  643. data/example_files/resources/hpxml-measures/ReportHPXMLOutput/measure.rb +0 -450
  644. data/example_files/resources/hpxml-measures/ReportHPXMLOutput/measure.xml +0 -85
  645. data/example_files/resources/hpxml-measures/ReportHPXMLOutput/resources/constants.rb +0 -72
  646. data/example_files/resources/hpxml-measures/ReportHPXMLOutput/tests/hpxml_output_report_test.rb +0 -290
  647. data/example_files/resources/hpxml-measures/ReportUtilityBills/tests/PV_10kW.csv +0 -8761
  648. data/example_files/resources/hpxml-measures/ReportUtilityBills/tests/PV_1kW.csv +0 -8761
  649. data/example_files/resources/hpxml-measures/ReportUtilityBills/tests/PV_None.csv +0 -8761
  650. 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