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
@@ -1,207 +0,0 @@
1
- <measure>
2
- <schema_version>3.0</schema_version>
3
- <name>create_variable_speed_rtu</name>
4
- <uid>7fb36b3a-5591-4627-a2b0-7709fbeae593</uid>
5
- <version_id>b4784727-b8f2-46e2-92ad-219ecd2e1c5a</version_id>
6
- <version_modified>20200229T024317Z</version_modified>
7
- <xml_checksum>A9D5932A</xml_checksum>
8
- <class_name>CreateVariableSpeedRTU</class_name>
9
- <display_name>Create Variable Speed RTU</display_name>
10
- <description>This measure examines the existing HVAC system(s) present in the current OpenStudio model. If a constant-speed system is found, the user can opt to have the measure replace that system with a variable-speed RTU. 'Variable speed' in this case means that the compressor will be operated using either two or four stages (user's choice). The user can choose between using a gas heating coil, or a direct-expansion (DX) heating coil. Additionally, the user is able to enter the EER (cooling) and COP (heating) values for each DX stage. This measure allows users to easily identify the impact of improved part-load efficiency.</description>
11
- <modeler_description>This measure loops through the existing airloops, looking for loops that have a constant speed fan. (Note that if an object such as an AirloopHVAC:UnitarySystem is present in the model, that the measure will NOT identify that loop as either constant- or variable-speed, since the fan is located inside the UnitarySystem object.) The user can designate which constant-speed airloop they'd like to apply the measure to, or opt to apply the measure to all airloops. The measure then replaces the supply components on the airloop with an AirloopHVAC:UnitarySystem object. Any DX coils added to the UnitarySystem object are of the type CoilCoolingDXMultiSpeed / CoilHeatingDXMultiSpeed, with the number of stages set to either two or four, depending on user input. If the user opts for a gas furnace, an 80% efficient CoilHeatingGas object is added. Fan properties (pressure rise and total efficiency) are transferred automatically from the existing (but deleted) constant speed fan to the new variable-speed fan. Currently, this measure is only applicable to the Standalone Retail DOE Prototype building model, but it has been structured to facilitate expansion to other models with a minimum of effort.</modeler_description>
12
- <arguments>
13
- <argument>
14
- <name>object</name>
15
- <display_name>Choose an Air Loop to change from CAV to VAV.</display_name>
16
- <type>Choice</type>
17
- <required>true</required>
18
- <model_dependent>false</model_dependent>
19
- <default_value>*All CAV Air Loops*</default_value>
20
- <choices>
21
- <choice>
22
- <value>{42167619-c2eb-4812-a9e5-9b286d7beef8}</value>
23
- <display_name>*All CAV Air Loops*</display_name>
24
- </choice>
25
- </choices>
26
- </argument>
27
- <argument>
28
- <name>cooling_coil_type</name>
29
- <display_name>Choose the type of cooling coil.</display_name>
30
- <type>Choice</type>
31
- <required>true</required>
32
- <model_dependent>false</model_dependent>
33
- <default_value>Two-Stage Compressor</default_value>
34
- <choices>
35
- <choice>
36
- <value>Two-Stage Compressor</value>
37
- <display_name>Two-Stage Compressor</display_name>
38
- </choice>
39
- <choice>
40
- <value>Four-Stage Compressor</value>
41
- <display_name>Four-Stage Compressor</display_name>
42
- </choice>
43
- </choices>
44
- </argument>
45
- <argument>
46
- <name>rated_cc_eer</name>
47
- <display_name>Rated Cooling Coil EER</display_name>
48
- <type>Double</type>
49
- <required>false</required>
50
- <model_dependent>false</model_dependent>
51
- </argument>
52
- <argument>
53
- <name>three_quarter_cc_eer</name>
54
- <display_name>Cooling Coil EER at 75% Capacity</display_name>
55
- <type>Double</type>
56
- <required>false</required>
57
- <model_dependent>false</model_dependent>
58
- </argument>
59
- <argument>
60
- <name>half_cc_eer</name>
61
- <display_name>Cooling Coil EER at 50% Capacity</display_name>
62
- <type>Double</type>
63
- <required>false</required>
64
- <model_dependent>false</model_dependent>
65
- </argument>
66
- <argument>
67
- <name>quarter_cc_eer</name>
68
- <display_name>Cooling Coil EER at 25% Capacity</display_name>
69
- <type>Double</type>
70
- <required>false</required>
71
- <model_dependent>false</model_dependent>
72
- </argument>
73
- <argument>
74
- <name>heating_coil_type</name>
75
- <display_name>Choose the type of heating coil.</display_name>
76
- <type>Choice</type>
77
- <required>true</required>
78
- <model_dependent>false</model_dependent>
79
- <default_value>Gas Heating Coil</default_value>
80
- <choices>
81
- <choice>
82
- <value>Gas Heating Coil</value>
83
- <display_name>Gas Heating Coil</display_name>
84
- </choice>
85
- <choice>
86
- <value>Heat Pump</value>
87
- <display_name>Heat Pump</display_name>
88
- </choice>
89
- </choices>
90
- </argument>
91
- <argument>
92
- <name>rated_hc_gas_efficiency</name>
93
- <display_name>Rated Gas Heating Coil Efficiency (0-1.00)</display_name>
94
- <type>Double</type>
95
- <required>false</required>
96
- <model_dependent>false</model_dependent>
97
- </argument>
98
- <argument>
99
- <name>rated_hc_cop</name>
100
- <display_name>Rated Heating Coil COP</display_name>
101
- <type>Double</type>
102
- <required>false</required>
103
- <model_dependent>false</model_dependent>
104
- </argument>
105
- <argument>
106
- <name>three_quarter_hc_cop</name>
107
- <display_name>Heating Coil COP at 75% Capacity</display_name>
108
- <type>Double</type>
109
- <required>false</required>
110
- <model_dependent>false</model_dependent>
111
- </argument>
112
- <argument>
113
- <name>half_hc_cop</name>
114
- <display_name>Heating Coil COP at 50% Capacity</display_name>
115
- <type>Double</type>
116
- <required>false</required>
117
- <model_dependent>false</model_dependent>
118
- </argument>
119
- <argument>
120
- <name>quarter_hc_cop</name>
121
- <display_name>Heating Coil COP at 25% Capacity</display_name>
122
- <type>Double</type>
123
- <required>false</required>
124
- <model_dependent>false</model_dependent>
125
- </argument>
126
- </arguments>
127
- <outputs/>
128
- <provenances/>
129
- <tags>
130
- <tag>HVAC.Whole System</tag>
131
- </tags>
132
- <attributes>
133
- <attribute>
134
- <name>Measure Type</name>
135
- <value>ModelMeasure</value>
136
- <datatype>string</datatype>
137
- </attribute>
138
- <attribute>
139
- <name>Intended Software Tool</name>
140
- <value>Apply Measure Now</value>
141
- <datatype>string</datatype>
142
- </attribute>
143
- <attribute>
144
- <name>Intended Software Tool</name>
145
- <value>OpenStudio Application</value>
146
- <datatype>string</datatype>
147
- </attribute>
148
- <attribute>
149
- <name>Intended Software Tool</name>
150
- <value>Parametric Analysis Tool</value>
151
- <datatype>string</datatype>
152
- </attribute>
153
- <attribute>
154
- <name>Intended Use Case</name>
155
- <value>Model Articulation</value>
156
- <datatype>string</datatype>
157
- </attribute>
158
- <attribute>
159
- <name>Intended Use Case</name>
160
- <value>New Construction EE</value>
161
- <datatype>string</datatype>
162
- </attribute>
163
- </attributes>
164
- <files>
165
- <file>
166
- <filename>example_model.osm</filename>
167
- <filetype>osm</filetype>
168
- <usage_type>test</usage_type>
169
- <checksum>69467654</checksum>
170
- </file>
171
- <file>
172
- <filename>README.md</filename>
173
- <filetype>md</filetype>
174
- <usage_type>readme</usage_type>
175
- <checksum>839520ED</checksum>
176
- </file>
177
- <file>
178
- <filename>README.md.erb</filename>
179
- <filetype>erb</filetype>
180
- <usage_type>readmeerb</usage_type>
181
- <checksum>703C9964</checksum>
182
- </file>
183
- <file>
184
- <filename>LICENSE.md</filename>
185
- <filetype>md</filetype>
186
- <usage_type>license</usage_type>
187
- <checksum>E0468DD6</checksum>
188
- </file>
189
- <file>
190
- <filename>create_variable_speed_rtu_test.rb</filename>
191
- <filetype>rb</filetype>
192
- <usage_type>test</usage_type>
193
- <checksum>B199E2FA</checksum>
194
- </file>
195
- <file>
196
- <version>
197
- <software_program>OpenStudio</software_program>
198
- <identifier>1.12.2</identifier>
199
- <min_compatible>2.7.0</min_compatible>
200
- </version>
201
- <filename>measure.rb</filename>
202
- <filetype>rb</filetype>
203
- <usage_type>script</usage_type>
204
- <checksum>13C7C1EA</checksum>
205
- </file>
206
- </files>
207
- </measure>
@@ -1,399 +0,0 @@
1
- # *******************************************************************************
2
- # OpenStudio(R), Copyright (c) 2008-2020, Alliance for Sustainable Energy, LLC.
3
- # All rights reserved.
4
- # Redistribution and use in source and binary forms, with or without
5
- # modification, are permitted provided that the following conditions are met:
6
- #
7
- # (1) Redistributions of source code must retain the above copyright notice,
8
- # this list of conditions and the following disclaimer.
9
- #
10
- # (2) Redistributions in binary form must reproduce the above copyright notice,
11
- # this list of conditions and the following disclaimer in the documentation
12
- # and/or other materials provided with the distribution.
13
- #
14
- # (3) Neither the name of the copyright holder nor the names of any contributors
15
- # may be used to endorse or promote products derived from this software without
16
- # specific prior written permission from the respective party.
17
- #
18
- # (4) Other than as required in clauses (1) and (2), distributions in any form
19
- # of modifications or other derivative works may not use the "OpenStudio"
20
- # trademark, "OS", "os", or any other confusingly similar designation without
21
- # specific prior written permission from Alliance for Sustainable Energy, LLC.
22
- #
23
- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) AND ANY CONTRIBUTORS
24
- # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
25
- # THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
26
- # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER(S), ANY CONTRIBUTORS, THE
27
- # UNITED STATES GOVERNMENT, OR THE UNITED STATES DEPARTMENT OF ENERGY, NOR ANY OF
28
- # THEIR EMPLOYEES, BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
29
- # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
30
- # OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
31
- # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
32
- # STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
33
- # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
34
- # *******************************************************************************
35
-
36
- module OsLib_HelperMethods
37
- # populate choice argument from model objects
38
- def self.populateChoiceArgFromModelObjects(model, modelObject_args_hash, includeBuilding = nil)
39
- # populate choice argument for constructions that are applied to surfaces in the model
40
- modelObject_handles = OpenStudio::StringVector.new
41
- modelObject_display_names = OpenStudio::StringVector.new
42
-
43
- # looping through sorted hash of constructions
44
- modelObject_args_hash.sort.map do |key, value|
45
- modelObject_handles << value.handle.to_s
46
- modelObject_display_names << key
47
- end
48
-
49
- unless includeBuilding.nil?
50
- # add building to string vector with space type
51
- building = model.getBuilding
52
- modelObject_handles << building.handle.to_s
53
- modelObject_display_names << includeBuilding
54
- end
55
-
56
- result = { 'modelObject_handles' => modelObject_handles, 'modelObject_display_names' => modelObject_display_names }
57
- return result
58
- end
59
-
60
- # create variables in run from user arguments
61
- def self.createRunVariables(runner, model, user_arguments, arguments)
62
- result = {}
63
-
64
- error = false
65
- # use the built-in error checking
66
- unless runner.validateUserArguments(arguments, user_arguments)
67
- error = true
68
- runner.registerError('Invalid argument values.')
69
- end
70
-
71
- user_arguments.each do |argument|
72
- # get argument info
73
- arg = user_arguments[argument]
74
- arg_type = arg.print.lines($/)[1]
75
-
76
- # create argument variable
77
- if arg_type.include? 'Double, Required'
78
- eval("result[\"#{arg.name}\"] = runner.getDoubleArgumentValue(\"#{arg.name}\", user_arguments)")
79
- elsif arg_type.include? 'Integer, Required'
80
- eval("result[\"#{arg.name}\"] = runner.getIntegerArgumentValue(\"#{arg.name}\", user_arguments)")
81
- elsif arg_type.include? 'String, Required'
82
- eval("result[\"#{arg.name}\"] = runner.getStringArgumentValue(\"#{arg.name}\", user_arguments)")
83
- elsif arg_type.include? 'Boolean, Required'
84
- eval("result[\"#{arg.name}\"] = runner.getBoolArgumentValue(\"#{arg.name}\", user_arguments)")
85
- elsif arg_type.include? 'Choice, Required'
86
- eval("result[\"#{arg.name}\"] = runner.getStringArgumentValue(\"#{arg.name}\", user_arguments)")
87
- else
88
- puts 'not setup to handle all argument types yet, or any optional arguments'
89
- end
90
- end
91
-
92
- if error
93
- return false
94
- else
95
- return result
96
- end
97
- end
98
-
99
- # check choice argument made from model objects
100
- def self.checkChoiceArgFromModelObjects(object, variableName, to_ObjectType, runner, user_arguments)
101
- apply_to_building = false
102
- modelObject = nil
103
- if object.empty?
104
- handle = runner.getStringArgumentValue(variableName, user_arguments)
105
- if handle.empty?
106
- runner.registerError("No #{variableName} was chosen.") # this logic makes this not work on an optional model object argument
107
- else
108
- runner.registerError("The selected #{variableName} with handle '#{handle}' was not found in the model. It may have been removed by another measure.")
109
- end
110
- return false
111
- else
112
- if !eval("object.get.#{to_ObjectType}").empty?
113
- modelObject = eval("object.get.#{to_ObjectType}").get
114
- elsif !object.get.to_Building.empty?
115
- apply_to_building = true
116
- else
117
- runner.registerError("Script Error - argument not showing up as #{variableName}.")
118
- return false
119
- end
120
- end
121
-
122
- result = { 'modelObject' => modelObject, 'apply_to_building' => apply_to_building }
123
- end
124
-
125
- # check choice argument made from model objects
126
- def self.checkOptionalChoiceArgFromModelObjects(object, variableName, to_ObjectType, runner, user_arguments)
127
- apply_to_building = false
128
- modelObject = nil
129
- if object.empty?
130
- handle = runner.getOptionalStringArgumentValue(variableName, user_arguments)
131
- if handle.empty?
132
- # do nothing, this is a valid option
133
- puts 'hello'
134
- modelObject = nil
135
- apply_to_building = false
136
- else
137
- runner.registerError("The selected #{variableName} with handle '#{handle}' was not found in the model. It may have been removed by another measure.")
138
- return false
139
- end
140
- else
141
- if !eval("object.get.#{to_ObjectType}").empty?
142
- modelObject = eval("object.get.#{to_ObjectType}").get
143
- elsif !object.get.to_Building.empty?
144
- apply_to_building = true
145
- else
146
- runner.registerError("Script Error - argument not showing up as #{variableName}.")
147
- return false
148
- end
149
- end
150
-
151
- result = { 'modelObject' => modelObject, 'apply_to_building' => apply_to_building }
152
- end
153
-
154
- # check value of double arguments
155
- def self.checkDoubleAndIntegerArguments(runner, user_arguments, arg_check_hash)
156
- error = false
157
-
158
- # get hash values
159
- min = arg_check_hash['min']
160
- max = arg_check_hash['max']
161
- min_eq_bool = arg_check_hash['min_eq_bool']
162
- max_eq_bool = arg_check_hash['max_eq_bool']
163
-
164
- arg_check_hash['arg_array'].each do |argument|
165
- argument = user_arguments[argument]
166
-
167
- # get arg values
168
- arg_value = nil
169
- if argument.hasValue
170
- arg_value = argument.valueDisplayName.to_f # instead of valueAsDouble so it allows integer arguments as well
171
- elsif argument.hasDefaultValue
172
- arg_value = argument.defaultValueDisplayName.to_f
173
- end
174
- arg_display = argument.displayName
175
-
176
- unless min.nil?
177
- if min_eq_bool
178
- if arg_value < min
179
- runner.registerError("Please enter value greater than or equal to #{min} for #{arg_display}.") # add in argument display name
180
- error = true
181
- end
182
- else
183
- if arg_value <= min
184
- runner.registerError("Please enter value greater than #{min} for #{arg_display}.") # add in argument display name
185
- error = true
186
- end
187
- end
188
- end
189
- unless max.nil?
190
- if max_eq_bool
191
- if arg_value > max
192
- runner.registerError("Please enter value less than or equal to #{max} for #{arg_display}.") # add in argument display name
193
- error = true
194
- end
195
- else
196
- if arg_value >= max
197
- runner.registerError("Please enter value less than #{max} for #{arg_display}.") # add in argument display name
198
- error = true
199
- end
200
- end
201
- end
202
- end
203
-
204
- # check for any errors
205
- if error
206
- return false
207
- else
208
- return true
209
- end
210
- end
211
-
212
- # open channel to log info/warning/error messages
213
- def self.setup_log_msgs(runner, debug = false)
214
- # Open a channel to log info/warning/error messages
215
- @msg_log = OpenStudio::StringStreamLogSink.new
216
- if debug
217
- @msg_log.setLogLevel(OpenStudio::Debug)
218
- else
219
- @msg_log.setLogLevel(OpenStudio::Info)
220
- end
221
- @start_time = Time.new
222
- @runner = runner
223
- end
224
-
225
- # Get all the log messages and put into output
226
- # for users to see.
227
- def self.log_msgs
228
- @msg_log.logMessages.each do |msg|
229
- # DLM: you can filter on log channel here for now
230
- if /openstudio.*/.match(msg.logChannel) # /openstudio\.model\..*/
231
- # Skip certain messages that are irrelevant/misleading
232
- next if msg.logMessage.include?('Skipping layer') || # Annoying/bogus "Skipping layer" warnings
233
- msg.logChannel.include?('runmanager') || # RunManager messages
234
- msg.logChannel.include?('setFileExtension') || # .ddy extension unexpected
235
- msg.logChannel.include?('Translator') || # Forward translator and geometry translator
236
- msg.logMessage.include?('UseWeatherFile') # 'UseWeatherFile' is not yet a supported option for YearDescription
237
-
238
- # Report the message in the correct way
239
- if msg.logLevel == OpenStudio::Info
240
- @runner.registerInfo(msg.logMessage)
241
- elsif msg.logLevel == OpenStudio::Warn
242
- @runner.registerWarning("[#{msg.logChannel}] #{msg.logMessage}")
243
- elsif msg.logLevel == OpenStudio::Error
244
- @runner.registerError("[#{msg.logChannel}] #{msg.logMessage}")
245
- elsif msg.logLevel == OpenStudio::Debug && @debug
246
- @runner.registerInfo("DEBUG - #{msg.logMessage}")
247
- end
248
- end
249
- end
250
- @runner.registerInfo("Total Time = #{(Time.new - @start_time).round}sec.")
251
- end
252
-
253
- def self.check_upstream_measure_for_arg(runner, arg_name)
254
- # 2.x methods (currently setup for measure display name but snake_case arg names)
255
- arg_name_value = {}
256
- runner.workflow.workflowSteps.each do |step|
257
- if step.to_MeasureStep.is_initialized
258
- measure_step = step.to_MeasureStep.get
259
-
260
- measure_name = measure_step.measureDirName
261
- if measure_step.name.is_initialized
262
- measure_name = measure_step.name.get # this is instance name in PAT
263
- end
264
- if measure_step.result.is_initialized
265
- result = measure_step.result.get
266
- result.stepValues.each do |arg|
267
- name = arg.name
268
- value = arg.valueAsVariant.to_s
269
- if name == arg_name
270
- arg_name_value[:value] = value
271
- arg_name_value[:measure_name] = measure_name
272
- return arg_name_value # stop after find first one
273
- end
274
- end
275
- else
276
- # puts "No result for #{measure_name}"
277
- end
278
- else
279
- # puts "This step is not a measure"
280
- end
281
- end
282
-
283
- return arg_name_value
284
- end
285
-
286
- # populate choice argument from model objects. areaType should be string like "floorArea" or "exteriorArea"
287
- # note: it seems like spaceType.floorArea does account for multiplier, so I don't have to call this method unless I have a custom collection of spaces.
288
- def self.getAreaOfSpacesInArray(model, spaceArray, areaType = 'floorArea')
289
- # find selected floor spaces, make array and get floor area.
290
- totalArea = 0
291
- spaceAreaHash = {}
292
- spaceArray.each do |space|
293
- spaceArea = eval("space.#{areaType}*space.multiplier")
294
- spaceAreaHash[space] = spaceArea
295
- totalArea += spaceArea
296
- end
297
-
298
- result = { 'totalArea' => totalArea, 'spaceAreaHash' => spaceAreaHash }
299
- return result
300
- end
301
-
302
- # runs conversion and neat string, and returns value with units in string, optionally before or after the value
303
- def self.neatConvertWithUnitDisplay(double, fromString, toString, digits, unitBefore = false, unitAfter = true, space = true, parentheses = true)
304
- # convert units
305
- doubleConverted = OpenStudio.convert(double, fromString, toString)
306
- if !doubleConverted.nil?
307
- doubleConverted = doubleConverted.get
308
- else
309
- puts "Couldn't convert values, check string choices passed in. From: #{fromString}, To: #{toString}"
310
- end
311
-
312
- # get neat version of converted
313
- neatConverted = OpenStudio.toNeatString(doubleConverted, digits, true)
314
-
315
- # add prefix
316
- if unitBefore
317
- if space == true && parentheses == true
318
- prefix = "(#{toString}) "
319
- elsif space == true && parentheses == false
320
- prefix = "(#{toString})"
321
- elsif space == false && parentheses == true
322
- prefix = "#{toString} "
323
- else
324
- prefix = toString.to_s
325
- end
326
- else
327
- prefix = ''
328
- end
329
-
330
- # add suffix
331
- if unitAfter
332
- if space == true && parentheses == true
333
- suffix = " (#{toString})"
334
- elsif space == true && parentheses == false
335
- suffix = "(#{toString})"
336
- elsif space == false && parentheses == true
337
- suffix = " #{toString}"
338
- else
339
- suffix = toString.to_s
340
- end
341
- else
342
- suffix = ''
343
- end
344
-
345
- finalString = "#{prefix}#{neatConverted}#{suffix}"
346
-
347
- return finalString
348
- end
349
-
350
- # helper that loops through lifecycle costs getting total costs under "Construction" and add to counter if occurs during year 0
351
- def self.getTotalCostForObjects(objectArray, category = 'Construction', onlyYearFromStartZero = true)
352
- counter = 0
353
- objectArray.each do |object|
354
- object_LCCs = object.lifeCycleCosts
355
- object_LCCs.each do |object_LCC|
356
- if object_LCC.category == category
357
- if onlyYearFromStartZero == false || object_LCC.yearsFromStart == 0
358
- counter += object_LCC.totalCost
359
- end
360
- end
361
- end
362
- end
363
-
364
- return counter
365
- end
366
-
367
- # helper that loops through lifecycle costs getting total costs under "Construction" and add to counter if occurs during year 0
368
- def self.getSpaceTypeStandardsInformation(spaceTypeArray)
369
- # hash of space types
370
- spaceTypeStandardsInfoHash = {}
371
-
372
- spaceTypeArray.each do |spaceType|
373
- # get standards building
374
- if !spaceType.standardsBuildingType.empty?
375
- standardsBuilding = spaceType.standardsBuildingType.get
376
- else
377
- standardsBuilding = nil
378
- end
379
-
380
- # get standards space type
381
- if !spaceType.standardsSpaceType.empty?
382
- standardsSpaceType = spaceType.standardsSpaceType.get
383
- else
384
- standardsSpaceType = nil
385
- end
386
-
387
- # populate hash
388
- spaceTypeStandardsInfoHash[spaceType] = [standardsBuilding, standardsSpaceType]
389
- end
390
-
391
- return spaceTypeStandardsInfoHash
392
- end
393
-
394
- # OpenStudio has built in toNeatString method
395
- # OpenStudio::toNeatString(double,2,true)# double,decimals, show commas
396
-
397
- # OpenStudio has built in helper for unit conversion. That can be done using OpenStudio::convert() as shown below.
398
- # OpenStudio::convert(double,"from unit string","to unit string").get
399
- end