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
@@ -664,10 +664,10 @@ class HPXML < Object
664
664
  ATTRS = [:xml_type, :xml_generated_by, :created_date_and_time, :transaction,
665
665
  :software_program_used, :software_program_version, :eri_calculation_version,
666
666
  :eri_design, :timestep, :building_id, :event_type, :state_code,
667
- :sim_begin_month, :sim_begin_day_of_month, :sim_end_month, :sim_end_day_of_month,
667
+ :sim_begin_month, :sim_begin_day_of_month, :sim_end_month, :sim_end_day_of_month, :sim_calendar_year,
668
668
  :dst_enabled, :dst_begin_month, :dst_begin_day_of_month, :dst_end_month, :dst_end_day_of_month,
669
669
  :use_max_load_for_heat_pumps, :allow_increased_fixed_capacities,
670
- :apply_ashrae140_assumptions]
670
+ :apply_ashrae140_assumptions, :schedules_path]
671
671
  attr_accessor(*ATTRS)
672
672
 
673
673
  def check_for_errors
@@ -728,6 +728,12 @@ class HPXML < Object
728
728
  end
729
729
  end
730
730
 
731
+ if not @sim_calendar_year.nil?
732
+ if (@sim_calendar_year < 1600) || (@sim_calendar_year > 9999)
733
+ fail "Calendar Year (#{@sim_calendar_year}) must be between 1600 and 9999."
734
+ end
735
+ end
736
+
731
737
  return errors
732
738
  end
733
739
 
@@ -766,6 +772,7 @@ class HPXML < Object
766
772
  XMLHelper.add_element(simulation_control, 'BeginDayOfMonth', to_integer(@sim_begin_day_of_month)) unless @sim_begin_day_of_month.nil?
767
773
  XMLHelper.add_element(simulation_control, 'EndMonth', to_integer(@sim_end_month)) unless @sim_end_month.nil?
768
774
  XMLHelper.add_element(simulation_control, 'EndDayOfMonth', to_integer(@sim_end_day_of_month)) unless @sim_end_day_of_month.nil?
775
+ XMLHelper.add_element(simulation_control, 'CalendarYear', to_integer(@sim_calendar_year)) unless @sim_calendar_year.nil?
769
776
  if (not @dst_enabled.nil?) || (not @dst_begin_month.nil?) || (not @dst_begin_day_of_month.nil?) || (not @dst_end_month.nil?) || (not @dst_end_day_of_month.nil?)
770
777
  daylight_saving = XMLHelper.add_element(simulation_control, 'DaylightSaving')
771
778
  XMLHelper.add_element(daylight_saving, 'Enabled', to_boolean(@dst_enabled)) unless @dst_enabled.nil?
@@ -782,6 +789,10 @@ class HPXML < Object
782
789
  XMLHelper.add_element(hvac_sizing_control, 'AllowIncreasedFixedCapacities', to_boolean(@allow_increased_fixed_capacities)) unless @allow_increased_fixed_capacities.nil?
783
790
  end
784
791
 
792
+ if not @schedules_path.nil?
793
+ XMLHelper.add_element(extension, 'OccupancySchedulesCSVPath', @schedules_path) unless @schedules_path.nil?
794
+ end
795
+
785
796
  building = XMLHelper.add_element(hpxml, 'Building')
786
797
  building_building_id = XMLHelper.add_element(building, 'BuildingID')
787
798
  XMLHelper.add_attribute(building_building_id, 'id', @building_id)
@@ -812,6 +823,7 @@ class HPXML < Object
812
823
  @sim_begin_day_of_month = to_integer_or_nil(XMLHelper.get_value(hpxml, 'SoftwareInfo/extension/SimulationControl/BeginDayOfMonth'))
813
824
  @sim_end_month = to_integer_or_nil(XMLHelper.get_value(hpxml, 'SoftwareInfo/extension/SimulationControl/EndMonth'))
814
825
  @sim_end_day_of_month = to_integer_or_nil(XMLHelper.get_value(hpxml, 'SoftwareInfo/extension/SimulationControl/EndDayOfMonth'))
826
+ @sim_calendar_year = to_integer_or_nil(XMLHelper.get_value(hpxml, 'SoftwareInfo/extension/SimulationControl/CalendarYear'))
815
827
  @dst_enabled = to_boolean_or_nil(XMLHelper.get_value(hpxml, 'SoftwareInfo/extension/SimulationControl/DaylightSaving/Enabled'))
816
828
  @dst_begin_month = to_integer_or_nil(XMLHelper.get_value(hpxml, 'SoftwareInfo/extension/SimulationControl/DaylightSaving/BeginMonth'))
817
829
  @dst_begin_day_of_month = to_integer_or_nil(XMLHelper.get_value(hpxml, 'SoftwareInfo/extension/SimulationControl/DaylightSaving/BeginDayOfMonth'))
@@ -820,6 +832,7 @@ class HPXML < Object
820
832
  @apply_ashrae140_assumptions = to_boolean_or_nil(XMLHelper.get_value(hpxml, 'SoftwareInfo/extension/ApplyASHRAE140Assumptions'))
821
833
  @use_max_load_for_heat_pumps = to_boolean_or_nil(XMLHelper.get_value(hpxml, 'SoftwareInfo/extension/HVACSizingControl/UseMaxLoadForHeatPumps'))
822
834
  @allow_increased_fixed_capacities = to_boolean_or_nil(XMLHelper.get_value(hpxml, 'SoftwareInfo/extension/HVACSizingControl/AllowIncreasedFixedCapacities'))
835
+ @schedules_path = XMLHelper.get_value(hpxml, 'SoftwareInfo/extension/OccupancySchedulesCSVPath')
823
836
  @building_id = HPXML::get_id(hpxml, 'Building/BuildingID')
824
837
  @event_type = XMLHelper.get_value(hpxml, 'Building/ProjectStatus/EventType')
825
838
  @state_code = XMLHelper.get_value(hpxml, 'Building/Site/Address/StateCode')
@@ -4003,7 +4016,8 @@ class HPXML < Object
4003
4016
 
4004
4017
  class ClothesDryer < BaseElement
4005
4018
  ATTRS = [:id, :location, :fuel_type, :energy_factor, :combined_energy_factor, :control_type,
4006
- :usage_multiplier, :is_shared_appliance, :number_of_units, :number_of_units_served]
4019
+ :usage_multiplier, :is_shared_appliance, :number_of_units, :number_of_units_served,
4020
+ :is_vented, :vented_flow_rate]
4007
4021
  attr_accessor(*ATTRS)
