urbanopt-cli 0.4.0 → 0.4.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (732) hide show
  1. checksums.yaml +4 -4
  2. data/.github/pull_request_template.md +2 -2
  3. data/CHANGELOG.md +15 -0
  4. data/Gemfile +11 -11
  5. data/README.md +1 -1
  6. data/example_files/Gemfile +3 -3
  7. data/example_files/mappers/Baseline.rb +233 -204
  8. data/example_files/mappers/HighEfficiency.rb +41 -8
  9. data/example_files/measures/BuildResidentialModel/measure.rb +25 -5
  10. data/example_files/resources/hpxml-measures/.gitignore +1 -2
  11. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/measure.rb +364 -694
  12. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/measure.xml +1506 -889
  13. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/constants.rb +12 -0
  14. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/location.rb +1 -1
  15. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules.rb +1068 -0
  16. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_README.md +45 -0
  17. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_clothes_dryer_power_consumption_dist.csv +95 -0
  18. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_clothes_dryer_power_duration_dist.csv +95 -0
  19. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_clothes_washer_cluster_size_probability.csv +6 -0
  20. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_clothes_washer_event_duration_probability.csv +44 -0
  21. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_clothes_washer_power_consumption_dist.csv +93 -0
  22. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_clothes_washer_power_duration_dist.csv +93 -0
  23. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_config.yml +61 -0
  24. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_cooking_power_consumption_dist.csv +63 -0
  25. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_cooking_power_duration_dist.csv +63 -0
  26. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_dishwasher_cluster_size_probability.csv +8 -0
  27. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_dishwasher_event_duration_probability.csv +192 -0
  28. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_dishwasher_power_consumption_dist.csv +56 -0
  29. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_dishwasher_power_duration_dist.csv +56 -0
  30. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_shower_cluster_size_probability.csv +4 -0
  31. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_shower_event_duration_probability.csv +1531 -0
  32. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekday_duration_probability_cluster_0_cooking_evening_duration_probability.csv +10 -0
  33. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekday_duration_probability_cluster_0_cooking_midday_duration_probability.csv +20 -0
  34. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekday_duration_probability_cluster_0_cooking_morning_duration_probability.csv +19 -0
  35. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekday_duration_probability_cluster_0_dishwashing_evening_duration_probability.csv +7 -0
  36. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekday_duration_probability_cluster_0_dishwashing_midday_duration_probability.csv +11 -0
  37. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekday_duration_probability_cluster_0_dishwashing_morning_duration_probability.csv +11 -0
  38. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekday_duration_probability_cluster_0_laundry_evening_duration_probability.csv +12 -0
  39. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekday_duration_probability_cluster_0_laundry_midday_duration_probability.csv +19 -0
  40. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekday_duration_probability_cluster_0_laundry_morning_duration_probability.csv +19 -0
  41. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekday_duration_probability_cluster_0_shower_evening_duration_probability.csv +10 -0
  42. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekday_duration_probability_cluster_0_shower_midday_duration_probability.csv +12 -0
  43. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekday_duration_probability_cluster_0_shower_morning_duration_probability.csv +11 -0
  44. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekday_duration_probability_cluster_1_cooking_evening_duration_probability.csv +8 -0
  45. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekday_duration_probability_cluster_1_cooking_midday_duration_probability.csv +21 -0
  46. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekday_duration_probability_cluster_1_cooking_morning_duration_probability.csv +26 -0
  47. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekday_duration_probability_cluster_1_dishwashing_evening_duration_probability.csv +6 -0
  48. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekday_duration_probability_cluster_1_dishwashing_midday_duration_probability.csv +14 -0
  49. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekday_duration_probability_cluster_1_dishwashing_morning_duration_probability.csv +15 -0
  50. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekday_duration_probability_cluster_1_laundry_evening_duration_probability.csv +7 -0
  51. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekday_duration_probability_cluster_1_laundry_midday_duration_probability.csv +19 -0
  52. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekday_duration_probability_cluster_1_laundry_morning_duration_probability.csv +25 -0
  53. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekday_duration_probability_cluster_1_shower_evening_duration_probability.csv +9 -0
  54. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekday_duration_probability_cluster_1_shower_midday_duration_probability.csv +11 -0
  55. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekday_duration_probability_cluster_1_shower_morning_duration_probability.csv +14 -0
  56. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekday_duration_probability_cluster_2_cooking_evening_duration_probability.csv +10 -0
  57. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekday_duration_probability_cluster_2_cooking_midday_duration_probability.csv +16 -0
  58. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekday_duration_probability_cluster_2_cooking_morning_duration_probability.csv +15 -0
  59. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekday_duration_probability_cluster_2_dishwashing_evening_duration_probability.csv +7 -0
  60. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekday_duration_probability_cluster_2_dishwashing_midday_duration_probability.csv +5 -0
  61. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekday_duration_probability_cluster_2_dishwashing_morning_duration_probability.csv +5 -0
  62. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekday_duration_probability_cluster_2_laundry_evening_duration_probability.csv +13 -0
  63. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekday_duration_probability_cluster_2_laundry_midday_duration_probability.csv +12 -0
  64. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekday_duration_probability_cluster_2_laundry_morning_duration_probability.csv +13 -0
  65. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekday_duration_probability_cluster_2_shower_evening_duration_probability.csv +10 -0
  66. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekday_duration_probability_cluster_2_shower_midday_duration_probability.csv +10 -0
  67. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekday_duration_probability_cluster_2_shower_morning_duration_probability.csv +14 -0
  68. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekday_duration_probability_cluster_3_cooking_evening_duration_probability.csv +9 -0
  69. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekday_duration_probability_cluster_3_cooking_midday_duration_probability.csv +18 -0
  70. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekday_duration_probability_cluster_3_cooking_morning_duration_probability.csv +10 -0
  71. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekday_duration_probability_cluster_3_dishwashing_evening_duration_probability.csv +8 -0
  72. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekday_duration_probability_cluster_3_dishwashing_midday_duration_probability.csv +10 -0
  73. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekday_duration_probability_cluster_3_dishwashing_morning_duration_probability.csv +8 -0
  74. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekday_duration_probability_cluster_3_laundry_evening_duration_probability.csv +10 -0
  75. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekday_duration_probability_cluster_3_laundry_midday_duration_probability.csv +17 -0
  76. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekday_duration_probability_cluster_3_laundry_morning_duration_probability.csv +14 -0
  77. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekday_duration_probability_cluster_3_shower_evening_duration_probability.csv +7 -0
  78. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekday_duration_probability_cluster_3_shower_midday_duration_probability.csv +12 -0
  79. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekday_duration_probability_cluster_3_shower_morning_duration_probability.csv +14 -0
  80. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekday_mkv_chain_initial_prob_cluster_0.csv +7 -0
  81. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekday_mkv_chain_initial_prob_cluster_1.csv +7 -0
  82. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekday_mkv_chain_initial_prob_cluster_2.csv +7 -0
  83. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekday_mkv_chain_initial_prob_cluster_3.csv +7 -0
  84. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekday_mkv_chain_transition_prob_cluster_0.csv +665 -0
  85. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekday_mkv_chain_transition_prob_cluster_1.csv +665 -0
  86. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekday_mkv_chain_transition_prob_cluster_2.csv +665 -0
  87. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekday_mkv_chain_transition_prob_cluster_3.csv +665 -0
  88. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekend_duration_probability_cluster_0_cooking_evening_duration_probability.csv +12 -0
  89. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekend_duration_probability_cluster_0_cooking_midday_duration_probability.csv +22 -0
  90. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekend_duration_probability_cluster_0_cooking_morning_duration_probability.csv +18 -0
  91. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekend_duration_probability_cluster_0_dishwashing_evening_duration_probability.csv +9 -0
  92. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekend_duration_probability_cluster_0_dishwashing_midday_duration_probability.csv +10 -0
  93. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekend_duration_probability_cluster_0_dishwashing_morning_duration_probability.csv +10 -0
  94. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekend_duration_probability_cluster_0_laundry_evening_duration_probability.csv +11 -0
  95. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekend_duration_probability_cluster_0_laundry_midday_duration_probability.csv +22 -0
  96. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekend_duration_probability_cluster_0_laundry_morning_duration_probability.csv +18 -0
  97. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekend_duration_probability_cluster_0_shower_evening_duration_probability.csv +8 -0
  98. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekend_duration_probability_cluster_0_shower_midday_duration_probability.csv +10 -0
  99. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekend_duration_probability_cluster_0_shower_morning_duration_probability.csv +15 -0
  100. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekend_duration_probability_cluster_1_cooking_evening_duration_probability.csv +14 -0
  101. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekend_duration_probability_cluster_1_cooking_midday_duration_probability.csv +23 -0
  102. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekend_duration_probability_cluster_1_cooking_morning_duration_probability.csv +24 -0
  103. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekend_duration_probability_cluster_1_dishwashing_evening_duration_probability.csv +12 -0
  104. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekend_duration_probability_cluster_1_dishwashing_midday_duration_probability.csv +14 -0
  105. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekend_duration_probability_cluster_1_dishwashing_morning_duration_probability.csv +15 -0
  106. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekend_duration_probability_cluster_1_laundry_evening_duration_probability.csv +12 -0
  107. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekend_duration_probability_cluster_1_laundry_midday_duration_probability.csv +21 -0
  108. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekend_duration_probability_cluster_1_laundry_morning_duration_probability.csv +22 -0
  109. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekend_duration_probability_cluster_1_shower_evening_duration_probability.csv +9 -0
  110. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekend_duration_probability_cluster_1_shower_midday_duration_probability.csv +15 -0
  111. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekend_duration_probability_cluster_1_shower_morning_duration_probability.csv +14 -0
  112. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekend_duration_probability_cluster_2_cooking_evening_duration_probability.csv +7 -0
  113. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekend_duration_probability_cluster_2_cooking_midday_duration_probability.csv +21 -0
  114. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekend_duration_probability_cluster_2_cooking_morning_duration_probability.csv +20 -0
  115. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekend_duration_probability_cluster_2_dishwashing_evening_duration_probability.csv +7 -0
  116. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekend_duration_probability_cluster_2_dishwashing_midday_duration_probability.csv +6 -0
  117. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekend_duration_probability_cluster_2_dishwashing_morning_duration_probability.csv +10 -0
  118. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekend_duration_probability_cluster_2_laundry_evening_duration_probability.csv +9 -0
  119. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekend_duration_probability_cluster_2_laundry_midday_duration_probability.csv +16 -0
  120. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekend_duration_probability_cluster_2_laundry_morning_duration_probability.csv +16 -0
  121. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekend_duration_probability_cluster_2_shower_evening_duration_probability.csv +9 -0
  122. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekend_duration_probability_cluster_2_shower_midday_duration_probability.csv +11 -0
  123. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekend_duration_probability_cluster_2_shower_morning_duration_probability.csv +14 -0
  124. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekend_duration_probability_cluster_3_cooking_evening_duration_probability.csv +8 -0
  125. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekend_duration_probability_cluster_3_cooking_midday_duration_probability.csv +24 -0
  126. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekend_duration_probability_cluster_3_cooking_morning_duration_probability.csv +34 -0
  127. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekend_duration_probability_cluster_3_dishwashing_evening_duration_probability.csv +6 -0
  128. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekend_duration_probability_cluster_3_dishwashing_midday_duration_probability.csv +12 -0
  129. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekend_duration_probability_cluster_3_dishwashing_morning_duration_probability.csv +13 -0
  130. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekend_duration_probability_cluster_3_laundry_evening_duration_probability.csv +10 -0
  131. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekend_duration_probability_cluster_3_laundry_midday_duration_probability.csv +24 -0
  132. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekend_duration_probability_cluster_3_laundry_morning_duration_probability.csv +29 -0
  133. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekend_duration_probability_cluster_3_shower_evening_duration_probability.csv +8 -0
  134. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekend_duration_probability_cluster_3_shower_midday_duration_probability.csv +14 -0
  135. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekend_duration_probability_cluster_3_shower_morning_duration_probability.csv +16 -0
  136. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekend_mkv_chain_initial_prob_cluster_0.csv +7 -0
  137. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekend_mkv_chain_initial_prob_cluster_1.csv +7 -0
  138. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekend_mkv_chain_initial_prob_cluster_2.csv +7 -0
  139. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekend_mkv_chain_initial_prob_cluster_3.csv +7 -0
  140. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekend_mkv_chain_transition_prob_cluster_0.csv +665 -0
  141. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekend_mkv_chain_transition_prob_cluster_1.csv +665 -0
  142. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekend_mkv_chain_transition_prob_cluster_2.csv +665 -0
  143. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekend_mkv_chain_transition_prob_cluster_3.csv +665 -0
  144. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-coal.osw +11 -57
  145. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-dehumidifier-50percent.osw +11 -57
  146. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-dehumidifier-ief.osw +11 -57
  147. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-dehumidifier.osw +11 -57
  148. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-gas.osw +11 -57
  149. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-modified.osw +11 -57
  150. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-none.osw +11 -57
  151. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-oil.osw +11 -57
  152. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-propane.osw +11 -57
  153. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-wood.osw +11 -57
  154. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-atticroof-flat.osw +11 -57
  155. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-atticroof-radiant-barrier.osw +11 -57
  156. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-atticroof-unvented-insulated-roof.osw +11 -57
  157. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-atticroof-vented.osw +11 -57
  158. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-combi-tankless-outside.osw +11 -57
  159. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-combi-tankless.osw +11 -57
  160. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-dwhr.osw +11 -57
  161. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-indirect-outside.osw +11 -57
  162. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-indirect-standbyloss.osw +11 -57
  163. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-indirect-with-solar-fraction.osw +11 -57
  164. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-indirect.osw +11 -57
  165. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-jacket-electric.osw +11 -57
  166. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-jacket-gas.osw +11 -57
  167. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-jacket-hpwh.osw +11 -57
  168. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-jacket-indirect.osw +11 -57
  169. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-low-flow-fixtures.osw +11 -57
  170. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-none.osw +11 -57
  171. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-recirc-demand.osw +11 -57
  172. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-recirc-manual.osw +11 -57
  173. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-recirc-nocontrol.osw +11 -57
  174. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-recirc-temperature.osw +11 -57
  175. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-recirc-timer.osw +11 -57
  176. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-solar-direct-evacuated-tube.osw +11 -57
  177. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-solar-direct-flat-plate.osw +11 -57
  178. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-solar-direct-ics.osw +11 -57
  179. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-solar-fraction.osw +11 -57
  180. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-solar-indirect-flat-plate.osw +11 -57
  181. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-solar-thermosyphon-flat-plate.osw +11 -57
  182. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-coal.osw +11 -57
  183. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-gas-outside.osw +11 -57
  184. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-gas.osw +11 -57
  185. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-heat-pump-outside.osw +11 -57
  186. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-heat-pump-with-solar-fraction.osw +11 -57
  187. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-heat-pump-with-solar.osw +11 -57
  188. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-heat-pump.osw +11 -57
  189. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-oil.osw +11 -57
  190. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-wood.osw +11 -57
  191. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tankless-electric-outside.osw +11 -57
  192. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tankless-electric.osw +11 -57
  193. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tankless-gas-with-solar-fraction.osw +11 -57
  194. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tankless-gas-with-solar.osw +11 -57
  195. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tankless-gas.osw +11 -57
  196. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tankless-propane.osw +11 -57
  197. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-uef.osw +11 -57
  198. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-2stories-garage.osw +11 -57
  199. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-2stories.osw +11 -57
  200. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-beds-1.osw +11 -57
  201. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-beds-2.osw +11 -57
  202. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-beds-4.osw +11 -57
  203. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-beds-5.osw +11 -57
  204. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-garage.osw +11 -57
  205. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-infil-ach-house-pressure.osw +11 -57
  206. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-infil-cfm-house-pressure.osw +11 -57
  207. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-infil-cfm50.osw +11 -57
  208. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-infil-flue.osw +11 -57
  209. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-infil-natural-ach.osw +11 -57
  210. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-overhangs.osw +11 -57
  211. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-windows-none.osw +11 -57
  212. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-foundation-ambient.osw +11 -57
  213. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-foundation-conditioned-basement-slab-insulation.osw +11 -57
  214. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-foundation-slab.osw +11 -57
  215. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-foundation-unconditioned-basement-assembly-r.osw +11 -57
  216. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-foundation-unconditioned-basement-wall-insulation.osw +11 -57
  217. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-foundation-unconditioned-basement.osw +11 -57
  218. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-foundation-unvented-crawlspace.osw +11 -57
  219. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-foundation-vented-crawlspace.osw +11 -57
  220. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-air-to-air-heat-pump-1-speed.osw +11 -57
  221. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-air-to-air-heat-pump-2-speed.osw +11 -57
  222. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-air-to-air-heat-pump-var-speed.osw +11 -57
  223. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-boiler-coal-only.osw +11 -57
  224. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-boiler-elec-only.osw +11 -57
  225. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-boiler-gas-central-ac-1-speed.osw +11 -57
  226. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-boiler-gas-only.osw +11 -57
  227. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-boiler-oil-only.osw +11 -57
  228. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-boiler-propane-only.osw +11 -57
  229. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-boiler-wood-only.osw +11 -57
  230. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-central-ac-only-1-speed.osw +11 -57
  231. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-central-ac-only-2-speed.osw +11 -57
  232. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-central-ac-only-var-speed.osw +11 -57
  233. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-central-ac-plus-air-to-air-heat-pump-heating.osw +11 -57
  234. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-dual-fuel-air-to-air-heat-pump-1-speed-electric.osw +11 -57
  235. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-dual-fuel-air-to-air-heat-pump-1-speed.osw +11 -57
  236. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-dual-fuel-air-to-air-heat-pump-2-speed.osw +11 -57
  237. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-dual-fuel-air-to-air-heat-pump-var-speed.osw +11 -57
  238. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-dual-fuel-mini-split-heat-pump-ducted.osw +11 -57
  239. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-ducts-leakage-percent.osw +11 -57
  240. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-elec-resistance-only.osw +11 -57
  241. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-evap-cooler-furnace-gas.osw +11 -57
  242. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-evap-cooler-only-ducted.osw +11 -57
  243. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-evap-cooler-only.osw +11 -57
  244. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-fireplace-wood-only.osw +11 -57
  245. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-fixed-heater-gas-only.osw +11 -57
  246. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-floor-furnace-propane-only.osw +11 -57
  247. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-elec-central-ac-1-speed.osw +11 -57
  248. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-elec-only.osw +11 -57
  249. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-gas-central-ac-2-speed.osw +11 -57
  250. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-gas-central-ac-var-speed.osw +11 -57
  251. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-gas-only.osw +11 -57
  252. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-gas-room-ac.osw +11 -57
  253. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-oil-only.osw +11 -57
  254. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-propane-only.osw +11 -57
  255. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-wood-only.osw +11 -57
  256. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-ground-to-air-heat-pump.osw +11 -57
  257. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-mini-split-air-conditioner-only-ducted.osw +11 -57
  258. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-mini-split-air-conditioner-only-ductless.osw +11 -57
  259. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-mini-split-heat-pump-ducted-cooling-only.osw +11 -57
  260. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-mini-split-heat-pump-ducted-heating-only.osw +11 -57
  261. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-mini-split-heat-pump-ducted.osw +11 -57
  262. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-mini-split-heat-pump-ductless.osw +11 -57
  263. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-none.osw +11 -57
  264. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-portable-heater-gas-only.osw +11 -57
  265. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-programmable-thermostat.osw +11 -57
  266. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-room-ac-only-33percent.osw +11 -57
  267. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-room-ac-only.osw +11 -57
  268. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-setpoints.osw +11 -57
  269. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-stove-oil-only.osw +11 -57
  270. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-stove-wood-pellets-only.osw +11 -57
  271. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-undersized.osw +11 -57
  272. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-wall-furnace-elec-only.osw +11 -57
  273. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-lighting-ceiling-fans.osw +11 -57
  274. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-lighting-detailed.osw +11 -57
  275. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/{base-location-epw-filepath-AMY-2012.osw → base-location-AMY-2012.osw} +12 -58
  276. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-location-baltimore-md.osw +11 -57
  277. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-location-dallas-tx.osw +11 -57
  278. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-location-duluth-mn.osw +11 -57
  279. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-location-miami-fl.osw +11 -57
  280. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-balanced.osw +11 -57
  281. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-bath-kitchen-fans.osw +11 -57
  282. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-cfis-evap-cooler-only-ducted.osw +11 -57
  283. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-cfis.osw +11 -57
  284. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-erv-atre-asre.osw +11 -57
  285. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-erv.osw +11 -57
  286. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-exhaust.osw +11 -57
  287. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-hrv-asre.osw +11 -57
  288. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-hrv.osw +11 -57
  289. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-supply.osw +11 -57
  290. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-whole-house-fan.osw +11 -57
  291. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-misc-defaults.osw +11 -57
  292. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-misc-loads-large-uncommon.osw +11 -57
  293. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-misc-loads-large-uncommon2.osw +11 -57
  294. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-misc-neighbor-shading.osw +11 -57
  295. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-misc-usage-multiplier.osw +11 -57
  296. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-multifamily.osw +11 -57
  297. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-pv.osw +11 -57
  298. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-schedules-stochastic.osw +363 -0
  299. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/{base-location-epw-filepath.osw → base-schedules-user-specified.osw} +13 -58
  300. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-simcontrol-calendar-year-custom.osw +364 -0
  301. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-simcontrol-daylight-saving-custom.osw +11 -57
  302. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-simcontrol-daylight-saving-disabled.osw +11 -57
  303. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-simcontrol-runperiod-1-month.osw +11 -57
  304. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-simcontrol-timestep-10-mins.osw +11 -57
  305. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-single-family-attached.osw +11 -57
  306. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base.osw +11 -57
  307. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/build_residential_hpxml_test.rb +53 -2
  308. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-auto.osw +11 -57
  309. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-dhw-shared-water-heater.osw +11 -57
  310. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-dhw-solar-latitude.osw +11 -57
  311. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-enclosure-garage-partially-protruded.osw +11 -57
  312. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-mechvent-shared-preconditioning.osw +373 -0
  313. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-mechvent-shared.osw +367 -0
  314. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-pv-roofpitch.osw +11 -57
  315. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-pv-shared.osw +11 -57
  316. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-second-heating-system-fireplace.osw +11 -57
  317. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-second-heating-system-portable-heater.osw +11 -57
  318. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-second-refrigerator.osw +11 -57
  319. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-vacancy-6-months.osw +367 -0
  320. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/conditioned-attic-with-floor-insulation.osw +11 -57
  321. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/conditioned-basement-with-ceiling-insulation.osw +11 -57
  322. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/cooling-system-and-heat-pump.osw +11 -57
  323. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/dhw-indirect-without-boiler.osw +11 -57
  324. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/ducts-location-and-areas-not-same-type.osw +11 -57
  325. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/heating-system-and-heat-pump.osw +11 -57
  326. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/multifamily-bottom-crawlspace-zero-foundation-height.osw +11 -57
  327. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/multifamily-bottom-slab-non-zero-foundation-height.osw +11 -57
  328. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/multifamily-no-building-orientation.osw +11 -57
  329. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/non-electric-heat-pump-water-heater.osw +11 -57
  330. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/non-integer-ceiling-fan-quantity.osw +11 -57
  331. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/non-integer-geometry-num-bathrooms.osw +11 -57
  332. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/second-heating-system-serves-majority-heat.osw +11 -57
  333. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/single-family-attached-ambient.osw +11 -57
  334. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/single-family-attached-no-building-orientation.osw +11 -57
  335. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/single-family-detached-finished-basement-zero-foundation-height.osw +11 -57
  336. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/single-family-detached-slab-non-zero-foundation-height.osw +11 -57
  337. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/slab-non-zero-foundation-height-above-grade.osw +11 -57
  338. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/unconditioned-basement-with-wall-and-ceiling-insulation.osw +11 -57
  339. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/unvented-attic-with-floor-and-roof-insulation.osw +11 -57
  340. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/unvented-crawlspace-with-wall-and-ceiling-insulation.osw +11 -57
  341. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/vented-attic-with-floor-and-roof-insulation.osw +11 -57
  342. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/vented-crawlspace-with-wall-and-ceiling-insulation.osw +11 -57
  343. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/schedules/stochastic.csv +8761 -0
  344. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/schedules/user-specified.csv +8761 -0
  345. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/measure.rb +65 -61
  346. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/measure.xml +104 -113
  347. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/EPvalidator.xml +9 -1
  348. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/airflow.rb +62 -10
  349. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/constants.rb +4 -0
  350. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/geometry.rb +8 -3
  351. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hotwater_appliances.rb +127 -52
  352. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hpxml.rb +21 -3
  353. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hpxml_defaults.rb +67 -45
  354. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hvac.rb +17 -11
  355. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/lighting.rb +54 -26
  356. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/location.rb +3 -7
  357. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/misc_loads.rb +85 -20
  358. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/schedules.rb +500 -21
  359. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/weather.rb +5 -2
  360. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_airflow.rb +14 -0
  361. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_defaults.rb +44 -5
  362. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_hotwater_appliance.rb +2 -2
  363. data/example_files/resources/hpxml-measures/SimulationOutputReport/measure.rb +15 -5
  364. data/example_files/resources/hpxml-measures/SimulationOutputReport/measure.xml +10 -10
  365. data/example_files/resources/hpxml-measures/SimulationOutputReport/resources/constants.rb +2 -0
  366. data/example_files/resources/hpxml-measures/SimulationOutputReport/tests/output_report_test.rb +29 -3
  367. data/example_files/resources/hpxml-measures/docs/source/build_residential_hpxml.rst +21 -7
  368. data/example_files/resources/hpxml-measures/docs/source/hpxml_to_openstudio.rst +36 -8
  369. data/example_files/resources/hpxml-measures/docs/source/simulation_output_report.rst +5 -4
  370. data/example_files/resources/hpxml-measures/tasks.rb +101 -175
  371. data/example_files/resources/hpxml-measures/weather/US_CO_Boulder_AMY_2012-cache.csv +1 -1
  372. data/example_files/resources/hpxml-measures/weather/US_CO_Boulder_AMY_2012.epw +1 -1
  373. data/example_files/resources/hpxml-measures/workflow/run_simulation.rb +0 -1
  374. data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-coal.xml +3 -1
  375. data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-dehumidifier-50percent.xml +7 -1
  376. data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-dehumidifier-ief.xml +7 -1
  377. data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-dehumidifier.xml +7 -1
  378. data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-gas.xml +3 -1
  379. data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-modified.xml +6 -1
  380. data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-none.xml +3 -1
  381. data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-oil.xml +3 -1
  382. data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-propane.xml +3 -1
  383. data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-wood.xml +3 -1
  384. data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-cathedral.xml +7 -1
  385. data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-conditioned.xml +7 -1
  386. data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-flat.xml +7 -1
  387. data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-radiant-barrier.xml +7 -1
  388. data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-unvented-insulated-roof.xml +7 -1
  389. data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-vented.xml +7 -1
  390. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-combi-tankless-outside.xml +7 -1
  391. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-combi-tankless.xml +7 -1
  392. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater-2-speed.xml +7 -1
  393. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater-gshp.xml +7 -1
  394. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater-hpwh.xml +7 -1
  395. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater-tankless.xml +7 -1
  396. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater-var-speed.xml +7 -1
  397. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater.xml +7 -1
  398. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-dwhr.xml +7 -1
  399. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect-dse.xml +7 -1
  400. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect-outside.xml +7 -1
  401. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect-standbyloss.xml +7 -1
  402. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect-with-solar-fraction.xml +7 -1
  403. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect.xml +7 -1
  404. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-jacket-electric.xml +7 -1
  405. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-jacket-gas.xml +7 -1
  406. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-jacket-hpwh.xml +7 -1
  407. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-jacket-indirect.xml +7 -1
  408. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-low-flow-fixtures.xml +7 -1
  409. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-multiple.xml +7 -1
  410. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-none.xml +3 -1
  411. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-recirc-demand.xml +7 -1
  412. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-recirc-manual.xml +7 -1
  413. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-recirc-nocontrol.xml +7 -1
  414. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-recirc-temperature.xml +7 -1
  415. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-recirc-timer.xml +7 -1
  416. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-shared-laundry-room.xml +7 -1
  417. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-shared-water-heater-recirc.xml +7 -1
  418. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-shared-water-heater.xml +7 -1
  419. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-direct-evacuated-tube.xml +7 -1
  420. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-direct-flat-plate.xml +7 -1
  421. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-direct-ics.xml +7 -1
  422. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-fraction.xml +7 -1
  423. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-indirect-flat-plate.xml +7 -1
  424. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-thermosyphon-flat-plate.xml +7 -1
  425. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-coal.xml +7 -1
  426. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-gas-outside.xml +7 -1
  427. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-gas.xml +7 -1
  428. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump-outside.xml +7 -1
  429. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump-with-solar-fraction.xml +7 -1
  430. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump-with-solar.xml +7 -1
  431. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump.xml +7 -1
  432. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-oil.xml +7 -1
  433. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-wood.xml +7 -1
  434. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-electric-outside.xml +7 -1
  435. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-electric.xml +7 -1
  436. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-gas-with-solar-fraction.xml +7 -1
  437. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-gas-with-solar.xml +7 -1
  438. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-gas.xml +7 -1
  439. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-propane.xml +7 -1
  440. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-uef.xml +7 -1
  441. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-2stories-garage.xml +7 -1
  442. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-2stories.xml +7 -1
  443. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-attached-multifamily.xml +7 -1
  444. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-beds-1.xml +7 -1
  445. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-beds-2.xml +7 -1
  446. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-beds-4.xml +7 -1
  447. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-beds-5.xml +7 -1
  448. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-common-surfaces.xml +7 -1
  449. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-garage.xml +7 -1
  450. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-ach-house-pressure.xml +7 -1
  451. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-cfm-house-pressure.xml +7 -1
  452. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-cfm50.xml +7 -1
  453. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-flue.xml +7 -1
  454. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-natural-ach.xml +7 -1
  455. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-other-heated-space.xml +7 -1
  456. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-other-housing-unit.xml +7 -1
  457. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-other-multifamily-buffer-space.xml +7 -1
  458. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-other-non-freezing-space.xml +7 -1
  459. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-overhangs.xml +7 -1
  460. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-rooftypes.xml +7 -1
  461. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-skylights.xml +7 -1
  462. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-split-surfaces.xml +7 -1
  463. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-walltypes.xml +7 -1
  464. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-windows-interior-shading.xml +7 -1
  465. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-windows-none.xml +7 -1
  466. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-ambient.xml +7 -1
  467. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-complex.xml +7 -1
  468. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-conditioned-basement-slab-insulation.xml +7 -1
  469. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-conditioned-basement-wall-interior-insulation.xml +7 -1
  470. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-multiple.xml +7 -1
  471. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-slab.xml +7 -1
  472. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-unconditioned-basement-above-grade.xml +7 -1
  473. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-unconditioned-basement-assembly-r.xml +7 -1
  474. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-unconditioned-basement-wall-insulation.xml +7 -1
  475. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-unconditioned-basement.xml +7 -1
  476. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-unvented-crawlspace.xml +7 -1
  477. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-vented-crawlspace.xml +7 -1
  478. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-walkout-basement.xml +7 -1
  479. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-1-speed.xml +7 -1
  480. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-2-speed.xml +7 -1
  481. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-var-speed.xml +7 -1
  482. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-coal-only.xml +7 -1
  483. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-elec-only.xml +7 -1
  484. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-gas-central-ac-1-speed.xml +7 -1
  485. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-gas-only.xml +7 -1
  486. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-oil-only.xml +7 -1
  487. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-propane-only.xml +7 -1
  488. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-wood-only.xml +7 -1
  489. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-central-ac-only-1-speed.xml +7 -1
  490. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-central-ac-only-2-speed.xml +7 -1
  491. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-central-ac-only-var-speed.xml +7 -1
  492. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-central-ac-plus-air-to-air-heat-pump-heating.xml +7 -1
  493. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dse.xml +7 -1
  494. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dual-fuel-air-to-air-heat-pump-1-speed-electric.xml +7 -1
  495. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dual-fuel-air-to-air-heat-pump-1-speed.xml +7 -1
  496. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dual-fuel-air-to-air-heat-pump-2-speed.xml +7 -1
  497. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dual-fuel-air-to-air-heat-pump-var-speed.xml +7 -1
  498. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dual-fuel-mini-split-heat-pump-ducted.xml +7 -1
  499. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ducts-leakage-percent.xml +7 -1
  500. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-elec-resistance-only.xml +7 -1
  501. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-evap-cooler-furnace-gas.xml +7 -1
  502. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-evap-cooler-only-ducted.xml +7 -1
  503. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-evap-cooler-only.xml +7 -1
  504. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-fireplace-wood-only.xml +7 -1
  505. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-fixed-heater-gas-only.xml +7 -1
  506. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-floor-furnace-propane-only.xml +7 -1
  507. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-flowrate.xml +7 -1
  508. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-elec-central-ac-1-speed.xml +7 -1
  509. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-elec-only.xml +7 -1
  510. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-gas-central-ac-2-speed.xml +7 -1
  511. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-gas-central-ac-var-speed.xml +7 -1
  512. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-gas-only.xml +7 -1
  513. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-gas-room-ac.xml +7 -1
  514. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-oil-only.xml +7 -1
  515. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-propane-only.xml +7 -1
  516. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-wood-only.xml +7 -1
  517. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-x3-dse.xml +7 -1
  518. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ground-to-air-heat-pump.xml +7 -1
  519. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ideal-air.xml +7 -1
  520. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-air-conditioner-only-ducted.xml +7 -1
  521. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-air-conditioner-only-ductless.xml +7 -1
  522. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ducted-cooling-only.xml +7 -1
  523. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ducted-heating-only.xml +7 -1
  524. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ducted.xml +7 -1
  525. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ductless.xml +7 -1
  526. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-multiple.xml +7 -1
  527. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-multiple2.xml +7 -1
  528. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-none.xml +7 -1
  529. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-portable-heater-gas-only.xml +7 -1
  530. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-programmable-thermostat.xml +7 -1
  531. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-room-ac-only-33percent.xml +7 -1
  532. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-room-ac-only.xml +7 -1
  533. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-setpoints.xml +7 -1
  534. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-shared-boiler-chiller-baseboard.xml +7 -1
  535. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-shared-boiler-chiller-fan-coil-ducted.xml +7 -1
  536. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-shared-boiler-chiller-fan-coil.xml +7 -1
  537. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-shared-boiler-chiller-water-loop-heat-pump.xml +7 -1
  538. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-shared-boiler-cooling-tower-water-loop-heat-pump.xml +7 -1
  539. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-shared-boiler-only-baseboard.xml +7 -1
  540. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-shared-boiler-only-fan-coil-ducted.xml +7 -1
  541. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-shared-boiler-only-fan-coil-eae.xml +7 -1
  542. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-shared-boiler-only-fan-coil.xml +7 -1
  543. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-shared-boiler-only-water-loop-heat-pump.xml +7 -1
  544. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-shared-chiller-only-baseboard.xml +7 -1
  545. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-shared-chiller-only-fan-coil-ducted.xml +7 -1
  546. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-shared-chiller-only-fan-coil.xml +7 -1
  547. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-shared-chiller-only-water-loop-heat-pump.xml +7 -1
  548. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-shared-cooling-tower-only-water-loop-heat-pump.xml +7 -1
  549. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-shared-ground-loop-ground-to-air-heat-pump.xml +7 -1
  550. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-stove-oil-only.xml +7 -1
  551. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-stove-wood-pellets-only.xml +7 -1
  552. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-undersized-allow-increased-fixed-capacities.xml +7 -1
  553. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-undersized.xml +7 -1
  554. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-wall-furnace-elec-only.xml +7 -1
  555. data/example_files/resources/hpxml-measures/workflow/sample_files/base-lighting-ceiling-fans.xml +7 -1
  556. data/example_files/resources/hpxml-measures/workflow/sample_files/base-lighting-detailed.xml +7 -1
  557. data/example_files/resources/hpxml-measures/workflow/sample_files/base-lighting-none.xml +7 -1
  558. data/example_files/resources/hpxml-measures/workflow/sample_files/{base-location-epw-filepath-AMY-2012.xml → base-location-AMY-2012.xml} +8 -0
  559. data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-baltimore-md.xml +7 -1
  560. data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-dallas-tx.xml +7 -1
  561. data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-duluth-mn.xml +7 -1
  562. data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-miami-fl.xml +7 -1
  563. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-balanced.xml +7 -1
  564. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-bath-kitchen-fans.xml +7 -1
  565. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-cfis-dse.xml +7 -1
  566. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-cfis-evap-cooler-only-ducted.xml +7 -1
  567. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-cfis.xml +7 -1
  568. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-erv-atre-asre.xml +7 -1
  569. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-erv.xml +7 -1
  570. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-exhaust-rated-flow-rate.xml +7 -1
  571. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-exhaust.xml +7 -1
  572. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-hrv-asre.xml +7 -1
  573. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-hrv.xml +7 -1
  574. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-multiple.xml +7 -1
  575. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-shared-multiple.xml +7 -1
  576. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-shared-preconditioning.xml +7 -1
  577. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-shared.xml +7 -1
  578. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-supply.xml +7 -1
  579. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-whole-house-fan.xml +7 -1
  580. data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-defaults.xml +3 -1
  581. data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-loads-large-uncommon.xml +7 -1
  582. data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-loads-large-uncommon2.xml +7 -1
  583. data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-loads-none.xml +7 -1
  584. data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-neighbor-shading.xml +7 -1
  585. data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-shelter-coefficient.xml +7 -1
  586. data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-usage-multiplier.xml +5 -1
  587. data/example_files/resources/hpxml-measures/workflow/sample_files/base-pv-shared.xml +7 -1
  588. data/example_files/resources/hpxml-measures/workflow/sample_files/base-pv.xml +7 -1
  589. data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-stochastic.xml +565 -0
  590. data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-user-specified.xml +565 -0
  591. data/example_files/resources/hpxml-measures/workflow/sample_files/{base-location-epw-filepath.xml → base-simcontrol-calendar-year-custom.xml} +5 -0
  592. data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-daylight-saving-custom.xml +7 -1
  593. data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-daylight-saving-disabled.xml +7 -1
  594. data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-runperiod-1-month.xml +7 -1
  595. data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-timestep-10-mins.xml +7 -1
  596. data/example_files/resources/hpxml-measures/workflow/sample_files/base.xml +7 -1
  597. data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-autosize.xml +7 -1
  598. data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-air-to-air-heat-pump-1-speed-autosize-manual-s-oversize-allowances.xml +7 -1
  599. data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-air-to-air-heat-pump-1-speed-autosize.xml +7 -1
  600. data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-air-to-air-heat-pump-2-speed-autosize-manual-s-oversize-allowances.xml +7 -1
  601. data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-air-to-air-heat-pump-2-speed-autosize.xml +7 -1
  602. data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-air-to-air-heat-pump-var-speed-autosize-manual-s-oversize-allowances.xml +7 -1
  603. data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-air-to-air-heat-pump-var-speed-autosize.xml +7 -1
  604. data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-boiler-elec-only-autosize.xml +7 -1
  605. data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-boiler-gas-central-ac-1-speed-autosize.xml +7 -1
  606. data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-boiler-gas-only-autosize.xml +7 -1
  607. data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-central-ac-only-1-speed-autosize.xml +7 -1
  608. data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-central-ac-only-2-speed-autosize.xml +7 -1
  609. data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-central-ac-only-var-speed-autosize.xml +7 -1
  610. data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-central-ac-plus-air-to-air-heat-pump-heating-autosize.xml +7 -1
  611. data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-dual-fuel-air-to-air-heat-pump-1-speed-autosize.xml +7 -1
  612. data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-dual-fuel-mini-split-heat-pump-ducted-autosize.xml +7 -1
  613. data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-elec-resistance-only-autosize.xml +7 -1
  614. data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-evap-cooler-furnace-gas-autosize.xml +7 -1
  615. data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-floor-furnace-propane-only-autosize.xml +7 -1
  616. data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-furnace-elec-only-autosize.xml +7 -1
  617. data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-furnace-gas-central-ac-2-speed-autosize.xml +7 -1
  618. data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-furnace-gas-central-ac-var-speed-autosize.xml +7 -1
  619. data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-furnace-gas-only-autosize.xml +7 -1
  620. data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-furnace-gas-room-ac-autosize.xml +7 -1
  621. data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-ground-to-air-heat-pump-autosize-manual-s-oversize-allowances.xml +7 -1
  622. data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-ground-to-air-heat-pump-autosize.xml +7 -1
  623. data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-mini-split-air-conditioner-only-ducted-autosize.xml +7 -1
  624. data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-mini-split-heat-pump-ducted-autosize-manual-s-oversize-allowances.xml +7 -1
  625. data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-mini-split-heat-pump-ducted-autosize.xml +7 -1
  626. data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-mini-split-heat-pump-ducted-cooling-only-autosize.xml +7 -1
  627. data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-mini-split-heat-pump-ducted-heating-only-autosize.xml +7 -1
  628. data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-room-ac-only-autosize.xml +7 -1
  629. data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-stove-oil-only-autosize.xml +7 -1
  630. data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-wall-furnace-elec-only-autosize.xml +7 -1
  631. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/appliances-location-unconditioned-space.xml +7 -1
  632. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/cfis-with-hydronic-distribution.xml +7 -1
  633. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/clothes-dryer-location.xml +7 -1
  634. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/clothes-washer-location.xml +7 -1
  635. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/coal-for-non-boiler-heating.xml +7 -1
  636. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/cooking-range-location.xml +7 -1
  637. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/dhw-frac-load-served.xml +7 -1
  638. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/dishwasher-location.xml +7 -1
  639. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/duct-location-unconditioned-space.xml +7 -1
  640. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/duct-location.xml +7 -1
  641. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/duplicate-id.xml +7 -1
  642. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-attic-missing-roof.xml +7 -1
  643. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-basement-missing-exterior-foundation-wall.xml +7 -1
  644. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-basement-missing-slab.xml +7 -1
  645. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-garage-missing-exterior-wall.xml +7 -1
  646. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-garage-missing-roof-ceiling.xml +7 -1
  647. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-garage-missing-slab.xml +7 -1
  648. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-living-missing-ceiling-roof.xml +7 -1
  649. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-living-missing-exterior-wall.xml +7 -1
  650. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-living-missing-floor-slab.xml +7 -1
  651. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/heat-pump-mixed-fixed-and-autosize-capacities.xml +7 -1
  652. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/heat-pump-mixed-fixed-and-autosize-capacities2.xml +7 -1
  653. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/hvac-distribution-multiple-attached-cooling.xml +7 -1
  654. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/hvac-distribution-multiple-attached-heating.xml +7 -1
  655. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/hvac-distribution-return-duct-leakage-missing.xml +7 -1
  656. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/hvac-dse-multiple-attached-cooling.xml +7 -1
  657. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/hvac-dse-multiple-attached-heating.xml +7 -1
  658. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/hvac-frac-load-served.xml +7 -1
  659. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/hvac-invalid-distribution-system-type.xml +7 -1
  660. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/{invalid-wmo.xml → invalid-calendar-year.xml} +8 -1
  661. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-daylight-saving.xml +7 -1
  662. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-distribution-cfa-served.xml +7 -1
  663. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-epw-filepath.xml +4 -0
  664. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-facility-type.xml +7 -1
  665. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-neighbor-shading-azimuth.xml +7 -1
  666. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-relatedhvac-desuperheater.xml +7 -1
  667. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-relatedhvac-dhw-indirect.xml +7 -1
  668. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-runperiod.xml +7 -1
  669. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-timestep.xml +7 -1
  670. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-window-height.xml +7 -1
  671. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-window-interior-shading.xml +7 -1
  672. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/lighting-fractions.xml +7 -1
  673. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/missing-duct-location.xml +7 -1
  674. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/missing-elements.xml +7 -1
  675. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/multifamily-reference-appliance.xml +7 -1
  676. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/multifamily-reference-duct.xml +7 -1
  677. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/multifamily-reference-surface.xml +7 -1
  678. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/multifamily-reference-water-heater.xml +7 -1
  679. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/net-area-negative-roof.xml +7 -1
  680. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/net-area-negative-wall.xml +7 -1
  681. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/orphaned-hvac-distribution.xml +7 -1
  682. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/refrigerator-location.xml +7 -1
  683. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/refrigerators-multiple-primary.xml +7 -1
  684. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/refrigerators-no-primary.xml +7 -1
  685. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/repeated-relatedhvac-desuperheater.xml +7 -1
  686. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/repeated-relatedhvac-dhw-indirect.xml +7 -1
  687. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/slab-zero-exposed-perimeter.xml +7 -1
  688. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/solar-thermal-system-with-combi-tankless.xml +7 -1
  689. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/solar-thermal-system-with-desuperheater.xml +7 -1
  690. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/solar-thermal-system-with-dhw-indirect.xml +7 -1
  691. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/unattached-cfis.xml +7 -1
  692. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/unattached-door.xml +7 -1
  693. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/unattached-hvac-distribution.xml +7 -1
  694. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/unattached-shared-clothes-washer-water-heater.xml +7 -1
  695. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/unattached-shared-dishwasher-water-heater.xml +7 -1
  696. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/unattached-skylight.xml +7 -1
  697. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/unattached-solar-thermal-system.xml +7 -1
  698. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/unattached-window.xml +7 -1
  699. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/water-heater-location-other.xml +7 -1
  700. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/water-heater-location.xml +7 -1
  701. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L100AC.xml +3 -1
  702. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L100AL.xml +3 -1
  703. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L110AC.xml +3 -1
  704. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L110AL.xml +3 -1
  705. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L120AC.xml +3 -1
  706. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L120AL.xml +3 -1
  707. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L130AC.xml +3 -1
  708. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L130AL.xml +3 -1
  709. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L140AC.xml +3 -1
  710. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L140AL.xml +3 -1
  711. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L150AC.xml +3 -1
  712. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L150AL.xml +3 -1
  713. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L155AC.xml +3 -1
  714. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L155AL.xml +3 -1
  715. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L160AC.xml +3 -1
  716. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L160AL.xml +3 -1
  717. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L170AC.xml +3 -1
  718. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L170AL.xml +3 -1
  719. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L200AC.xml +3 -1
  720. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L200AL.xml +3 -1
  721. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L202AC.xml +3 -1
  722. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L202AL.xml +3 -1
  723. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L302XC.xml +3 -1
  724. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L304XC.xml +3 -1
  725. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L322XC.xml +3 -1
  726. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L324XC.xml +3 -1
  727. data/example_files/resources/hpxml-measures/workflow/tests/hpxml_translator_test.rb +4 -2
  728. data/lib/uo_cli.rb +40 -22
  729. data/lib/uo_cli/version.rb +1 -1
  730. data/uo_cli.gemspec +3 -4
  731. metadata +149 -27
  732. data/example_files/resources/hpxml-measures/weather/data.csv +0 -1012
