openstudio-common-measures 0.2.0 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (524) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/CHANGELOG.md +82 -0
  4. data/Jenkinsfile +2 -1
  5. data/LICENSE.md +1 -1
  6. data/Rakefile +17 -0
  7. data/doc_templates/LICENSE.md +1 -1
  8. data/doc_templates/copyright_erb.txt +1 -1
  9. data/doc_templates/copyright_js.txt +1 -1
  10. data/doc_templates/copyright_ruby.txt +1 -1
  11. data/lib/measures/AddCostPerAreaToConstruction/LICENSE.md +1 -1
  12. data/lib/measures/AddCostPerAreaToConstruction/measure.rb +1 -1
  13. data/lib/measures/AddCostPerAreaToConstruction/measure.xml +8 -7
  14. data/lib/measures/AddCostPerFloorAreaToBuilding/LICENSE.md +1 -1
  15. data/lib/measures/AddCostPerFloorAreaToBuilding/measure.rb +1 -1
  16. data/lib/measures/AddCostPerFloorAreaToBuilding/measure.xml +8 -7
  17. data/lib/measures/AddCostPerFloorAreaToElectricEquipment/LICENSE.md +1 -1
  18. data/lib/measures/AddCostPerFloorAreaToElectricEquipment/measure.rb +1 -1
  19. data/lib/measures/AddCostPerFloorAreaToElectricEquipment/measure.xml +8 -7
  20. data/lib/measures/AddCostPerFloorAreaToLights/LICENSE.md +1 -1
  21. data/lib/measures/AddCostPerFloorAreaToLights/measure.rb +1 -1
  22. data/lib/measures/AddCostPerFloorAreaToLights/measure.xml +8 -7
  23. data/lib/measures/AddCostPerFloorAreaUnusedToLights/LICENSE.md +1 -1
  24. data/lib/measures/AddCostPerFloorAreaUnusedToLights/measure.rb +1 -1
  25. data/lib/measures/AddCostPerFloorAreaUnusedToLights/measure.xml +8 -7
  26. data/lib/measures/AddCostToSupplySideHVACComponentByAirLoop/LICENSE.md +1 -1
  27. data/lib/measures/AddCostToSupplySideHVACComponentByAirLoop/measure.rb +1 -1
  28. data/lib/measures/AddCostToSupplySideHVACComponentByAirLoop/measure.xml +9 -8
  29. data/lib/measures/AddCostperAreatoUnusedConstruction/LICENSE.md +1 -1
  30. data/lib/measures/AddCostperAreatoUnusedConstruction/measure.rb +1 -1
  31. data/lib/measures/AddCostperAreatoUnusedConstruction/measure.xml +8 -7
  32. data/lib/measures/AddExteriorLights/LICENSE.md +1 -1
  33. data/lib/measures/AddExteriorLights/measure.rb +1 -1
  34. data/lib/measures/AddExteriorLights/measure.xml +8 -7
  35. data/lib/measures/AddMeter/LICENSE.md +1 -1
  36. data/lib/measures/AddMeter/measure.rb +1 -1
  37. data/lib/measures/AddMeter/measure.xml +8 -7
  38. data/lib/measures/AddOutputDiagnostics/LICENSE.md +1 -1
  39. data/lib/measures/AddOutputDiagnostics/measure.rb +1 -1
  40. data/lib/measures/AddOutputDiagnostics/measure.xml +8 -7
  41. data/lib/measures/AddOutputVariable/LICENSE.md +1 -1
  42. data/lib/measures/AddOutputVariable/measure.rb +1 -1
  43. data/lib/measures/AddOutputVariable/measure.xml +8 -7
  44. data/lib/measures/AddSimplePvToShadingSurfacesByType/LICENSE.md +1 -1
  45. data/lib/measures/AddSimplePvToShadingSurfacesByType/measure.rb +1 -1
  46. data/lib/measures/AddSimplePvToShadingSurfacesByType/measure.xml +8 -7
  47. data/lib/measures/AdjustSystemEfficiencies/LICENSE.md +1 -1
  48. data/lib/measures/AdjustSystemEfficiencies/measure.rb +1 -1
  49. data/lib/measures/AdjustSystemEfficiencies/measure.xml +7 -6
  50. data/lib/measures/AdjustThermostatSetpointsByDegrees/LICENSE.md +1 -1
  51. data/lib/measures/AdjustThermostatSetpointsByDegrees/measure.rb +1 -1
  52. data/lib/measures/AdjustThermostatSetpointsByDegrees/measure.xml +8 -7
  53. data/lib/measures/ChangeBuildingLocation/LICENSE.md +1 -1
  54. data/lib/measures/ChangeBuildingLocation/measure.rb +3 -3
  55. data/lib/measures/ChangeBuildingLocation/measure.xml +15 -15
  56. data/lib/measures/ChangeBuildingLocation/resources/epw.rb +1 -1
  57. data/lib/measures/ChangeBuildingLocation/resources/stat_file.rb +1 -1
  58. data/lib/measures/EnableIdealAirLoadsForAllZones/LICENSE.md +1 -1
  59. data/lib/measures/EnableIdealAirLoadsForAllZones/measure.rb +1 -1
  60. data/lib/measures/EnableIdealAirLoadsForAllZones/measure.xml +9 -8
  61. data/lib/measures/ExportScheduleCSV/LICENSE.md +1 -1
  62. data/lib/measures/ExportScheduleCSV/measure.rb +2 -2
  63. data/lib/measures/ExportScheduleCSV/measure.xml +13 -12
  64. data/lib/measures/ImportEnvelopeAndInternalLoadsFromIdf/LICENSE.md +1 -1
  65. data/lib/measures/ImportEnvelopeAndInternalLoadsFromIdf/measure.rb +1 -1
  66. data/lib/measures/ImportEnvelopeAndInternalLoadsFromIdf/measure.xml +9 -8
  67. data/lib/measures/MeterFlodPlot/LICENSE.md +1 -1
  68. data/lib/measures/MeterFlodPlot/measure.rb +2 -2
  69. data/lib/measures/MeterFlodPlot/measure.xml +13 -12
  70. data/lib/measures/ModifyEnergyPlusCoilCoolingDXSingleSpeedObjects/LICENSE.md +1 -1
  71. data/lib/measures/ModifyEnergyPlusCoilCoolingDXSingleSpeedObjects/measure.rb +1 -1
  72. data/lib/measures/ModifyEnergyPlusCoilCoolingDXSingleSpeedObjects/measure.xml +8 -7
  73. data/lib/measures/ModifyEnergyPlusFanVariableVolumeObjects/LICENSE.md +1 -1
  74. data/lib/measures/ModifyEnergyPlusFanVariableVolumeObjects/measure.rb +1 -1
  75. data/lib/measures/ModifyEnergyPlusFanVariableVolumeObjects/measure.xml +8 -7
  76. data/lib/measures/PredictedMeanVote/LICENSE.md +1 -1
  77. data/lib/measures/PredictedMeanVote/measure.rb +1 -1
  78. data/lib/measures/PredictedMeanVote/measure.xml +14 -13
  79. data/lib/measures/RemoveInternalLoadsDirectlyAssignedToSpaces/LICENSE.md +1 -1
  80. data/lib/measures/RemoveInternalLoadsDirectlyAssignedToSpaces/measure.rb +1 -1
  81. data/lib/measures/RemoveInternalLoadsDirectlyAssignedToSpaces/measure.xml +9 -8
  82. data/lib/measures/RemoveUnusedDefaultProfiles/LICENSE.md +1 -1
  83. data/lib/measures/RemoveUnusedDefaultProfiles/measure.rb +1 -1
  84. data/lib/measures/RemoveUnusedDefaultProfiles/measure.xml +9 -8
  85. data/lib/measures/ReplaceExteriorWindowConstruction/LICENSE.md +1 -1
  86. data/lib/measures/ReplaceExteriorWindowConstruction/measure.rb +1 -1
  87. data/lib/measures/ReplaceExteriorWindowConstruction/measure.xml +11 -10
  88. data/lib/measures/ReplaceThermostatSchedules/LICENSE.md +1 -1
  89. data/lib/measures/ReplaceThermostatSchedules/measure.rb +1 -1
  90. data/lib/measures/ReplaceThermostatSchedules/measure.xml +12 -11
  91. data/lib/measures/ReportModelChanges/LICENSE.md +1 -1
  92. data/lib/measures/ReportModelChanges/measure.rb +1 -1
  93. data/lib/measures/ReportModelChanges/measure.xml +5 -5
  94. data/lib/measures/RunPeriod/LICENSE.md +1 -1
  95. data/lib/measures/RunPeriod/measure.rb +1 -1
  96. data/lib/measures/RunPeriod/measure.xml +19 -18
  97. data/lib/measures/RunPeriodMultiple/LICENSE.md +1 -1
  98. data/lib/measures/RunPeriodMultiple/measure.rb +1 -1
  99. data/lib/measures/RunPeriodMultiple/measure.xml +12 -11
  100. data/lib/measures/ServerDirectoryCleanup/LICENSE.md +1 -1
  101. data/lib/measures/ServerDirectoryCleanup/README.md +97 -3
  102. data/lib/measures/ServerDirectoryCleanup/measure.rb +2 -2
  103. data/lib/measures/ServerDirectoryCleanup/measure.xml +20 -69
  104. data/lib/measures/SetCOPforSingleSpeedDXCoolingUnits/LICENSE.md +1 -1
  105. data/lib/measures/SetCOPforSingleSpeedDXCoolingUnits/measure.rb +1 -1
  106. data/lib/measures/SetCOPforSingleSpeedDXCoolingUnits/measure.xml +10 -9
  107. data/lib/measures/SetCOPforTwoSpeedDXCoolingUnits/LICENSE.md +1 -1
  108. data/lib/measures/SetCOPforTwoSpeedDXCoolingUnits/measure.rb +1 -1
  109. data/lib/measures/SetCOPforTwoSpeedDXCoolingUnits/measure.xml +10 -9
  110. data/lib/measures/SetEnergyPlusInfiltrationFlowRatePerFloorArea/LICENSE.md +1 -1
  111. data/lib/measures/SetEnergyPlusInfiltrationFlowRatePerFloorArea/measure.rb +1 -1
  112. data/lib/measures/SetEnergyPlusInfiltrationFlowRatePerFloorArea/measure.xml +8 -7
  113. data/lib/measures/SetEnergyPlusLightObjectsLPD/LICENSE.md +1 -1
  114. data/lib/measures/SetEnergyPlusLightObjectsLPD/measure.rb +1 -1
  115. data/lib/measures/SetEnergyPlusLightObjectsLPD/measure.xml +8 -7
  116. data/lib/measures/SetEnergyPlusMinimumOutdoorAirFlowRate/LICENSE.md +1 -1
  117. data/lib/measures/SetEnergyPlusMinimumOutdoorAirFlowRate/measure.rb +1 -1
  118. data/lib/measures/SetEnergyPlusMinimumOutdoorAirFlowRate/measure.xml +8 -7
  119. data/lib/measures/SetGasBurnerEfficiency/LICENSE.md +1 -1
  120. data/lib/measures/SetGasBurnerEfficiency/measure.rb +1 -1
  121. data/lib/measures/SetGasBurnerEfficiency/measure.xml +10 -9
  122. data/lib/measures/SetLifecycleCostParameters/LICENSE.md +1 -1
  123. data/lib/measures/SetLifecycleCostParameters/measure.rb +1 -1
  124. data/lib/measures/SetLifecycleCostParameters/measure.xml +8 -7
  125. data/lib/measures/SetLightingLoadsByLPD/LICENSE.md +1 -1
  126. data/lib/measures/SetLightingLoadsByLPD/measure.rb +1 -1
  127. data/lib/measures/SetLightingLoadsByLPD/measure.xml +10 -9
  128. data/lib/measures/SetSpaceInfiltrationByExteriorSurfaceArea/LICENSE.md +1 -1
  129. data/lib/measures/SetSpaceInfiltrationByExteriorSurfaceArea/measure.rb +1 -1
  130. data/lib/measures/SetSpaceInfiltrationByExteriorSurfaceArea/measure.xml +20 -19
  131. data/lib/measures/SetThermostatSchedules/LICENSE.md +1 -1
  132. data/lib/measures/SetThermostatSchedules/measure.rb +1 -1
  133. data/lib/measures/SetThermostatSchedules/measure.xml +12 -11
  134. data/lib/measures/ShiftScheduleProfileTime/LICENSE.md +1 -1
  135. data/lib/measures/ShiftScheduleProfileTime/measure.rb +1 -1
  136. data/lib/measures/ShiftScheduleProfileTime/measure.xml +10 -9
  137. data/lib/measures/SwapLightsDefinition/LICENSE.md +1 -1
  138. data/lib/measures/SwapLightsDefinition/measure.rb +1 -1
  139. data/lib/measures/SwapLightsDefinition/measure.xml +10 -9
  140. data/lib/measures/UnmetLoadHoursTroubleshooting/LICENSE.md +1 -1
  141. data/lib/measures/UnmetLoadHoursTroubleshooting/README.md +9 -3
  142. data/lib/measures/UnmetLoadHoursTroubleshooting/measure.rb +2 -2
  143. data/lib/measures/UnmetLoadHoursTroubleshooting/measure.xml +72 -23
  144. data/lib/measures/VentilationQAQC/LICENSE.md +1 -1
  145. data/lib/measures/VentilationQAQC/README.md +9 -3
  146. data/lib/measures/VentilationQAQC/measure.rb +53 -46
  147. data/lib/measures/VentilationQAQC/measure.xml +24 -29
  148. data/lib/measures/ZoneReport/LICENSE.md +1 -1
  149. data/lib/measures/ZoneReport/README.md +2 -2
  150. data/lib/measures/ZoneReport/measure.rb +2 -2
  151. data/lib/measures/ZoneReport/measure.xml +16 -17
  152. data/lib/measures/add_ems_to_control_ev_charging/LICENSE.MD.txt +15 -0
  153. data/lib/measures/{AddDaylightSensors → add_ems_to_control_ev_charging}/LICENSE.md +1 -1
  154. data/lib/measures/add_ems_to_control_ev_charging/README.md +29 -0
  155. data/lib/measures/add_ems_to_control_ev_charging/measure.rb +289 -0
  156. data/lib/measures/add_ems_to_control_ev_charging/measure.xml +91 -0
  157. data/lib/measures/add_ev_load/LICENSE.MD.txt +15 -0
  158. data/lib/measures/{EnableEconomizerControl → add_ev_load}/LICENSE.md +1 -1
  159. data/lib/measures/add_ev_load/README.md +34 -0
  160. data/lib/measures/add_ev_load/measure.rb +331 -0
  161. data/lib/measures/add_ev_load/measure.xml +348 -0
  162. data/lib/measures/add_ev_load/resources/PSN_BuildingKey.csv +104 -0
  163. data/lib/measures/add_ev_load/resources/PSN_BuildingKey_v2.csv +104 -0
  164. data/lib/measures/add_ev_load/resources/chg1_dow1_flex1.csv +96 -0
  165. data/lib/measures/add_ev_load/resources/chg1_dow1_flex2.csv +96 -0
  166. data/lib/measures/add_ev_load/resources/chg1_dow1_flex3.csv +96 -0
  167. data/lib/measures/add_ev_load/resources/chg1_dow2_flex1.csv +96 -0
  168. data/lib/measures/add_ev_load/resources/chg1_dow2_flex2.csv +96 -0
  169. data/lib/measures/add_ev_load/resources/chg1_dow2_flex3.csv +96 -0
  170. data/lib/measures/add_ev_load/resources/chg1_dow3_flex1.csv +96 -0
  171. data/lib/measures/add_ev_load/resources/chg1_dow3_flex2.csv +96 -0
  172. data/lib/measures/add_ev_load/resources/chg1_dow3_flex3.csv +96 -0
  173. data/lib/measures/add_ev_load/resources/chg2_dow1_flex1.csv +96 -0
  174. data/lib/measures/add_ev_load/resources/chg2_dow1_flex2.csv +96 -0
  175. data/lib/measures/add_ev_load/resources/chg2_dow1_flex3.csv +96 -0
  176. data/lib/measures/add_ev_load/resources/chg2_dow2_flex1.csv +96 -0
  177. data/lib/measures/add_ev_load/resources/chg2_dow2_flex2.csv +96 -0
  178. data/lib/measures/add_ev_load/resources/chg2_dow2_flex3.csv +96 -0
  179. data/lib/measures/add_ev_load/resources/chg2_dow3_flex1.csv +96 -0
  180. data/lib/measures/add_ev_load/resources/chg2_dow3_flex2.csv +96 -0
  181. data/lib/measures/add_ev_load/resources/chg2_dow3_flex3.csv +96 -0
  182. data/lib/measures/add_ev_load/resources/chg3_dow1_flex1.csv +96 -0
  183. data/lib/measures/add_ev_load/resources/chg3_dow1_flex2.csv +96 -0
  184. data/lib/measures/add_ev_load/resources/chg3_dow1_flex3.csv +96 -0
  185. data/lib/measures/add_ev_load/resources/chg3_dow2_flex1.csv +96 -0
  186. data/lib/measures/add_ev_load/resources/chg3_dow2_flex2.csv +96 -0
  187. data/lib/measures/add_ev_load/resources/chg3_dow2_flex3.csv +96 -0
  188. data/lib/measures/add_ev_load/resources/chg3_dow3_flex1.csv +96 -0
  189. data/lib/measures/add_ev_load/resources/chg3_dow3_flex2.csv +96 -0
  190. data/lib/measures/add_ev_load/resources/chg3_dow3_flex3.csv +96 -0
  191. data/lib/measures/add_ev_load/resources/fast_charge_15min_Saturday.csv +96 -0
  192. data/lib/measures/add_ev_load/resources/fast_charge_15min_Sunday.csv +96 -0
  193. data/lib/measures/add_ev_load/resources/fast_charge_15min_Weekday.csv +96 -0
  194. data/lib/measures/add_rooftop_pv/LICENSE.md +1 -1
  195. data/lib/measures/add_rooftop_pv/measure.rb +1 -1
  196. data/lib/measures/add_rooftop_pv/measure.xml +5 -5
  197. data/lib/measures/add_zone_mixing_object/LICENSE.md +1 -1
  198. data/lib/measures/add_zone_mixing_object/measure.rb +1 -1
  199. data/lib/measures/add_zone_mixing_object/measure.xml +8 -7
  200. data/lib/measures/add_zone_ventilation_design_flow_rate_object/LICENSE.md +1 -1
  201. data/lib/measures/add_zone_ventilation_design_flow_rate_object/measure.rb +1 -1
  202. data/lib/measures/add_zone_ventilation_design_flow_rate_object/measure.xml +8 -7
  203. data/lib/measures/air_wall_zone_mixing/LICENSE.md +1 -1
  204. data/lib/measures/air_wall_zone_mixing/measure.rb +1 -1
  205. data/lib/measures/air_wall_zone_mixing/measure.xml +5 -5
  206. data/lib/measures/envelope_and_internal_load_breakdown/LICENSE.md +1 -1
  207. data/lib/measures/envelope_and_internal_load_breakdown/README.md +4 -3
  208. data/lib/measures/envelope_and_internal_load_breakdown/measure.rb +8 -5
  209. data/lib/measures/envelope_and_internal_load_breakdown/measure.xml +18 -19
  210. data/lib/measures/envelope_and_internal_load_breakdown/resources/os_lib_reporting_envelope_and_internal_loads_breakdown.rb +1 -1
  211. data/lib/measures/envelope_and_internal_load_breakdown/resources/report.html.erb +5 -1
  212. data/lib/measures/example_report/LICENSE.md +1 -1
  213. data/lib/measures/example_report/README.md +27 -5
  214. data/lib/measures/example_report/measure.rb +8 -5
  215. data/lib/measures/example_report/measure.xml +19 -32
  216. data/lib/measures/example_report/resources/os_lib_reporting_example.rb +1 -1
  217. data/lib/measures/example_report/resources/report.html.erb +5 -1
  218. data/lib/measures/gem_env_report/LICENSE.md +1 -1
  219. data/lib/measures/gem_env_report/measure.rb +1 -1
  220. data/lib/measures/gem_env_report/measure.xml +14 -13
  221. data/lib/measures/gem_env_report/resources/gem_env_info.rb +1 -1
  222. data/lib/measures/gem_env_report/resources/openstudio_info.rb +1 -1
  223. data/lib/measures/gem_env_report/resources/run_gem_env_info.rb +1 -1
  224. data/lib/measures/gem_env_report/resources/run_openstudio_info.rb +1 -1
  225. data/lib/measures/generic_qaqc/LICENSE.md +1 -1
  226. data/lib/measures/generic_qaqc/README.md +187 -5
  227. data/lib/measures/generic_qaqc/measure.rb +7 -2
  228. data/lib/measures/generic_qaqc/measure.xml +54 -130
  229. data/lib/measures/generic_qaqc/resources/CreateResults.rb +1 -1
  230. data/lib/measures/generic_qaqc/resources/check_air_sys_temps.rb +1 -1
  231. data/lib/measures/generic_qaqc/resources/check_calibration.rb +1 -1
  232. data/lib/measures/generic_qaqc/resources/check_cond_zns.rb +1 -1
  233. data/lib/measures/generic_qaqc/resources/check_domestic_hot_water.rb +1 -1
  234. data/lib/measures/generic_qaqc/resources/check_envelope_conductance.rb +8 -2
  235. data/lib/measures/generic_qaqc/resources/check_eui_by_end_use.rb +11 -12
  236. data/lib/measures/generic_qaqc/resources/check_eui_reasonableness.rb +1 -1
  237. data/lib/measures/generic_qaqc/resources/check_fan_pwr.rb +1 -1
  238. data/lib/measures/generic_qaqc/resources/check_internal_loads.rb +1 -1
  239. data/lib/measures/generic_qaqc/resources/check_mech_sys_capacity.rb +1 -1
  240. data/lib/measures/generic_qaqc/resources/check_mech_sys_efficiency.rb +1 -1
  241. data/lib/measures/generic_qaqc/resources/check_mech_sys_part_load_eff.rb +1 -1
  242. data/lib/measures/generic_qaqc/resources/check_mech_sys_type.rb +1 -1
  243. data/lib/measures/generic_qaqc/resources/check_part_loads.rb +1 -1
  244. data/lib/measures/generic_qaqc/resources/check_placeholder.rb +1 -1
  245. data/lib/measures/generic_qaqc/resources/check_plant_cap.rb +1 -1
  246. data/lib/measures/generic_qaqc/resources/check_plant_temps.rb +1 -1
  247. data/lib/measures/generic_qaqc/resources/check_plenum_loads.rb +1 -1
  248. data/lib/measures/generic_qaqc/resources/check_pump_pwr.rb +1 -1
  249. data/lib/measures/generic_qaqc/resources/check_sch_coord.rb +1 -1
  250. data/lib/measures/generic_qaqc/resources/check_schedules.rb +1 -1
  251. data/lib/measures/generic_qaqc/resources/check_simultaneous_heating_and_cooling.rb +1 -1
  252. data/lib/measures/generic_qaqc/resources/check_supply_air_and_thermostat_temp_difference.rb +1 -1
  253. data/lib/measures/generic_qaqc/resources/check_weather_files.rb +1 -1
  254. data/lib/measures/generic_qaqc/resources/os_lib_reporting_qaqc.rb +1 -1
  255. data/lib/measures/generic_qaqc/resources/report.html.erb +5 -1
  256. data/lib/measures/get_site_from_building_component_library/LICENSE.md +1 -1
  257. data/lib/measures/get_site_from_building_component_library/measure.rb +1 -1
  258. data/lib/measures/get_site_from_building_component_library/measure.xml +6 -6
  259. data/lib/measures/hvac_psychrometric_chart/LICENSE.md +1 -1
  260. data/lib/measures/hvac_psychrometric_chart/README.md +11 -5
  261. data/lib/measures/hvac_psychrometric_chart/measure.rb +2 -2
  262. data/lib/measures/hvac_psychrometric_chart/measure.xml +13 -19
  263. data/lib/measures/hvac_psychrometric_chart/resources/report.html.erb +5 -1
  264. data/lib/measures/inject_idf_objects/LICENSE.md +1 -1
  265. data/lib/measures/inject_idf_objects/measure.rb +1 -1
  266. data/lib/measures/inject_idf_objects/measure.xml +29 -28
  267. data/lib/measures/openstudio_results/LICENSE.md +1 -1
  268. data/lib/measures/openstudio_results/README.md +200 -6
  269. data/lib/measures/openstudio_results/measure.rb +20 -14
  270. data/lib/measures/openstudio_results/measure.xml +210 -302
  271. data/lib/measures/openstudio_results/resources/Siz.AirConditionerVariableRefrigerantFlow.rb +1 -1
  272. data/lib/measures/openstudio_results/resources/Siz.AirLoopHVAC.rb +1 -1
  273. data/lib/measures/openstudio_results/resources/Siz.AirLoopHVACUnitaryHeatCoolVAVChangeoverBypass.rb +1 -1
  274. data/lib/measures/openstudio_results/resources/Siz.AirLoopHVACUnitaryHeatPumpAirToAir.rb +1 -1
  275. data/lib/measures/openstudio_results/resources/Siz.AirLoopHVACUnitaryHeatPumpAirToAirMultiSpeed.rb +1 -1
  276. data/lib/measures/openstudio_results/resources/Siz.AirLoopHVACUnitarySystem.rb +1 -1
  277. data/lib/measures/openstudio_results/resources/Siz.AirTerminalDualDuctVAV.rb +1 -1
  278. data/lib/measures/openstudio_results/resources/Siz.AirTerminalSingleDuctConstantVolumeCooledBeam.rb +1 -1
  279. data/lib/measures/openstudio_results/resources/Siz.AirTerminalSingleDuctConstantVolumeFourPipeInduction.rb +1 -1
  280. data/lib/measures/openstudio_results/resources/Siz.AirTerminalSingleDuctConstantVolumeReheat.rb +1 -1
  281. data/lib/measures/openstudio_results/resources/Siz.AirTerminalSingleDuctParallelPIUReheat.rb +1 -1
  282. data/lib/measures/openstudio_results/resources/Siz.AirTerminalSingleDuctSeriesPIUReheat.rb +1 -1
  283. data/lib/measures/openstudio_results/resources/Siz.AirTerminalSingleDuctUncontrolled.rb +1 -1
  284. data/lib/measures/openstudio_results/resources/Siz.AirTerminalSingleDuctVAVHeatAndCoolNoReheat.rb +1 -1
  285. data/lib/measures/openstudio_results/resources/Siz.AirTerminalSingleDuctVAVHeatAndCoolReheat.rb +1 -1
  286. data/lib/measures/openstudio_results/resources/Siz.AirTerminalSingleDuctVAVNoReheat.rb +1 -1
  287. data/lib/measures/openstudio_results/resources/Siz.AirTerminalSingleDuctVAVReheat.rb +1 -1
  288. data/lib/measures/openstudio_results/resources/Siz.BoilerHotWater.rb +1 -1
  289. data/lib/measures/openstudio_results/resources/Siz.BoilerSteam.rb +1 -1
  290. data/lib/measures/openstudio_results/resources/Siz.ChillerAbsorption.rb +1 -1
  291. data/lib/measures/openstudio_results/resources/Siz.ChillerAbsorptionIndirect.rb +1 -1
  292. data/lib/measures/openstudio_results/resources/Siz.ChillerElectricEIR.rb +1 -1
  293. data/lib/measures/openstudio_results/resources/Siz.ChillerHeaterPerformanceElectricEIR.rb +1 -1
  294. data/lib/measures/openstudio_results/resources/Siz.CoilCoolingDXMultiSpeed.rb +1 -1
  295. data/lib/measures/openstudio_results/resources/Siz.CoilCoolingDXMultiSpeedStageData.rb +1 -1
  296. data/lib/measures/openstudio_results/resources/Siz.CoilCoolingDXSingleSpeed.rb +1 -1
  297. data/lib/measures/openstudio_results/resources/Siz.CoilCoolingDXTwoSpeed.rb +1 -1
  298. data/lib/measures/openstudio_results/resources/Siz.CoilCoolingDXTwoStageWithHumidityControlMode.rb +1 -1
  299. data/lib/measures/openstudio_results/resources/Siz.CoilCoolingDXVariableRefrigerantFlow.rb +1 -1
  300. data/lib/measures/openstudio_results/resources/Siz.CoilCoolingDXVariableSpeed.rb +1 -1
  301. data/lib/measures/openstudio_results/resources/Siz.CoilCoolingDXVariableSpeedSpeedData.rb +1 -1
  302. data/lib/measures/openstudio_results/resources/Siz.CoilCoolingLowTempRadiantVarFlow.rb +1 -1
  303. data/lib/measures/openstudio_results/resources/Siz.CoilCoolingWater.rb +1 -1
  304. data/lib/measures/openstudio_results/resources/Siz.CoilCoolingWaterToAirHeatPumpEquationFit.rb +1 -1
  305. data/lib/measures/openstudio_results/resources/Siz.CoilCoolingWaterToAirHeatPumpVariableSpeedEquationFit.rb +1 -1
  306. data/lib/measures/openstudio_results/resources/Siz.CoilCoolingWaterToAirHeatPumpVariableSpeedEquationFitSpeedData.rb +1 -1
  307. data/lib/measures/openstudio_results/resources/Siz.CoilHeatingDXMultiSpeed.rb +1 -1
  308. data/lib/measures/openstudio_results/resources/Siz.CoilHeatingDXMultiSpeedStageData.rb +1 -1
  309. data/lib/measures/openstudio_results/resources/Siz.CoilHeatingDXSingleSpeed.rb +1 -1
  310. data/lib/measures/openstudio_results/resources/Siz.CoilHeatingDXVariableRefrigerantFlow.rb +1 -1
  311. data/lib/measures/openstudio_results/resources/Siz.CoilHeatingDXVariableSpeed.rb +1 -1
  312. data/lib/measures/openstudio_results/resources/Siz.CoilHeatingDXVariableSpeedSpeedData.rb +1 -1
  313. data/lib/measures/openstudio_results/resources/Siz.CoilHeatingDesuperheater.rb +1 -1
  314. data/lib/measures/openstudio_results/resources/Siz.CoilHeatingElectric.rb +1 -1
  315. data/lib/measures/openstudio_results/resources/Siz.CoilHeatingGas.rb +1 -1
  316. data/lib/measures/openstudio_results/resources/Siz.CoilHeatingGasMultiStage.rb +1 -1
  317. data/lib/measures/openstudio_results/resources/Siz.CoilHeatingGasMultiStageStageData.rb +1 -1
  318. data/lib/measures/openstudio_results/resources/Siz.CoilHeatingLowTempRadiantVarFlow.rb +1 -1
  319. data/lib/measures/openstudio_results/resources/Siz.CoilHeatingWater.rb +1 -1
  320. data/lib/measures/openstudio_results/resources/Siz.CoilHeatingWaterBaseboard.rb +1 -1
  321. data/lib/measures/openstudio_results/resources/Siz.CoilHeatingWaterBaseboardRadiant.rb +1 -1
  322. data/lib/measures/openstudio_results/resources/Siz.CoilHeatingWaterToAirHeatPumpEquationFit.rb +1 -1
  323. data/lib/measures/openstudio_results/resources/Siz.CoilHeatingWaterToAirHeatPumpVariableSpeedEquationFit.rb +1 -1
  324. data/lib/measures/openstudio_results/resources/Siz.CoilHeatingWaterToAirHeatPumpVariableSpeedEquationFitSpeedData.rb +1 -1
  325. data/lib/measures/openstudio_results/resources/Siz.CoilPerformanceDXCooling.rb +1 -1
  326. data/lib/measures/openstudio_results/resources/Siz.CoilSystemCoolingDXHeatExchangerAssisted.rb +1 -1
  327. data/lib/measures/openstudio_results/resources/Siz.CoilSystemCoolingWaterHeatExchangerAssisted.rb +1 -1
  328. data/lib/measures/openstudio_results/resources/Siz.CoilWaterHeatingAirToWaterHeatPump.rb +1 -1
  329. data/lib/measures/openstudio_results/resources/Siz.CoilWaterHeatingAirToWaterHeatPumpWrapped.rb +1 -1
  330. data/lib/measures/openstudio_results/resources/Siz.CoilWaterHeatingDesuperheater.rb +1 -1
  331. data/lib/measures/openstudio_results/resources/Siz.ControllerOutdoorAir.rb +1 -1
  332. data/lib/measures/openstudio_results/resources/Siz.CoolingTowerSingleSpeed.rb +1 -1
  333. data/lib/measures/openstudio_results/resources/Siz.CoolingTowerTwoSpeed.rb +1 -1
  334. data/lib/measures/openstudio_results/resources/Siz.CoolingTowerVariableSpeed.rb +1 -1
  335. data/lib/measures/openstudio_results/resources/Siz.DistrictCooling.rb +1 -1
  336. data/lib/measures/openstudio_results/resources/Siz.DistrictHeating.rb +1 -1
  337. data/lib/measures/openstudio_results/resources/Siz.ElectricLoadCenterInverterLookUpTable.rb +1 -1
  338. data/lib/measures/openstudio_results/resources/Siz.ElectricLoadCenterInverterSimple.rb +1 -1
  339. data/lib/measures/openstudio_results/resources/Siz.ElectricLoadCenterStorageConverter.rb +1 -1
  340. data/lib/measures/openstudio_results/resources/Siz.ElectricLoadCenterStorageSimple.rb +1 -1
  341. data/lib/measures/openstudio_results/resources/Siz.EvaporativeCoolerDirectResearchSpecial.rb +1 -1
  342. data/lib/measures/openstudio_results/resources/Siz.EvaporativeCoolerIndirectResearchSpecial.rb +1 -1
  343. data/lib/measures/openstudio_results/resources/Siz.EvaporativeFluidCoolerSingleSpeed.rb +1 -1
  344. data/lib/measures/openstudio_results/resources/Siz.EvaporativeFluidCoolerTwoSpeed.rb +1 -1
  345. data/lib/measures/openstudio_results/resources/Siz.FanConstantVolume.rb +1 -1
  346. data/lib/measures/openstudio_results/resources/Siz.FanOnOff.rb +1 -1
  347. data/lib/measures/openstudio_results/resources/Siz.FanVariableVolume.rb +1 -1
  348. data/lib/measures/openstudio_results/resources/Siz.FanZoneExhaust.rb +1 -1
  349. data/lib/measures/openstudio_results/resources/Siz.FluidCoolerSingleSpeed.rb +1 -1
  350. data/lib/measures/openstudio_results/resources/Siz.FluidCoolerTwoSpeed.rb +1 -1
  351. data/lib/measures/openstudio_results/resources/Siz.GeneratorFuelCellElectricalStorage.rb +1 -1
  352. data/lib/measures/openstudio_results/resources/Siz.GeneratorFuelCellInverter.rb +1 -1
  353. data/lib/measures/openstudio_results/resources/Siz.GeneratorFuelCellPowerModule.rb +1 -1
  354. data/lib/measures/openstudio_results/resources/Siz.GeneratorMicroTurbine.rb +1 -1
  355. data/lib/measures/openstudio_results/resources/Siz.GeneratorMicroTurbineHeatRecovery.rb +1 -1
  356. data/lib/measures/openstudio_results/resources/Siz.HVACComponent.rb +1 -1
  357. data/lib/measures/openstudio_results/resources/Siz.HeaderedPumpsConstantSpeed.rb +1 -1
  358. data/lib/measures/openstudio_results/resources/Siz.HeaderedPumpsVariableSpeed.rb +1 -1
  359. data/lib/measures/openstudio_results/resources/Siz.HeatExchangerAirToAirSensibleAndLatent.rb +1 -1
  360. data/lib/measures/openstudio_results/resources/Siz.HeatExchangerFluidToFluid.rb +1 -1
  361. data/lib/measures/openstudio_results/resources/Siz.HeatPumpWaterToWaterEquationFitCooling.rb +1 -1
  362. data/lib/measures/openstudio_results/resources/Siz.HeatPumpWaterToWaterEquationFitHeating.rb +1 -1
  363. data/lib/measures/openstudio_results/resources/Siz.HumidifierSteamElectric.rb +1 -1
  364. data/lib/measures/openstudio_results/resources/Siz.Model.rb +1 -1
  365. data/lib/measures/openstudio_results/resources/Siz.ModelObject.rb +1 -1
  366. data/lib/measures/openstudio_results/resources/Siz.PhotovoltaicPerformanceSimple.rb +1 -1
  367. data/lib/measures/openstudio_results/resources/Siz.PlantComponentTemperatureSource.rb +1 -1
  368. data/lib/measures/openstudio_results/resources/Siz.PlantLoop.rb +1 -1
  369. data/lib/measures/openstudio_results/resources/Siz.PumpConstantSpeed.rb +1 -1
  370. data/lib/measures/openstudio_results/resources/Siz.PumpVariableSpeed.rb +1 -1
  371. data/lib/measures/openstudio_results/resources/Siz.RefrigerationSecondarySystem.rb +1 -1
  372. data/lib/measures/openstudio_results/resources/Siz.RefrigerationSystem.rb +1 -1
  373. data/lib/measures/openstudio_results/resources/Siz.RefrigerationTranscriticalSystem.rb +1 -1
  374. data/lib/measures/openstudio_results/resources/Siz.SizingSystem.rb +1 -1
  375. data/lib/measures/openstudio_results/resources/Siz.SolarCollectorFlatPlatePhotovoltaicThermal.rb +1 -1
  376. data/lib/measures/openstudio_results/resources/Siz.SolarCollectorPerformancePhotovoltaicThermalSimple.rb +1 -1
  377. data/lib/measures/openstudio_results/resources/Siz.ThermalStorageChilledWaterStratified.rb +1 -1
  378. data/lib/measures/openstudio_results/resources/Siz.WaterHeaterHeatPump.rb +1 -1
  379. data/lib/measures/openstudio_results/resources/Siz.WaterHeaterHeatPumpWrappedCondenser.rb +1 -1
  380. data/lib/measures/openstudio_results/resources/Siz.WaterHeaterMixed.rb +1 -1
  381. data/lib/measures/openstudio_results/resources/Siz.WaterHeaterStratified.rb +1 -1
  382. data/lib/measures/openstudio_results/resources/Siz.ZoneHVACBaseboardConvectiveElectric.rb +1 -1
  383. data/lib/measures/openstudio_results/resources/Siz.ZoneHVACBaseboardConvectiveWater.rb +1 -1
  384. data/lib/measures/openstudio_results/resources/Siz.ZoneHVACBaseboardRadiantConvectiveElectric.rb +1 -1
  385. data/lib/measures/openstudio_results/resources/Siz.ZoneHVACBaseboardRadiantConvectiveWater.rb +1 -1
  386. data/lib/measures/openstudio_results/resources/Siz.ZoneHVACEnergyRecoveryVentilator.rb +1 -1
  387. data/lib/measures/openstudio_results/resources/Siz.ZoneHVACFourPipeFanCoil.rb +1 -1
  388. data/lib/measures/openstudio_results/resources/Siz.ZoneHVACHighTemperatureRadiant.rb +1 -1
  389. data/lib/measures/openstudio_results/resources/Siz.ZoneHVACIdealLoadsAirSystem.rb +1 -1
  390. data/lib/measures/openstudio_results/resources/Siz.ZoneHVACLowTempRadiantConstFlow.rb +1 -1
  391. data/lib/measures/openstudio_results/resources/Siz.ZoneHVACLowTempRadiantVarFlow.rb +1 -1
  392. data/lib/measures/openstudio_results/resources/Siz.ZoneHVACPackagedTerminalAirConditioner.rb +1 -1
  393. data/lib/measures/openstudio_results/resources/Siz.ZoneHVACPackagedTerminalHeatPump.rb +1 -1
  394. data/lib/measures/openstudio_results/resources/Siz.ZoneHVACTerminalUnitVariableRefrigerantFlow.rb +1 -1
  395. data/lib/measures/openstudio_results/resources/Siz.ZoneHVACUnitHeater.rb +1 -1
  396. data/lib/measures/openstudio_results/resources/Siz.ZoneHVACUnitVentilator.rb +1 -1
  397. data/lib/measures/openstudio_results/resources/Siz.ZoneHVACWaterToAirHeatPump.rb +1 -1
  398. data/lib/measures/openstudio_results/resources/Siz.ZoneVentilationDesignFlowRate.rb +1 -1
  399. data/lib/measures/openstudio_results/resources/os_lib_reporting.rb +117 -39
  400. data/lib/measures/openstudio_results/resources/report.html.erb +5 -1
  401. data/lib/measures/remove_orphan_objects_and_unused_resources/LICENSE.md +1 -1
  402. data/lib/measures/remove_orphan_objects_and_unused_resources/measure.rb +1 -1
  403. data/lib/measures/remove_orphan_objects_and_unused_resources/measure.xml +8 -7
  404. data/lib/measures/set_electric_equipment_loads_by_epd/LICENSE.md +1 -1
  405. data/lib/measures/set_electric_equipment_loads_by_epd/measure.rb +1 -1
  406. data/lib/measures/set_electric_equipment_loads_by_epd/measure.xml +10 -9
  407. data/lib/measures/set_exterior_walls_and_floors_to_adiabatic/LICENSE.md +1 -1
  408. data/lib/measures/set_exterior_walls_and_floors_to_adiabatic/README.md +16 -0
  409. data/lib/measures/set_exterior_walls_and_floors_to_adiabatic/measure.rb +33 -2
  410. data/lib/measures/set_exterior_walls_and_floors_to_adiabatic/measure.xml +33 -8
  411. data/lib/measures/set_run_period/LICENSE.md +1 -1
  412. data/lib/measures/set_run_period/measure.rb +1 -1
  413. data/lib/measures/set_run_period/measure.xml +5 -5
  414. data/lib/measures/set_space_infiltration_per_exterior_area/LICENSE.md +1 -1
  415. data/lib/measures/set_space_infiltration_per_exterior_area/measure.rb +1 -1
  416. data/lib/measures/set_space_infiltration_per_exterior_area/measure.xml +8 -7
  417. data/lib/measures/tariff_selection_block/LICENSE.md +1 -1
  418. data/lib/measures/tariff_selection_block/measure.rb +2 -2
  419. data/lib/measures/tariff_selection_block/measure.xml +5 -5
  420. data/lib/measures/tariff_selection_flat/LICENSE.md +1 -1
  421. data/lib/measures/tariff_selection_flat/measure.rb +2 -2
  422. data/lib/measures/tariff_selection_flat/measure.xml +5 -5
  423. data/lib/measures/tariff_selection_generic/LICENSE.md +1 -1
  424. data/lib/measures/tariff_selection_generic/README.md +2 -2
  425. data/lib/measures/tariff_selection_generic/measure.rb +1 -1
  426. data/lib/measures/tariff_selection_generic/measure.xml +25 -25
  427. data/lib/measures/tariff_selection_generic/resources/FlatEnergyCharge-Gas.idf +3 -3
  428. data/lib/measures/tariff_selection_generic/resources/IN-EIAMonthlyRateGas.idf +1 -1
  429. data/lib/measures/tariff_selection_time_and_date_dependant/LICENSE.md +1 -1
  430. data/lib/measures/tariff_selection_time_and_date_dependant/measure.rb +2 -2
  431. data/lib/measures/tariff_selection_time_and_date_dependant/measure.xml +5 -5
  432. data/lib/measures/{ImproveFanBeltEfficiency → view_data}/LICENSE.md +1 -1
  433. data/lib/measures/view_data/README.md +64 -0
  434. data/lib/measures/{AddDaylightSensors → view_data}/README.md.erb +0 -0
  435. data/lib/measures/view_data/measure.rb +454 -0
  436. data/lib/measures/view_data/measure.xml +159 -0
  437. data/lib/measures/view_data/resources/report.html.in +2881 -0
  438. data/lib/measures/view_data/resources/va3c.rb +1025 -0
  439. data/lib/measures/{EnableDemandControlledVentilation → view_model}/LICENSE.md +1 -1
  440. data/lib/measures/view_model/README.md +26 -0
  441. data/lib/measures/{EnableDemandControlledVentilation → view_model}/README.md.erb +0 -0
  442. data/lib/measures/view_model/measure.rb +146 -0
  443. data/lib/measures/view_model/measure.xml +129 -0
  444. data/lib/measures/view_model/resources/report.html.in +2881 -0
  445. data/lib/measures/view_model/resources/va3c.rb +1025 -0
  446. data/lib/openstudio-common-measures.rb +1 -1
  447. data/lib/openstudio/common_measures.rb +1 -1
  448. data/lib/openstudio/common_measures/extension.rb +1 -1
  449. data/lib/openstudio/common_measures/version.rb +2 -2
  450. data/openstudio-common-measures.gemspec +4 -4
  451. metadata +67 -91
  452. data/lib/measures/AddDaylightSensors/README.md +0 -136
  453. data/lib/measures/AddDaylightSensors/measure.rb +0 -521
  454. data/lib/measures/AddDaylightSensors/measure.xml +0 -233
  455. data/lib/measures/EnableDemandControlledVentilation/README.md +0 -32
  456. data/lib/measures/EnableDemandControlledVentilation/measure.rb +0 -154
  457. data/lib/measures/EnableDemandControlledVentilation/measure.xml +0 -99
  458. data/lib/measures/EnableEconomizerControl/README.md +0 -48
  459. data/lib/measures/EnableEconomizerControl/README.md.erb +0 -42
  460. data/lib/measures/EnableEconomizerControl/measure.rb +0 -172
  461. data/lib/measures/EnableEconomizerControl/measure.xml +0 -124
  462. data/lib/measures/ImproveFanBeltEfficiency/README.md +0 -104
  463. data/lib/measures/ImproveFanBeltEfficiency/README.md.erb +0 -42
  464. data/lib/measures/ImproveFanBeltEfficiency/measure.rb +0 -366
  465. data/lib/measures/ImproveFanBeltEfficiency/measure.xml +0 -185
  466. data/lib/measures/ImproveMotorEfficiency/LICENSE.md +0 -27
  467. data/lib/measures/ImproveMotorEfficiency/README.md +0 -104
  468. data/lib/measures/ImproveMotorEfficiency/README.md.erb +0 -42
  469. data/lib/measures/ImproveMotorEfficiency/measure.rb +0 -365
  470. data/lib/measures/ImproveMotorEfficiency/measure.xml +0 -182
  471. data/lib/measures/IncreaseInsulationRValueForExteriorWalls/LICENSE.md +0 -27
  472. data/lib/measures/IncreaseInsulationRValueForExteriorWalls/README.md +0 -64
  473. data/lib/measures/IncreaseInsulationRValueForExteriorWalls/README.md.erb +0 -42
  474. data/lib/measures/IncreaseInsulationRValueForExteriorWalls/measure.rb +0 -422
  475. data/lib/measures/IncreaseInsulationRValueForExteriorWalls/measure.xml +0 -150
  476. data/lib/measures/IncreaseInsulationRValueForExteriorWallsByPercentage/LICENSE.md +0 -27
  477. data/lib/measures/IncreaseInsulationRValueForExteriorWallsByPercentage/README.md +0 -32
  478. data/lib/measures/IncreaseInsulationRValueForExteriorWallsByPercentage/README.md.erb +0 -42
  479. data/lib/measures/IncreaseInsulationRValueForExteriorWallsByPercentage/measure.rb +0 -328
  480. data/lib/measures/IncreaseInsulationRValueForExteriorWallsByPercentage/measure.xml +0 -98
  481. data/lib/measures/IncreaseInsulationRValueForRoofs/LICENSE.md +0 -27
  482. data/lib/measures/IncreaseInsulationRValueForRoofs/README.md +0 -64
  483. data/lib/measures/IncreaseInsulationRValueForRoofs/README.md.erb +0 -42
  484. data/lib/measures/IncreaseInsulationRValueForRoofs/measure.rb +0 -422
  485. data/lib/measures/IncreaseInsulationRValueForRoofs/measure.xml +0 -143
  486. data/lib/measures/IncreaseInsulationRValueForRoofsByPercentage/LICENSE.md +0 -27
  487. data/lib/measures/IncreaseInsulationRValueForRoofsByPercentage/README.md +0 -32
  488. data/lib/measures/IncreaseInsulationRValueForRoofsByPercentage/README.md.erb +0 -42
  489. data/lib/measures/IncreaseInsulationRValueForRoofsByPercentage/measure.rb +0 -328
  490. data/lib/measures/IncreaseInsulationRValueForRoofsByPercentage/measure.xml +0 -98
  491. data/lib/measures/ReduceElectricEquipmentLoadsByPercentage/LICENSE.md +0 -27
  492. data/lib/measures/ReduceElectricEquipmentLoadsByPercentage/README.md +0 -97
  493. data/lib/measures/ReduceElectricEquipmentLoadsByPercentage/README.md.erb +0 -42
  494. data/lib/measures/ReduceElectricEquipmentLoadsByPercentage/measure.rb +0 -450
  495. data/lib/measures/ReduceElectricEquipmentLoadsByPercentage/measure.xml +0 -186
  496. data/lib/measures/ReduceLightingLoadsByPercentage/LICENSE.md +0 -27
  497. data/lib/measures/ReduceLightingLoadsByPercentage/README.md +0 -96
  498. data/lib/measures/ReduceLightingLoadsByPercentage/README.md.erb +0 -42
  499. data/lib/measures/ReduceLightingLoadsByPercentage/measure.rb +0 -513
  500. data/lib/measures/ReduceLightingLoadsByPercentage/measure.xml +0 -191
  501. data/lib/measures/ReduceSpaceInfiltrationByPercentage/LICENSE.md +0 -27
  502. data/lib/measures/ReduceSpaceInfiltrationByPercentage/README.md +0 -104
  503. data/lib/measures/ReduceSpaceInfiltrationByPercentage/README.md.erb +0 -42
  504. data/lib/measures/ReduceSpaceInfiltrationByPercentage/measure.rb +0 -349
  505. data/lib/measures/ReduceSpaceInfiltrationByPercentage/measure.xml +0 -181
  506. data/lib/measures/ReduceVentilationByPercentage/LICENSE.md +0 -27
  507. data/lib/measures/ReduceVentilationByPercentage/README.md +0 -40
  508. data/lib/measures/ReduceVentilationByPercentage/README.md.erb +0 -42
  509. data/lib/measures/ReduceVentilationByPercentage/measure.rb +0 -291
  510. data/lib/measures/ReduceVentilationByPercentage/measure.xml +0 -96
  511. data/lib/measures/VentilationQAQC/ExampleModel.osm +0 -28468
  512. data/lib/measures/create_variable_speed_rtu/LICENSE.md +0 -27
  513. data/lib/measures/create_variable_speed_rtu/README.md +0 -120
  514. data/lib/measures/create_variable_speed_rtu/README.md.erb +0 -42
  515. data/lib/measures/create_variable_speed_rtu/measure.rb +0 -539
  516. data/lib/measures/create_variable_speed_rtu/measure.xml +0 -207
  517. data/lib/measures/generic_qaqc/resources/os_lib_helper_methods.rb +0 -399
  518. data/lib/measures/openstudio_results/resources/os_lib_helper_methods.rb +0 -399
  519. data/lib/measures/openstudio_results/resources/os_lib_schedules.rb +0 -960
  520. data/lib/measures/radiant_slab_with_doas/LICENSE.md +0 -27
  521. data/lib/measures/radiant_slab_with_doas/README.md +0 -156
  522. data/lib/measures/radiant_slab_with_doas/README.md.erb +0 -42
  523. data/lib/measures/radiant_slab_with_doas/measure.rb +0 -403
  524. data/lib/measures/radiant_slab_with_doas/measure.xml +0 -345