4008
4022
 
4009
4023
  def delete
@@ -4031,6 +4045,8 @@ class HPXML < Object
4031
4045
  XMLHelper.add_element(clothes_dryer, 'CombinedEnergyFactor', to_float(@combined_energy_factor)) unless @combined_energy_factor.nil?
4032
4046
  XMLHelper.add_element(clothes_dryer, 'ControlType', @control_type) unless @control_type.nil?
4033
4047
  XMLHelper.add_extension(clothes_dryer, 'UsageMultiplier', to_float(@usage_multiplier)) unless @usage_multiplier.nil?
4048
+ XMLHelper.add_extension(clothes_dryer, 'IsVented', to_boolean(@is_vented)) unless @is_vented.nil?
4049
+ XMLHelper.add_extension(clothes_dryer, 'VentedFlowRate', to_float(@vented_flow_rate)) unless @vented_flow_rate.nil?
4034
4050
  end
4035
4051
 
4036
4052
  def from_oga(clothes_dryer)
@@ -4046,6 +4062,8 @@ class HPXML < Object
4046
4062
  @combined_energy_factor = to_float_or_nil(XMLHelper.get_value(clothes_dryer, 'CombinedEnergyFactor'))
4047
4063
  @control_type = XMLHelper.get_value(clothes_dryer, 'ControlType')
4048
4064
  @usage_multiplier = to_float_or_nil(XMLHelper.get_value(clothes_dryer, 'extension/UsageMultiplier'))
4065
+ @is_vented = to_boolean_or_nil(XMLHelper.get_value(clothes_dryer, 'extension/IsVented'))
4066
+ @vented_flow_rate = to_float_or_nil(XMLHelper.get_value(clothes_dryer, 'extension/VentedFlowRate'))
4049
4067
  end
4050
4068
  end
4051
4069
 
@@ -1,8 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class HPXMLDefaults
4
- def self.apply(hpxml, cfa, nbeds, ncfl, ncfl_ag, has_uncond_bsmnt, eri_version, epw_file)
5
- apply_header(hpxml, epw_file)
4
+ def self.apply(hpxml, cfa, nbeds, ncfl, ncfl_ag, has_uncond_bsmnt, eri_version, epw_file, runner)
5
+ apply_header(hpxml, epw_file, runner)
6
6
  apply_site(hpxml)
7
7
  apply_building_occupancy(hpxml, nbeds)
8
8
  apply_building_construction(hpxml, cfa, nbeds)
@@ -32,13 +32,21 @@ class HPXMLDefaults
32
32
 
33
33
  private
34
34
 
35
- def self.apply_header(hpxml, epw_file)
35
+ def self.apply_header(hpxml, epw_file, runner)
36
36
  hpxml.header.timestep = 60 if hpxml.header.timestep.nil?
37
37
 
38
38
  hpxml.header.sim_begin_month = 1 if hpxml.header.sim_begin_month.nil?
39
39
  hpxml.header.sim_begin_day_of_month = 1 if hpxml.header.sim_begin_day_of_month.nil?
40
40
  hpxml.header.sim_end_month = 12 if hpxml.header.sim_end_month.nil?
41
41
  hpxml.header.sim_end_day_of_month = 31 if hpxml.header.sim_end_day_of_month.nil?
42
+ if epw_file.startDateActualYear.is_initialized # AMY
43
+ if not hpxml.header.sim_calendar_year.nil?
44
+ runner.registerWarning("Overriding Calendar Year (#{hpxml.header.sim_calendar_year}) with AMY year (#{epw_file.startDateActualYear.get}).") if hpxml.header.sim_calendar_year != epw_file.startDateActualYear.get
45
+ end
46
+ hpxml.header.sim_calendar_year = epw_file.startDateActualYear.get
47
+ else
48
+ hpxml.header.sim_calendar_year = 2007 if hpxml.header.sim_calendar_year.nil? # For consistency with SAM utility bill calculations
49
+ end
42
50
 
43
51
  hpxml.header.dst_enabled = true if hpxml.header.dst_enabled.nil? # Assume DST since it occurs in most US locations
44
52
  if hpxml.header.dst_enabled
@@ -558,13 +566,13 @@ class HPXMLDefaults
558
566
  plug_load.location = HPXML::LocationInterior
559
567
  end
560
568
  if plug_load.weekday_fractions.nil?
561
- plug_load.weekday_fractions = '0.035, 0.033, 0.032, 0.031, 0.032, 0.033, 0.037, 0.042, 0.043, 0.043, 0.043, 0.044, 0.045, 0.045, 0.044, 0.046, 0.048, 0.052, 0.053, 0.05, 0.047, 0.045, 0.04, 0.036'
569
+ plug_load.weekday_fractions = Schedule.PlugLoadsOtherWeekdayFractions
562
570
  end
563
571
  if plug_load.weekend_fractions.nil?
564
- plug_load.weekend_fractions = '0.035, 0.033, 0.032, 0.031, 0.032, 0.033, 0.037, 0.042, 0.043, 0.043, 0.043, 0.044, 0.045, 0.045, 0.044, 0.046, 0.048, 0.052, 0.053, 0.05, 0.047, 0.045, 0.04, 0.036'
572
+ plug_load.weekend_fractions = Schedule.PlugLoadsOtherWeekendFractions
565
573
  end
566
574
  if plug_load.monthly_multipliers.nil?
567
- plug_load.monthly_multipliers = '1.248, 1.257, 0.993, 0.989, 0.993, 0.827, 0.821, 0.821, 0.827, 0.99, 0.987, 1.248'
575
+ plug_load.monthly_multipliers = Schedule.PlugLoadsOtherMonthlyMultipliers
568
576
  end
569
577
  elsif plug_load.plug_load_type == HPXML::PlugLoadTypeTelevision
570
578
  default_annual_kwh, default_sens_frac, default_lat_frac = MiscLoads.get_televisions_default_values(cfa, nbeds)
@@ -581,13 +589,13 @@ class HPXMLDefaults
581
589
  plug_load.location = HPXML::LocationInterior
582
590
  end
583
591
  if plug_load.weekday_fractions.nil?
584
- plug_load.weekday_fractions = '0.037, 0.018, 0.009, 0.007, 0.011, 0.018, 0.029, 0.040, 0.049, 0.058, 0.065, 0.072, 0.076, 0.086, 0.091, 0.102, 0.127, 0.156, 0.210, 0.294, 0.363, 0.344, 0.208, 0.090'
592
+ plug_load.weekday_fractions = Schedule.PlugLoadsTVWeekdayFractions
585
593
  end