@@ -1,4 +1,4 @@
1
- # *********************************************************************************
1
+ #*********************************************************************************
2
2
  # URBANopt™, Copyright (c) 2019-2020, Alliance for Sustainable Energy, LLC, and other
3
3
  # contributors. All rights reserved.
4
4
  #
@@ -26,7 +26,7 @@
26
26
  # LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
27
27
  # OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
28
28
  # OF THE POSSIBILITY OF SUCH DAMAGE.
29
- # *********************************************************************************
29
+ #*********************************************************************************
30
30
 
31
31
  require 'urbanopt/reporting'
32
32
  require 'openstudio/common_measures'
@@ -39,20 +39,53 @@ require 'json'
39
39
  module URBANopt
40
40
  module Scenario
41
41
  class HighEfficiencyMapper < BaselineMapper
42
+
42
43
  def create_osw(scenario, features, feature_names)
44
+
43
45
  osw = super(scenario, features, feature_names)
44
46
 
45
- OpenStudio::Extension.set_measure_argument(osw, 'IncreaseInsulationRValueForExteriorWalls', '__SKIP__', false)
46
- OpenStudio::Extension.set_measure_argument(osw, 'IncreaseInsulationRValueForExteriorWalls', 'r_value', 20)
47
+ feature = features[0]
48
+ building_type = feature.building_type
49
+
50
+ if residential_building_types.include? building_type
51
+ args = {}
52
+ osw[:steps].each do |step|
53
+ next if step[:measure_dir_name] != 'BuildResidentialModel'
54
+
55
+ step[:arguments].each do |arg_name, arg_val|
56
+ args[arg_name] = arg_val
57
+ end
58
+ end
47
59
 