@@ -0,0 +1,15 @@
1
+
2
+
3
+ OpenStudio(R), Copyright (c) 2008-2021, Alliance for Sustainable Energy, LLC. All rights reserved.
4
+
5
+ Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
6
+
7
+ (1) Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
8
+
9
+ (2) Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
10
+
11
+ (3) Neither the name of the copyright holder nor the names of any contributors may be used to endorse or promote products derived from this software without specific prior written permission from the respective party.
12
+
13
+ (4) Other than as required in clauses (1) and (2), distributions in any form of modifications or other derivative works may not use the "OpenStudio" trademark, "OS", "os", or any other confusingly similar designation without specific prior written permission from Alliance for Sustainable Energy, LLC.
14
+
15
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER, THE UNITED STATES GOVERNMENT, OR ANY CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@@ -1,4 +1,4 @@
1
- OpenStudio(R), Copyright (c) 2008-2020, Alliance for Sustainable Energy, LLC. All rights reserved.
1
+ OpenStudio(R), Copyright (c) 2008-2021, Alliance for Sustainable Energy, LLC. All rights reserved.
2
2
 
3
3
  Redistribution and use in source and binary forms, with or without modification, are permitted
4
4
  provided that the following conditions are met:
@@ -0,0 +1,34 @@
1
+ ---
2
+ title: "ReadMe"
3
+ author: "Amy Allen"
4
+ date: "8/18/2020"
5
+ output: html_document
6
+ ---
7
+
8
+ ```{r setup, include=FALSE}
9
+ knitr::opts_chunk$set(echo = TRUE)
10
+ ```
11
+
12
+
13
+ ## Add EV Charging Load
14
+ ## Description
15
+ This measure adds an electric vehicle charging load, based on the load profiles developed by Wood et al. (2018), generated to reflect several different potential scenarios for EV charging behavior. The user can configure the magnitude of the load based on the proportion of vehicles at the site that are assumed to be EVs.
16
+
17
+ ## Modeler Description
18
+ The raw data used to generate the load profiles is saved in the "Resources" folder. The load that is added is an ExteriorFuelEquipment object. The load profiles generated by Wood et al. (2018) are based on an assumption of a 50% EV penetration rate.
19
+
20
+ ## Measure Type
21
+ ModelMeasure
22
+
23
+ ## Arguments
24
+ ## EV Percent
25
+ Name: EV Percent, Type: Double, Units: Percent , Required: true, Model Dependent: false. This argument is used to scale the load profiles generated by Wood et al. (2018). If not supplied by the user, the value defaults to 1%.
26
+
27
+ ## Charging Behavior
28
+ Name: Charging Behavior, Type: Choice (Business as Usual, Free Workplace Charging at Project Site, Free Workplace Charging Throughout Metropolitan Area), Units: None, Required: true, Model Dependent: false. Separate load profiles were generated by Wood et al. (2018) for each of these cases to reflect consumer behavior under differing availability of free EV charging.
29
+
30
+ ## Charge Station Type
31
+ Name: Charge Station Type, Type: Choice (Home, Typical Work, Typical Public), Units: None, Required: true, Model Dependent: false. This argument is used to select a subset of the profiles developed by Wood et al. (2018), which will be averaged to generate the profile for this particular building, based on its type.
32
+
33
+ ## Charge Delay
34
+ Name: Charge Delay, Type: Choice (Min Delay, Max Delay, Min Power) Units: None, Required: true, Model dependent: false. This argument is used to select a subset of profiles based on those generated by Wood et al. (2018), to reflect different approaches for control of EV charging. "Min delay" refers to a scenario in which the vehicle charging begins as soon as it is plugged in, "Max delay" refers to a control strategy that seeks to have the vehicle charged by the time the driver departs, and no sooner, and "Min power" seeks to minimize the power draw associated with charging.
@@ -0,0 +1,331 @@
1
+ # see the URL below for information on how to write OpenStudio measures
2
+ # http://nrel.github.io/OpenStudio-user-documentation/reference/measure_writing_guide/
3
+ # *******************************************************************************
4
+ # OpenStudio(R), Copyright (c) 2008-2021, Alliance for Sustainable Energy, LLC.
5
+ # All rights reserved.
6
+ # Redistribution and use in source and binary forms, with or without
7
+ # modification, are permitted provided that the following conditions are met:
8
+ #
9
+ # (1) Redistributions of source code must retain the above copyright notice,
10
+ # this list of conditions and the following disclaimer.
11
+ #
12
+ # (2) Redistributions in binary form must reproduce the above copyright notice,
13
+ # this list of conditions and the following disclaimer in the documentation
14
+ # and/or other materials provided with the distribution.
15
+ #
16
+ # (3) Neither the name of the copyright holder nor the names of any contributors
17
+ # may be used to endorse or promote products derived from this software without
18
+ # specific prior written permission from the respective party.
19
+ #
20
+ # (4) Other than as required in clauses (1) and (2), distributions in any form
21
+ # of modifications or other derivative works may not use the "OpenStudio"
22
+ # trademark, "OS", "os", or any other confusingly similar designation without
23
+ # specific prior written permission from Alliance for Sustainable Energy, LLC.
24
+ #
25
+ # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) AND ANY CONTRIBUTORS
26
+ # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
27
+ # THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
28
+ # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER(S), ANY CONTRIBUTORS, THE
29
+ # UNITED STATES GOVERNMENT, OR THE UNITED STATES DEPARTMENT OF ENERGY, NOR ANY OF
30
+ # THEIR EMPLOYEES, BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
31
+ # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
32
+ # OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
33
+ # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
34
+ # STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
35
+ # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
36
+ # *******************************************************************************
37
+
38
+ require 'csv'
39
+ require 'matrix'
40
+ # start the measure
41
+ class AddEVLoad < OpenStudio::Measure::ModelMeasure
42
+ # human readable name
43
+ def name
44
+ return 'Add_EV_Load'
45
+ end
46
+
47
+ # human readable description
48
+ def description
49
+ return 'This measure adds a load associated with charging of electric vehicles (EVs) to a building in URBANopt. EV load profiles were generated in EVI-Pro for specific building types. This measure allows running of customized load profiles for buildings in the Pena Station Next project, and also for generating typical charging load profiles based on the location type (home, public, or office).'
50
+ end
51
+
52
+ # human readable description of modeling approach
53
+ def modeler_description
54
+ return 'This measure adds an EV charging load to a building model. Load profiles for EV charging were generated in EVI-Pro. Different options are available for charging control type and charging behavior.'
55
+ end
56
+
57
+ # Note: If a DC Fast Charger at the PSN site is the intended option, the charging behavior and control choices are ignored. Thus far, there is one load profile for a DC fast charger; not different ones for different bldgs.
58
+ # define the arguments that the user will input
59
+ def arguments(model)
60
+ args = OpenStudio::Measure::OSArgumentVector.new
61
+
62
+ # Make an argument for the charging flexibility options (workplace charging only).
63
+ charge_delay_chs = OpenStudio::StringVector.new
64
+ charge_delay_chs << 'Max Delay'
65
+ charge_delay_chs << 'Min Delay'
66
+ charge_delay_chs << 'Min Power'
67
+
68
+ delay_type = OpenStudio::Measure::OSArgument.makeChoiceArgument('delay_type', charge_delay_chs, true)
69
+ delay_type.setDisplayName('Charging Flexibility Option')
70
+ delay_type.setDefaultValue('Min Delay')
71
+ delay_type.setDescription('Represents charging flexibility scenarios applied to workplace charging. Min Delay indicates EVs begin charging immediately upon arriving at work, Max Delay indicates EVs are plugged in immediately but do not begin charging until necessary and Min Power indicates EVs are charged at minimum rate over the parking event.')
72
+ args << delay_type
73
+
74
+ # Make an argument for the consumer charging behavior parameter.
75
+ consumer_charge_chs = OpenStudio::StringVector.new
76
+ consumer_charge_chs << 'Business as Usual'
77
+ consumer_charge_chs << 'Free Workplace Charging at Project Site'
78
+ consumer_charge_chs << 'Free Workplace Charging Across Metro Area'
79
+
80
+ charge_behavior = OpenStudio::Measure::OSArgument.makeChoiceArgument('charge_behavior', consumer_charge_chs, true)
81
+ charge_behavior.setDisplayName('Consumer Charging Behavior')
82
+ charge_behavior.setDefaultValue('Business as Usual')
83
+ charge_behavior.setDescription('Describes different scenarios of EV Charging. Business as Usual represents home dominant charging behavior where the majority of the electrical energy consumed by EV charging is during evening hours and overnight. Free Workplace Charging at Project Site indicates that the peak power draw from EV charging on weekdays occurs during morning hours, due to EV charging at workplaces. Overnight residential charging remains a significant share of the total electricity use for EV charging. Free Workplace Charging Across Metro Area reduces the Home EV charging relative to the Free Workplace Charging at Project Site scenario, for people who work elsewhere and can charge their vehicles for free at those workplaces.')
84
+ args << charge_behavior
85
+
86
+ # Make a vector for the charging station type argument.
87
+ chg_station_type_chs = OpenStudio::StringVector.new
88
+ chg_station_type_chs << 'Typical Home'
89
+ chg_station_type_chs << 'Typical Public'
90
+ chg_station_type_chs << 'Typical Work'
91
+
92
+ # Make an argument for charging station type.
93
+ chg_station_type = OpenStudio::Measure::OSArgument.makeChoiceArgument('chg_station_type', chg_station_type_chs, true)
94
+ chg_station_type.setDisplayName('Charging Station Type')
95
+ chg_station_type.setDefaultValue('Typical Public')
96
+ args << chg_station_type
97
+
98
+ # Make an argument for the % of vehicles parked at the building that are EVs.
99
+ ev_percent = OpenStudio::Measure::OSArgument.makeDoubleArgument('ev_percent', true)
100
+ ev_percent.setDisplayName('Percent of Vehicles Parked at Building That Are EVs')
101
+ ev_percent.setDefaultValue(1.0)
102
+ ev_percent.setDescription('Denotes percentage of vehicles between 0 to 100 that are electric on site.')
103
+ args << ev_percent
104
+
105
+ return args
106
+ end
107
+
108
+ # define what happens when the measure is run
109
+ def run(model, runner, user_arguments)
110
+ super(model, runner, user_arguments)
111
+
112
+ # Assign the user arguments to variables.
113
+ delay_type = runner.getStringArgumentValue('delay_type', user_arguments)
114
+ charge_behavior = runner.getStringArgumentValue('charge_behavior', user_arguments)
115
+ chg_station_type = runner.getStringArgumentValue('chg_station_type', user_arguments)
116
+ ev_percent = runner.getDoubleArgumentValue('ev_percent', user_arguments)
117
+
118
+ # use the built-in error checking
119
+ if !runner.validateUserArguments(arguments(model), user_arguments)
120
+ return false
121
+ end
122
+
123
+ if ev_percent < 0 || ev_percent > 100
124
+ runner.registerError('Percent of vehicles on site that are electric is outside of acceptable bounds. Please choose a value between 0 and 100.')
125
+ return false
126
+ end
127
+
128
+ # Set file name based on arguments selected and then choose the DOW within schedule selection.
129
+ # Set key based on user-selected charging behavior.
130
+ if charge_behavior == 'Business as Usual'
131
+ charge_key = 1
132
+ runner.registerInfo("charge key = #{charge_key}")
133
+ elsif charge_behavior == 'Free Workplace Charging at Project Site'
134
+ charge_key = 2
135
+ runner.registerInfo("charge key = #{charge_key}")
136
+ else
137
+ charge_key = 3
138
+ runner.registerInfo("charge key = #{charge_key}")
139
+ end
140
+
141
+ # Set key based on user-selected charging flexibility.
142
+ if delay_type == 'Min Delay'
143
+ flex_key = 1
144
+ runner.registerInfo("flex key = #{flex_key}")
145
+ elsif delay_type == 'Max Delay'
146
+ flex_key = 2
147
+ runner.registerInfo("flex key = #{flex_key}")
148
+ else
149
+ flex_key = 3
150
+ runner.registerInfo("flex key = #{flex_key}")
151
+ end
152
+
153
+ file_path = "#{__dir__}/resources/"
154
+
155
+ # Sets key based on charging station type, for general charging load profiles. Will use this to average columns appropriately.
156
+ if chg_station_type == 'Typical Home'
157
+ chg_station_key = 1
158
+ runner.registerInfo("charge station key = #{chg_station_key}")
159
+ elsif chg_station_type == 'Typical Work'
160
+ chg_station_key = 2
161
+ runner.registerInfo("charge station key = #{chg_station_key}")
162
+ elsif chg_station_type == 'Typical Public'
163
+ chg_station_key = 3
164
+ runner.registerInfo("charge station key = #{chg_station_key}")
165
+ end
166
+
167
+ # Creating a schedule:ruleset
168
+ ev_sch = OpenStudio::Model::ScheduleRuleset.new(model)
169
+ ev_sch.setName('EV Charging Power Draw')
170
+
171
+ # Create a schedule:ruleset for DC fast charging.
172
+ ev_sch_fast = OpenStudio::Model::ScheduleRuleset.new(model)
173
+ ev_sch_fast.setName('EV DC Fast Charging Power Draw')
174
+
175
+ # Create arrays of desired values
176
+ public_indices = [0, 1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 52, 53, 54, 57, 58, 60, 61, 62, 63, 64, 65, 81, 99, 100, 102]
177
+ work_indices = [7, 19, 20, 27, 28, 29, 30, 31, 32, 36, 37, 42, 43, 44, 46, 50, 51, 55, 69, 70, 71, 86, 88, 91, 92, 93]
178
+ home_indices = [15, 16, 17, 18, 21, 22, 23, 24, 25, 26, 33, 34, 35, 38, 39, 40, 41, 45, 47, 48, 49, 56, 59, 66, 67, 68, 72, 73, 74, 75, 76, 77, 78, 79, 80, 82, 83, 84, 85, 85, 87, 89, 90, 94, 95, 96, 97, 98, 101]
179
+
180
+ # The load profiles referenced were generated based on an assumption of 50% of passenger vehicles being EVs.
181
+ assumed_percent = 50
182
+
183
+ # Read in the three necessary files, for the typical PSN case (all PSN bldgs, including fast chargers).
184
+ # Read in wkday load profiles.
185
+ dow_key = 1
186
+ file_name = "chg#{charge_key}_dow#{dow_key}_flex#{flex_key}.csv"
187
+ wkday_load = CSV.read("#{file_path}/#{file_name}", headers: false, converters: :all)
188
+ wkday_load = wkday_load.to_a # Convert to an array.
189
+ wkday_load = wkday_load.transpose
190
+ # Read in Saturday load profiles.
191
+ dow_key = 2
192
+ file_name = "chg#{charge_key}_dow#{dow_key}_flex#{flex_key}.csv"
193
+ sat_load = CSV.read("#{file_path}/#{file_name}", headers: false, converters: :all)
194
+ sat_load = sat_load.to_a # Convert to an array.
195
+ sat_load = sat_load.transpose
196
+ # Read in Sunday load profiles.
197
+ dow_key = 3
198
+ file_name = "chg#{charge_key}_dow#{dow_key}_flex#{flex_key}.csv"
199
+ sun_load = CSV.read("#{file_path}/#{file_name}", headers: false, converters: :all)
200
+ sun_load = sun_load.to_a # Convert to an array.
201
+ sun_load = sun_load.transpose
202
+
203
+ # For non-PSN analysis, select which load profile is needed based on the charging station key.
204
+
205
+ if chg_station_key == 1
206
+ indices = home_indices
207
+ elsif chg_station_key == 2
208
+ indices = work_indices
209
+ elsif chg_station_key == 3
210
+ indices = public_indices
211
+ end
212
+
213
+ # Popualte the average weekday load for non PSN case. The load profiles used in this case are averaged based on the selected charging station type,(given the selected charging flexibility option and charging behavior option), and scaled for the percent of vehicles that are EVs.
214
+ if chg_station_type != 'Pena Station Next Analysis' && chg_station_type != 'Pena Station Next Analysis--DC Fast Charger'
215
+ wkday_load_sel = wkday_load.values_at(*indices)
216
+ avg_load_wkday = []
217
+ wkday_load_sel = wkday_load_sel.transpose
218
+ for i in 0..wkday_load[0].length - 1
219
+ avg_load_wkday[i] = (wkday_load_sel[i].reduce(0, :+) / wkday_load_sel[i].length) * ev_percent / assumed_percent # Scale profiles generated from 50% EV scenario by % of vehicles that are EVs.
220
+ end
221
+
222
+ wkday_max_load = avg_load_wkday.max
223
+
224
+ # Populate the average Saturday load.
225
+ sat_load_sel = sat_load.values_at(*indices)
226
+ avg_load_sat = []
227
+ sat_load_sel = sat_load_sel.transpose
228
+ for i in 0..sat_load[0].length - 1
229
+ avg_load_sat[i] = (sat_load_sel[i].reduce(0, :+) / sat_load_sel[i].length) * ev_percent / assumed_percent # Scale profiles generated from 50% EV scenario by % of vehicles that are EVs.
230
+ end
231
+
232
+ sat_max_load = avg_load_sat.max
233
+
234
+ # Populate the average Sunday load.
235
+ sun_load_sel = sun_load.values_at(*indices)
236
+ avg_load_sun = []
237
+ sun_load_sel = sun_load_sel.transpose
238
+ for i in 0..sun_load[0].length - 1
239
+ avg_load_sun[i] = (sun_load_sel[i].reduce(0, :+) / sun_load_sel[i].length) * ev_percent / assumed_percent # Scale profiles generated from 50% EV scenario by % of vehicles that are EVs.
240
+ end
241
+
242
+ sun_max_load = avg_load_sun.max
243
+
244
+ # Calculate the overall maximum load
245
+ max_load = [wkday_max_load, sat_max_load, sun_max_load].max
246
+
247
+ # Normalize each load profile based on the overall maximum load.
248
+
249
+ avg_load_wkday_norm = avg_load_wkday.map { |value| value / max_load }
250
+ avg_load_sat_norm = avg_load_sat.map { |value| value / max_load }
251
+ avg_load_sun_norm = avg_load_sun.map { |value| value / max_load }
252
+
253
+ end
254
+
255
+ # Create schedules for regular EV charging.
256
+ # Uses Sunday schedule for winter design day.
257
+ if chg_station_type != 'Pena Station Next Analysis--DC Fast Charger'
258
+ ev_sch_winter = OpenStudio::Model::ScheduleDay.new(model)
259
+ ev_sch.setWinterDesignDaySchedule(ev_sch_winter)
260
+ ev_sch.winterDesignDaySchedule.setName('EV Charging Winter Design Day')
261
+ # Loop through all the values and add to schedule
262
+ avg_load_sun_norm.each_with_index do |value, i| # Reading in the data from the array created from the csv file, with the values normalized to maximum power draw.
263
+ time = OpenStudio::Time.new(0, 0, (i + 1) * 15, 0) # OpenStudio::Time.new(day,hr of day, minute of hr, seconds of hr?)
264
+ ev_sch.winterDesignDaySchedule.addValue(time, value)
265
+ end
266
+ runner.registerInfo(" WDD schedule = #{avg_load_wkday_norm}")
267
+ # ...repeat for all 24 hrs (or whatever granularity)
268
+
269
+ # Summer design day. Uses weekday schedule for summer design day.
270
+ ev_sch_summer = OpenStudio::Model::ScheduleDay.new(model)
271
+ ev_sch.setSummerDesignDaySchedule(ev_sch_summer)
272
+ ev_sch.summerDesignDaySchedule.setName('EV Charging Summer Design Day')
273
+ # Loop through all the values and add to schedule
274
+ avg_load_wkday_norm.each_with_index do |value, i|
275
+ time = OpenStudio::Time.new(0, 0, (i + 1) * 15, 0) # OpenStudio::Time.new(day,hr of day, minute of hr, seconds of hr?)
276
+ ev_sch.summerDesignDaySchedule.addValue(time, value)
277
+ end
278
+
279
+ # Default day (use this for weekdays)
280
+ ev_sch.defaultDaySchedule.setName('EV Charging Default')
281
+ # Loop through all the values and add to schedule
282
+ avg_load_wkday_norm.each_with_index do |value, i|
283
+ time = OpenStudio::Time.new(0, 0, (i + 1) * 15, 0) # OpenStudio::Time.new(day,hr of day, minute of hr, seconds of hr?)
284
+ ev_sch.defaultDaySchedule.addValue(time, value)
285
+ end
286
+
287
+ # Saturday
288
+ ev_sch_sat_rule = OpenStudio::Model::ScheduleRule.new(ev_sch)
289
+ ev_sch_sat_rule.setName('ev_sch_sat_rule')
290
+ ev_sch_sat_rule.setApplySaturday(true)
291
+ ev_sch_sat = ev_sch_sat_rule.daySchedule
292
+ ev_sch_sat.setName('EV Charging Sat')
293
+ # Loop through all the values and add to schedule
294
+ avg_load_sat_norm.each_with_index do |value, i|
295
+ time = OpenStudio::Time.new(0, 0, (i + 1) * 15, 0) # OpenStudio::Time.new(day,hr of day, minute of hr, seconds of hr?)
296
+ ev_sch_sat.addValue(time, value)
297
+ end
298
+
299
+ # Sunday
300
+ ev_sch_sun_rule = OpenStudio::Model::ScheduleRule.new(ev_sch)
301
+ ev_sch_sun_rule.setName('ev_sch_sun_rule')
302
+ ev_sch_sun_rule.setApplySunday(true)
303
+ ev_sch_sun = ev_sch_sun_rule.daySchedule
304
+ ev_sch_sun.setName('EV Charging Sun')
305
+ # Loop through all the values and add to schedule
306
+ avg_load_sun_norm.each_with_index do |value, i|
307
+ time = OpenStudio::Time.new(0, 0, (i + 1) * 15, 0)
308
+ ev_sch_sun.addValue(time, value)
309
+ end
310
+ end
311
+
312
+ if chg_station_type != 'Pena Station Next Analysis--DC Fast Charger'
313
+
314
+ # Adding an EV charger definition and instance for the regular EV charging.
315
+ ev_charger_def = OpenStudio::Model::ExteriorFuelEquipmentDefinition.new(model)
316
+ ev_charger_level = max_load * 1000 # Converting from kW to watts
317
+ ev_charger_def.setName("#{ev_charger_level} w EV Charging Definition")
318
+ ev_charger_def.setDesignLevel(ev_charger_level)
319
+
320
+ # creating EV charger object for the regular EV charging.
321
+ ev_charger = OpenStudio::Model::ExteriorFuelEquipment.new(ev_charger_def, ev_sch)
322
+ ev_charger.setName("#{ev_charger_level} w EV Charger")
323
+ ev_charger.setFuelType('Electricity')
324
+ ev_charger.setEndUseSubcategory('Electric Vehicles')
325
+ runner.registerInfo("multiplier (kW) = #{max_load}}")
326
+ end
327
+ return true
328
+ end
329
+ end
330
+ # register the measure to be used by the application
331
+ AddEVLoad.new.registerWithApplication
@@ -0,0 +1,348 @@
1
+ <?xml version="1.0"?>
2
+ <measure>
3
+ <schema_version>3.0</schema_version>
4
+ <name>add_ev_load</name>
5
+ <uid>a23e0493-7357-48ca-b089-4d902efd6b50</uid>
6
+ <version_id>90476d7d-d880-4ce4-ada0-5dad10a82954</version_id>
7
+ <version_modified>20210406T224047Z</version_modified>
8
+ <xml_checksum>9A202986</xml_checksum>
9
+ <class_name>AddEVLoad</class_name>
10
+ <display_name>Add_EV_Load</display_name>
11
+ <description>This measure adds a load associated with charging of electric vehicles (EVs) to a building in URBANopt. EV load profiles were generated in EVI-Pro for specific building types. This measure allows running of customized load profiles for buildings in the Pena Station Next project, and also for generating typical charging load profiles based on the location type (home, public, or office).</description>
12
+ <modeler_description>This measure adds an EV charging load to a building model. Load profiles for EV charging were generated in EVI-Pro. Different options are available for charging control type and charging behavior.</modeler_description>
13
+ <arguments>
14
+ <argument>
15
+ <name>delay_type</name>
16
+ <display_name>Charging Flexibility Option</display_name>
17
+ <description>Represents charging flexibility scenarios applied to workplace charging. Min Delay indicates EVs begin charging immediately upon arriving at work, Max Delay indicates EVs are plugged in immediately but do not begin charging until necessary and Min Power indicates EVs are charged at minimum rate over the parking event.</description>
18
+ <type>Choice</type>
19
+ <required>true</required>
20
+ <model_dependent>false</model_dependent>
21
+ <default_value>Min Delay</default_value>
22
+ <choices>
23
+ <choice>
24
+ <value>Max Delay</value>
25
+ <display_name>Max Delay</display_name>
26
+ </choice>
27
+ <choice>
28
+ <value>Min Delay</value>
29
+ <display_name>Min Delay</display_name>
30
+ </choice>
31
+ <choice>
32
+ <value>Min Power</value>
33
+ <display_name>Min Power</display_name>
34
+ </choice>
35
+ </choices>
36
+ </argument>
37
+ <argument>
38
+ <name>charge_behavior</name>
39
+ <display_name>Consumer Charging Behavior</display_name>
40
+ <description>Describes different scenarios of EV Charging. Business as Usual represents home dominant charging behavior where the majority of the electrical energy consumed by EV charging is during evening hours and overnight. Free Workplace Charging at Project Site indicates that the peak power draw from EV charging on weekdays occurs during morning hours, due to EV charging at workplaces. Overnight residential charging remains a significant share of the total electricity use for EV charging. Free Workplace Charging Across Metro Area reduces the Home EV charging relative to the Free Workplace Charging at Project Site scenario, for people who work elsewhere and can charge their vehicles for free at those workplaces.</description>
41
+ <type>Choice</type>
42
+ <required>true</required>
43
+ <model_dependent>false</model_dependent>
44
+ <default_value>Business as Usual</default_value>
45
+ <choices>
46
+ <choice>
47
+ <value>Business as Usual</value>
48
+ <display_name>Business as Usual</display_name>
49
+ </choice>
50
+ <choice>
51
+ <value>Free Workplace Charging at Project Site</value>
52
+ <display_name>Free Workplace Charging at Project Site</display_name>
53
+ </choice>
54
+ <choice>
55
+ <value>Free Workplace Charging Across Metro Area</value>
56
+ <display_name>Free Workplace Charging Across Metro Area</display_name>
57
+ </choice>
58
+ </choices>
59
+ </argument>
60
+ <argument>
61
+ <name>chg_station_type</name>
62
+ <display_name>Charging Station Type</display_name>
63
+ <type>Choice</type>
64
+ <required>true</required>
65
+ <model_dependent>false</model_dependent>
66
+ <default_value>Typical Public</default_value>
67
+ <choices>
68
+ <choice>
69
+ <value>Typical Home</value>
70
+ <display_name>Typical Home</display_name>
71
+ </choice>
72
+ <choice>
73
+ <value>Typical Public</value>
74
+ <display_name>Typical Public</display_name>
75
+ </choice>
76
+ <choice>
77
+ <value>Typical Work</value>
78
+ <display_name>Typical Work</display_name>
79
+ </choice>
80
+ </choices>
81
+ </argument>
82
+ <argument>
83
+ <name>ev_percent</name>
84
+ <display_name>Percent of Vehicles Parked at Building That Are EVs</display_name>
85
+ <description>Denotes percentage of vehicles between 0 to 100 that are electric on site.</description>
86
+ <type>Double</type>
87
+ <required>true</required>
88
+ <model_dependent>false</model_dependent>
89
+ <default_value>1</default_value>
90
+ </argument>
91
+ </arguments>
92
+ <outputs />
93
+ <provenances />
94
+ <tags>
95
+ <tag>Equipment.Electric Equipment</tag>
96
+ </tags>
97
+ <attributes>
98
+ <attribute>
99
+ <name>Measure Type</name>
100
+ <value>ModelMeasure</value>
101
+ <datatype>string</datatype>
102
+ </attribute>
103
+ <attribute>
104
+ <name>Intended Software Tool</name>
105
+ <value>Apply Measure Now</value>
106
+ <datatype>string</datatype>
107
+ </attribute>
108
+ <attribute>
109
+ <name>Intended Software Tool</name>
110
+ <value>OpenStudio Application</value>
111
+ <datatype>string</datatype>
112
+ </attribute>
113
+ <attribute>
114
+ <name>Intended Software Tool</name>
115
+ <value>Parametric Analysis Tool</value>
116
+ <datatype>string</datatype>
117
+ </attribute>
118
+ </attributes>
119
+ <files>
120
+ <file>
121
+ <filename>example_model.osm</filename>
122
+ <filetype>osm</filetype>
123
+ <usage_type>test</usage_type>
124
+ <checksum>E925F127</checksum>
125
+ </file>
126
+ <file>
127
+ <filename>README.md</filename>
128
+ <filetype>md</filetype>
129
+ <usage_type>readme</usage_type>
130
+ <checksum>2293F4B3</checksum>
131
+ </file>
132
+ <file>
133
+ <filename>LICENSE.md</filename>
134
+ <filetype>md</filetype>
135
+ <usage_type>license</usage_type>
136
+ <checksum>A21A3ED2</checksum>
137
+ </file>
138
+ <file>
139
+ <filename>chg1_dow1_flex1.csv</filename>
140
+ <filetype>csv</filetype>
141
+ <usage_type>resource</usage_type>
142
+ <checksum>E4226271</checksum>
143
+ </file>
144
+ <file>
145
+ <filename>chg1_dow1_flex2.csv</filename>
146
+ <filetype>csv</filetype>
147
+ <usage_type>resource</usage_type>
148
+ <checksum>095F9B11</checksum>
149
+ </file>
150
+ <file>
151
+ <filename>chg1_dow1_flex3.csv</filename>
152
+ <filetype>csv</filetype>
153
+ <usage_type>resource</usage_type>
154
+ <checksum>281396E7</checksum>
155
+ </file>
156
+ <file>
157
+ <filename>chg1_dow2_flex1.csv</filename>
158
+ <filetype>csv</filetype>
159
+ <usage_type>resource</usage_type>
160
+ <checksum>A8ADE89D</checksum>
161
+ </file>
162
+ <file>
163
+ <filename>chg1_dow2_flex2.csv</filename>
164
+ <filetype>csv</filetype>
165
+ <usage_type>resource</usage_type>
166
+ <checksum>652B2384</checksum>
167
+ </file>
168
+ <file>
169
+ <filename>chg1_dow2_flex3.csv</filename>
170
+ <filetype>csv</filetype>
171
+ <usage_type>resource</usage_type>
172
+ <checksum>E8B3CD2E</checksum>
173
+ </file>
174
+ <file>
175
+ <filename>chg1_dow3_flex1.csv</filename>
176
+ <filetype>csv</filetype>
177
+ <usage_type>resource</usage_type>
178
+ <checksum>1F70FC21</checksum>
179
+ </file>
180
+ <file>
181
+ <filename>chg1_dow3_flex2.csv</filename>
182
+ <filetype>csv</filetype>
183
+ <usage_type>resource</usage_type>
184
+ <checksum>0DDD87E6</checksum>
185
+ </file>
186
+ <file>
187
+ <filename>chg1_dow3_flex3.csv</filename>
188
+ <filetype>csv</filetype>
189
+ <usage_type>resource</usage_type>
190
+ <checksum>84CDFFBD</checksum>
191
+ </file>
192
+ <file>
193
+ <filename>chg2_dow1_flex1.csv</filename>
194
+ <filetype>csv</filetype>
195
+ <usage_type>resource</usage_type>
196
+ <checksum>A306400A</checksum>
197
+ </file>
198
+ <file>
199
+ <filename>chg2_dow1_flex2.csv</filename>
200
+ <filetype>csv</filetype>
201
+ <usage_type>resource</usage_type>
202
+ <checksum>AFB3651D</checksum>
203
+ </file>
204
+ <file>
205
+ <filename>chg2_dow1_flex3.csv</filename>
206
+ <filetype>csv</filetype>
207
+ <usage_type>resource</usage_type>
208
+ <checksum>21A2185D</checksum>
209
+ </file>
210
+ <file>
211
+ <filename>chg2_dow2_flex1.csv</filename>
212
+ <filetype>csv</filetype>
213
+ <usage_type>resource</usage_type>
214
+ <checksum>27A849F5</checksum>
215
+ </file>
216
+ <file>
217
+ <filename>chg2_dow2_flex2.csv</filename>
218
+ <filetype>csv</filetype>
219
+ <usage_type>resource</usage_type>
220
+ <checksum>32FB80C2</checksum>
221
+ </file>
222
+ <file>
223
+ <filename>chg2_dow2_flex3.csv</filename>
224
+ <filetype>csv</filetype>
225
+ <usage_type>resource</usage_type>
226
+ <checksum>AE95D12E</checksum>
227
+ </file>
228
+ <file>
229
+ <filename>chg2_dow3_flex1.csv</filename>
230
+ <filetype>csv</filetype>
231
+ <usage_type>resource</usage_type>
232
+ <checksum>FAB49B7C</checksum>
233
+ </file>
234
+ <file>
235
+ <filename>chg2_dow3_flex2.csv</filename>
236
+ <filetype>csv</filetype>
237
+ <usage_type>resource</usage_type>
238
+ <checksum>16D26DC4</checksum>
239
+ </file>
240
+ <file>
241
+ <filename>chg2_dow3_flex3.csv</filename>
242
+ <filetype>csv</filetype>
243
+ <usage_type>resource</usage_type>
244
+ <checksum>8D4C6E34</checksum>
245
+ </file>
246
+ <file>
247
+ <filename>chg3_dow1_flex1.csv</filename>
248
+ <filetype>csv</filetype>
249
+ <usage_type>resource</usage_type>
250
+ <checksum>6FBBFD27</checksum>
251
+ </file>
252
+ <file>
253
+ <filename>chg3_dow1_flex2.csv</filename>
254
+ <filetype>csv</filetype>
255
+ <usage_type>resource</usage_type>
256
+ <checksum>CDF99F52</checksum>
257
+ </file>
258
+ <file>
259
+ <filename>chg3_dow1_flex3.csv</filename>
260
+ <filetype>csv</filetype>
261
+ <usage_type>resource</usage_type>
262
+ <checksum>A91801BC</checksum>
263
+ </file>
264
+ <file>
265
+ <filename>chg3_dow2_flex1.csv</filename>
266
+ <filetype>csv</filetype>
267
+ <usage_type>resource</usage_type>
268
+ <checksum>6F8774B1</checksum>
269
+ </file>
270
+ <file>
271
+ <filename>chg3_dow2_flex2.csv</filename>
272
+ <filetype>csv</filetype>
273
+ <usage_type>resource</usage_type>
274
+ <checksum>BF7C5780</checksum>
275
+ </file>
276
+ <file>
277
+ <filename>chg3_dow2_flex3.csv</filename>
278
+ <filetype>csv</filetype>
279
+ <usage_type>resource</usage_type>
280
+ <checksum>FC3473AB</checksum>
281
+ </file>
282
+ <file>
283
+ <filename>chg3_dow3_flex1.csv</filename>
284
+ <filetype>csv</filetype>
285
+ <usage_type>resource</usage_type>
286
+ <checksum>970B9AC7</checksum>
287
+ </file>
288
+ <file>
289
+ <filename>chg3_dow3_flex2.csv</filename>
290
+ <filetype>csv</filetype>
291
+ <usage_type>resource</usage_type>
292
+ <checksum>A5B5B479</checksum>
293
+ </file>
294
+ <file>
295
+ <filename>chg3_dow3_flex3.csv</filename>
296
+ <filetype>csv</filetype>
297
+ <usage_type>resource</usage_type>
298
+ <checksum>429C9B64</checksum>
299
+ </file>
300
+ <file>
301
+ <filename>fast_charge_15min_Saturday.csv</filename>
302
+ <filetype>csv</filetype>
303
+ <usage_type>resource</usage_type>
304
+ <checksum>6813FABB</checksum>
305
+ </file>
306
+ <file>
307
+ <filename>fast_charge_15min_Sunday.csv</filename>
308
+ <filetype>csv</filetype>
309
+ <usage_type>resource</usage_type>
310
+ <checksum>A604B427</checksum>
311
+ </file>
312
+ <file>
313
+ <filename>fast_charge_15min_Weekday.csv</filename>
314
+ <filetype>csv</filetype>
315
+ <usage_type>resource</usage_type>
316
+ <checksum>114F9EA1</checksum>
317
+ </file>
318
+ <file>
319
+ <filename>PSN_BuildingKey.csv</filename>
320
+ <filetype>csv</filetype>
321
+ <usage_type>resource</usage_type>
322
+ <checksum>153D4BBA</checksum>
323
+ </file>
324
+ <file>
325
+ <filename>PSN_BuildingKey_v2.csv</filename>
326
+ <filetype>csv</filetype>
327
+ <usage_type>resource</usage_type>
328
+ <checksum>1000C8E8</checksum>
329
+ </file>
330
+ <file>
331
+ <filename>add_ev_load_test.rb</filename>
332
+ <filetype>rb</filetype>
333
+ <usage_type>test</usage_type>
334
+ <checksum>5E255354</checksum>
335
+ </file>
336
+ <file>
337
+ <version>
338
+ <software_program>OpenStudio</software_program>
339
+ <identifier>2.5.1</identifier>
340
+ <min_compatible>2.5.1</min_compatible>
341
+ </version>
342
+ <filename>measure.rb</filename>
343
+ <filetype>rb</filetype>
344
+ <usage_type>script</usage_type>
345
+ <checksum>93A1C055</checksum>
346
+ </file>
347
+ </files>
348
+ </measure>