586
594
  if plug_load.weekend_fractions.nil?
587
- plug_load.weekend_fractions = '0.044, 0.022, 0.012, 0.008, 0.011, 0.014, 0.024, 0.043, 0.071, 0.094, 0.112, 0.123, 0.132, 0.156, 0.178, 0.196, 0.206, 0.213, 0.251, 0.330, 0.388, 0.358, 0.226, 0.103'
595
+ plug_load.weekend_fractions = Schedule.PlugLoadsTVWeekendFractions
588
596
  end
589
597
  if plug_load.monthly_multipliers.nil?
590
- plug_load.monthly_multipliers = '1.137, 1.129, 0.961, 0.969, 0.961, 0.993, 0.996, 0.96, 0.993, 0.867, 0.86, 1.137'
598
+ plug_load.monthly_multipliers = Schedule.PlugLoadsTVMonthlyMultipliers
591
599
  end
592
600
  elsif plug_load.plug_load_type == HPXML::PlugLoadTypeElectricVehicleCharging
593
601
  default_annual_kwh = MiscLoads.get_electric_vehicle_charging_default_values
@@ -604,13 +612,13 @@ class HPXMLDefaults
604
612
  plug_load.location = HPXML::LocationExterior
605
613
  end
606
614
  if plug_load.weekday_fractions.nil?
607
- plug_load.weekday_fractions = '0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042'
615
+ plug_load.weekday_fractions = Schedule.PlugLoadsVehicleWeekdayFractions
608
616
  end
609
617
  if plug_load.weekend_fractions.nil?
610
- plug_load.weekend_fractions = '0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042'
618
+ plug_load.weekend_fractions = Schedule.PlugLoadsVehicleWeekendFractions
611
619
  end
612
620
  if plug_load.monthly_multipliers.nil?
613
- plug_load.monthly_multipliers = '1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1'
621
+ plug_load.monthly_multipliers = Schedule.PlugLoadsVehicleMonthlyMultipliers
614
622
  end
615
623
  elsif plug_load.plug_load_type == HPXML::PlugLoadTypeWellPump
616
624
  default_annual_kwh = MiscLoads.get_well_pump_default_values(cfa, nbeds)
@@ -627,13 +635,13 @@ class HPXMLDefaults
627
635
  plug_load.location = HPXML::LocationExterior
628
636
  end
629
637
  if plug_load.weekday_fractions.nil?
630
- plug_load.weekday_fractions = '0.044, 0.023, 0.019, 0.015, 0.016, 0.018, 0.026, 0.033, 0.033, 0.032, 0.033, 0.033, 0.032, 0.032, 0.032, 0.033, 0.045, 0.057, 0.066, 0.076, 0.081, 0.086, 0.075, 0.065'
638
+ plug_load.weekday_fractions = Schedule.PlugLoadsWellPumpWeekdayFractions
631
639
  end
632
640
  if plug_load.weekend_fractions.nil?
633
- plug_load.weekend_fractions = '0.044, 0.023, 0.019, 0.015, 0.016, 0.018, 0.026, 0.033, 0.033, 0.032, 0.033, 0.033, 0.032, 0.032, 0.032, 0.033, 0.045, 0.057, 0.066, 0.076, 0.081, 0.086, 0.075, 0.065'
641
+ plug_load.weekend_fractions = Schedule.PlugLoadsWellPumpWeekendFractions
634
642
  end
635
643
  if plug_load.monthly_multipliers.nil?
636
- plug_load.monthly_multipliers = '1.154, 1.161, 1.013, 1.010, 1.013, 0.888, 0.883, 0.883, 0.888, 0.978, 0.974, 1.154'
644
+ plug_load.monthly_multipliers = Schedule.PlugLoadsWellPumpMonthlyMultipliers
637
645
  end
638
646
  end
639
647
  if plug_load.usage_multiplier.nil?
@@ -658,13 +666,13 @@ class HPXMLDefaults
658
666
  fuel_load.location = HPXML::LocationExterior
659
667
  end
660
668
  if fuel_load.weekday_fractions.nil?
661
- fuel_load.weekday_fractions = '0.004, 0.001, 0.001, 0.002, 0.007, 0.012, 0.029, 0.046, 0.044, 0.041, 0.044, 0.046, 0.042, 0.038, 0.049, 0.059, 0.110, 0.161, 0.115, 0.070, 0.044, 0.019, 0.013, 0.007'
669
+ fuel_load.weekday_fractions = Schedule.FuelLoadsGrillWeekdayFractions
662
670
  end
663
671
  if fuel_load.weekend_fractions.nil?
664
- fuel_load.weekend_fractions = '0.004, 0.001, 0.001, 0.002, 0.007, 0.012, 0.029, 0.046, 0.044, 0.041, 0.044, 0.046, 0.042, 0.038, 0.049, 0.059, 0.110, 0.161, 0.115, 0.070, 0.044, 0.019, 0.013, 0.007'
672
+ fuel_load.weekend_fractions = Schedule.FuelLoadsGrillWeekendFractions
665
673
  end
666
674
  if fuel_load.monthly_multipliers.nil?
667
- fuel_load.monthly_multipliers = '1.097, 1.097, 0.991, 0.987, 0.991, 0.890, 0.896, 0.896, 0.890, 1.085, 1.085, 1.097'
675
+ fuel_load.monthly_multipliers = Schedule.FuelLoadsGrillMonthlyMultipliers
668
676
  end
669
677
  elsif fuel_load.fuel_load_type == HPXML::FuelLoadTypeLighting
670
678
  if fuel_load.therm_per_year.nil?
@@ -680,13 +688,13 @@ class HPXMLDefaults
680
688
  fuel_load.location = HPXML::LocationExterior
681
689
  end
682
690
  if fuel_load.weekday_fractions.nil?
683
- fuel_load.weekday_fractions = '0.044, 0.023, 0.019, 0.015, 0.016, 0.018, 0.026, 0.033, 0.033, 0.032, 0.033, 0.033, 0.032, 0.032, 0.032, 0.033, 0.045, 0.057, 0.066, 0.076, 0.081, 0.086, 0.075, 0.065'
691
+ fuel_load.weekday_fractions = Schedule.FuelLoadsLightingWeekdayFractions
684
692
  end