48
- OpenStudio::Extension.set_measure_argument(osw, 'ReduceElectricEquipmentLoadsByPercentage', '__SKIP__', false)
49
- OpenStudio::Extension.set_measure_argument(osw, 'ReduceElectricEquipmentLoadsByPercentage', 'elecequip_power_reduction_percent', 20)
60
+ args[:wall_assembly_r] = Float(args[:wall_assembly_r]) * 1.2 # 20% increase
61
+ args[:plug_loads_television_usage_multiplier] = Float(args[:plug_loads_television_usage_multiplier]) * 0.9 # 10% reduction
62
+ args[:plug_loads_other_usage_multiplier] = Float(args[:plug_loads_other_usage_multiplier]) * 0.9 # 10% reduction
63
+ args[:lighting_usage_multiplier_interior] = Float(args[:lighting_usage_multiplier_interior]) * 0.9 # 10% reduction
64
+ args[:lighting_usage_multiplier_exterior] = Float(args[:lighting_usage_multiplier_exterior]) * 0.9 # 10% reduction
65
+ args[:clothes_washer_usage_multiplier] = Float(args[:clothes_washer_usage_multiplier]) * 0.9 # 10% reduction
66
+ args[:clothes_dryer_usage_multiplier] = Float(args[:clothes_dryer_usage_multiplier]) * 0.9 # 10% reduction
67
+ args[:dishwasher_usage_multiplier] = Float(args[:dishwasher_usage_multiplier]) * 0.9 # 10% reduction
68
+ args[:refrigerator_usage_multiplier] = Float(args[:refrigerator_usage_multiplier]) * 0.9 # 10% reduction
69
+ args[:cooking_range_oven_usage_multiplier] = Float(args[:cooking_range_oven_usage_multiplier]) * 0.9 # 10% reduction
70
+ args[:water_fixtures_usage_multiplier] = Float(args[:water_fixtures_usage_multiplier]) * 0.9 # 10% reduction
50
71
 
51
- OpenStudio::Extension.set_measure_argument(osw, 'ReduceLightingLoadsByPercentage', '__SKIP__', false)
52
- OpenStudio::Extension.set_measure_argument(osw, 'ReduceLightingLoadsByPercentage', 'lighting_power_reduction_percent', 10)
72
+ args.each do |arg_name, arg_val|
73
+ OpenStudio::Extension.set_measure_argument(osw, 'BuildResidentialModel', arg_name, arg_val)
74
+ end
75
+ elsif commercial_building_types.include? building_type
76
+ OpenStudio::Extension.set_measure_argument(osw, 'IncreaseInsulationRValueForExteriorWalls', '__SKIP__', false)
77
+ OpenStudio::Extension.set_measure_argument(osw, 'IncreaseInsulationRValueForExteriorWalls', 'r_value', 20)
78
+
79
+ OpenStudio::Extension.set_measure_argument(osw, 'ReduceElectricEquipmentLoadsByPercentage', '__SKIP__', false)
80
+ OpenStudio::Extension.set_measure_argument(osw, 'ReduceElectricEquipmentLoadsByPercentage', 'elecequip_power_reduction_percent', 20)
81
+
82
+ OpenStudio::Extension.set_measure_argument(osw, 'ReduceLightingLoadsByPercentage', '__SKIP__', false)
83
+ OpenStudio::Extension.set_measure_argument(osw, 'ReduceLightingLoadsByPercentage', 'lighting_power_reduction_percent', 10)
84
+ end
53
85
 
54
86
  return osw
55
87
  end
88
+
56
89
  end
57
90
  end
58
91
  end
@@ -38,7 +38,7 @@ class BuildResidentialModel < OpenStudio::Measure::ModelMeasure
38
38
 
39
39
  args = OpenStudio::Measure::OSArgumentVector.new
40
40
  measure.arguments(model).each do |arg|
41
- next if ['hpxml_path', 'weather_dir'].include? arg.name
41
+ next if ['hpxml_path'].include? arg.name
42
42
  args << arg
43
43
  end
44
44
 
@@ -128,9 +128,16 @@ class BuildResidentialModel < OpenStudio::Measure::ModelMeasure
128
128
  measures = {}
129
129
  measures[measure_subdir] = []
130
130
  measure_args[:hpxml_path] = File.expand_path('../out.xml')
131
- measure_args[:weather_dir] = File.expand_path('../../../../weather')
132
- measure_args[:software_program_used] = 'URBANopt'
133
- measure_args[:software_program_version] = '0.3.1'
131
+ begin
132
+ measure_args[:software_program_used] = File.basename(File.absolute_path(File.join(File.dirname(__FILE__), '../../..')))
133
+ rescue
134
+ end
135
+ begin
136
+ version_rb File.absolute_path(File.join(File.dirname(__FILE__), '../../../lib/uo_cli/version.rb'))
137
+ require version_rb
138
+ measure_args[:software_program_version] = URBANopt::CLI::VERSION
139
+ rescue
140
+ end
134
141
  if unit.additionalProperties.getFeatureAsString('GeometryLevel').is_initialized
135
142
  measure_args[:geometry_level] = unit.additionalProperties.getFeatureAsString('GeometryLevel').get
136
143
  end
@@ -150,7 +157,6 @@ class BuildResidentialModel < OpenStudio::Measure::ModelMeasure
150
157
 
151
158
  measures[measure_subdir] = []
152
159
  measure_args[:hpxml_path] = File.expand_path('../out.xml')
153
- measure_args[:weather_dir] = File.expand_path('../../../../weather')
154
160
  measure_args[:output_dir] = File.expand_path('..')
155
161
  measure_args[:debug] = true
156
162
  measure_args = Hash[measure_args.collect{ |k, v| [k.to_s, v] }]
@@ -160,6 +166,20 @@ class BuildResidentialModel < OpenStudio::Measure::ModelMeasure
160
166
  return false
161
167
  end
162
168
 
169
+ case args[:geometry_unit_type]
170
+ when 'single-family detached'
171
+ building_type = 'Single-Family Detached'
172
+ when 'single-family attached'
173
+ building_type = 'Single-Family Attached'
174
+ when 'multifamily'
175
+ building_type = 'Multifamily'
176
+ end
177
+
178
+ unit_model.getSpaceTypes.each do |space_type|
179
+ next unless space_type.standardsSpaceType.is_initialized
180
+ space_type.setStandardsBuildingType(building_type)
181
+ end
182
+
163
183
  unit_dir = File.expand_path("../unit #{num_unit+1}")
164
184
  Dir.mkdir(unit_dir)
165
185
  FileUtils.cp(File.expand_path('../out.xml'), unit_dir) # this is the raw hpxml file
@@ -4,6 +4,7 @@
4
4
  /BuildResidentialHPXML/tests/test_measure.xml
5
5
  /BuildResidentialHPXML/tests/test_rakefile.xml
6
6
  /docs/_build
7
+ /files
7
8
  /results
8
9
  /run
9
10
  /weather/USA_AK_Adak.NAS.704540_TMY3-cache.csv
@@ -2023,5 +2024,3 @@
2023
2024
  /workflow/sample_files/run
2024
2025
  /workflow/sample_files/invalid_files/results
2025
2026
  /workflow/sample_files/invalid_files/run
2026
- .circleci
2027
- .github
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # see the URL below for information on how to write OpenStudio measures
2
4
  # http://nrel.github.io/OpenStudio-user-documentation/reference/measure_writing_guide/
3
5
 
@@ -5,21 +7,23 @@ require 'openstudio'
5
7
  require 'oga'
6
8
  require 'csv'
7
9
 
8
- require_relative 'resources/geometry'
9
10
  require_relative 'resources/constants'
11
+ require_relative 'resources/geometry'
10
12
  require_relative 'resources/location'
13
+ require_relative 'resources/schedules'
11
14
 
12
15
  require_relative '../HPXMLtoOpenStudio/resources/constants'
13
16
  require_relative '../HPXMLtoOpenStudio/resources/constructions'
14
17
  require_relative '../HPXMLtoOpenStudio/resources/geometry'
15
18
  require_relative '../HPXMLtoOpenStudio/resources/hpxml'
19
+ require_relative '../HPXMLtoOpenStudio/resources/hvac'
20
+ require_relative '../HPXMLtoOpenStudio/resources/lighting'
16
21
  require_relative '../HPXMLtoOpenStudio/resources/materials'
17
22
  require_relative '../HPXMLtoOpenStudio/resources/psychrometrics'
18
23
  require_relative '../HPXMLtoOpenStudio/resources/schedules'
19
24
  require_relative '../HPXMLtoOpenStudio/resources/unit_conversions'
20
25
  require_relative '../HPXMLtoOpenStudio/resources/validator'
21
26
  require_relative '../HPXMLtoOpenStudio/resources/version'
22
- require_relative '../HPXMLtoOpenStudio/resources/weather'
23
27
  require_relative '../HPXMLtoOpenStudio/resources/xmlhelper'
24
28
 
25
29
  # start the measure
@@ -48,12 +52,6 @@ class BuildResidentialHPXML < OpenStudio::Measure::ModelMeasure
48
52
  arg.setDescription('Absolute/relative path of the HPXML file.')
49
53
  args << arg
50
54
 
51
- arg = OpenStudio::Measure::OSArgument.makeStringArgument('weather_dir', true)
52
- arg.setDisplayName('Weather Directory')
53
- arg.setDescription('Absolute/relative path of the weather directory.')
54
- arg.setDefaultValue('weather')
55
- args << arg
56
-
57
55
  arg = OpenStudio::Measure::OSArgument.makeStringArgument('software_program_used', false)
58
56
  arg.setDisplayName('Software Program Used')
59
57
  arg.setDescription('The name of the software program used.')
@@ -72,28 +70,34 @@ class BuildResidentialHPXML < OpenStudio::Measure::ModelMeasure
72
70
 
73
71
  arg = OpenStudio::Measure::OSArgument::makeIntegerArgument('simulation_control_run_period_begin_month', false)
74
72
  arg.setDisplayName('Simulation Control: Run Period Begin Month')
75
- arg.setUnits('month')
73
+ arg.setUnits('#')
76
74
  arg.setDescription('This numeric field should contain the starting month number (1 = January, 2 = February, etc.) for the annual run period desired.')
77
75
  args << arg
78
76
 
79
77
  arg = OpenStudio::Measure::OSArgument::makeIntegerArgument('simulation_control_run_period_begin_day_of_month', false)
80
78
  arg.setDisplayName('Simulation Control: Run Period Begin Day of Month')
81
- arg.setUnits('day')
79
+ arg.setUnits('#')
82
80
  arg.setDescription('This numeric field should contain the starting day of the starting month (must be valid for month) for the annual run period desired.')
83
81
  args << arg
84
82
 
85
83
  arg = OpenStudio::Measure::OSArgument::makeIntegerArgument('simulation_control_run_period_end_month', false)
86
84
  arg.setDisplayName('Simulation Control: Run Period End Month')
87
- arg.setUnits('month')
85
+ arg.setUnits('#')
88
86
  arg.setDescription('This numeric field should contain the end month number (1 = January, 2 = February, etc.) for the annual run period desired.')
89
87
  args << arg
90
88
 
91
89
  arg = OpenStudio::Measure::OSArgument::makeIntegerArgument('simulation_control_run_period_end_day_of_month', false)
92
90
  arg.setDisplayName('Simulation Control: Run Period End Day of Month')
93
- arg.setUnits('day')
91
+ arg.setUnits('#')
94
92
  arg.setDescription('This numeric field should contain the ending day of the ending month (must be valid for month) for the annual run period desired.')
95
93
  args << arg
96
94
 
95
+ arg = OpenStudio::Measure::OSArgument::makeIntegerArgument('simulation_control_run_period_calendar_year', false)
96
+ arg.setDisplayName('Simulation Control: Run Period Calendar Year')
97
+ arg.setUnits('year')
98
+ arg.setDescription('This numeric field should contain the calendar year that determines the start day of week. If you are running simulations using AMY weather files, the value entered for calendar year will not be used; it will be overridden by the actual year found in the AMY weather file.')
99
+ args << arg
100
+
97
101
  arg = OpenStudio::Measure::OSArgument::makeBoolArgument('simulation_control_daylight_saving_enabled', false)
98
102
  arg.setDisplayName('Simulation Control: Daylight Saving Enabled')
99
103
  arg.setDescription('Whether to use daylight saving.')
@@ -101,31 +105,71 @@ class BuildResidentialHPXML < OpenStudio::Measure::ModelMeasure
101
105
 
102
106
  arg = OpenStudio::Measure::OSArgument::makeIntegerArgument('simulation_control_daylight_saving_begin_month', false)
103
107
  arg.setDisplayName('Simulation Control: Daylight Saving Begin Month')
104
- arg.setUnits('month')
108
+ arg.setUnits('#')
105
109
  arg.setDescription('This numeric field should contain the starting month number (1 = January, 2 = February, etc.) for the annual daylight saving period desired.')
106
110
  args << arg
107
111
 
108
112
  arg = OpenStudio::Measure::OSArgument::makeIntegerArgument('simulation_control_daylight_saving_begin_day_of_month', false)
109
113
  arg.setDisplayName('Simulation Control: Daylight Saving Begin Day of Month')
110
- arg.setUnits('day')
114
+ arg.setUnits('#')
111
115
  arg.setDescription('This numeric field should contain the starting day of the starting month (must be valid for month) for the daylight saving period desired.')
112
116
  args << arg
113
117
 
114
118
  arg = OpenStudio::Measure::OSArgument::makeIntegerArgument('simulation_control_daylight_saving_end_month', false)
115
119
  arg.setDisplayName('Simulation Control: Daylight Saving End Month')
116
- arg.setUnits('month')
120
+ arg.setUnits('#')
117
121
  arg.setDescription('This numeric field should contain the end month number (1 = January, 2 = February, etc.) for the daylight saving period desired.')
118
122
  args << arg
119
123
 
120
124
  arg = OpenStudio::Measure::OSArgument::makeIntegerArgument('simulation_control_daylight_saving_end_day_of_month', false)
121
125
  arg.setDisplayName('Simulation Control: Daylight Saving End Day of Month')
122
- arg.setUnits('day')
126
+ arg.setUnits('#')
123
127
  arg.setDescription('This numeric field should contain the ending day of the ending month (must be valid for month) for the daylight saving period desired.')
124
128
  args << arg
125
129
 
130
+ schedules_type_choices = OpenStudio::StringVector.new
131
+ schedules_type_choices << 'default'
132
+ schedules_type_choices << 'stochastic'
133
+ schedules_type_choices << 'user-specified'
134
+
135
+ arg = OpenStudio::Measure::OSArgument.makeChoiceArgument('schedules_type', schedules_type_choices, true)
136
+ arg.setDisplayName('Schedules: Type')
137
+ arg.setDescription("The type of occupant-related schedules to use. Schedules corresponding to 'default' are average (e.g., Building America). Schedules corresponding to 'stochastic' are generated using time-inhomogenous Markov chains derived from American Time Use Survey data, and supplemented with sampling duration and power level from NEEA RBSA data as well as DHW draw duration and flow rate from Aquacraft/AWWA data.")
138
+ arg.setDefaultValue('default')
139
+ args << arg
140
+
141
+ arg = OpenStudio::Measure::OSArgument.makeStringArgument('schedules_path', false)
142
+ arg.setDisplayName('Schedules: Path')
143
+ arg.setDescription('Absolute (or relative) path of the csv file containing user-specified occupancy schedules.')
144
+ args << arg
145
+
146
+ arg = OpenStudio::Measure::OSArgument.makeIntegerArgument('schedules_vacancy_begin_month', false)
147
+ arg.setDisplayName('Schedules: Vacancy Start Begin Month')
148
+ arg.setUnits('#')
149
+ arg.setDescription("This numeric field should contain the starting month number (1 = January, 2 = February, etc.) for the vacancy period desired. Only applies if the schedules type is 'stochastic'.")
150
+ args << arg
151
+
152
+ arg = OpenStudio::Measure::OSArgument.makeIntegerArgument('schedules_vacancy_begin_day_of_month', false)
153
+ arg.setDisplayName('Schedules: Vacancy Begin Day of Month')
154
+ arg.setUnits('#')
155
+ arg.setDescription("This numeric field should contain the starting day of the starting month (must be valid for month) for the vacancy period desired. Only applies if the schedules type is 'stochastic'.")
156
+ args << arg
157
+
158
+ arg = OpenStudio::Measure::OSArgument.makeIntegerArgument('schedules_vacancy_end_month', false)
159
+ arg.setDisplayName('Schedules: Vacancy Start End Month')
160
+ arg.setUnits('#')
161
+ arg.setDescription("This numeric field should contain the end month number (1 = January, 2 = February, etc.) for the vacancy period desired. Only applies if the schedules type is 'stochastic'.")
162
+ args << arg
163
+
164
+ arg = OpenStudio::Measure::OSArgument.makeIntegerArgument('schedules_vacancy_end_day_of_month', false)
165
+ arg.setDisplayName('Schedules: Vacancy End Day of Month')
166
+ arg.setUnits('#')
167
+ arg.setDescription("This numeric field should contain the ending day of the ending month (must be valid for month) for the vacancy period desired. Only applies if the schedules type is 'stochastic'.")
168
+ args << arg
169
+
126
170
  arg = OpenStudio::Measure::OSArgument.makeStringArgument('weather_station_epw_filepath', true)