685
693
  if fuel_load.weekend_fractions.nil?
686
- fuel_load.weekend_fractions = '0.044, 0.023, 0.019, 0.015, 0.016, 0.018, 0.026, 0.033, 0.033, 0.032, 0.033, 0.033, 0.032, 0.032, 0.032, 0.033, 0.045, 0.057, 0.066, 0.076, 0.081, 0.086, 0.075, 0.065'
694
+ fuel_load.weekend_fractions = Schedule.FuelLoadsLightingWeekendFractions
687
695
  end
688
696
  if fuel_load.monthly_multipliers.nil?
689
- fuel_load.monthly_multipliers = '1.154, 1.161, 1.013, 1.010, 1.013, 0.888, 0.883, 0.883, 0.888, 0.978, 0.974, 1.154'
697
+ fuel_load.monthly_multipliers = Schedule.FuelLoadsLightingMonthlyMultipliers
690
698
  end
691
699
  elsif fuel_load.fuel_load_type == HPXML::FuelLoadTypeFireplace
692
700
  if fuel_load.therm_per_year.nil?
@@ -702,13 +710,13 @@ class HPXMLDefaults
702
710
  fuel_load.location = HPXML::LocationInterior
703
711
  end
704
712
  if fuel_load.weekday_fractions.nil?
705
- fuel_load.weekday_fractions = '0.044, 0.023, 0.019, 0.015, 0.016, 0.018, 0.026, 0.033, 0.033, 0.032, 0.033, 0.033, 0.032, 0.032, 0.032, 0.033, 0.045, 0.057, 0.066, 0.076, 0.081, 0.086, 0.075, 0.065'
713
+ fuel_load.weekday_fractions = Schedule.FuelLoadsFireplaceWeekdayFractions
706
714
  end
707
715
  if fuel_load.weekend_fractions.nil?
708
- fuel_load.weekend_fractions = '0.044, 0.023, 0.019, 0.015, 0.016, 0.018, 0.026, 0.033, 0.033, 0.032, 0.033, 0.033, 0.032, 0.032, 0.032, 0.033, 0.045, 0.057, 0.066, 0.076, 0.081, 0.086, 0.075, 0.065'
716
+ fuel_load.weekend_fractions = Schedule.FuelLoadsFireplaceWeekendFractions
709
717
  end
710
718
  if fuel_load.monthly_multipliers.nil?
711
- fuel_load.monthly_multipliers = '1.154, 1.161, 1.013, 1.010, 1.013, 0.888, 0.883, 0.883, 0.888, 0.978, 0.974, 1.154'
719
+ fuel_load.monthly_multipliers = Schedule.FuelLoadsFireplaceMonthlyMultipliers
712
720
  end
713
721
  end
714
722
  if fuel_load.usage_multiplier.nil?
@@ -831,6 +839,12 @@ class HPXMLDefaults
831
839
  if clothes_dryer.usage_multiplier.nil?
832
840
  clothes_dryer.usage_multiplier = 1.0
833
841
  end
842
+ if clothes_dryer.is_vented.nil?
843
+ clothes_dryer.is_vented = true
844
+ end
845
+ if clothes_dryer.is_vented && clothes_dryer.vented_flow_rate.nil?
846
+ clothes_dryer.vented_flow_rate = 100.0
847
+ end
834
848
  end
835
849
 
836
850
  # Default dishwasher
@@ -869,6 +883,15 @@ class HPXMLDefaults
869
883
  default_values = HotWaterAndAppliances.get_extra_refrigerator_default_values
870
884
  refrigerator.rated_annual_kwh = default_values[:rated_annual_kwh]
871
885
  end
886
+ if refrigerator.weekday_fractions.nil?
887
+ refrigerator.weekday_fractions = Schedule.ExtraRefrigeratorWeekdayFractions
888
+ end
889
+ if refrigerator.weekend_fractions.nil?
890
+ refrigerator.weekend_fractions = Schedule.ExtraRefrigeratorWeekendFractions
891
+ end
892
+ if refrigerator.monthly_multipliers.nil?
893
+ refrigerator.monthly_multipliers = Schedule.ExtraRefrigeratorMonthlyMultipliers
894
+ end
872
895
  else # primary refrigerator
873
896
  if refrigerator.location.nil?
874
897
  refrigerator.location = HPXML::LocationLivingSpace
@@ -877,19 +900,19 @@ class HPXMLDefaults
877
900
  default_values = HotWaterAndAppliances.get_refrigerator_default_values(nbeds)
878
901
  refrigerator.rated_annual_kwh = default_values[:rated_annual_kwh]
879
902
  end
903
+ if refrigerator.weekday_fractions.nil?
904
+ refrigerator.weekday_fractions = Schedule.RefrigeratorWeekdayFractions
905
+ end
906
+ if refrigerator.weekend_fractions.nil?
907
+ refrigerator.weekend_fractions = Schedule.RefrigeratorWeekendFractions
908
+ end
909
+ if refrigerator.monthly_multipliers.nil?
910
+ refrigerator.monthly_multipliers = Schedule.RefrigeratorMonthlyMultipliers
911
+ end
880
912
  end
881
913
  if refrigerator.usage_multiplier.nil?
882
914
  refrigerator.usage_multiplier = 1.0
883
915
  end
884
- if refrigerator.weekday_fractions.nil?
885
- refrigerator.weekday_fractions = '0.040, 0.039, 0.038, 0.037, 0.036, 0.036, 0.038, 0.040, 0.041, 0.041, 0.040, 0.040, 0.042, 0.042, 0.042, 0.041, 0.044, 0.048, 0.050, 0.048, 0.047, 0.046, 0.044, 0.041'
886
- end
887
- if refrigerator.weekend_fractions.nil?
888
- refrigerator.weekend_fractions = '0.040, 0.039, 0.038, 0.037, 0.036, 0.036, 0.038, 0.040, 0.041, 0.041, 0.040, 0.040, 0.042, 0.042, 0.042, 0.041, 0.044, 0.048, 0.050, 0.048, 0.047, 0.046, 0.044, 0.041'
889
- end
890
- if refrigerator.monthly_multipliers.nil?
891
- refrigerator.monthly_multipliers = '0.837, 0.835, 1.084, 1.084, 1.084, 1.096, 1.096, 1.096, 1.096, 0.931, 0.925, 0.837'
892
- end
893
916
  end
894
917
 
895
918
  # Default freezer