127
171
  arg.setDisplayName('EnergyPlus Weather (EPW) Filepath')
128
- arg.setDescription('Name of the EPW file.')
172
+ arg.setDescription('Path of the EPW file.')
129
173
  arg.setDefaultValue('USA_CO_Denver.Intl.AP.725650_TMY3.epw')
130
174
  args << arg
131
175
 
@@ -1411,6 +1455,114 @@ class BuildResidentialHPXML < OpenStudio::Measure::ModelMeasure
1411
1455
  arg.setDefaultValue(30)
1412
1456
  args << arg
1413
1457
 
1458
+ arg = OpenStudio::Measure::OSArgument::makeBoolArgument('mech_vent_is_shared_system', true)
1459
+ arg.setDisplayName('Mechanical Ventilation: Is Shared System')
1460
+ arg.setDescription('Whether the mechanical ventilation is a shared system. If true, assumed to serve all the units in the building.')
1461
+ arg.setDefaultValue(false)
1462
+ args << arg
1463
+
1464
+ arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('shared_mech_vent_in_unit_flow_rate', false)
1465
+ arg.setDisplayName('Shared Mechanical Ventilation: In-Unit Flow Rate')
1466
+ arg.setDescription('The flow rate delivered to the dwelling unit. This is required for a shared mechanical ventilation system.')
1467
+ arg.setUnits('CFM')
1468
+ args << arg
1469
+
1470
+ arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('shared_mech_vent_frac_recirculation', false)
1471
+ arg.setDisplayName('Shared Mechanical Ventilation: Fraction Recirculation')
1472
+ arg.setDescription('Fraction of the total supply air that is recirculated, with the remainder assumed to be outdoor air. The value must be 0 for exhaust only systems. This is required for a shared mechanical ventilation system.')
1473
+ arg.setUnits('Frac')
1474
+ args << arg
1475
+
1476
+ arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('shared_mech_vent_preheating_fuel', heating_system_fuel_choices, false)
1477
+ arg.setDisplayName('Shared Mechanical Ventilation: Preheating Fuel')
1478
+ arg.setDescription('Fuel type of the preconditioning heating equipment.')
1479
+ args << arg
1480
+
1481
+ arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('shared_mech_vent_preheating_efficiency', false)
1482
+ arg.setDisplayName('Shared Mechanical Ventilation: Preheating Efficiency')
1483
+ arg.setDescription('Efficiency of the preconditioning heating equipment.')
1484
+ arg.setUnits('COP')
1485
+ args << arg
1486
+
1487
+ arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('shared_mech_vent_preheating_fraction_heat_load_served', false)
1488
+ arg.setDisplayName('Shared Mechanical Ventilation: Preheating Fraction Ventilation Heat Load Served')
1489
+ arg.setDescription('Fraction of heating load introduced by the shared ventilation system that is met by the preconditioning heating equipment.')
1490
+ arg.setUnits('Frac')
1491
+ args << arg
1492
+
1493
+ cooling_system_fuel_choices = OpenStudio::StringVector.new
1494
+ cooling_system_fuel_choices << HPXML::FuelTypeElectricity
1495
+
1496
+ arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('shared_mech_vent_precooling_fuel', cooling_system_fuel_choices, false)
1497
+ arg.setDisplayName('Shared Mechanical Ventilation: Precooling Fuel')
1498
+ arg.setDescription('Fuel type of the preconditioning cooling equipment.')
1499
+ args << arg
1500
+
1501
+ arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('shared_mech_vent_precooling_efficiency', false)
1502
+ arg.setDisplayName('Shared Mechanical Ventilation: Precooling Efficiency')
1503
+ arg.setDescription('Efficiency of the preconditioning cooling equipment.')
1504
+ arg.setUnits('COP')
1505
+ args << arg
1506
+
1507
+ arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('shared_mech_vent_precooling_fraction_cool_load_served', false)
1508
+ arg.setDisplayName('Shared Mechanical Ventilation: Precooling Fraction Ventilation Cool Load Served')
1509
+ arg.setDescription('Fraction of cooling load introduced by the shared ventilation system that is met by the preconditioning cooling equipment.')
1510
+ arg.setUnits('Frac')
1511
+ args << arg
1512
+
1513
+ arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('mech_vent_fan_type_2', mech_vent_fan_type_choices, true)
1514
+ arg.setDisplayName('Mechanical Ventilation 2: Fan Type')
1515
+ arg.setDescription("The type of the second mechanical ventilation. Use 'none' if there is no second mechanical ventilation system.")
1516
+ arg.setDefaultValue('none')
1517
+ args << arg
1518
+
1519
+ arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('mech_vent_flow_rate_2', true)
1520
+ arg.setDisplayName('Mechanical Ventilation 2: Flow Rate')
1521
+ arg.setDescription('The flow rate of the second mechanical ventilation.')
1522
+ arg.setUnits('CFM')
1523
+ arg.setDefaultValue(110)
1524
+ args << arg
1525
+
1526
+ arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('mech_vent_hours_in_operation_2', true)
1527
+ arg.setDisplayName('Mechanical Ventilation 2: Hours In Operation')
1528
+ arg.setDescription('The hours in operation of the second mechanical ventilation.')
1529
+ arg.setUnits('hrs')
1530
+ arg.setDefaultValue(24)
1531
+ args << arg
1532
+
1533
+ arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('mech_vent_total_recovery_efficiency_type_2', mech_vent_recovery_efficiency_type_choices, true)
1534
+ arg.setDisplayName('Mechanical Ventilation 2: Total Recovery Efficiency Type')
1535
+ arg.setDescription('The total recovery efficiency type of the second mechanical ventilation.')
1536
+ arg.setDefaultValue('Unadjusted')
1537
+ args << arg
1538
+
1539
+ arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('mech_vent_total_recovery_efficiency_2', true)
1540
+ arg.setDisplayName('Mechanical Ventilation 2: Total Recovery Efficiency')
1541
+ arg.setDescription('The Unadjusted or Adjusted total recovery efficiency of the second mechanical ventilation.')
1542
+ arg.setUnits('Frac')
1543
+ arg.setDefaultValue(0.48)
1544
+ args << arg
1545
+
1546
+ arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('mech_vent_sensible_recovery_efficiency_type_2', mech_vent_recovery_efficiency_type_choices, true)
1547
+ arg.setDisplayName('Mechanical Ventilation 2: Sensible Recovery Efficiency Type')
1548
+ arg.setDescription('The sensible recovery efficiency type of the second mechanical ventilation.')
1549
+ arg.setDefaultValue('Unadjusted')
1550
+ args << arg
1551
+
1552
+ arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('mech_vent_sensible_recovery_efficiency_2', true)
1553
+ arg.setDisplayName('Mechanical Ventilation 2: Sensible Recovery Efficiency')
1554
+ arg.setDescription('The Unadjusted or Adjusted sensible recovery efficiency of the second mechanical ventilation.')
1555
+ arg.setUnits('Frac')
1556
+ arg.setDefaultValue(0.72)
1557
+ args << arg
1558
+
1559
+ arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('mech_vent_fan_power_2', true)
1560
+ arg.setDisplayName('Mechanical Ventilation 2: Fan Power')
1561
+ arg.setDescription('The fan power of the second mechanical ventilation.')
1562
+ arg.setUnits('W')
1563
+ arg.setDefaultValue(30)
1564
+ args << arg
1565
+
1414
1566
  arg = OpenStudio::Measure::OSArgument::makeBoolArgument('kitchen_fans_present', true)
1415
1567
  arg.setDisplayName('Kitchen Fans: Present')
1416
1568
  arg.setDescription('Whether there are kitchen fans.')
@@ -1969,24 +2121,6 @@ class BuildResidentialHPXML < OpenStudio::Measure::ModelMeasure
1969
2121
  arg.setDefaultValue(1.0)
1970
2122
  args << arg
1971
2123
 
1972
- arg = OpenStudio::Measure::OSArgument::makeStringArgument('lighting_weekday_fractions_interior', true)
1973
- arg.setDisplayName('Lighting: Weekday Schedule Interior')
1974
- arg.setDescription('Specify the 24-hour weekday schedule.')
1975
- arg.setDefaultValue(Constants.Auto)
1976
- args << arg
1977
-
1978
- arg = OpenStudio::Measure::OSArgument::makeStringArgument('lighting_weekend_fractions_interior', true)
1979
- arg.setDisplayName('Lighting: Weekend Schedule Interior')
1980
- arg.setDescription('Specify the 24-hour weekend schedule.')
1981
- arg.setDefaultValue(Constants.Auto)
1982
- args << arg
1983
-
1984
- arg = OpenStudio::Measure::OSArgument::makeStringArgument('lighting_monthly_multipliers_interior', true)
1985
- arg.setDisplayName('Lighting: Month Schedule Interior')
1986
- arg.setDescription('Specify the 12-month schedule.')
1987
- arg.setDefaultValue(Constants.Auto)
1988
- args << arg
1989
-
1990
2124
  arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('lighting_fraction_cfl_exterior', true)
1991
2125
  arg.setDisplayName('Lighting: Fraction CFL Exterior')
1992
2126
  arg.setDescription('Fraction of all lamps (exterior) that are compact fluorescent. Lighting not specified as CFL, LFL, or LED is assumed to be incandescent.')
@@ -2011,24 +2145,6 @@ class BuildResidentialHPXML < OpenStudio::Measure::ModelMeasure
2011
2145
  arg.setDefaultValue(1.0)
2012
2146
  args << arg
2013
2147
 
2014
- arg = OpenStudio::Measure::OSArgument::makeStringArgument('lighting_weekday_fractions_exterior', true)
2015
- arg.setDisplayName('Lighting: Weekday Schedule Exterior')
2016
- arg.setDescription('Specify the 24-hour weekday schedule.')
2017
- arg.setDefaultValue(Constants.Auto)
2018
- args << arg
2019
-
2020
- arg = OpenStudio::Measure::OSArgument::makeStringArgument('lighting_weekend_fractions_exterior', true)
2021
- arg.setDisplayName('Lighting: Weekend Schedule Exterior')
2022
- arg.setDescription('Specify the 24-hour weekend schedule.')
2023
- arg.setDefaultValue(Constants.Auto)
2024
- args << arg
2025
-
2026
- arg = OpenStudio::Measure::OSArgument::makeStringArgument('lighting_monthly_multipliers_exterior', true)
2027
- arg.setDisplayName('Lighting: Month Schedule Exterior')
2028
- arg.setDescription('Specify the 12-month schedule.')
2029
- arg.setDefaultValue(Constants.Auto)
2030
- args << arg
2031
-
2032
2148
  arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('lighting_fraction_cfl_garage', true)
2033
2149
  arg.setDisplayName('Lighting: Fraction CFL Garage')
2034
2150
  arg.setDescription('Fraction of all lamps (garage) that are compact fluorescent. Lighting not specified as CFL, LFL, or LED is assumed to be incandescent.')
@@ -2053,24 +2169,6 @@ class BuildResidentialHPXML < OpenStudio::Measure::ModelMeasure
2053
2169
  arg.setDefaultValue(1.0)
2054
2170
  args << arg
2055
2171
 
2056
- arg = OpenStudio::Measure::OSArgument::makeStringArgument('lighting_weekday_fractions_garage', true)
2057
- arg.setDisplayName('Lighting: Weekday Schedule Garage')
2058
- arg.setDescription('Specify the 24-hour weekday schedule.')
2059
- arg.setDefaultValue(Constants.Auto)
2060
- args << arg
2061
-
2062
- arg = OpenStudio::Measure::OSArgument::makeStringArgument('lighting_weekend_fractions_garage', true)
2063
- arg.setDisplayName('Lighting: Weekend Schedule Garage')
2064
- arg.setDescription('Specify the 24-hour weekend schedule.')
2065
- arg.setDefaultValue(Constants.Auto)
2066
- args << arg
2067
-
2068
- arg = OpenStudio::Measure::OSArgument::makeStringArgument('lighting_monthly_multipliers_garage', true)
2069
- arg.setDisplayName('Lighting: Month Schedule Garage')
2070
- arg.setDescription('Specify the 12-month schedule.')
2071
- arg.setDefaultValue(Constants.Auto)
2072
- args << arg
2073
-
2074
2172
  arg = OpenStudio::Measure::OSArgument::makeBoolArgument('holiday_lighting_present', true)
2075
2173
  arg.setDisplayName('Holiday Lighting: Present')
2076
2174
  arg.setDescription('Whether there is holiday lighting.')
@@ -2112,18 +2210,6 @@ class BuildResidentialHPXML < OpenStudio::Measure::ModelMeasure
2112
2210
  arg.setDefaultValue(Constants.Auto)
2113
2211
  args << arg
2114
2212
 
2115
- arg = OpenStudio::Measure::OSArgument::makeStringArgument('holiday_lighting_weekday_fractions_exterior', true)
2116
- arg.setDisplayName('Holiday Lighting: Weekday Schedule Exterior')
2117
- arg.setDescription('Specify the 24-hour weekday schedule.')
2118
- arg.setDefaultValue(Constants.Auto)
2119
- args << arg
2120
-
2121
- arg = OpenStudio::Measure::OSArgument::makeStringArgument('holiday_lighting_weekend_fractions_exterior', true)
2122
- arg.setDisplayName('Holiday Lighting: Weekend Schedule Exterior')
2123
- arg.setDescription('Specify the 24-hour weekend schedule.')
2124
- arg.setDefaultValue(Constants.Auto)
2125
- args << arg
2126
-
2127
2213
  arg = OpenStudio::Measure::OSArgument::makeBoolArgument('dehumidifier_present', true)
2128
2214
  arg.setDisplayName('Dehumidifier: Present')
2129
2215
  arg.setDescription('Whether there is a dehumidifier.')
@@ -2331,6 +2417,13 @@ class BuildResidentialHPXML < OpenStudio::Measure::ModelMeasure
2331
2417
  arg.setDefaultValue(Constants.Auto)
2332
2418
  args << arg
2333
2419
 
2420
+ arg = OpenStudio::Measure::OSArgument::makeStringArgument('clothes_dryer_vented_flow_rate', true)
2421
+ arg.setDisplayName('Clothes Dryer: Vented Flow Rate')
2422
+ arg.setDescription('The exhaust flow rate of the vented clothes dryer.')
2423
+ arg.setUnits('CFM')
2424
+ arg.setDefaultValue(Constants.Auto)
2425
+ args << arg
2426
+
2334
2427
  arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('clothes_dryer_usage_multiplier', true)
2335
2428
  arg.setDisplayName('Clothes Dryer: Usage Multiplier')
2336
2429
  arg.setDescription('Multiplier on the clothes dryer energy usage that can reflect, e.g., high/low usage occupants.')
@@ -2438,24 +2531,6 @@ class BuildResidentialHPXML < OpenStudio::Measure::ModelMeasure
2438
2531
  arg.setDefaultValue(1.0)
2439
2532
  args << arg
2440
2533
 
2441
- arg = OpenStudio::Measure::OSArgument::makeStringArgument('refrigerator_weekday_fractions', true)
2442
- arg.setDisplayName('Refrigerator: Weekday Schedule')
2443
- arg.setDescription('Specify the 24-hour weekday schedule.')
2444
- arg.setDefaultValue(Constants.Auto)
2445
- args << arg
2446
-
2447
- arg = OpenStudio::Measure::OSArgument::makeStringArgument('refrigerator_weekend_fractions', true)
2448
- arg.setDisplayName('Refrigerator: Weekend Schedule')
2449
- arg.setDescription('Specify the 24-hour weekend schedule.')
2450
- arg.setDefaultValue(Constants.Auto)
2451
- args << arg
2452
-
2453
- arg = OpenStudio::Measure::OSArgument::makeStringArgument('refrigerator_monthly_multipliers', true)
2454
- arg.setDisplayName('Refrigerator: Month Schedule')
2455
- arg.setDescription('Specify the 12-month schedule.')
2456
- arg.setDefaultValue(Constants.Auto)
2457
- args << arg
2458
-
2459
2534
  arg = OpenStudio::Measure::OSArgument::makeBoolArgument('extra_refrigerator_present', true)
2460
2535
  arg.setDisplayName('Extra Refrigerator: Present')
2461
2536
  arg.setDescription('Whether there is an extra refrigerator.')
@@ -2481,24 +2556,6 @@ class BuildResidentialHPXML < OpenStudio::Measure::ModelMeasure
2481
2556
  arg.setDefaultValue(1.0)
2482
2557
  args << arg
2483
2558
 
2484
- arg = OpenStudio::Measure::OSArgument::makeStringArgument('extra_refrigerator_weekday_fractions', true)
2485
- arg.setDisplayName('Extra Refrigerator: Weekday Schedule')
2486
- arg.setDescription('Specify the 24-hour weekday schedule.')
2487
- arg.setDefaultValue(Constants.Auto)
2488
- args << arg
2489
-
2490
- arg = OpenStudio::Measure::OSArgument::makeStringArgument('extra_refrigerator_weekend_fractions', true)
2491
- arg.setDisplayName('Extra Refrigerator: Weekend Schedule')
2492
- arg.setDescription('Specify the 24-hour weekend schedule.')
2493
- arg.setDefaultValue(Constants.Auto)
2494
- args << arg
2495
-
2496
- arg = OpenStudio::Measure::OSArgument::makeStringArgument('extra_refrigerator_monthly_multipliers', true)
2497
- arg.setDisplayName('Extra Refrigerator: Month Schedule')
2498
- arg.setDescription('Specify the 12-month schedule.')
2499
- arg.setDefaultValue(Constants.Auto)
2500
- args << arg
2501
-
2502
2559
  arg = OpenStudio::Measure::OSArgument::makeBoolArgument('freezer_present', true)
2503
2560
  arg.setDisplayName('Freezer: Present')
2504
2561
  arg.setDescription('Whether there is a freezer.')
@@ -2524,24 +2581,6 @@ class BuildResidentialHPXML < OpenStudio::Measure::ModelMeasure
2524
2581
  arg.setDefaultValue(1.0)
2525
2582
  args << arg
2526
2583
 
2527
- arg = OpenStudio::Measure::OSArgument::makeStringArgument('freezer_weekday_fractions', true)
2528
- arg.setDisplayName('Freezer: Weekday Schedule')
2529
- arg.setDescription('Specify the 24-hour weekday schedule.')
2530
- arg.setDefaultValue(Constants.Auto)
2531
- args << arg
2532
-
2533
- arg = OpenStudio::Measure::OSArgument::makeStringArgument('freezer_weekend_fractions', true)
2534
- arg.setDisplayName('Freezer: Weekend Schedule')
2535
- arg.setDescription('Specify the 24-hour weekend schedule.')
2536
- arg.setDefaultValue(Constants.Auto)
2537
- args << arg
2538
-
2539
- arg = OpenStudio::Measure::OSArgument::makeStringArgument('freezer_monthly_multipliers', true)
2540
- arg.setDisplayName('Freezer: Month Schedule')
2541
- arg.setDescription('Specify the 12-month schedule.')
2542
- arg.setDefaultValue(Constants.Auto)
2543
- args << arg
2544
-
2545
2584
  cooking_range_oven_fuel_choices = OpenStudio::StringVector.new
2546
2585
  cooking_range_oven_fuel_choices << HPXML::FuelTypeElectricity
2547
2586
  cooking_range_oven_fuel_choices << HPXML::FuelTypeNaturalGas
@@ -2584,24 +2623,6 @@ class BuildResidentialHPXML < OpenStudio::Measure::ModelMeasure
2584
2623
  arg.setDefaultValue(1.0)
2585
2624
  args << arg
2586
2625
 
2587
- arg = OpenStudio::Measure::OSArgument::makeStringArgument('cooking_range_oven_weekday_fractions', true)
2588
- arg.setDisplayName('Cooking Range/Oven: Weekday Schedule')
2589
- arg.setDescription('Specify the 24-hour weekday schedule.')
2590
- arg.setDefaultValue(Constants.Auto)
2591
- args << arg
2592
-
2593
- arg = OpenStudio::Measure::OSArgument::makeStringArgument('cooking_range_oven_weekend_fractions', true)
2594
- arg.setDisplayName('Cooking Range/Oven: Weekend Schedule')
2595
- arg.setDescription('Specify the 24-hour weekend schedule.')
2596
- arg.setDefaultValue(Constants.Auto)
2597
- args << arg
2598
-
2599
- arg = OpenStudio::Measure::OSArgument::makeStringArgument('cooking_range_oven_monthly_multipliers', true)
2600
- arg.setDisplayName('Cooking Range/Oven: Month Schedule')
2601
- arg.setDescription('Specify the 12-month schedule.')
2602
- arg.setDefaultValue(Constants.Auto)
2603
- args << arg
2604
-
2605
2626
  arg = OpenStudio::Measure::OSArgument::makeBoolArgument('ceiling_fan_present', true)
2606
2627
  arg.setDisplayName('Ceiling Fan: Present')
2607
2628
  arg.setDescription('Whether there is are any ceiling fans.')
@@ -2642,24 +2663,6 @@ class BuildResidentialHPXML < OpenStudio::Measure::ModelMeasure
2642
2663
  arg.setDefaultValue(1.0)
2643
2664
  args << arg
2644
2665
 
2645
- arg = OpenStudio::Measure::OSArgument::makeStringArgument('plug_loads_television_weekday_fractions', true)
2646
- arg.setDisplayName('Plug Loads: Television Weekday Schedule')
2647
- arg.setDescription('Specify the 24-hour weekday schedule.')
2648
- arg.setDefaultValue(Constants.Auto)
2649
- args << arg
2650
-
2651
- arg = OpenStudio::Measure::OSArgument::makeStringArgument('plug_loads_television_weekend_fractions', true)
2652
- arg.setDisplayName('Plug Loads: Television Weekend Schedule')
2653
- arg.setDescription('Specify the 24-hour weekend schedule.')
2654
- arg.setDefaultValue(Constants.Auto)
2655
- args << arg
2656
-
2657
- arg = OpenStudio::Measure::OSArgument::makeStringArgument('plug_loads_television_monthly_multipliers', true)
2658
- arg.setDisplayName('Plug Loads: Television Month Schedule')
2659
- arg.setDescription('Specify the 12-month schedule.')
2660
- arg.setDefaultValue(Constants.Auto)
2661
- args << arg
2662
-
2663
2666
  arg = OpenStudio::Measure::OSArgument::makeStringArgument('plug_loads_other_annual_kwh', true)
2664
2667
  arg.setDisplayName('Plug Loads: Other Annual kWh')
2665
2668
  arg.setDescription('The annual energy consumption of the other residual plug loads.')
@@ -2687,24 +2690,6 @@ class BuildResidentialHPXML < OpenStudio::Measure::ModelMeasure
2687
2690
  arg.setDefaultValue(1.0)
2688
2691
  args << arg
2689
2692
 
2690
- arg = OpenStudio::Measure::OSArgument::makeStringArgument('plug_loads_other_weekday_fractions', true)
2691
- arg.setDisplayName('Plug Loads: Other Weekday Schedule')
2692
- arg.setDescription('Specify the 24-hour weekday schedule.')
2693
- arg.setDefaultValue(Constants.Auto)
2694
- args << arg
2695
-
2696
- arg = OpenStudio::Measure::OSArgument::makeStringArgument('plug_loads_other_weekend_fractions', true)
2697
- arg.setDisplayName('Plug Loads: Other Weekend Schedule')
2698
- arg.setDescription('Specify the 24-hour weekend schedule.')
2699
- arg.setDefaultValue(Constants.Auto)
2700
- args << arg
2701
-
2702
- arg = OpenStudio::Measure::OSArgument::makeStringArgument('plug_loads_other_monthly_multipliers', true)
2703
- arg.setDisplayName('Plug Loads: Other Month Schedule')
2704
- arg.setDescription('Specify the 12-month schedule.')
2705
- arg.setDefaultValue(Constants.Auto)
2706
- args << arg
2707
-
2708
2693
  arg = OpenStudio::Measure::OSArgument::makeBoolArgument('plug_loads_well_pump_present', true)
2709
2694
  arg.setDisplayName('Plug Loads: Well Pump Present')
2710
2695
  arg.setDescription('Whether there is a well pump.')
@@ -2724,24 +2709,6 @@ class BuildResidentialHPXML < OpenStudio::Measure::ModelMeasure
2724
2709
  arg.setDefaultValue(1.0)
2725
2710
  args << arg
2726
2711
 
2727
- arg = OpenStudio::Measure::OSArgument::makeStringArgument('plug_loads_well_pump_weekday_fractions', true)
2728
- arg.setDisplayName('Plug Loads: Well Pump Weekday Schedule')
2729
- arg.setDescription('Specify the 24-hour weekday schedule.')
2730
- arg.setDefaultValue(Constants.Auto)
2731
- args << arg
2732
-
2733
- arg = OpenStudio::Measure::OSArgument::makeStringArgument('plug_loads_well_pump_weekend_fractions', true)
2734
- arg.setDisplayName('Plug Loads: Well Pump Weekend Schedule')
2735
- arg.setDescription('Specify the 24-hour weekend schedule.')
2736
- arg.setDefaultValue(Constants.Auto)
2737
- args << arg
2738
-
2739
- arg = OpenStudio::Measure::OSArgument::makeStringArgument('plug_loads_well_pump_monthly_multipliers', true)
2740
- arg.setDisplayName('Plug Loads: Well Pump Month Schedule')
2741
- arg.setDescription('Specify the 12-month schedule.')
2742
- arg.setDefaultValue(Constants.Auto)
2743
- args << arg
2744
-
2745
2712
  arg = OpenStudio::Measure::OSArgument::makeBoolArgument('plug_loads_vehicle_present', true)
2746
2713
  arg.setDisplayName('Plug Loads: Vehicle Present')
2747
2714
  arg.setDescription('Whether there is a vehicle.')
@@ -2761,24 +2728,6 @@ class BuildResidentialHPXML < OpenStudio::Measure::ModelMeasure
2761
2728
  arg.setDefaultValue(1.0)
2762
2729
  args << arg
2763
2730
 
2764
- arg = OpenStudio::Measure::OSArgument::makeStringArgument('plug_loads_vehicle_weekday_fractions', true)
2765
- arg.setDisplayName('Plug Loads: Vehicle Weekday Schedule')
2766
- arg.setDescription('Specify the 24-hour weekday schedule.')
2767
- arg.setDefaultValue(Constants.Auto)
2768
- args << arg
2769
-
2770
- arg = OpenStudio::Measure::OSArgument::makeStringArgument('plug_loads_vehicle_weekend_fractions', true)
2771
- arg.setDisplayName('Plug Loads: Vehicle Weekend Schedule')
2772
- arg.setDescription('Specify the 24-hour weekend schedule.')
2773
- arg.setDefaultValue(Constants.Auto)
2774
- args << arg
2775
-
2776
- arg = OpenStudio::Measure::OSArgument::makeStringArgument('plug_loads_vehicle_monthly_multipliers', true)
2777
- arg.setDisplayName('Plug Loads: Vehicle Month Schedule')
2778
- arg.setDescription('Specify the 12-month schedule.')
2779
- arg.setDefaultValue(Constants.Auto)
2780
- args << arg
2781
-
2782
2731
  fuel_loads_fuel_choices = OpenStudio::StringVector.new
2783
2732
  fuel_loads_fuel_choices << HPXML::FuelTypeNaturalGas
2784
2733
  fuel_loads_fuel_choices << HPXML::FuelTypeOil
@@ -2822,24 +2771,6 @@ class BuildResidentialHPXML < OpenStudio::Measure::ModelMeasure
2822
2771
  arg.setDefaultValue(1.0)
2823
2772
  args << arg
2824
2773
 
2825
- arg = OpenStudio::Measure::OSArgument::makeStringArgument('fuel_loads_grill_weekday_fractions', true)
2826
- arg.setDisplayName('Fuel Loads: Grill Weekday Schedule')
2827
- arg.setDescription('Specify the 24-hour weekday schedule.')
2828
- arg.setDefaultValue(Constants.Auto)
2829
- args << arg
2830
-
2831
- arg = OpenStudio::Measure::OSArgument::makeStringArgument('fuel_loads_grill_weekend_fractions', true)
2832
- arg.setDisplayName('Fuel Loads: Grill Weekend Schedule')
2833
- arg.setDescription('Specify the 24-hour weekend schedule.')
2834
- arg.setDefaultValue(Constants.Auto)
2835
- args << arg
2836
-
2837
- arg = OpenStudio::Measure::OSArgument::makeStringArgument('fuel_loads_grill_monthly_multipliers', true)
2838
- arg.setDisplayName('Fuel Loads: Grill Month Schedule')
2839
- arg.setDescription('Specify the 12-month schedule.')
2840
- arg.setDefaultValue(Constants.Auto)
2841
- args << arg
2842
-
2843
2774
  arg = OpenStudio::Measure::OSArgument::makeBoolArgument('fuel_loads_lighting_present', true)
2844
2775
  arg.setDisplayName('Fuel Loads: Lighting Present')
2845
2776
  arg.setDescription('Whether there is fuel loads lighting.')
@@ -2871,24 +2802,6 @@ class BuildResidentialHPXML < OpenStudio::Measure::ModelMeasure
2871
2802
  arg.setDefaultValue(1.0)
2872
2803
  args << arg
2873
2804
 
2874
- arg = OpenStudio::Measure::OSArgument::makeStringArgument('fuel_loads_lighting_weekday_fractions', true)
2875
- arg.setDisplayName('Fuel Loads: Lighting Weekday Schedule')
2876
- arg.setDescription('Specify the 24-hour weekday schedule.')
2877
- arg.setDefaultValue(Constants.Auto)
2878
- args << arg
2879
-
2880
- arg = OpenStudio::Measure::OSArgument::makeStringArgument('fuel_loads_lighting_weekend_fractions', true)
2881
- arg.setDisplayName('Fuel Loads: Lighting Weekend Schedule')
2882
- arg.setDescription('Specify the 24-hour weekend schedule.')
2883
- arg.setDefaultValue(Constants.Auto)
2884
- args << arg
2885
-
2886
- arg = OpenStudio::Measure::OSArgument::makeStringArgument('fuel_loads_lighting_monthly_multipliers', true)
2887
- arg.setDisplayName('Fuel Loads: Lighting Month Schedule')
2888
- arg.setDescription('Specify the 12-month schedule.')
2889
- arg.setDefaultValue(Constants.Auto)
2890
- args << arg
2891
-
2892
2805
  arg = OpenStudio::Measure::OSArgument::makeBoolArgument('fuel_loads_fireplace_present', true)
2893
2806
  arg.setDisplayName('Fuel Loads: Fireplace Present')
2894
2807
  arg.setDescription('Whether there is fuel loads fireplace.')
@@ -2920,24 +2833,6 @@ class BuildResidentialHPXML < OpenStudio::Measure::ModelMeasure
2920
2833
  arg.setDefaultValue(1.0)
2921
2834
  args << arg
2922
2835
 
2923
- arg = OpenStudio::Measure::OSArgument::makeStringArgument('fuel_loads_fireplace_weekday_fractions', true)
2924
- arg.setDisplayName('Fuel Loads: Fireplace Weekday Schedule')
2925
- arg.setDescription('Specify the 24-hour weekday schedule.')
2926
- arg.setDefaultValue(Constants.Auto)
2927
- args << arg
2928
-
2929
- arg = OpenStudio::Measure::OSArgument::makeStringArgument('fuel_loads_fireplace_weekend_fractions', true)
2930
- arg.setDisplayName('Fuel Loads: Fireplace Weekend Schedule')
2931
- arg.setDescription('Specify the 24-hour weekend schedule.')
2932
- arg.setDefaultValue(Constants.Auto)
2933
- args << arg
2934
-
2935
- arg = OpenStudio::Measure::OSArgument::makeStringArgument('fuel_loads_fireplace_monthly_multipliers', true)
2936
- arg.setDisplayName('Fuel Loads: Fireplace Month Schedule')
2937
- arg.setDescription('Specify the 12-month schedule.')
2938
- arg.setDefaultValue(Constants.Auto)
2939
- args << arg
2940
-
2941
2836
  heater_type_choices = OpenStudio::StringVector.new
2942
2837
  heater_type_choices << 'none'
2943
2838
  heater_type_choices << HPXML::HeaterTypeElectricResistance
@@ -2963,24 +2858,6 @@ class BuildResidentialHPXML < OpenStudio::Measure::ModelMeasure
2963
2858
  arg.setDefaultValue(1.0)
2964
2859
  args << arg
2965
2860
 
2966
- arg = OpenStudio::Measure::OSArgument::makeStringArgument('pool_pump_weekday_fractions', true)
2967
- arg.setDisplayName('Pool: Pump Weekday Schedule')
2968
- arg.setDescription('Specify the 24-hour weekday schedule.')
2969
- arg.setDefaultValue(Constants.Auto)
2970
- args << arg
2971
-
2972
- arg = OpenStudio::Measure::OSArgument::makeStringArgument('pool_pump_weekend_fractions', true)
2973
- arg.setDisplayName('Pool: Pump Weekend Schedule')
2974
- arg.setDescription('Specify the 24-hour weekend schedule.')
2975
- arg.setDefaultValue(Constants.Auto)
2976
- args << arg
2977
-
2978
- arg = OpenStudio::Measure::OSArgument::makeStringArgument('pool_pump_monthly_multipliers', true)
2979
- arg.setDisplayName('Pool: Pump Month Schedule')
2980
- arg.setDescription('Specify the 12-month schedule.')
2981
- arg.setDefaultValue(Constants.Auto)
2982
- args << arg
2983
-
2984
2861
  arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('pool_heater_type', heater_type_choices, true)
2985
2862
  arg.setDisplayName('Pool: Heater Type')
2986
2863
  arg.setDescription("The type of pool heater. Use 'none' if there is no pool heater.")
@@ -3007,24 +2884,6 @@ class BuildResidentialHPXML < OpenStudio::Measure::ModelMeasure
3007
2884
  arg.setDefaultValue(1.0)
3008
2885
  args << arg
3009
2886
 
3010
- arg = OpenStudio::Measure::OSArgument::makeStringArgument('pool_heater_weekday_fractions', true)
3011
- arg.setDisplayName('Pool: Heater Weekday Schedule')
3012
- arg.setDescription('Specify the 24-hour weekday schedule.')
3013
- arg.setDefaultValue(Constants.Auto)
3014
- args << arg
3015
-
3016
- arg = OpenStudio::Measure::OSArgument::makeStringArgument('pool_heater_weekend_fractions', true)
3017
- arg.setDisplayName('Pool: Heater Weekend Schedule')
3018
- arg.setDescription('Specify the 24-hour weekend schedule.')
3019
- arg.setDefaultValue(Constants.Auto)
3020
- args << arg
3021
-
3022
- arg = OpenStudio::Measure::OSArgument::makeStringArgument('pool_heater_monthly_multipliers', true)
3023
- arg.setDisplayName('Pool: Heater Month Schedule')
3024
- arg.setDescription('Specify the 12-month schedule.')
3025
- arg.setDefaultValue(Constants.Auto)
3026
- args << arg
3027
-
3028
2887
  arg = OpenStudio::Measure::OSArgument::makeBoolArgument('hot_tub_present', true)
3029
2888
  arg.setDisplayName('Hot Tub: Present')
3030
2889
  arg.setDescription('Whether there is a hot tub.')
@@ -3044,24 +2903,6 @@ class BuildResidentialHPXML < OpenStudio::Measure::ModelMeasure
3044
2903
  arg.setDefaultValue(1.0)
3045
2904
  args << arg
3046
2905
 
3047
- arg = OpenStudio::Measure::OSArgument::makeStringArgument('hot_tub_pump_weekday_fractions', true)
3048
- arg.setDisplayName('Hot Tub: Pump Weekday Schedule')
3049
- arg.setDescription('Specify the 24-hour weekday schedule.')
3050
- arg.setDefaultValue(Constants.Auto)
3051
- args << arg
3052
-
3053
- arg = OpenStudio::Measure::OSArgument::makeStringArgument('hot_tub_pump_weekend_fractions', true)
3054
- arg.setDisplayName('Hot Tub: Pump Weekend Schedule')
3055
- arg.setDescription('Specify the 24-hour weekend schedule.')
3056
- arg.setDefaultValue(Constants.Auto)
3057
- args << arg
3058
-
3059
- arg = OpenStudio::Measure::OSArgument::makeStringArgument('hot_tub_pump_monthly_multipliers', true)
3060
- arg.setDisplayName('Hot Tub: Pump Month Schedule')
3061
- arg.setDescription('Specify the 12-month schedule.')
3062
- arg.setDefaultValue(Constants.Auto)
3063
- args << arg
3064
-
3065
2906
  arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('hot_tub_heater_type', heater_type_choices, true)
3066
2907
  arg.setDisplayName('Hot Tub: Heater Type')
3067
2908
  arg.setDescription("The type of hot tub heater. Use 'none' if there is no hot tub heater.")
@@ -3088,24 +2929,6 @@ class BuildResidentialHPXML < OpenStudio::Measure::ModelMeasure
3088
2929
  arg.setDefaultValue(1.0)
3089
2930
  args << arg
3090
2931
 
3091
- arg = OpenStudio::Measure::OSArgument::makeStringArgument('hot_tub_heater_weekday_fractions', true)
3092
- arg.setDisplayName('Hot Tub: Heater Weekday Schedule')
3093
- arg.setDescription('Specify the 24-hour weekday schedule.')
3094
- arg.setDefaultValue(Constants.Auto)
3095
- args << arg
3096
-
3097
- arg = OpenStudio::Measure::OSArgument::makeStringArgument('hot_tub_heater_weekend_fractions', true)
3098
- arg.setDisplayName('Hot Tub: Heater Weekend Schedule')
3099
- arg.setDescription('Specify the 24-hour weekend schedule.')
3100
- arg.setDefaultValue(Constants.Auto)
3101
- args << arg
3102
-
3103
- arg = OpenStudio::Measure::OSArgument::makeStringArgument('hot_tub_heater_monthly_multipliers', true)
3104
- arg.setDisplayName('Hot Tub: Heater Month Schedule')
3105
- arg.setDescription('Specify the 12-month schedule.')
3106
- arg.setDefaultValue(Constants.Auto)
3107
- args << arg
3108
-
3109
2932
  return args
3110
2933
  end
3111
2934
 
@@ -3123,7 +2946,6 @@ class BuildResidentialHPXML < OpenStudio::Measure::ModelMeasure
3123
2946
  # assign the user inputs to variables
3124
2947
  args = get_argument_values(runner, user_arguments)
3125
2948
  args[:hpxml_path] = runner.getStringArgumentValue('hpxml_path', user_arguments)
3126
- args[:weather_dir] = runner.getStringArgumentValue('weather_dir', user_arguments)
3127
2949
  args[:software_program_used] = runner.getOptionalStringArgumentValue('software_program_used', user_arguments)
3128
2950
  args[:software_program_version] = runner.getOptionalStringArgumentValue('software_program_version', user_arguments)
3129
2951
  args[:geometry_roof_pitch] = { '1:12' => 1.0 / 12.0, '2:12' => 2.0 / 12.0, '3:12' => 3.0 / 12.0, '4:12' => 4.0 / 12.0, '5:12' => 5.0 / 12.0, '6:12' => 6.0 / 12.0, '7:12' => 7.0 / 12.0, '8:12' => 8.0 / 12.0, '9:12' => 9.0 / 12.0, '10:12' => 10.0 / 12.0, '11:12' => 11.0 / 12.0, '12:12' => 12.0 / 12.0 }[args[:geometry_roof_pitch]]
@@ -3142,32 +2964,19 @@ class BuildResidentialHPXML < OpenStudio::Measure::ModelMeasure
3142
2964
  return false
3143
2965
  end
3144
2966
 
3145
- # Get weather object
3146
- weather_dir = args[:weather_dir]
3147
- unless (Pathname.new weather_dir).absolute?
3148
- weather_dir = File.expand_path(File.join(File.dirname(__FILE__), '..', weather_dir))
2967
+ # Create EpwFile object
2968
+ epw_path = args[:weather_station_epw_filepath]
2969
+ if not File.exist? epw_path
2970
+ epw_path = File.join(File.expand_path(File.join(File.dirname(__FILE__), '..', 'weather')), epw_path) # a filename was entered for weather_station_epw_filepath
3149
2971
  end
3150
- epw_path = File.join(weather_dir, args[:weather_station_epw_filepath])
3151
- if not File.exist?(epw_path)
2972
+ if not File.exist? epw_path
3152
2973
  runner.registerError("Could not find EPW file at '#{epw_path}'.")
3153
2974
  return false
3154
2975
  end
3155
- cache_path = epw_path.gsub('.epw', '-cache.csv')
3156
- if not File.exist?(cache_path)
3157
- # Process weather file to create cache .csv
3158
- runner.registerWarning("'#{cache_path}' could not be found; regenerating it.")
3159
- epw_file = OpenStudio::EpwFile.new(epw_path)
3160
- OpenStudio::Model::WeatherFile.setWeatherFile(model, epw_file)
3161
- weather = WeatherProcess.new(model, runner)
3162
- File.open(cache_path, 'wb') do |file|
3163
- weather.dump_to_csv(file)
3164
- end
3165
- else
3166
- weather = WeatherProcess.new(nil, nil, cache_path)
3167
- end
2976
+ epw_file = OpenStudio::EpwFile.new(epw_path)
3168
2977
 
3169
2978
  # Create HPXML file
3170
- hpxml_doc = HPXMLFile.create(runner, model, args, weather)
2979
+ hpxml_doc = HPXMLFile.create(runner, model, args, epw_file)
3171
2980
  if not hpxml_doc
3172
2981
  runner.registerError('Unsuccessful creation of HPXML file.')
3173
2982
  return false
@@ -3196,11 +3005,18 @@ class BuildResidentialHPXML < OpenStudio::Measure::ModelMeasure
3196
3005
  simulation_control_run_period_begin_day_of_month: runner.getOptionalIntegerArgumentValue('simulation_control_run_period_begin_day_of_month', user_arguments),
3197
3006
  simulation_control_run_period_end_month: runner.getOptionalIntegerArgumentValue('simulation_control_run_period_end_month', user_arguments),
3198
3007
  simulation_control_run_period_end_day_of_month: runner.getOptionalIntegerArgumentValue('simulation_control_run_period_end_day_of_month', user_arguments),