@@ -905,13 +928,13 @@ class HPXMLDefaults
905
928
  freezer.usage_multiplier = 1.0
906
929
  end
907
930
  if freezer.weekday_fractions.nil?
908
- freezer.weekday_fractions = '0.040, 0.039, 0.038, 0.037, 0.036, 0.036, 0.038, 0.040, 0.041, 0.041, 0.040, 0.040, 0.042, 0.042, 0.042, 0.041, 0.044, 0.048, 0.050, 0.048, 0.047, 0.046, 0.044, 0.041'
931
+ freezer.weekday_fractions = Schedule.FreezerWeekdayFractions
909
932
  end
910
933
  if freezer.weekend_fractions.nil?
911
- freezer.weekend_fractions = '0.040, 0.039, 0.038, 0.037, 0.036, 0.036, 0.038, 0.040, 0.041, 0.041, 0.040, 0.040, 0.042, 0.042, 0.042, 0.041, 0.044, 0.048, 0.050, 0.048, 0.047, 0.046, 0.044, 0.041'
934
+ freezer.weekend_fractions = Schedule.FreezerWeekendFractions
912
935
  end
913
936
  if freezer.monthly_multipliers.nil?
914
- freezer.monthly_multipliers = '0.837, 0.835, 1.084, 1.084, 1.084, 1.096, 1.096, 1.096, 1.096, 0.931, 0.925, 0.837'
937
+ freezer.monthly_multipliers = Schedule.FreezerMonthlyMultipliers
915
938
  end
916
939
  end
917
940
 
@@ -929,13 +952,13 @@ class HPXMLDefaults
929
952
  cooking_range.usage_multiplier = 1.0
930
953
  end
931
954
  if cooking_range.weekday_fractions.nil?
932
- cooking_range.weekday_fractions = '0.007, 0.007, 0.004, 0.004, 0.007, 0.011, 0.025, 0.042, 0.046, 0.048, 0.042, 0.050, 0.057, 0.046, 0.057, 0.044, 0.092, 0.150, 0.117, 0.060, 0.035, 0.025, 0.016, 0.011'
955
+ cooking_range.weekday_fractions = Schedule.CookingRangeWeekdayFractions
933
956
  end
934
957
  if cooking_range.weekend_fractions.nil?
935
- cooking_range.weekend_fractions = '0.007, 0.007, 0.004, 0.004, 0.007, 0.011, 0.025, 0.042, 0.046, 0.048, 0.042, 0.050, 0.057, 0.046, 0.057, 0.044, 0.092, 0.150, 0.117, 0.060, 0.035, 0.025, 0.016, 0.011'
958
+ cooking_range.weekend_fractions = Schedule.CookingRangeWeekendFractions
936
959
  end
937
960
  if cooking_range.monthly_multipliers.nil?
938
- cooking_range.monthly_multipliers = '1.097, 1.097, 0.991, 0.987, 0.991, 0.890, 0.896, 0.896, 0.890, 1.085, 1.085, 1.097'
961
+ cooking_range.monthly_multipliers = Schedule.CookingRangeMonthlyMultipliers
939
962
  end
940
963
  end
941
964
 
@@ -959,10 +982,9 @@ class HPXMLDefaults
959
982
  if hpxml.lighting.exterior_usage_multiplier.nil?
960
983
  hpxml.lighting.exterior_usage_multiplier = 1.0
961
984
  end
962
- # Schedules from T24 2016 Residential ACM Appendix C Table 8 Exterior Lighting Hourly Multiplier (Weekdays and weekends)
963
- default_exterior_lighting_weekday_fractions = '0.046, 0.046, 0.046, 0.046, 0.046, 0.037, 0.035, 0.034, 0.033, 0.028, 0.022, 0.015, 0.012, 0.011, 0.011, 0.012, 0.019, 0.037, 0.049, 0.065, 0.091, 0.105, 0.091, 0.063'
964
- default_exterior_lighting_weekend_fractions = '0.046, 0.046, 0.045, 0.045, 0.046, 0.045, 0.044, 0.041, 0.036, 0.03, 0.024, 0.016, 0.012, 0.011, 0.011, 0.012, 0.019, 0.038, 0.048, 0.06, 0.083, 0.098, 0.085, 0.059'
965
- default_exterior_lighting_monthly_multipliers = '1.248, 1.257, 0.993, 0.989, 0.993, 0.827, 0.821, 0.821, 0.827, 0.99, 0.987, 1.248'
985
+ default_exterior_lighting_weekday_fractions = Schedule.LightingExteriorWeekdayFractions
986
+ default_exterior_lighting_weekend_fractions = Schedule.LightingExteriorWeekendFractions
987
+ default_exterior_lighting_monthly_multipliers = Schedule.LightingExteriorMonthlyMultipliers
966
988
  if hpxml.has_space_type(HPXML::LocationGarage)
967
989
  if hpxml.lighting.garage_weekday_fractions.nil?
968
990
  hpxml.lighting.garage_weekday_fractions = default_exterior_lighting_weekday_fractions
@@ -1001,10 +1023,10 @@ class HPXMLDefaults
1001
1023
  hpxml.lighting.holiday_period_end_day_of_month = 6
1002
1024
  end
1003
1025
  if hpxml.lighting.holiday_weekday_fractions.nil?
1004
- hpxml.lighting.holiday_weekday_fractions = '0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.008, 0.098, 0.168, 0.194, 0.284, 0.192, 0.037, 0.019'
1026
+ hpxml.lighting.holiday_weekday_fractions = Schedule.LightingExteriorHolidayWeekdayFractions
1005
1027
  end
1006
1028
  if hpxml.lighting.holiday_weekend_fractions.nil?
1007
- hpxml.lighting.holiday_weekend_fractions = '0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.008, 0.098, 0.168, 0.194, 0.284, 0.192, 0.037, 0.019'
1029
+ hpxml.lighting.holiday_weekend_fractions = Schedule.LightingExteriorHolidayWeekendFractions
1008
1030
  end
1009
1031
  end
1010
1032
  end
@@ -1410,21 +1410,27 @@ class HVAC
1410
1410
  end
1411
1411
  end
1412
1412
 
1413
- def self.apply_ceiling_fans(model, runner, weather, ceiling_fan, living_space)
1413
+ def self.apply_ceiling_fans(model, runner, weather, ceiling_fan, living_space, schedules_file)
1414
1414
  obj_name = Constants.ObjectNameCeilingFan
1415
- monthly_sch = get_default_ceiling_fan_months(weather)
1415
+ monthly_sch = Schedule.CeilingFanMonthlyMultipliers(weather: weather).split(',').map { |i| i.to_f }
1416
1416
  medium_cfm = 3000.0
1417
- weekday_sch = [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0]
1418
- weekend_sch = weekday_sch
1417
+ weekday_sch = Schedule.CeilingFanWeekdayFractions.split(',').map { |i| i.to_f }
1418
+ weekend_sch = Schedule.CeilingFanWeekendFractions.split(',').map { |i| i.to_f }
1419
1419
  hrs_per_day = weekday_sch.sum(0.0)
1420
1420
  cfm_per_w = ceiling_fan.efficiency
1421
1421
  quantity = ceiling_fan.quantity
1422
1422
  annual_kwh = UnitConversions.convert(quantity * medium_cfm / cfm_per_w * hrs_per_day * 365.0, 'Wh', 'kWh')
1423
1423
  annual_kwh *= monthly_sch.sum(0.0) / 12.0
1424
1424
 
1425
- ceiling_fan_sch = MonthWeekdayWeekendSchedule.new(model, obj_name + ' schedule', weekday_sch, weekend_sch, monthly_sch, 1.0, 1.0, true, true, Constants.ScheduleTypeLimitsFraction)
1425
+ ceiling_fan_sch = MonthWeekdayWeekendSchedule.new(model, obj_name + ' schedule', weekday_sch, weekend_sch, monthly_sch, Constants.ScheduleTypeLimitsFraction)
1426
1426
 
1427
- space_design_level = ceiling_fan_sch.calcDesignLevelFromDailykWh(annual_kwh / 365.0)
1427
+ if not schedules_file.nil?
1428
+ space_design_level = schedules_file.calc_design_level_from_annual_kwh(col_name: 'ceiling_fan', annual_kwh: annual_kwh)
1429
+ ceiling_fan_sch = schedules_file.create_schedule_file(col_name: 'ceiling_fan')
1430
+ else
1431
+ space_design_level = ceiling_fan_sch.calcDesignLevelFromDailykWh(annual_kwh / 365.0)
1432
+ ceiling_fan_sch = ceiling_fan_sch.schedule
1433
+ end
1428
1434
 
1429
1435
  equip_def = OpenStudio::Model::ElectricEquipmentDefinition.new(model)
1430
1436
  equip_def.setName(obj_name)
@@ -1436,7 +1442,7 @@ class HVAC
1436
1442
  equip_def.setFractionLatent(0)
1437
1443
  equip_def.setFractionLost(0)
1438
1444
  equip.setEndUseSubcategory(obj_name)
1439
- equip.setSchedule(ceiling_fan_sch.schedule)
1445
+ equip.setSchedule(ceiling_fan_sch)
1440
1446
  end
1441
1447
 
1442
1448
  def self.apply_setpoints(model, runner, weather, hvac_control, living_zone)
@@ -1496,7 +1502,7 @@ class HVAC
1496
1502
  else
1497
1503
  heating_season = Array.new(htg_end_month, 1) + Array.new(htg_start_month - htg_end_month - 1, 0) + Array.new(12 - htg_start_month + 1, 1)
1498
1504
  end
1499
- heating_season_sch = MonthWeekdayWeekendSchedule.new(model, Constants.ObjectNameHeatingSeason, Array.new(24, 1), Array.new(24, 1), heating_season, 1.0, 1.0, false, true, Constants.ScheduleTypeLimitsOnOff)
1505
+ heating_season_sch = MonthWeekdayWeekendSchedule.new(model, Constants.ObjectNameHeatingSeason, Array.new(24, 1), Array.new(24, 1), heating_season, Constants.ScheduleTypeLimitsOnOff, false)
1500
1506
 
1501
1507
  # Create cooling season schedule
1502
1508
  if clg_start_month <= clg_end_month
@@ -1504,7 +1510,7 @@ class HVAC
1504
1510
  else
1505
1511
  cooling_season = Array.new(clg_end_month, 1) + Array.new(clg_start_month - clg_end_month - 1, 0) + Array.new(12 - clg_start_month + 1, 1)
1506
1512
  end
1507
- cooling_season_sch = MonthWeekdayWeekendSchedule.new(model, Constants.ObjectNameCoolingSeason, Array.new(24, 1), Array.new(24, 1), cooling_season, 1.0, 1.0, false, true, Constants.ScheduleTypeLimitsOnOff)
1513
+ cooling_season_sch = MonthWeekdayWeekendSchedule.new(model, Constants.ObjectNameCoolingSeason, Array.new(24, 1), Array.new(24, 1), cooling_season, Constants.ScheduleTypeLimitsOnOff, false)
1508
1514
 
1509
1515
  # Create setpoint schedules
1510
1516
  (0..11).to_a.each do |i|
@@ -1535,8 +1541,8 @@ class HVAC
1535
1541
  htg_weekend_setpoints = htg_weekend_setpoints.map { |i| i.map { |j| UnitConversions.convert(j, 'F', 'C') } }
1536
1542
  clg_weekday_setpoints = clg_weekday_setpoints.map { |i| i.map { |j| UnitConversions.convert(j, 'F', 'C') } }
1537
1543
  clg_weekend_setpoints = clg_weekend_setpoints.map { |i| i.map { |j| UnitConversions.convert(j, 'F', 'C') } }
1538
- heating_setpoint = HourlyByMonthSchedule.new(model, Constants.ObjectNameHeatingSetpoint, htg_weekday_setpoints, htg_weekend_setpoints, normalize_values = false)
1539
- cooling_setpoint = HourlyByMonthSchedule.new(model, Constants.ObjectNameCoolingSetpoint, clg_weekday_setpoints, clg_weekend_setpoints, normalize_values = false)
1544
+ heating_setpoint = HourlyByMonthSchedule.new(model, Constants.ObjectNameHeatingSetpoint, htg_weekday_setpoints, htg_weekend_setpoints, nil, false)
1545
+ cooling_setpoint = HourlyByMonthSchedule.new(model, Constants.ObjectNameCoolingSetpoint, clg_weekday_setpoints, clg_weekend_setpoints, nil, false)
1540
1546
 
1541
1547
  # Set the setpoint schedules
1542
1548
  thermostat_setpoint = living_zone.thermostatSetpointDualSetpoint
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class Lighting
4
- def self.apply(runner, model, weather, spaces, lighting_groups, lighting, eri_version)
4
+ def self.apply(runner, model, epw_file, spaces, lighting_groups, lighting, eri_version, schedules_file)
5
5
  fractions = {}