3008
+ simulation_control_run_period_calendar_year: runner.getOptionalIntegerArgumentValue('simulation_control_run_period_calendar_year', user_arguments),
3199
3009
  simulation_control_daylight_saving_enabled: runner.getOptionalStringArgumentValue('simulation_control_daylight_saving_enabled', user_arguments),
3200
3010
  simulation_control_daylight_saving_begin_month: runner.getOptionalIntegerArgumentValue('simulation_control_daylight_saving_begin_month', user_arguments),
3201
3011
  simulation_control_daylight_saving_begin_day_of_month: runner.getOptionalIntegerArgumentValue('simulation_control_daylight_saving_begin_day_of_month', user_arguments),
3202
3012
  simulation_control_daylight_saving_end_month: runner.getOptionalIntegerArgumentValue('simulation_control_daylight_saving_end_month', user_arguments),
3203
3013
  simulation_control_daylight_saving_end_day_of_month: runner.getOptionalIntegerArgumentValue('simulation_control_daylight_saving_end_day_of_month', user_arguments),
3014
+ schedules_type: runner.getStringArgumentValue('schedules_type', user_arguments),
3015
+ schedules_path: runner.getOptionalStringArgumentValue('schedules_path', user_arguments),
3016
+ schedules_vacancy_begin_month: runner.getOptionalIntegerArgumentValue('schedules_vacancy_begin_month', user_arguments),
3017
+ schedules_vacancy_begin_day_of_month: runner.getOptionalIntegerArgumentValue('schedules_vacancy_begin_day_of_month', user_arguments),
3018
+ schedules_vacancy_end_month: runner.getOptionalIntegerArgumentValue('schedules_vacancy_end_month', user_arguments),
3019
+ schedules_vacancy_end_day_of_month: runner.getOptionalIntegerArgumentValue('schedules_vacancy_end_day_of_month', user_arguments),
3204
3020
  weather_station_epw_filepath: runner.getStringArgumentValue('weather_station_epw_filepath', user_arguments),
3205
3021
  site_type: runner.getOptionalStringArgumentValue('site_type', user_arguments),
3206
3022
  geometry_unit_type: runner.getStringArgumentValue('geometry_unit_type', user_arguments),
@@ -3369,6 +3185,23 @@ class BuildResidentialHPXML < OpenStudio::Measure::ModelMeasure
3369
3185
  mech_vent_sensible_recovery_efficiency_type: runner.getStringArgumentValue('mech_vent_sensible_recovery_efficiency_type', user_arguments),
3370
3186
  mech_vent_sensible_recovery_efficiency: runner.getDoubleArgumentValue('mech_vent_sensible_recovery_efficiency', user_arguments),
3371
3187
  mech_vent_fan_power: runner.getDoubleArgumentValue('mech_vent_fan_power', user_arguments),
3188
+ mech_vent_is_shared_system: runner.getBoolArgumentValue('mech_vent_is_shared_system', user_arguments),
3189
+ shared_mech_vent_in_unit_flow_rate: runner.getOptionalDoubleArgumentValue('shared_mech_vent_in_unit_flow_rate', user_arguments),
3190
+ shared_mech_vent_frac_recirculation: runner.getOptionalDoubleArgumentValue('shared_mech_vent_frac_recirculation', user_arguments),
3191
+ shared_mech_vent_preheating_fuel: runner.getOptionalStringArgumentValue('shared_mech_vent_preheating_fuel', user_arguments),
3192
+ shared_mech_vent_preheating_efficiency: runner.getOptionalDoubleArgumentValue('shared_mech_vent_preheating_efficiency', user_arguments),
3193
+ shared_mech_vent_preheating_fraction_heat_load_served: runner.getOptionalDoubleArgumentValue('shared_mech_vent_preheating_fraction_heat_load_served', user_arguments),
3194
+ shared_mech_vent_precooling_fuel: runner.getOptionalStringArgumentValue('shared_mech_vent_precooling_fuel', user_arguments),
3195
+ shared_mech_vent_precooling_efficiency: runner.getOptionalDoubleArgumentValue('shared_mech_vent_precooling_efficiency', user_arguments),
3196
+ shared_mech_vent_precooling_fraction_cool_load_served: runner.getOptionalDoubleArgumentValue('shared_mech_vent_precooling_fraction_cool_load_served', user_arguments),
3197
+ mech_vent_fan_type_2: runner.getStringArgumentValue('mech_vent_fan_type_2', user_arguments),
3198
+ mech_vent_flow_rate_2: runner.getDoubleArgumentValue('mech_vent_flow_rate_2', user_arguments),
3199
+ mech_vent_hours_in_operation_2: runner.getDoubleArgumentValue('mech_vent_hours_in_operation_2', user_arguments),
3200
+ mech_vent_total_recovery_efficiency_type_2: runner.getStringArgumentValue('mech_vent_total_recovery_efficiency_type_2', user_arguments),
3201
+ mech_vent_total_recovery_efficiency_2: runner.getDoubleArgumentValue('mech_vent_total_recovery_efficiency_2', user_arguments),
3202
+ mech_vent_sensible_recovery_efficiency_type_2: runner.getStringArgumentValue('mech_vent_sensible_recovery_efficiency_type_2', user_arguments),
3203
+ mech_vent_sensible_recovery_efficiency_2: runner.getDoubleArgumentValue('mech_vent_sensible_recovery_efficiency_2', user_arguments),
3204
+ mech_vent_fan_power_2: runner.getDoubleArgumentValue('mech_vent_fan_power_2', user_arguments),
3372
3205
  kitchen_fans_present: runner.getBoolArgumentValue('kitchen_fans_present', user_arguments),
3373
3206
  kitchen_fans_quantity: runner.getOptionalIntegerArgumentValue('kitchen_fans_quantity', user_arguments),
3374
3207
  kitchen_fans_flow_rate: runner.getOptionalDoubleArgumentValue('kitchen_fans_flow_rate', user_arguments),
@@ -3444,31 +3277,20 @@ class BuildResidentialHPXML < OpenStudio::Measure::ModelMeasure
3444
3277
  lighting_fraction_lfl_interior: runner.getDoubleArgumentValue('lighting_fraction_lfl_interior', user_arguments),
3445
3278
  lighting_fraction_led_interior: runner.getDoubleArgumentValue('lighting_fraction_led_interior', user_arguments),
3446
3279
  lighting_usage_multiplier_interior: runner.getDoubleArgumentValue('lighting_usage_multiplier_interior', user_arguments),
3447
- lighting_weekday_fractions_interior: runner.getStringArgumentValue('lighting_weekday_fractions_interior', user_arguments),
3448
- lighting_weekend_fractions_interior: runner.getStringArgumentValue('lighting_weekend_fractions_interior', user_arguments),
3449
- lighting_monthly_multipliers_interior: runner.getStringArgumentValue('lighting_monthly_multipliers_interior', user_arguments),
3450
3280
  lighting_fraction_cfl_exterior: runner.getDoubleArgumentValue('lighting_fraction_cfl_exterior', user_arguments),
3451
3281
  lighting_fraction_lfl_exterior: runner.getDoubleArgumentValue('lighting_fraction_lfl_exterior', user_arguments),
3452
3282
  lighting_fraction_led_exterior: runner.getDoubleArgumentValue('lighting_fraction_led_exterior', user_arguments),
3453
3283
  lighting_usage_multiplier_exterior: runner.getDoubleArgumentValue('lighting_usage_multiplier_exterior', user_arguments),
3454
- lighting_weekday_fractions_exterior: runner.getStringArgumentValue('lighting_weekday_fractions_exterior', user_arguments),
3455
- lighting_weekend_fractions_exterior: runner.getStringArgumentValue('lighting_weekend_fractions_exterior', user_arguments),
3456
- lighting_monthly_multipliers_exterior: runner.getStringArgumentValue('lighting_monthly_multipliers_exterior', user_arguments),
3457
3284
  lighting_fraction_cfl_garage: runner.getDoubleArgumentValue('lighting_fraction_cfl_garage', user_arguments),
3458
3285
  lighting_fraction_lfl_garage: runner.getDoubleArgumentValue('lighting_fraction_lfl_garage', user_arguments),
3459
3286
  lighting_fraction_led_garage: runner.getDoubleArgumentValue('lighting_fraction_led_garage', user_arguments),
3460
3287
  lighting_usage_multiplier_garage: runner.getDoubleArgumentValue('lighting_usage_multiplier_garage', user_arguments),
3461
- lighting_weekday_fractions_garage: runner.getStringArgumentValue('lighting_weekday_fractions_garage', user_arguments),
3462
- lighting_weekend_fractions_garage: runner.getStringArgumentValue('lighting_weekend_fractions_garage', user_arguments),
3463
- lighting_monthly_multipliers_garage: runner.getStringArgumentValue('lighting_monthly_multipliers_garage', user_arguments),
3464
3288
  holiday_lighting_present: runner.getBoolArgumentValue('holiday_lighting_present', user_arguments),
3465
3289
  holiday_lighting_daily_kwh: runner.getStringArgumentValue('holiday_lighting_daily_kwh', user_arguments),
3466
3290
  holiday_lighting_period_begin_month: runner.getStringArgumentValue('holiday_lighting_period_begin_month', user_arguments),
3467
3291
  holiday_lighting_period_begin_day_of_month: runner.getStringArgumentValue('holiday_lighting_period_begin_day_of_month', user_arguments),
3468
3292
  holiday_lighting_period_end_month: runner.getStringArgumentValue('holiday_lighting_period_end_month', user_arguments),
3469
3293
  holiday_lighting_period_end_day_of_month: runner.getStringArgumentValue('holiday_lighting_period_end_day_of_month', user_arguments),
3470
- holiday_lighting_weekday_fractions_exterior: runner.getStringArgumentValue('holiday_lighting_weekday_fractions_exterior', user_arguments),
3471
- holiday_lighting_weekend_fractions_exterior: runner.getStringArgumentValue('holiday_lighting_weekend_fractions_exterior', user_arguments),
3472
3294
  dehumidifier_present: runner.getBoolArgumentValue('dehumidifier_present', user_arguments),
3473
3295
  dehumidifier_efficiency_type: runner.getStringArgumentValue('dehumidifier_efficiency_type', user_arguments),
3474
3296
  dehumidifier_efficiency_ef: runner.getDoubleArgumentValue('dehumidifier_efficiency_ef', user_arguments),
@@ -3495,6 +3317,7 @@ class BuildResidentialHPXML < OpenStudio::Measure::ModelMeasure
3495
3317
  clothes_dryer_efficiency_ef: runner.getDoubleArgumentValue('clothes_dryer_efficiency_ef', user_arguments),
3496
3318
  clothes_dryer_efficiency_cef: runner.getStringArgumentValue('clothes_dryer_efficiency_cef', user_arguments),
3497
3319
  clothes_dryer_control_type: runner.getStringArgumentValue('clothes_dryer_control_type', user_arguments),
3320
+ clothes_dryer_vented_flow_rate: runner.getStringArgumentValue('clothes_dryer_vented_flow_rate', user_arguments),
3498
3321
  clothes_dryer_usage_multiplier: runner.getDoubleArgumentValue('clothes_dryer_usage_multiplier', user_arguments),
3499
3322
  dishwasher_present: runner.getBoolArgumentValue('dishwasher_present', user_arguments),
3500
3323
  dishwasher_location: runner.getStringArgumentValue('dishwasher_location', user_arguments),
@@ -3511,110 +3334,65 @@ class BuildResidentialHPXML < OpenStudio::Measure::ModelMeasure
3511
3334
  refrigerator_location: runner.getStringArgumentValue('refrigerator_location', user_arguments),
3512
3335
  refrigerator_rated_annual_kwh: runner.getStringArgumentValue('refrigerator_rated_annual_kwh', user_arguments),
3513
3336
  refrigerator_usage_multiplier: runner.getDoubleArgumentValue('refrigerator_usage_multiplier', user_arguments),
3514
- refrigerator_weekday_fractions: runner.getStringArgumentValue('refrigerator_weekday_fractions', user_arguments),
3515
- refrigerator_weekend_fractions: runner.getStringArgumentValue('refrigerator_weekend_fractions', user_arguments),
3516
- refrigerator_monthly_multipliers: runner.getStringArgumentValue('refrigerator_monthly_multipliers', user_arguments),
3517
3337
  extra_refrigerator_present: runner.getBoolArgumentValue('extra_refrigerator_present', user_arguments),
3518
3338
  extra_refrigerator_location: runner.getStringArgumentValue('extra_refrigerator_location', user_arguments),
3519
3339
  extra_refrigerator_rated_annual_kwh: runner.getStringArgumentValue('extra_refrigerator_rated_annual_kwh', user_arguments),
3520
3340
  extra_refrigerator_usage_multiplier: runner.getDoubleArgumentValue('extra_refrigerator_usage_multiplier', user_arguments),
3521
- extra_refrigerator_weekday_fractions: runner.getStringArgumentValue('extra_refrigerator_weekday_fractions', user_arguments),
3522
- extra_refrigerator_weekend_fractions: runner.getStringArgumentValue('extra_refrigerator_weekend_fractions', user_arguments),
3523
- extra_refrigerator_monthly_multipliers: runner.getStringArgumentValue('extra_refrigerator_monthly_multipliers', user_arguments),
3524
3341
  freezer_present: runner.getBoolArgumentValue('freezer_present', user_arguments),
3525
3342
  freezer_location: runner.getStringArgumentValue('freezer_location', user_arguments),
3526
3343
  freezer_rated_annual_kwh: runner.getStringArgumentValue('freezer_rated_annual_kwh', user_arguments),
3527
3344
  freezer_usage_multiplier: runner.getDoubleArgumentValue('freezer_usage_multiplier', user_arguments),
3528
- freezer_weekday_fractions: runner.getStringArgumentValue('freezer_weekday_fractions', user_arguments),
3529
- freezer_weekend_fractions: runner.getStringArgumentValue('freezer_weekend_fractions', user_arguments),
3530
- freezer_monthly_multipliers: runner.getStringArgumentValue('freezer_monthly_multipliers', user_arguments),
3531
3345
  cooking_range_oven_present: runner.getBoolArgumentValue('cooking_range_oven_present', user_arguments),
3532
3346
  cooking_range_oven_location: runner.getStringArgumentValue('cooking_range_oven_location', user_arguments),
3533
3347
  cooking_range_oven_fuel_type: runner.getStringArgumentValue('cooking_range_oven_fuel_type', user_arguments),
3534
3348
  cooking_range_oven_is_induction: runner.getOptionalStringArgumentValue('cooking_range_oven_is_induction', user_arguments),
3535
3349
  cooking_range_oven_is_convection: runner.getOptionalStringArgumentValue('cooking_range_oven_is_convection', user_arguments),
3536
3350
  cooking_range_oven_usage_multiplier: runner.getDoubleArgumentValue('cooking_range_oven_usage_multiplier', user_arguments),
3537
- cooking_range_oven_weekday_fractions: runner.getStringArgumentValue('cooking_range_oven_weekday_fractions', user_arguments),
3538
- cooking_range_oven_weekend_fractions: runner.getStringArgumentValue('cooking_range_oven_weekend_fractions', user_arguments),
3539
- cooking_range_oven_monthly_multipliers: runner.getStringArgumentValue('cooking_range_oven_monthly_multipliers', user_arguments),
3540
3351
  ceiling_fan_present: runner.getBoolArgumentValue('ceiling_fan_present', user_arguments),
3541
3352
  ceiling_fan_efficiency: runner.getStringArgumentValue('ceiling_fan_efficiency', user_arguments),
3542
3353
  ceiling_fan_quantity: runner.getStringArgumentValue('ceiling_fan_quantity', user_arguments),
3543
3354
  ceiling_fan_cooling_setpoint_temp_offset: runner.getDoubleArgumentValue('ceiling_fan_cooling_setpoint_temp_offset', user_arguments),
3544
3355
  plug_loads_television_annual_kwh: runner.getStringArgumentValue('plug_loads_television_annual_kwh', user_arguments),
3545
3356
  plug_loads_television_usage_multiplier: runner.getDoubleArgumentValue('plug_loads_television_usage_multiplier', user_arguments),
3546
- plug_loads_television_weekday_fractions: runner.getStringArgumentValue('plug_loads_television_weekday_fractions', user_arguments),
3547
- plug_loads_television_weekend_fractions: runner.getStringArgumentValue('plug_loads_television_weekend_fractions', user_arguments),
3548
- plug_loads_television_monthly_multipliers: runner.getStringArgumentValue('plug_loads_television_monthly_multipliers', user_arguments),
3549
3357
  plug_loads_other_annual_kwh: runner.getStringArgumentValue('plug_loads_other_annual_kwh', user_arguments),
3550
3358
  plug_loads_other_frac_sensible: runner.getStringArgumentValue('plug_loads_other_frac_sensible', user_arguments),
3551
3359
  plug_loads_other_frac_latent: runner.getStringArgumentValue('plug_loads_other_frac_latent', user_arguments),
3552
3360
  plug_loads_other_usage_multiplier: runner.getDoubleArgumentValue('plug_loads_other_usage_multiplier', user_arguments),
3553
- plug_loads_other_weekday_fractions: runner.getStringArgumentValue('plug_loads_other_weekday_fractions', user_arguments),
3554
- plug_loads_other_weekend_fractions: runner.getStringArgumentValue('plug_loads_other_weekend_fractions', user_arguments),
3555
- plug_loads_other_monthly_multipliers: runner.getStringArgumentValue('plug_loads_other_monthly_multipliers', user_arguments),
3556
3361
  plug_loads_well_pump_present: runner.getBoolArgumentValue('plug_loads_well_pump_present', user_arguments),
3557
3362
  plug_loads_well_pump_annual_kwh: runner.getStringArgumentValue('plug_loads_well_pump_annual_kwh', user_arguments),
3558
3363
  plug_loads_well_pump_usage_multiplier: runner.getDoubleArgumentValue('plug_loads_well_pump_usage_multiplier', user_arguments),
3559
- plug_loads_well_pump_weekday_fractions: runner.getStringArgumentValue('plug_loads_well_pump_weekday_fractions', user_arguments),
3560
- plug_loads_well_pump_weekend_fractions: runner.getStringArgumentValue('plug_loads_well_pump_weekend_fractions', user_arguments),
3561
- plug_loads_well_pump_monthly_multipliers: runner.getStringArgumentValue('plug_loads_well_pump_monthly_multipliers', user_arguments),
3562
3364
  plug_loads_vehicle_present: runner.getBoolArgumentValue('plug_loads_vehicle_present', user_arguments),
3563
3365
  plug_loads_vehicle_annual_kwh: runner.getStringArgumentValue('plug_loads_vehicle_annual_kwh', user_arguments),
3564
3366
  plug_loads_vehicle_usage_multiplier: runner.getDoubleArgumentValue('plug_loads_vehicle_usage_multiplier', user_arguments),
3565
- plug_loads_vehicle_weekday_fractions: runner.getStringArgumentValue('plug_loads_vehicle_weekday_fractions', user_arguments),
3566
- plug_loads_vehicle_weekend_fractions: runner.getStringArgumentValue('plug_loads_vehicle_weekend_fractions', user_arguments),
3567
- plug_loads_vehicle_monthly_multipliers: runner.getStringArgumentValue('plug_loads_vehicle_monthly_multipliers', user_arguments),
3568
3367
  fuel_loads_grill_present: runner.getBoolArgumentValue('fuel_loads_grill_present', user_arguments),
3569
3368
  fuel_loads_grill_fuel_type: runner.getStringArgumentValue('fuel_loads_grill_fuel_type', user_arguments),
3570
3369
  fuel_loads_grill_annual_therm: runner.getStringArgumentValue('fuel_loads_grill_annual_therm', user_arguments),
3571
3370
  fuel_loads_grill_location: runner.getStringArgumentValue('fuel_loads_grill_location', user_arguments),
3572
3371
  fuel_loads_grill_usage_multiplier: runner.getDoubleArgumentValue('fuel_loads_grill_usage_multiplier', user_arguments),
3573
- fuel_loads_grill_weekday_fractions: runner.getStringArgumentValue('fuel_loads_grill_weekday_fractions', user_arguments),
3574
- fuel_loads_grill_weekend_fractions: runner.getStringArgumentValue('fuel_loads_grill_weekend_fractions', user_arguments),
3575
- fuel_loads_grill_monthly_multipliers: runner.getStringArgumentValue('fuel_loads_grill_monthly_multipliers', user_arguments),
3576
3372
  fuel_loads_lighting_present: runner.getBoolArgumentValue('fuel_loads_lighting_present', user_arguments),
3577
3373
  fuel_loads_lighting_fuel_type: runner.getStringArgumentValue('fuel_loads_lighting_fuel_type', user_arguments),
3578
3374
  fuel_loads_lighting_annual_therm: runner.getStringArgumentValue('fuel_loads_lighting_annual_therm', user_arguments),
3579
3375
  fuel_loads_lighting_location: runner.getStringArgumentValue('fuel_loads_lighting_location', user_arguments),
3580
3376
  fuel_loads_lighting_usage_multiplier: runner.getDoubleArgumentValue('fuel_loads_lighting_usage_multiplier', user_arguments),
3581
- fuel_loads_lighting_weekday_fractions: runner.getStringArgumentValue('fuel_loads_lighting_weekday_fractions', user_arguments),
3582
- fuel_loads_lighting_weekend_fractions: runner.getStringArgumentValue('fuel_loads_lighting_weekend_fractions', user_arguments),
3583
- fuel_loads_lighting_monthly_multipliers: runner.getStringArgumentValue('fuel_loads_lighting_monthly_multipliers', user_arguments),
3584
3377
  fuel_loads_fireplace_present: runner.getBoolArgumentValue('fuel_loads_fireplace_present', user_arguments),
3585
3378
  fuel_loads_fireplace_fuel_type: runner.getStringArgumentValue('fuel_loads_fireplace_fuel_type', user_arguments),
3586
3379
  fuel_loads_fireplace_annual_therm: runner.getStringArgumentValue('fuel_loads_fireplace_annual_therm', user_arguments),
3587
3380
  fuel_loads_fireplace_location: runner.getStringArgumentValue('fuel_loads_fireplace_location', user_arguments),
3588
3381
  fuel_loads_fireplace_usage_multiplier: runner.getDoubleArgumentValue('fuel_loads_fireplace_usage_multiplier', user_arguments),
3589
- fuel_loads_fireplace_weekday_fractions: runner.getStringArgumentValue('fuel_loads_fireplace_weekday_fractions', user_arguments),
3590
- fuel_loads_fireplace_weekend_fractions: runner.getStringArgumentValue('fuel_loads_fireplace_weekend_fractions', user_arguments),
3591
- fuel_loads_fireplace_monthly_multipliers: runner.getStringArgumentValue('fuel_loads_fireplace_monthly_multipliers', user_arguments),
3592
3382
  pool_present: runner.getBoolArgumentValue('pool_present', user_arguments),
3593
3383
  pool_pump_annual_kwh: runner.getStringArgumentValue('pool_pump_annual_kwh', user_arguments),
3594
3384
  pool_pump_usage_multiplier: runner.getDoubleArgumentValue('pool_pump_usage_multiplier', user_arguments),
3595
- pool_pump_weekday_fractions: runner.getStringArgumentValue('pool_pump_weekday_fractions', user_arguments),
3596
- pool_pump_weekend_fractions: runner.getStringArgumentValue('pool_pump_weekend_fractions', user_arguments),
3597
- pool_pump_monthly_multipliers: runner.getStringArgumentValue('pool_pump_monthly_multipliers', user_arguments),
3598
3385
  pool_heater_type: runner.getStringArgumentValue('pool_heater_type', user_arguments),
3599
3386
  pool_heater_annual_kwh: runner.getStringArgumentValue('pool_heater_annual_kwh', user_arguments),
3600
3387
  pool_heater_annual_therm: runner.getStringArgumentValue('pool_heater_annual_therm', user_arguments),
3601
3388
  pool_heater_usage_multiplier: runner.getDoubleArgumentValue('pool_heater_usage_multiplier', user_arguments),
3602
- pool_heater_weekday_fractions: runner.getStringArgumentValue('pool_heater_weekday_fractions', user_arguments),
3603
- pool_heater_weekend_fractions: runner.getStringArgumentValue('pool_heater_weekend_fractions', user_arguments),
3604
- pool_heater_monthly_multipliers: runner.getStringArgumentValue('pool_heater_monthly_multipliers', user_arguments),
3605
3389
  hot_tub_present: runner.getBoolArgumentValue('hot_tub_present', user_arguments),
3606
3390
  hot_tub_pump_annual_kwh: runner.getStringArgumentValue('hot_tub_pump_annual_kwh', user_arguments),
3607
3391
  hot_tub_pump_usage_multiplier: runner.getDoubleArgumentValue('hot_tub_pump_usage_multiplier', user_arguments),
3608
- hot_tub_pump_weekday_fractions: runner.getStringArgumentValue('hot_tub_pump_weekday_fractions', user_arguments),
3609
- hot_tub_pump_weekend_fractions: runner.getStringArgumentValue('hot_tub_pump_weekend_fractions', user_arguments),
3610
- hot_tub_pump_monthly_multipliers: runner.getStringArgumentValue('hot_tub_pump_monthly_multipliers', user_arguments),
3611
3392
  hot_tub_heater_type: runner.getStringArgumentValue('hot_tub_heater_type', user_arguments),
3612
3393
  hot_tub_heater_annual_kwh: runner.getStringArgumentValue('hot_tub_heater_annual_kwh', user_arguments),
3613
3394
  hot_tub_heater_annual_therm: runner.getStringArgumentValue('hot_tub_heater_annual_therm', user_arguments),
3614
- hot_tub_heater_usage_multiplier: runner.getDoubleArgumentValue('hot_tub_heater_usage_multiplier', user_arguments),
3615
- hot_tub_heater_weekday_fractions: runner.getStringArgumentValue('hot_tub_heater_weekday_fractions', user_arguments),
3616
- hot_tub_heater_weekend_fractions: runner.getStringArgumentValue('hot_tub_heater_weekend_fractions', user_arguments),
3617
- hot_tub_heater_monthly_multipliers: runner.getStringArgumentValue('hot_tub_heater_monthly_multipliers', user_arguments) }
3395
+ hot_tub_heater_usage_multiplier: runner.getDoubleArgumentValue('hot_tub_heater_usage_multiplier', user_arguments) }
3618
3396
  end
3619
3397
 
3620
3398
  def validate_arguments(args)
@@ -3740,12 +3518,15 @@ class BuildResidentialHPXML < OpenStudio::Measure::ModelMeasure
3740
3518
  end
3741
3519
 
3742
3520
  class HPXMLFile
3743
- def self.create(runner, model, args, weather)
3521
+ def self.create(runner, model, args, epw_file)
3744
3522
  model_geometry = OpenStudio::Model::Model.new
3745
3523
 
3746
3524
  success = create_geometry_envelope(runner, model_geometry, args)
3747
3525
  return false if not success
3748
3526
 
3527
+ success = create_schedules(runner, model, epw_file, args)
3528
+ return false if not success
3529
+
3749
3530
  hpxml = HPXML.new
3750
3531
 
3751
3532
  set_header(hpxml, runner, args)
@@ -3753,7 +3534,7 @@ class HPXMLFile
3753
3534
  set_neighbor_buildings(hpxml, runner, args)
3754
3535
  set_building_occupancy(hpxml, runner, args)
3755
3536
  set_building_construction(hpxml, runner, args)
3756
- set_climate_and_risk_zones(hpxml, runner, args, weather)
3537
+ set_climate_and_risk_zones(hpxml, runner, args, epw_file)
3757
3538
  set_air_infiltration_measurements(hpxml, runner, args)
3758
3539
  set_attics(hpxml, runner, model_geometry, args)
3759
3540
  set_foundations(hpxml, runner, model_geometry, args)
@@ -3775,8 +3556,8 @@ class HPXMLFile
3775
3556
  set_water_heating_systems(hpxml, runner, args)
3776
3557
  set_hot_water_distribution(hpxml, runner, args)
3777
3558
  set_water_fixtures(hpxml, runner, args)
3778
- set_solar_thermal(hpxml, runner, args, weather)
3779
- set_pv_systems(hpxml, runner, args, weather)
3559
+ set_solar_thermal(hpxml, runner, args, epw_file)
3560
+ set_pv_systems(hpxml, runner, args, epw_file)
3780
3561
  set_lighting(hpxml, runner, args)
3781
3562
  set_dehumidifier(hpxml, runner, args)
3782
3563
  set_clothes_washer(hpxml, runner, args)
@@ -3832,6 +3613,50 @@ class HPXMLFile
3832
3613
  return true
3833
3614
  end
3834
3615
 
3616
+ def self.create_schedules(runner, model, epw_file, args)
3617
+ if ['default', 'user-specified'].include? args[:schedules_type]
3618
+ if args[:schedules_type] == 'user-specified'
3619
+ args[:schedules_path] = args[:schedules_path].get
3620
+ else
3621
+ args[:schedules_path] = nil
3622
+ end
3623
+ return true
3624
+ end
3625
+
3626
+ # set the calendar year
3627
+ year_description = model.getYearDescription
3628
+ year_description.setCalendarYear(2007) # default to TMY
3629
+ if epw_file.startDateActualYear.is_initialized # AMY
3630
+ year_description.setCalendarYear(epw_file.startDateActualYear.get)
3631
+ end
3632
+
3633
+ # set the timestep
3634
+ timestep = model.getTimestep
3635
+ timestep.setNumberOfTimestepsPerHour(1)
3636
+ if args[:simulation_control_timestep].is_initialized
3637
+ timestep.setNumberOfTimestepsPerHour(60 / args[:simulation_control_timestep].get)
3638
+ end
3639
+
3640
+ schedule_generator = ScheduleGenerator.new(runner: runner, model: model, epw_file: epw_file)
3641
+
3642
+ # create the schedule
3643
+ if args[:geometry_num_occupants] == Constants.Auto
3644
+ args[:geometry_num_occupants] = Geometry.get_occupancy_default_num(args[:geometry_num_bedrooms])
3645
+ else
3646
+ args[:geometry_num_occupants] = Integer(args[:geometry_num_occupants])
3647
+ end
3648
+ args[:resources_path] = File.join(File.dirname(__FILE__), 'resources')
3649
+ success = schedule_generator.create(args: args)
3650
+ return false if not success
3651
+
3652
+ # export the schedule
3653
+ args[:schedules_path] = '../schedules.csv'
3654
+ success = schedule_generator.export(schedules_path: File.expand_path(args[:schedules_path]))
3655
+ return false if not success
3656
+
3657
+ return true
3658
+ end
3659
+
3835
3660
  def self.set_header(hpxml, runner, args)
3836
3661
  hpxml.header.xml_type = 'HPXML'
3837
3662
  hpxml.header.xml_generated_by = 'BuildResidentialHPXML'
@@ -3861,6 +3686,9 @@ class HPXMLFile
3861
3686
  if args[:simulation_control_run_period_end_day_of_month].is_initialized
3862
3687
  hpxml.header.sim_end_day_of_month = args[:simulation_control_run_period_end_day_of_month].get
3863
3688
  end
3689
+ if args[:simulation_control_run_period_calendar_year].is_initialized
3690
+ hpxml.header.sim_calendar_year = args[:simulation_control_run_period_calendar_year].get
3691
+ end
3864
3692
 
3865
3693
  if args[:simulation_control_daylight_saving_enabled].is_initialized
3866
3694
  hpxml.header.dst_enabled = args[:simulation_control_daylight_saving_enabled].get
@@ -3880,6 +3708,7 @@ class HPXMLFile
3880
3708
 
3881
3709
  hpxml.header.building_id = 'MyBuilding'
3882
3710
  hpxml.header.event_type = 'proposed workscope'
3711
+ hpxml.header.schedules_path = args[:schedules_path]
3883
3712
  end
3884
3713
 
3885
3714
  def self.set_site(hpxml, runner, args)
@@ -3956,15 +3785,16 @@ class HPXMLFile
3956
3785
  end
3957
3786
  end
3958
3787
 
3959
- def self.set_climate_and_risk_zones(hpxml, runner, args, weather)
3788
+ def self.set_climate_and_risk_zones(hpxml, runner, args, epw_file)
3960
3789
  hpxml.climate_and_risk_zones.weather_station_id = 'WeatherStation'
3961
- iecc_zone = Location.get_climate_zone_iecc(weather.header.Station)
3790
+ iecc_zone = Location.get_climate_zone_iecc(epw_file.wmoNumber)
3962
3791
 
3963
3792
  unless iecc_zone.nil?
3964
3793
  hpxml.climate_and_risk_zones.iecc_year = 2006
3965
3794
  hpxml.climate_and_risk_zones.iecc_zone = iecc_zone
3966
3795
  end
3967
- hpxml.climate_and_risk_zones.weather_station_name = args[:weather_station_epw_filepath].gsub('.epw', '')
3796
+ weather_station_name = File.basename(args[:weather_station_epw_filepath]).gsub('.epw', '')
3797
+ hpxml.climate_and_risk_zones.weather_station_name = weather_station_name
3968
3798
  hpxml.climate_and_risk_zones.weather_station_epw_filepath = args[:weather_station_epw_filepath]
3969
3799
  end
3970
3800
 
@@ -4745,6 +4575,22 @@ class HPXMLFile
4745
4575
  end
4746
4576
  end
4747
4577
 
4578
+ if args[:mech_vent_is_shared_system]
4579
+ is_shared_system = args[:mech_vent_is_shared_system]
4580
+ in_unit_flow_rate = args[:shared_mech_vent_in_unit_flow_rate].get
4581
+ fraction_recirculation = args[:shared_mech_vent_frac_recirculation].get
4582
+ if args[:shared_mech_vent_preheating_fuel].is_initialized && args[:shared_mech_vent_preheating_efficiency].is_initialized && args[:shared_mech_vent_preheating_fraction_heat_load_served].is_initialized
4583
+ preheating_fuel = args[:shared_mech_vent_preheating_fuel].get
4584
+ preheating_efficiency_cop = args[:shared_mech_vent_preheating_efficiency].get
4585
+ preheating_fraction_load_served = args[:shared_mech_vent_preheating_fraction_heat_load_served].get
4586
+ end
4587
+ if args[:shared_mech_vent_precooling_fuel].is_initialized && args[:shared_mech_vent_precooling_efficiency].is_initialized && args[:shared_mech_vent_precooling_fraction_cool_load_served].is_initialized
4588
+ precooling_fuel = args[:shared_mech_vent_precooling_fuel].get
4589
+ precooling_efficiency_cop = args[:shared_mech_vent_precooling_efficiency].get
4590
+ precooling_fraction_load_served = args[:shared_mech_vent_precooling_fraction_cool_load_served].get
4591
+ end
4592
+ end
4593
+
4748
4594
  hpxml.ventilation_fans.add(id: 'MechanicalVentilation',
4749
4595
  fan_type: args[:mech_vent_fan_type],
4750
4596
  rated_flow_rate: args[:mech_vent_flow_rate],
@@ -4755,6 +4601,59 @@ class HPXMLFile
4755
4601
  sensible_recovery_efficiency: sensible_recovery_efficiency,
4756
4602
  sensible_recovery_efficiency_adjusted: sensible_recovery_efficiency_adjusted,
4757
4603
  fan_power: args[:mech_vent_fan_power],
4604
+ distribution_system_idref: distribution_system_idref,
4605
+ is_shared_system: is_shared_system,
4606
+ in_unit_flow_rate: in_unit_flow_rate,
4607
+ fraction_recirculation: fraction_recirculation,
4608
+ preheating_fuel: preheating_fuel,
4609
+ preheating_efficiency_cop: preheating_efficiency_cop,
4610
+ preheating_fraction_load_served: preheating_fraction_load_served,
4611
+ precooling_fuel: precooling_fuel,
4612
+ precooling_efficiency_cop: precooling_efficiency_cop,
4613
+ precooling_fraction_load_served: precooling_fraction_load_served)
4614
+ end
4615
+
4616
+ if args[:mech_vent_fan_type_2] != 'none'
4617
+
4618
+ if args[:mech_vent_fan_type_2].include? 'recovery ventilator'
4619
+
4620
+ if args[:mech_vent_fan_type_2].include? 'energy'
4621
+
4622
+ if args[:mech_vent_total_recovery_efficiency_type_2] == 'Unadjusted'
4623
+ total_recovery_efficiency = args[:mech_vent_total_recovery_efficiency_2]
4624
+ elsif args[:mech_vent_total_recovery_efficiency_type_2] == 'Adjusted'
4625
+ total_recovery_efficiency_adjusted = args[:mech_vent_total_recovery_efficiency_2]
4626
+ end
4627
+
4628
+ end
4629
+
4630
+ if args[:mech_vent_sensible_recovery_efficiency_type_2] == 'Unadjusted'
4631
+ sensible_recovery_efficiency = args[:mech_vent_sensible_recovery_efficiency_2]
4632
+ elsif args[:mech_vent_sensible_recovery_efficiency_type_2] == 'Adjusted'
4633
+ sensible_recovery_efficiency_adjusted = args[:mech_vent_sensible_recovery_efficiency_2]
4634
+ end
4635
+
4636
+ end
4637
+
4638
+ distribution_system_idref = nil
4639
+ if args[:mech_vent_fan_type_2] == HPXML::MechVentTypeCFIS
4640
+ hpxml.hvac_distributions.each do |hvac_distribution|
4641
+ next unless hvac_distribution.distribution_system_type == HPXML::HVACDistributionTypeAir
4642
+
4643
+ distribution_system_idref = hvac_distribution.id
4644
+ end
4645
+ end
4646
+
4647
+ hpxml.ventilation_fans.add(id: 'SecondMechanicalVentilation',
4648
+ fan_type: args[:mech_vent_fan_type_2],
4649
+ rated_flow_rate: args[:mech_vent_flow_rate_2],
4650
+ hours_in_operation: args[:mech_vent_hours_in_operation_2],
4651
+ used_for_whole_building_ventilation: true,
4652
+ total_recovery_efficiency: total_recovery_efficiency,
4653
+ total_recovery_efficiency_adjusted: total_recovery_efficiency_adjusted,
4654
+ sensible_recovery_efficiency: sensible_recovery_efficiency,
4655
+ sensible_recovery_efficiency_adjusted: sensible_recovery_efficiency_adjusted,
4656
+ fan_power: args[:mech_vent_fan_power_2],
4758
4657
  distribution_system_idref: distribution_system_idref)
4759
4658
  end
4760
4659
 
@@ -4991,19 +4890,19 @@ class HPXMLFile
4991
4890
  end
4992
4891
  end
4993
4892
 
4994
- def self.get_absolute_tilt(tilt_str, roof_pitch, weather)
4893
+ def self.get_absolute_tilt(tilt_str, roof_pitch, epw_file)
4995
4894
  tilt_str = tilt_str.downcase
4996
4895
  if tilt_str.start_with? 'roofpitch'
4997
4896
  roof_angle = Math.atan(roof_pitch / 12.0) * 180.0 / Math::PI
4998
4897
  return Float(eval(tilt_str.gsub('roofpitch', roof_angle.to_s)))
4999
4898
  elsif tilt_str.start_with? 'latitude'
5000
- return Float(eval(tilt_str.gsub('latitude', weather.header.Latitude.to_s)))
4899
+ return Float(eval(tilt_str.gsub('latitude', epw_file.latitude.to_s)))
5001
4900
  else
5002
4901
  return Float(tilt_str)
5003
4902
  end
5004
4903
  end
5005
4904
 
5006
- def self.set_solar_thermal(hpxml, runner, args, weather)
4905
+ def self.set_solar_thermal(hpxml, runner, args, epw_file)
5007
4906
  return if args[:solar_thermal_system_type] == 'none'
5008
4907
 
5009
4908
  if args[:solar_thermal_solar_fraction] > 0
@@ -5013,7 +4912,7 @@ class HPXMLFile
5013
4912
  collector_loop_type = args[:solar_thermal_collector_loop_type]
5014
4913
  collector_type = args[:solar_thermal_collector_type]
5015
4914
  collector_azimuth = args[:solar_thermal_collector_azimuth]
5016
- collector_tilt = get_absolute_tilt(args[:solar_thermal_collector_tilt], hpxml.roofs[-1].pitch, weather)
4915
+ collector_tilt = get_absolute_tilt(args[:solar_thermal_collector_tilt], hpxml.roofs[-1].pitch, epw_file)
5017
4916
  collector_frta = args[:solar_thermal_collector_rated_optical_efficiency]
5018
4917
  collector_frul = args[:solar_thermal_collector_rated_thermal_losses]
5019
4918
 
@@ -5040,7 +4939,7 @@ class HPXMLFile
5040
4939
  solar_fraction: solar_fraction)
5041
4940
  end
5042
4941
 
5043
- def self.set_pv_systems(hpxml, runner, args, weather)
4942
+ def self.set_pv_systems(hpxml, runner, args, epw_file)
5044
4943
  [args[:pv_system_module_type_1], args[:pv_system_module_type_2]].each_with_index do |module_type, i|
5045
4944
  next if module_type == 'none'
5046
4945
 
@@ -5064,7 +4963,7 @@ class HPXMLFile
5064
4963
  module_type: module_type,
5065
4964
  tracking: [args[:pv_system_tracking_1], args[:pv_system_tracking_2]][i],
5066
4965
  array_azimuth: [args[:pv_system_array_azimuth_1], args[:pv_system_array_azimuth_2]][i],
5067
- array_tilt: get_absolute_tilt([args[:pv_system_array_tilt_1], args[:pv_system_array_tilt_2]][i], hpxml.roofs[-1].pitch, weather),
4966
+ array_tilt: get_absolute_tilt([args[:pv_system_array_tilt_1], args[:pv_system_array_tilt_2]][i], hpxml.roofs[-1].pitch, epw_file),
5068
4967
  max_power_output: max_power_output,
5069
4968
  inverter_efficiency: inverter_efficiency,
5070
4969
  system_losses_fraction: system_losses_fraction,
@@ -5115,50 +5014,14 @@ class HPXMLFile
5115
5014
  hpxml.lighting.interior_usage_multiplier = args[:lighting_usage_multiplier_interior]
5116
5015
  end
5117
5016
 
5118
- if args[:lighting_weekday_fractions_interior] != Constants.Auto
5119
- hpxml.lighting.interior_weekday_fractions = args[:lighting_weekday_fractions_interior]
5120
- end
5121
-
5122
- if args[:lighting_weekend_fractions_interior] != Constants.Auto
5123
- hpxml.lighting.interior_weekend_fractions = args[:lighting_weekend_fractions_interior]
5124
- end
5125
-
5126
- if args[:lighting_monthly_multipliers_interior] != Constants.Auto
5127
- hpxml.lighting.interior_monthly_multipliers = args[:lighting_monthly_multipliers_interior]
5128
- end
5129
-
5130
5017
  if args[:lighting_usage_multiplier_exterior] != 1.0
5131
5018
  hpxml.lighting.exterior_usage_multiplier = args[:lighting_usage_multiplier_exterior]
5132
5019
  end
5133
5020
 