6
6
  lighting_groups.each do |lg|
7
7
  fractions[[lg.location, lg.lighting_type]] = lg.fraction_of_units_in_location
@@ -38,24 +38,33 @@ class Lighting
38
38
 
39
39
  # Create schedule
40
40
  if not lighting.interior_weekday_fractions.nil?
41
- interior_sch = MonthWeekdayWeekendSchedule.new(model, Constants.ObjectNameInteriorLighting + ' schedule', lighting.interior_weekday_fractions, lighting.interior_weekend_fractions, lighting.interior_monthly_multipliers, 1.0, 1.0, true, true, Constants.ScheduleTypeLimitsFraction)
41
+ interior_sch = MonthWeekdayWeekendSchedule.new(model, Constants.ObjectNameInteriorLighting + ' schedule', lighting.interior_weekday_fractions, lighting.interior_weekend_fractions, lighting.interior_monthly_multipliers, Constants.ScheduleTypeLimitsFraction)
42
42
  else
43
- interior_sch = create_schedule(model, weather)
43
+ lighting_sch = get_schedule(model, epw_file)
44
+ # Create schedule
45
+ interior_sch = HourlyByMonthSchedule.new(model, 'lighting schedule', lighting_sch, lighting_sch, Constants.ScheduleTypeLimitsFraction)
44
46
  end
45
- exterior_sch = MonthWeekdayWeekendSchedule.new(model, Constants.ObjectNameExteriorLighting + ' schedule', lighting.exterior_weekday_fractions, lighting.exterior_weekend_fractions, lighting.exterior_monthly_multipliers, 1.0, 1.0, true, true, Constants.ScheduleTypeLimitsFraction)
47
+ exterior_sch = MonthWeekdayWeekendSchedule.new(model, Constants.ObjectNameExteriorLighting + ' schedule', lighting.exterior_weekday_fractions, lighting.exterior_weekend_fractions, lighting.exterior_monthly_multipliers, Constants.ScheduleTypeLimitsFraction)
46
48
  if not garage_space.nil?
47
- garage_sch = MonthWeekdayWeekendSchedule.new(model, Constants.ObjectNameGarageLighting + ' schedule', lighting.garage_weekday_fractions, lighting.garage_weekend_fractions, lighting.garage_monthly_multipliers, 1.0, 1.0, true, true, Constants.ScheduleTypeLimitsFraction)
49
+ garage_sch = MonthWeekdayWeekendSchedule.new(model, Constants.ObjectNameGarageLighting + ' schedule', lighting.garage_weekday_fractions, lighting.garage_weekend_fractions, lighting.garage_monthly_multipliers, Constants.ScheduleTypeLimitsFraction)
48
50
  end
49
51
  if not lighting.holiday_kwh_per_day.nil?
50
- exterior_holiday_sch = MonthWeekdayWeekendSchedule.new(model, Constants.ObjectNameLightingExteriorHoliday + ' schedule', lighting.holiday_weekday_fractions, lighting.holiday_weekend_fractions, lighting.exterior_monthly_multipliers, 1.0, 1.0, true, true, Constants.ScheduleTypeLimitsFraction, lighting.holiday_period_begin_month, lighting.holiday_period_begin_day_of_month, lighting.holiday_period_end_month, lighting.holiday_period_end_day_of_month)
52
+ exterior_holiday_sch = MonthWeekdayWeekendSchedule.new(model, Constants.ObjectNameLightingExteriorHoliday + ' schedule', lighting.holiday_weekday_fractions, lighting.holiday_weekend_fractions, lighting.exterior_monthly_multipliers, Constants.ScheduleTypeLimitsFraction, true, lighting.holiday_period_begin_month, lighting.holiday_period_begin_day_of_month, lighting.holiday_period_end_month, lighting.holiday_period_end_day_of_month)
51
53
  end
52
54
 
53
55
  # Add lighting to each conditioned space
54
56
  if int_kwh > 0
55
- if lighting.interior_weekday_fractions.nil?
56
- design_level = interior_sch.calcDesignLevel(interior_sch.maxval * int_kwh)
57
+
58
+ if not schedules_file.nil?
59
+ design_level = schedules_file.calc_design_level_from_annual_kwh(col_name: 'lighting_interior', annual_kwh: int_kwh)
60
+ interior_sch = schedules_file.create_schedule_file(col_name: 'lighting_interior')
57
61
  else
58
- design_level = interior_sch.calcDesignLevelFromDailykWh(int_kwh / 365.0)
62
+ if lighting.interior_weekday_fractions.nil?
63
+ design_level = interior_sch.calcDesignLevel(interior_sch.maxval * int_kwh)
64
+ else
65
+ design_level = interior_sch.calcDesignLevelFromDailykWh(int_kwh / 365.0)
66
+ end
67
+ interior_sch = interior_sch.schedule
59
68
  end
60
69
 
61
70
  # Add lighting
@@ -69,12 +78,19 @@ class Lighting
69
78
  ltg_def.setFractionRadiant(0.6)
70
79
  ltg_def.setFractionVisible(0.2)
71
80
  ltg_def.setReturnAirFraction(0.0)
72
- ltg.setSchedule(interior_sch.schedule)
81
+ ltg.setSchedule(interior_sch)
73
82
  end
74
83
 
75
84
  # Add lighting to each garage space
76
85
  if grg_kwh > 0
77
- design_level = garage_sch.calcDesignLevelFromDailykWh(grg_kwh / 365.0)
86
+
87
+ if not schedules_file.nil?
88
+ design_level = schedules_file.calc_design_level_from_annual_kwh(col_name: 'lighting_garage', annual_kwh: grg_kwh)
89
+ garage_sch = schedules_file.create_schedule_file(col_name: 'lighting_garage')
90
+ else
91
+ design_level = garage_sch.calcDesignLevelFromDailykWh(grg_kwh / 365.0)
92
+ garage_sch = garage_sch.schedule
93
+ end
78
94
 
79
95
  # Add lighting
80
96
  ltg_def = OpenStudio::Model::LightsDefinition.new(model)
@@ -87,11 +103,18 @@ class Lighting
87
103
  ltg_def.setFractionRadiant(0.6)
88
104
  ltg_def.setFractionVisible(0.2)
89
105
  ltg_def.setReturnAirFraction(0.0)