5134
- if args[:lighting_weekday_fractions_exterior] != Constants.Auto
5135
- hpxml.lighting.exterior_weekday_fractions = args[:lighting_weekday_fractions_exterior]
5136
- end
5137
-
5138
- if args[:lighting_weekend_fractions_exterior] != Constants.Auto
5139
- hpxml.lighting.exterior_weekend_fractions = args[:lighting_weekend_fractions_exterior]
5140
- end
5141
-
5142
- if args[:lighting_monthly_multipliers_exterior] != Constants.Auto
5143
- hpxml.lighting.exterior_monthly_multipliers = args[:lighting_monthly_multipliers_exterior]
5144
- end
5145
-
5146
5021
  if args[:lighting_usage_multiplier_garage] != 1.0
5147
5022
  hpxml.lighting.garage_usage_multiplier = args[:lighting_usage_multiplier_garage]
5148
5023
  end
5149
5024
 
5150
- if args[:lighting_weekday_fractions_garage] != Constants.Auto
5151
- hpxml.lighting.garage_weekday_fractions = args[:lighting_weekday_fractions_garage]
5152
- end
5153
-
5154
- if args[:lighting_weekend_fractions_garage] != Constants.Auto
5155
- hpxml.lighting.garage_weekend_fractions = args[:lighting_weekend_fractions_garage]
5156
- end
5157
-
5158
- if args[:lighting_monthly_multipliers_garage] != Constants.Auto
5159
- hpxml.lighting.garage_monthly_multipliers = args[:lighting_monthly_multipliers_garage]
5160
- end
5161
-
5162
5025
  return unless args[:holiday_lighting_present]
5163
5026
 
5164
5027
  hpxml.lighting.holiday_exists = true
@@ -5182,14 +5045,6 @@ class HPXMLFile
5182
5045
  if args[:holiday_lighting_period_end_day_of_month] != Constants.Auto
5183
5046
  hpxml.lighting.holiday_period_end_day_of_month = args[:holiday_lighting_period_end_day_of_month]
5184
5047
  end
5185
-
5186
- if args[:holiday_lighting_weekday_fractions_exterior] != Constants.Auto
5187
- hpxml.lighting.holiday_weekday_fractions = args[:holiday_lighting_weekday_fractions_exterior]
5188
- end
5189
-
5190
- if args[:holiday_lighting_weekend_fractions_exterior] != Constants.Auto
5191
- hpxml.lighting.holiday_weekend_fractions = args[:holiday_lighting_weekend_fractions_exterior]
5192
- end
5193
5048
  end
5194
5049
 
5195
5050
  def self.set_dehumidifier(hpxml, runner, args)
@@ -5291,6 +5146,14 @@ class HPXMLFile
5291
5146
  control_type = args[:clothes_dryer_control_type]
5292
5147
  end
5293
5148
 
5149
+ if args[:clothes_dryer_vented_flow_rate] != Constants.Auto
5150
+ is_vented = false
5151
+ if Float(args[:clothes_dryer_vented_flow_rate]) > 0
5152
+ is_vented = true
5153
+ vented_flow_rate = args[:clothes_dryer_vented_flow_rate]
5154
+ end
5155
+ end
5156
+
5294
5157
  if args[:clothes_dryer_usage_multiplier] != 1.0
5295
5158
  usage_multiplier = args[:clothes_dryer_usage_multiplier]
5296
5159
  end
@@ -5301,6 +5164,8 @@ class HPXMLFile
5301
5164
  energy_factor: energy_factor,
5302
5165
  combined_energy_factor: combined_energy_factor,
5303
5166
  control_type: control_type,
5167
+ is_vented: is_vented,
5168
+ vented_flow_rate: vented_flow_rate,
5304
5169
  usage_multiplier: usage_multiplier)
5305
5170
  end
5306
5171
 
@@ -5370,18 +5235,6 @@ class HPXMLFile
5370
5235
  usage_multiplier = args[:refrigerator_usage_multiplier]
5371
5236
  end
5372
5237
 
5373
- if args[:refrigerator_weekday_fractions] != Constants.Auto
5374
- refrigerator_weekday_fractions = args[:refrigerator_weekday_fractions]
5375
- end
5376
-
5377
- if args[:refrigerator_weekend_fractions] != Constants.Auto
5378
- refrigerator_weekend_fractions = args[:refrigerator_weekend_fractions]
5379
- end
5380
-
5381
- if args[:refrigerator_monthly_multipliers] != Constants.Auto
5382
- refrigerator_monthly_multipliers = args[:refrigerator_monthly_multipliers]
5383
- end
5384
-
5385
5238
  if args[:extra_refrigerator_present]
5386
5239
  primary_indicator = true
5387
5240
  end
@@ -5390,10 +5243,7 @@ class HPXMLFile
5390
5243
  location: location,
5391
5244
  rated_annual_kwh: refrigerator_rated_annual_kwh,
5392
5245
  primary_indicator: primary_indicator,
5393
- usage_multiplier: usage_multiplier,
5394
- weekday_fractions: refrigerator_weekday_fractions,
5395
- weekend_fractions: refrigerator_weekend_fractions,
5396
- monthly_multipliers: refrigerator_monthly_multipliers)
5246
+ usage_multiplier: usage_multiplier)
5397
5247
  end
5398
5248
 
5399
5249
  def self.set_extra_refrigerator(hpxml, runner, args)
@@ -5411,26 +5261,11 @@ class HPXMLFile
5411
5261
  usage_multiplier = args[:extra_refrigerator_usage_multiplier]
5412
5262
  end
5413
5263
 
5414
- if args[:extra_refrigerator_weekday_fractions] != Constants.Auto
5415
- weekday_fractions = args[:extra_refrigerator_weekday_fractions]
5416
- end
5417
-
5418
- if args[:extra_refrigerator_weekend_fractions] != Constants.Auto
5419
- weekend_fractions = args[:extra_refrigerator_weekend_fractions]
5420
- end
5421
-
5422
- if args[:extra_refrigerator_monthly_multipliers] != Constants.Auto
5423
- monthly_multipliers = args[:extra_refrigerator_monthly_multipliers]
5424
- end
5425
-
5426
5264
  hpxml.refrigerators.add(id: 'ExtraRefrigerator',
5427
5265
  location: location,
5428
5266
  rated_annual_kwh: rated_annual_kwh,
5429
5267
  primary_indicator: false,
5430
- usage_multiplier: usage_multiplier,
5431
- weekday_fractions: weekday_fractions,
5432
- weekend_fractions: weekend_fractions,
5433
- monthly_multipliers: monthly_multipliers)
5268
+ usage_multiplier: usage_multiplier)
5434
5269
  end
5435
5270
 
5436
5271
  def self.set_freezer(hpxml, runner, args)
@@ -5448,25 +5283,10 @@ class HPXMLFile
5448
5283
  usage_multiplier = args[:freezer_usage_multiplier]
5449
5284
  end
5450
5285
 
5451
- if args[:freezer_weekday_fractions] != Constants.Auto
5452
- weekday_fractions = args[:freezer_weekday_fractions]
5453
- end
5454
-
5455
- if args[:freezer_weekend_fractions] != Constants.Auto
5456
- weekend_fractions = args[:freezer_weekend_fractions]
5457
- end
5458
-
5459
- if args[:freezer_monthly_multipliers] != Constants.Auto
5460
- monthly_multipliers = args[:freezer_monthly_multipliers]
5461
- end
5462
-
5463
5286
  hpxml.freezers.add(id: 'Freezer',
5464
5287
  location: location,
5465
5288
  rated_annual_kwh: rated_annual_kwh,
5466
- usage_multiplier: usage_multiplier,
5467
- weekday_fractions: weekday_fractions,
5468
- weekend_fractions: weekend_fractions,
5469
- monthly_multipliers: monthly_multipliers)
5289
+ usage_multiplier: usage_multiplier)
5470
5290
  end
5471
5291
 
5472
5292
  def self.set_cooking_range_oven(hpxml, runner, args)
@@ -5484,26 +5304,11 @@ class HPXMLFile
5484
5304
  usage_multiplier = args[:cooking_range_oven_usage_multiplier]
5485
5305
  end
5486
5306
 
5487
- if args[:cooking_range_oven_weekday_fractions] != Constants.Auto
5488
- cooking_range_oven_weekday_fractions = args[:cooking_range_oven_weekday_fractions]
5489
- end
5490
-
5491
- if args[:cooking_range_oven_weekend_fractions] != Constants.Auto
5492
- cooking_range_oven_weekend_fractions = args[:cooking_range_oven_weekend_fractions]
5493
- end
5494
-
5495
- if args[:cooking_range_oven_monthly_multipliers] != Constants.Auto
5496
- cooking_range_oven_monthly_multipliers = args[:cooking_range_oven_monthly_multipliers]
5497
- end
5498
-
5499
5307
  hpxml.cooking_ranges.add(id: 'CookingRange',
5500
5308
  location: location,
5501
5309
  fuel_type: args[:cooking_range_oven_fuel_type],
5502
5310
  is_induction: is_induction,
5503
- usage_multiplier: usage_multiplier,
5504
- weekday_fractions: cooking_range_oven_weekday_fractions,
5505
- weekend_fractions: cooking_range_oven_weekend_fractions,
5506
- monthly_multipliers: cooking_range_oven_monthly_multipliers)
5311
+ usage_multiplier: usage_multiplier)
5507
5312
 
5508
5313
  if args[:cooking_range_oven_is_convection].is_initialized
5509
5314
  is_convection = args[:cooking_range_oven_is_convection].get
@@ -5538,25 +5343,10 @@ class HPXMLFile
5538
5343
  usage_multiplier = args[:plug_loads_television_usage_multiplier]
5539
5344
  end
5540
5345
 
5541
- if args[:plug_loads_television_weekday_fractions] != Constants.Auto
5542
- weekday_fractions = args[:plug_loads_television_weekday_fractions]
5543
- end
5544
-
5545
- if args[:plug_loads_television_weekend_fractions] != Constants.Auto
5546
- weekend_fractions = args[:plug_loads_television_weekend_fractions]
5547
- end
5548
-
5549
- if args[:plug_loads_television_monthly_multipliers] != Constants.Auto
5550
- monthly_multipliers = args[:plug_loads_television_monthly_multipliers]
5551
- end
5552
-
5553
5346
  hpxml.plug_loads.add(id: 'PlugLoadsTelevision',
5554
5347
  plug_load_type: HPXML::PlugLoadTypeTelevision,
5555
5348
  kWh_per_year: kWh_per_year,
5556
- usage_multiplier: usage_multiplier,
5557
- weekday_fractions: weekday_fractions,
5558
- weekend_fractions: weekend_fractions,
5559
- monthly_multipliers: monthly_multipliers)
5349
+ usage_multiplier: usage_multiplier)
5560
5350
  end
5561
5351
 
5562
5352
  def self.set_plug_loads_other(hpxml, runner, args)
@@ -5576,27 +5366,12 @@ class HPXMLFile
5576
5366
  usage_multiplier = args[:plug_loads_other_usage_multiplier]
5577
5367
  end
5578
5368
 
5579
- if args[:plug_loads_other_weekday_fractions] != Constants.Auto
5580
- weekday_fractions = args[:plug_loads_other_weekday_fractions]
5581
- end
5582
-
5583
- if args[:plug_loads_other_weekend_fractions] != Constants.Auto
5584
- weekend_fractions = args[:plug_loads_other_weekend_fractions]
5585
- end
5586
-
5587
- if args[:plug_loads_other_monthly_multipliers] != Constants.Auto
5588
- monthly_multipliers = args[:plug_loads_other_monthly_multipliers]
5589
- end
5590
-
5591
5369
  hpxml.plug_loads.add(id: 'PlugLoadsOther',
5592
5370
  plug_load_type: HPXML::PlugLoadTypeOther,
5593
5371
  kWh_per_year: kWh_per_year,
5594
5372
  frac_sensible: frac_sensible,
5595
5373
  frac_latent: frac_latent,
5596
- usage_multiplier: usage_multiplier,
5597
- weekday_fractions: weekday_fractions,
5598
- weekend_fractions: weekend_fractions,
5599
- monthly_multipliers: monthly_multipliers)
5374
+ usage_multiplier: usage_multiplier)
5600
5375
  end
5601
5376
 
5602
5377
  def self.set_plug_loads_well_pump(hpxml, runner, args)
@@ -5679,27 +5454,12 @@ class HPXMLFile
5679
5454
  usage_multiplier = args[:fuel_loads_grill_usage_multiplier]
5680
5455
  end
5681
5456
 
5682
- if args[:fuel_loads_grill_weekday_fractions] != Constants.Auto
5683
- weekday_fractions = args[:fuel_loads_grill_weekday_fractions]
5684
- end
5685
-
5686
- if args[:fuel_loads_grill_weekend_fractions] != Constants.Auto
5687
- weekend_fractions = args[:fuel_loads_grill_weekend_fractions]
5688
- end
5689
-
5690
- if args[:fuel_loads_grill_monthly_multipliers] != Constants.Auto
5691
- monthly_multipliers = args[:fuel_loads_grill_monthly_multipliers]
5692
- end
5693
-
5694
5457
  hpxml.fuel_loads.add(id: 'FuelLoadsGrill',
5695
5458
  fuel_load_type: HPXML::FuelLoadTypeGrill,
5696
5459
  fuel_type: args[:fuel_loads_grill_fuel_type],
5697
5460
  location: location,
5698
5461
  therm_per_year: therm_per_year,
5699
- usage_multiplier: usage_multiplier,
5700
- weekday_fractions: weekday_fractions,
5701
- weekend_fractions: weekend_fractions,
5702
- monthly_multipliers: monthly_multipliers)
5462
+ usage_multiplier: usage_multiplier)
5703
5463
  end
5704
5464
  end
5705
5465
 
@@ -5717,27 +5477,12 @@ class HPXMLFile
5717
5477
  usage_multiplier = args[:fuel_loads_lighting_usage_multiplier]
5718
5478
  end
5719
5479
 
5720
- if args[:fuel_loads_lighting_weekday_fractions] != Constants.Auto
5721
- weekday_fractions = args[:fuel_loads_lighting_weekday_fractions]
5722
- end
5723
-
5724
- if args[:fuel_loads_lighting_weekend_fractions] != Constants.Auto
5725
- weekend_fractions = args[:fuel_loads_lighting_weekend_fractions]
5726
- end
5727
-
5728
- if args[:fuel_loads_lighting_monthly_multipliers] != Constants.Auto
5729
- monthly_multipliers = args[:fuel_loads_lighting_monthly_multipliers]
5730
- end
5731
-
5732
5480
  hpxml.fuel_loads.add(id: 'FuelLoadsLighting',
5733
5481
  fuel_load_type: HPXML::FuelLoadTypeLighting,
5734
5482
  fuel_type: args[:fuel_loads_lighting_fuel_type],
5735
5483
  location: location,
5736
5484
  therm_per_year: therm_per_year,
5737
- usage_multiplier: usage_multiplier,
5738
- weekday_fractions: weekday_fractions,
5739
- weekend_fractions: weekend_fractions,
5740
- monthly_multipliers: monthly_multipliers)
5485
+ usage_multiplier: usage_multiplier)
5741
5486
  end
5742
5487
  end
5743
5488
 
@@ -5755,27 +5500,12 @@ class HPXMLFile
5755
5500
  usage_multiplier = args[:fuel_loads_fireplace_usage_multiplier]
5756
5501
  end
5757
5502
 
5758
- if args[:fuel_loads_fireplace_weekday_fractions] != Constants.Auto
5759
- weekday_fractions = args[:fuel_loads_fireplace_weekday_fractions]
5760
- end
5761
-
5762
- if args[:fuel_loads_fireplace_weekend_fractions] != Constants.Auto
5763
- weekend_fractions = args[:fuel_loads_fireplace_weekend_fractions]
5764
- end
5765
-
5766
- if args[:fuel_loads_fireplace_monthly_multipliers] != Constants.Auto
5767
- monthly_multipliers = args[:fuel_loads_fireplace_monthly_multipliers]
5768
- end
5769
-
5770
5503
  hpxml.fuel_loads.add(id: 'FuelLoadsFireplace',
5771
5504
  fuel_load_type: HPXML::FuelLoadTypeFireplace,
5772
5505
  fuel_type: args[:fuel_loads_fireplace_fuel_type],
5773
5506
  location: location,
5774
5507
  therm_per_year: therm_per_year,
5775
- usage_multiplier: usage_multiplier,
5776
- weekday_fractions: weekday_fractions,
5777
- weekend_fractions: weekend_fractions,
5778
- monthly_multipliers: monthly_multipliers)
5508
+ usage_multiplier: usage_multiplier)
5779
5509
  end
5780
5510
  end
5781
5511
 
@@ -5790,18 +5520,6 @@ class HPXMLFile
5790
5520
  pump_usage_multiplier = args[:pool_pump_usage_multiplier]
5791
5521
  end
5792
5522
 
5793
- if args[:pool_pump_weekday_fractions] != Constants.Auto
5794
- pump_weekday_fractions = args[:pool_pump_weekday_fractions]
5795
- end
5796
-
5797
- if args[:pool_pump_weekend_fractions] != Constants.Auto
5798
- pump_weekend_fractions = args[:pool_pump_weekend_fractions]
5799
- end
5800
-
5801
- if args[:pool_pump_monthly_multipliers] != Constants.Auto
5802
- pump_monthly_multipliers = args[:pool_pump_monthly_multipliers]
5803
- end
5804
-
5805
5523
  if args[:pool_heater_type] != 'none'
5806
5524
  heater_type = args[:pool_heater_type]
5807
5525
  end
@@ -5820,31 +5538,13 @@ class HPXMLFile
5820
5538
  heater_usage_multiplier = args[:pool_heater_usage_multiplier]
5821
5539
  end
5822
5540
 
5823
- if args[:pool_heater_weekday_fractions] != Constants.Auto
5824
- heater_weekday_fractions = args[:pool_heater_weekday_fractions]
5825
- end
5826
-
5827
- if args[:pool_heater_weekend_fractions] != Constants.Auto
5828
- heater_weekend_fractions = args[:pool_heater_weekend_fractions]
5829
- end
5830
-
5831
- if args[:pool_heater_monthly_multipliers] != Constants.Auto
5832
- heater_monthly_multipliers = args[:pool_heater_monthly_multipliers]
5833
- end
5834
-
5835
5541
  hpxml.pools.add(id: 'Pool',
5836
5542
  pump_kwh_per_year: pump_kwh_per_year,
5837
5543
  pump_usage_multiplier: pump_usage_multiplier,
5838
- pump_weekday_fractions: pump_weekday_fractions,
5839
- pump_weekend_fractions: pump_weekend_fractions,
5840
- pump_monthly_multipliers: pump_monthly_multipliers,
5841
5544
  heater_type: heater_type,
5842
5545
  heater_load_units: heater_load_units,
5843
5546
  heater_load_value: heater_load_value,
5844
- heater_usage_multiplier: heater_usage_multiplier,
5845
- heater_weekday_fractions: heater_weekday_fractions,
5846
- heater_weekend_fractions: heater_weekend_fractions,
5847
- heater_monthly_multipliers: heater_monthly_multipliers)
5547
+ heater_usage_multiplier: heater_usage_multiplier)
5848
5548
  end
5849
5549
 
5850
5550
  def self.set_hot_tub(hpxml, runner, args)
@@ -5858,18 +5558,6 @@ class HPXMLFile
5858
5558
  pump_usage_multiplier = args[:hot_tub_pump_usage_multiplier]
5859
5559
  end
5860
5560
 
5861
- if args[:hot_tub_pump_weekday_fractions] != Constants.Auto
5862
- pump_weekday_fractions = args[:hot_tub_pump_weekday_fractions]
5863
- end
5864
-
5865
- if args[:hot_tub_pump_weekend_fractions] != Constants.Auto
5866
- pump_weekend_fractions = args[:hot_tub_pump_weekend_fractions]
5867
- end
5868
-
5869
- if args[:hot_tub_pump_monthly_multipliers] != Constants.Auto
5870
- pump_monthly_multipliers = args[:hot_tub_pump_monthly_multipliers]
5871
- end
5872
-
5873
5561
  if args[:hot_tub_heater_type] != 'none'
5874
5562
  heater_type = args[:hot_tub_heater_type]
5875
5563
  end
@@ -5888,31 +5576,13 @@ class HPXMLFile
5888
5576
  heater_usage_multiplier = args[:hot_tub_heater_usage_multiplier]
5889
5577
  end
5890
5578
 
5891
- if args[:hot_tub_heater_weekday_fractions] != Constants.Auto
5892
- heater_weekday_fractions = args[:hot_tub_heater_weekday_fractions]
5893
- end
5894
-
5895
- if args[:hot_tub_heater_weekend_fractions] != Constants.Auto
5896
- heater_weekend_fractions = args[:hot_tub_heater_weekend_fractions]
5897
- end
5898
-
5899
- if args[:hot_tub_heater_monthly_multipliers] != Constants.Auto
5900
- heater_monthly_multipliers = args[:hot_tub_heater_monthly_multipliers]
5901
- end
5902
-
5903
5579
  hpxml.hot_tubs.add(id: 'HotTub',
5904
5580
  pump_kwh_per_year: pump_kwh_per_year,
5905
5581
  pump_usage_multiplier: pump_usage_multiplier,
5906
- pump_weekday_fractions: pump_weekday_fractions,
5907
- pump_weekend_fractions: pump_weekend_fractions,
5908
- pump_monthly_multipliers: pump_monthly_multipliers,
5909
5582
  heater_type: heater_type,
5910
5583
  heater_load_units: heater_load_units,
5911
5584
  heater_load_value: heater_load_value,
5912
- heater_usage_multiplier: heater_usage_multiplier,
5913
- heater_weekday_fractions: heater_weekday_fractions,
5914
- heater_weekend_fractions: heater_weekend_fractions,
5915
- heater_monthly_multipliers: heater_monthly_multipliers)
5585
+ heater_usage_multiplier: heater_usage_multiplier)
5916
5586
  end
5917
5587
 
5918
5588
  def self.valid_attr(attr)