90
- ltg.setSchedule(garage_sch.schedule)
106
+ ltg.setSchedule(garage_sch)
91
107
  end
92
108
 
93
109
  if ext_kwh > 0
94
- design_level = exterior_sch.calcDesignLevelFromDailykWh(ext_kwh / 365.0)
110
+
111
+ if not schedules_file.nil?
112
+ design_level = schedules_file.calc_design_level_from_annual_kwh(col_name: 'lighting_exterior', annual_kwh: ext_kwh)
113
+ exterior_sch = schedules_file.create_schedule_file(col_name: 'lighting_exterior')
114
+ else
115
+ design_level = exterior_sch.calcDesignLevelFromDailykWh(ext_kwh / 365.0)
116
+ exterior_sch = exterior_sch.schedule
117
+ end
95
118
 
96
119
  # Add exterior lighting
97
120
  ltg_def = OpenStudio::Model::ExteriorLightsDefinition.new(model)
@@ -99,11 +122,18 @@ class Lighting
99
122
  ltg.setName(Constants.ObjectNameExteriorLighting)
100
123
  ltg_def.setName(Constants.ObjectNameExteriorLighting)
101
124
  ltg_def.setDesignLevel(design_level)
102
- ltg.setSchedule(exterior_sch.schedule)
125
+ ltg.setSchedule(exterior_sch)
103
126
  end
104
127
 
105
128
  if not lighting.holiday_kwh_per_day.nil?
106
- design_level = exterior_holiday_sch.calcDesignLevelFromDailykWh(lighting.holiday_kwh_per_day)
129
+
130
+ if not schedules_file.nil?
131
+ design_level = schedules_file.calc_design_level_from_daily_kwh(col_name: 'lighting_exterior_holiday', daily_kwh: lighting.holiday_kwh_per_day)
132
+ exterior_holiday_sch = schedules_file.create_schedule_file(col_name: 'lighting_exterior_holiday')
133
+ else
134
+ design_level = exterior_holiday_sch.calcDesignLevelFromDailykWh(lighting.holiday_kwh_per_day)
135
+ exterior_holiday_sch = exterior_holiday_sch.schedule
136
+ end
107
137
 
108
138
  # Add exterior holiday lighting
109
139
  ltg_def = OpenStudio::Model::ExteriorLightsDefinition.new(model)
@@ -111,7 +141,7 @@ class Lighting
111
141
  ltg.setName(Constants.ObjectNameLightingExteriorHoliday)
112
142
  ltg_def.setName(Constants.ObjectNameLightingExteriorHoliday)
113
143
  ltg_def.setDesignLevel(design_level)
114
- ltg.setSchedule(exterior_holiday_sch.schedule)
144
+ ltg.setSchedule(exterior_holiday_sch)
115
145
  end
116
146
  end
117
147
 
@@ -194,14 +224,14 @@ class Lighting
194
224
  return int_kwh, ext_kwh, grg_kwh
195
225
  end
196
226
 
197
- def self.create_schedule(model, weather)
227
+ def self.get_schedule(model, epw_file)
198
228
  # Sunrise and sunset hours
199
229
  sunrise_hour = []
200
230
  sunset_hour = []
201
- std_long = -weather.header.Timezone * 15
231
+ std_long = -epw_file.timeZone * 15
202
232
  normalized_hourly_lighting = [[1..24], [1..24], [1..24], [1..24], [1..24], [1..24], [1..24], [1..24], [1..24], [1..24], [1..24], [1..24]]
203
233
  for month in 0..11
204
- if weather.header.Latitude < 51.49
234
+ if epw_file.latitude < 51.49
205
235
  m_num = month + 1
206
236
  jul_day = m_num * 30 - 15
207
237
  if not ((m_num < 4) || (m_num > 10))
@@ -214,9 +244,9 @@ class Lighting
214
244
  rad_deg = 1 / deg_rad
215
245
  b = (jul_day - 1) * 0.9863
216
246
  equation_of_time = (0.01667 * (0.01719 + 0.42815 * Math.cos(deg_rad * b) - 7.35205 * Math.sin(deg_rad * b) - 3.34976 * Math.cos(deg_rad * (2 * b)) - 9.37199 * Math.sin(deg_rad * (2 * b))))
217
- sunset_hour_angle = rad_deg * Math.acos(-1 * Math.tan(deg_rad * weather.header.Latitude) * Math.tan(deg_rad * declination))
218
- sunrise_hour[month] = offset + (12.0 - 1 * sunset_hour_angle / 15.0) - equation_of_time - (std_long + weather.header.Longitude) / 15
219
- sunset_hour[month] = offset + (12.0 + 1 * sunset_hour_angle / 15.0) - equation_of_time - (std_long + weather.header.Longitude) / 15
247
+ sunset_hour_angle = rad_deg * Math.acos(-1 * Math.tan(deg_rad * epw_file.latitude) * Math.tan(deg_rad * declination))
248
+ sunrise_hour[month] = offset + (12.0 - 1 * sunset_hour_angle / 15.0) - equation_of_time - (std_long + epw_file.longitude) / 15
249
+ sunset_hour[month] = offset + (12.0 + 1 * sunset_hour_angle / 15.0) - equation_of_time - (std_long + epw_file.longitude) / 15
220
250
  else
221
251
  sunrise_hour = [8.125726064, 7.449258072, 6.388688653, 6.232405257, 5.27722936, 4.84705384, 5.127512162, 5.860163988, 6.684378904, 7.521267411, 7.390441945, 8.080667697]
222
252
  sunset_hour = [16.22214058, 17.08642353, 17.98324493, 19.83547864, 20.65149672, 21.20662992, 21.12124777, 20.37458274, 19.25834757, 18.08155615, 16.14359164, 15.75571306]
@@ -234,6 +264,7 @@ class Lighting
234
264
  stdDevCons2 = 2.36567663279954
235
265
 
236
266
  monthly_kwh_per_day = []
267
+ year_description = model.getYearDescription
237
268
  days_m = Constants.MonthNumDays
238
269
  wtd_avg_monthly_kwh_per_day = 0
239
270
  for monthNum in 1..12
@@ -302,9 +333,6 @@ class Lighting
302
333
  end
303
334
  end
304
335
 
305
- # Create schedule
306
- sch = HourlyByMonthSchedule.new(model, 'lighting schedule', lighting_sch, lighting_sch, true, true, Constants.ScheduleTypeLimitsFraction)
307
-
308
- return sch
336
+ return lighting_sch
309
337
  end
310
338
  end