openstudio-standards 0.2.12.rc4 → 0.2.13.rc3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/data/geometry/ASHRAE90120162019HighriseApartment.json +1042 -0
- data/data/geometry/ASHRAE90120162019Hospital.json +199 -0
- data/data/geometry/ASHRAE90120162019LargeHotel.json +73 -0
- data/data/geometry/ASHRAE90120162019LargeOffice.json +109 -0
- data/data/geometry/ASHRAE90120162019SecondarySchool.json +205 -0
- data/data/geometry/ASHRAECourthouse.json +112 -0
- data/data/geometry/ASHRAECourthouse.osm +26470 -0
- data/data/geometry/ASHRAELargeHotel.osm +11 -1
- data/data/geometry/ASHRAELargeOffice.json +4 -0
- data/data/geometry/ASHRAESmallDataCenter.json +1 -1
- data/data/standards/OpenStudio_Standards-ashrae_90_1(space_types).xlsx +0 -0
- data/data/standards/OpenStudio_Standards-ashrae_90_1-ALL-comstock(space_types).xlsx +0 -0
- data/data/standards/OpenStudio_Standards-ashrae_90_1.xlsx +0 -0
- data/data/standards/exclude_list.csv +19 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.boilers.json +49 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.chillers.json +293 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.construction_properties.json +25426 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.construction_sets.json +1600 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.economizers.json +564 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.elevators.json +349 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.ext_ltg.json +164 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.ground_temperatures.json +10663 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.heat_pumps.json +508 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.heat_pumps_heating.json +156 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.heat_rejection.json +44 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.motors.json +184 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.prototype_inputs.json +3094 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.ref_cases.json +829 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.ref_lnup.json +562 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.refrigeration_compressors.json +52 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.refrigeration_condenser.json +220 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.refrigeration_system.json +156 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.refrigeration_walkins.json +1316 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.spc_typ.json +21446 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.unitary_acs.json +554 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.water_heaters.json +68 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.water_source_heat_pumps.json +28 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.water_source_heat_pumps_heating.json +12 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.boilers.json +49 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.chillers.json +293 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.construction_properties.json +12487 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.construction_sets.json +1600 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.economizers.json +564 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.elevators.json +349 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.ext_ltg.json +164 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.ground_temperatures.json +10663 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.heat_pumps.json +466 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.heat_pumps_heating.json +137 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.heat_rejection.json +44 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.motors.json +184 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.prototype_inputs.json +3094 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.ref_cases.json +829 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.ref_lnup.json +562 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.refrigeration_compressors.json +52 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.refrigeration_condenser.json +220 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.refrigeration_system.json +156 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.refrigeration_walkins.json +1316 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.spc_typ.json +21380 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.unitary_acs.json +554 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.water_heaters.json +68 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.water_source_heat_pumps.json +28 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.water_source_heat_pumps_heating.json +12 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.boilers.json +49 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.chillers.json +395 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.construction_properties.json +12487 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.construction_sets.json +1600 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.economizers.json +592 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.elevators.json +349 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.energy_recovery.json +550 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.ext_ltg.json +164 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.ground_temperatures.json +10663 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.heat_pumps.json +466 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.heat_pumps_heating.json +137 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.heat_rejection.json +44 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.motors.json +238 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.prototype_inputs.json +3094 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.ref_cases.json +829 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.ref_lnup.json +562 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.refrigeration_compressors.json +52 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.refrigeration_condenser.json +220 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.refrigeration_system.json +156 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.refrigeration_walkins.json +1316 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.spc_typ.json +21548 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.unitary_acs.json +554 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.water_heaters.json +68 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.water_source_heat_pumps.json +28 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.water_source_heat_pumps_heating.json +12 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.boilers.json +64 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.chillers.json +871 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.construction_properties.json +12487 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.construction_sets.json +1600 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.economizers.json +592 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.elevators.json +349 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.energy_recovery.json +1096 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.ext_ltg.json +164 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.ground_temperatures.json +10663 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.heat_pumps.json +886 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.heat_pumps_heating.json +194 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.heat_rejection.json +44 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.motors.json +247 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.prototype_inputs.json +3094 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.ref_cases.json +829 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.ref_lnup.json +562 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.refrigeration_compressors.json +52 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.refrigeration_condenser.json +220 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.refrigeration_system.json +156 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.refrigeration_walkins.json +1316 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.spc_typ.json +22079 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.unitary_acs.json +994 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.water_heaters.json +68 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.water_source_heat_pumps.json +28 -0
- data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.water_source_heat_pumps_heating.json +12 -0
- data/data/standards/manage_OpenStudio_Standards.rb +87 -37
- data/data/standards/metadata_units_OpenStudio_Standards-ashrae_90_1-ALL-comstockspace_types.csv +236 -0
- data/data/standards/metadata_units_OpenStudio_Standards-ashrae_90_1.csv +622 -0
- data/data/standards/metadata_units_OpenStudio_Standards-ashrae_90_1space_types.csv +191 -0
- data/data/standards/openstudio_standards_duplicates_log.csv +17 -0
- data/data/standards/test_performance_expected_dd_results.csv +1971 -1171
- data/lib/openstudio-standards.rb +76 -18
- data/lib/openstudio-standards/btap/btap.model.rb +1 -1
- data/lib/openstudio-standards/btap/economics.rb +14 -11
- data/lib/openstudio-standards/btap/envelope.rb +185 -257
- data/lib/openstudio-standards/btap/fileio.rb +1 -0
- data/lib/openstudio-standards/btap/geometry.rb +21 -1
- data/lib/openstudio-standards/btap/measures.rb +12 -11
- data/lib/openstudio-standards/btap/schedules.rb +3 -12
- data/lib/openstudio-standards/hvac_sizing/Siz.AirLoopHVACUnitaryHeatPumpAirToAirMultiSpeed.rb +178 -0
- data/lib/openstudio-standards/hvac_sizing/Siz.CoilCoolingDXMultiSpeed.rb +8 -8
- data/lib/openstudio-standards/hvac_sizing/Siz.Model.rb +3 -0
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2004/ashrae_90_1_2004.PumpVariableSpeed.rb +28 -0
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2007/ashrae_90_1_2007.FanVariableVolume.rb +0 -1
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2007/ashrae_90_1_2007.PumpVariableSpeed.rb +28 -0
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.Model.rb +53 -2
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.PumpVariableSpeed.rb +29 -0
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.Model.rb +157 -2
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.PumpVariableSpeed.rb +29 -0
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.AirTerminalSingleDuctVAVReheat.rb +24 -0
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.FanConstantVolume.rb +32 -0
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.FanOnOff.rb +33 -0
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.FanVariableVolume.rb +32 -0
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.Model.elevators.rb +25 -0
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.Model.rb +366 -0
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.PumpVariableSpeed.rb +144 -0
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.hvac_systems.rb +11 -0
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.AirTerminalSingleDuctVAVReheat.rb +24 -0
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.FanConstantVolume.rb +32 -0
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.FanOnOff.rb +33 -0
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.FanVariableVolume.rb +32 -0
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.Model.elevators.rb +25 -0
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.Model.rb +367 -0
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.PumpVariableSpeed.rb +144 -0
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.hvac_systems.rb +11 -0
- data/lib/openstudio-standards/prototypes/ashrae_90_1/doe_ref_1980_2004/doe_ref_1980_2004.AirTerminalSingleDuctVAVReheat.rb +0 -1
- data/lib/openstudio-standards/prototypes/ashrae_90_1/doe_ref_pre_1980/doe_ref_pre_1980.AirTerminalSingleDuctVAVReheat.rb +0 -1
- data/lib/openstudio-standards/prototypes/ashrae_90_1/nrel_nze_ready_2017/nrel_zne_ready_2017.HeatExchangerAirToAirSensibleAndLatent.rb +1 -1
- data/lib/openstudio-standards/prototypes/ashrae_90_1/nrel_nze_ready_2017/nrel_zne_ready_2017.Model.rb +1 -1
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.HeatExchangerAirToAirSensibleAndLatent.rb +1 -1
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.Model.rb +1 -1
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.College.rb +3 -3
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.Courthouse.rb +74 -0
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.FullServiceRestaurant.rb +46 -30
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.HighRiseApartment.rb +23 -8
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.Hospital.rb +26 -15
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.Laboratory.rb +8 -11
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.LargeDataCenterHighITE.rb +54 -60
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.LargeDataCenterLowITE.rb +56 -60
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.LargeHotel.rb +38 -12
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.LargeOffice.rb +218 -134
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.LargeOfficeDetailed.rb +6 -2
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.MediumOffice.rb +230 -134
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.MediumOfficeDetailed.rb +60 -62
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.MidriseApartment.rb +25 -15
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.Outpatient.rb +34 -22
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.PrimarySchool.rb +31 -7
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.QuickServiceRestaurant.rb +43 -28
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.RetailStandalone.rb +48 -38
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.RetailStripmall.rb +9 -5
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SecondarySchool.rb +575 -345
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SmallDataCenterHighITE.rb +13 -19
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SmallDataCenterLowITE.rb +13 -17
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SmallHotel.rb +9 -5
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SmallOffice.rb +79 -51
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SmallOfficeDetailed.rb +60 -60
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SuperMarket.rb +2 -4
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SuperTallBuilding.rb +133 -120
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.TallBuilding.rb +124 -112
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.Warehouse.rb +138 -66
- data/lib/openstudio-standards/prototypes/common/do_not_edit_metaclasses.rb +7275 -199
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.AirConditionerVariableRefrigerantFlow.rb +35 -35
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.BoilerHotWater.rb +2 -2
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.CentralAirSourceHeatPump.rb +2 -2
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilCoolingDXSingleSpeed.rb +3 -3
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilCoolingDXTwoSpeed.rb +1 -1
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilCoolingWater.rb +2 -2
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilCoolingWaterToAirHeatPumpEquationFit.rb +2 -2
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilHeatingDXSingleSpeed.rb +1 -1
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilHeatingElectric.rb +2 -2
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilHeatingWater.rb +2 -2
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilHeatingWaterToAirHeatPumpEquationFit.rb +2 -2
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoolingTower.rb +1 -1
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.Fan.rb +4 -3
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.FanConstantVolume.rb +7 -8
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.FanOnOff.rb +7 -8
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.FanVariableVolume.rb +13 -14
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.FanZoneExhaust.rb +7 -5
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.elevators.rb +4 -1
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.exterior_lights.rb +0 -1
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.hvac.rb +25 -14
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.rb +474 -89
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.swh.rb +35 -33
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.Pump.rb +3 -0
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.PumpVariableSpeed.rb +72 -0
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.ServiceWaterHeating.rb +120 -120
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.hvac_systems.rb +142 -154
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.radiant_system_controls.rb +9 -3
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.refrigeration.rb +11 -5
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.utilities.rb +26 -14
- data/lib/openstudio-standards/prototypes/common/prototype_metaprogramming.rb +270 -247
- data/lib/openstudio-standards/prototypes/deer/deer.Model.rb +1 -1
- data/lib/openstudio-standards/refs/references.rb +5 -2
- data/lib/openstudio-standards/standards/Standards.AirLoopHVAC.rb +70 -51
- data/lib/openstudio-standards/standards/Standards.AirTerminalSingleDuctVAVReheat.rb +0 -1
- data/lib/openstudio-standards/standards/Standards.BoilerHotWater.rb +0 -1
- data/lib/openstudio-standards/standards/Standards.BuildingStory.rb +1 -0
- data/lib/openstudio-standards/standards/Standards.ChillerElectricEIR.rb +2 -4
- data/lib/openstudio-standards/standards/Standards.CoilCoolingDXMultiSpeed.rb +91 -2
- data/lib/openstudio-standards/standards/Standards.CoilCoolingDXSingleSpeed.rb +4 -5
- data/lib/openstudio-standards/standards/Standards.CoilCoolingDXTwoSpeed.rb +0 -1
- data/lib/openstudio-standards/standards/Standards.CoilCoolingWaterToAirHeatPumpEquationFit.rb +1 -1
- data/lib/openstudio-standards/standards/Standards.CoilDX.rb +30 -9
- data/lib/openstudio-standards/standards/Standards.CoilHeatingDXMultiSpeed.rb +2 -1
- data/lib/openstudio-standards/standards/Standards.CoilHeatingDXSingleSpeed.rb +3 -1
- data/lib/openstudio-standards/standards/Standards.CoilHeatingGas.rb +0 -3
- data/lib/openstudio-standards/standards/Standards.CoilHeatingGasMultiStage.rb +37 -1
- data/lib/openstudio-standards/standards/Standards.CoilHeatingWaterToAirHeatPumpEquationFit.rb +1 -3
- data/lib/openstudio-standards/standards/Standards.Construction.rb +124 -118
- data/lib/openstudio-standards/standards/Standards.CoolingTower.rb +0 -1
- data/lib/openstudio-standards/standards/Standards.CoolingTowerSingleSpeed.rb +0 -1
- data/lib/openstudio-standards/standards/Standards.CoolingTowerTwoSpeed.rb +0 -1
- data/lib/openstudio-standards/standards/Standards.CoolingTowerVariableSpeed.rb +0 -1
- data/lib/openstudio-standards/standards/Standards.Fan.rb +0 -1
- data/lib/openstudio-standards/standards/Standards.FanConstantVolume.rb +0 -1
- data/lib/openstudio-standards/standards/Standards.FanOnOff.rb +0 -1
- data/lib/openstudio-standards/standards/Standards.FanVariableVolume.rb +2 -4
- data/lib/openstudio-standards/standards/Standards.FanZoneExhaust.rb +0 -1
- data/lib/openstudio-standards/standards/Standards.FluidCooler.rb +10 -3
- data/lib/openstudio-standards/standards/Standards.HeaderedPumpsConstantSpeed.rb +0 -1
- data/lib/openstudio-standards/standards/Standards.HeaderedPumpsVariableSpeed.rb +0 -1
- data/lib/openstudio-standards/standards/Standards.Model.rb +305 -247
- data/lib/openstudio-standards/standards/Standards.PlanarSurface.rb +2 -0
- data/lib/openstudio-standards/standards/Standards.PlantLoop.rb +11 -9
- data/lib/openstudio-standards/standards/Standards.Pump.rb +0 -1
- data/lib/openstudio-standards/standards/Standards.PumpConstantSpeed.rb +0 -1
- data/lib/openstudio-standards/standards/Standards.PumpVariableSpeed.rb +0 -1
- data/lib/openstudio-standards/standards/Standards.ScheduleCompact.rb +0 -1
- data/lib/openstudio-standards/standards/Standards.ScheduleConstant.rb +0 -1
- data/lib/openstudio-standards/standards/Standards.ScheduleRuleset.rb +103 -121
- data/lib/openstudio-standards/standards/Standards.Space.rb +42 -35
- data/lib/openstudio-standards/standards/Standards.SpaceType.rb +9 -17
- data/lib/openstudio-standards/standards/Standards.SubSurface.rb +25 -27
- data/lib/openstudio-standards/standards/Standards.Surface.rb +97 -52
- data/lib/openstudio-standards/standards/Standards.ThermalZone.rb +76 -25
- data/lib/openstudio-standards/standards/Standards.WaterHeaterMixed.rb +6 -7
- data/lib/openstudio-standards/standards/Standards.ZoneHVACComponent.rb +85 -7
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1.Standards.FanVariableVolume.rb +0 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/ashrae_90_1_2004.AirLoopHVAC.rb +10 -2
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/ashrae_90_1_2004.Model.rb +2 -2
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/comstock_ashrae_90_1_2004/data/ashrae_90_1.schedules.json +63 -99
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/comstock_ashrae_90_1_2004/data/comstock_ashrae_90_1_2004.ext_ltg.json +7 -7
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.construction_properties.json +2420 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.economizers.json +32 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.heat_rejection.json +9 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.prototype_inputs.json +70 -40
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.spc_typ.json +105 -40
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.unitary_acs.json +15 -15
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/ashrae_90_1_2007.AirLoopHVAC.rb +5 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/comstock_ashrae_90_1_2007/data/ashrae_90_1.schedules.json +63 -99
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/comstock_ashrae_90_1_2007/data/comstock_ashrae_90_1_2007.ext_ltg.json +7 -7
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.construction_properties.json +1460 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.economizers.json +32 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.heat_rejection.json +9 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.prototype_inputs.json +123 -39
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.spc_typ.json +104 -17
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.unitary_acs.json +15 -15
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.AirLoopHVAC.rb +32 -15
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.Space.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/comstock_ashrae_90_1_2010/data/ashrae_90_1.schedules.json +63 -99
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/comstock_ashrae_90_1_2010/data/comstock_ashrae_90_1_2010.ext_ltg.json +7 -7
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.construction_properties.json +1460 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.economizers.json +64 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.energy_recovery.json +52 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.heat_rejection.json +9 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.prototype_inputs.json +123 -39
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.spc_typ.json +112 -25
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.unitary_acs.json +5 -5
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.AirLoopHVAC.rb +37 -14
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.WaterHeaterMixed.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/comstock_ashrae_90_1_2013/data/ashrae_90_1.schedules.json +63 -99
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/comstock_ashrae_90_1_2013/data/comstock_ashrae_90_1_2013.ext_ltg.json +7 -7
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.boilers.json +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.chillers.json +2 -2
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.construction_properties.json +1460 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.economizers.json +64 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.energy_recovery.json +104 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.heat_rejection.json +9 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.prototype_inputs.json +125 -41
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.spc_typ.json +172 -55
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.unitary_acs.json +15 -15
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.water_heaters.json +4 -4
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.water_source_heat_pumps_heating.json +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.AirLoopHVAC.rb +456 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.AirTerminalSingleDuctVAVReheat.rb +24 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.CoolingTower.rb +19 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.CoolingTowerSingleSpeed.rb +5 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.CoolingTowerTwoSpeed.rb +5 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.CoolingTowerVariableSpeed.rb +16 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.FanVariableVolume.rb +37 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.Space.rb +189 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.ThermalZone.rb +57 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.ZoneHVACComponent.rb +22 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.rb +16 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.boilers.json +68 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.chillers.json +490 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.construction_properties.json +21244 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.construction_sets.json +2111 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.economizers.json +676 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.elevators.json +372 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.energy_recovery.json +1096 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.ext_ltg.json +169 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.heat_pumps.json +532 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.heat_pumps_heating.json +164 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.heat_rejection.json +49 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.motors.json +274 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.prototype_inputs.json +3094 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.ref_cases.json +854 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.ref_lnup.json +562 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.refrigeration_compressors.json +58 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.refrigeration_condenser.json +238 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.refrigeration_system.json +12 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.refrigeration_walkins.json +1316 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.spc_typ.json +23067 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.unitary_acs.json +648 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.water_heaters.json +72 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.water_source_heat_pumps.json +31 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.water_source_heat_pumps_heating.json +13 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.AirLoopHVAC.rb +456 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.AirTerminalSingleDuctVAVReheat.rb +24 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.CoolingTower.rb +19 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.CoolingTowerSingleSpeed.rb +5 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.CoolingTowerTwoSpeed.rb +5 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.CoolingTowerVariableSpeed.rb +16 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.FanVariableVolume.rb +37 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.Space.rb +189 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.ThermalZone.rb +57 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.ZoneHVACComponent.rb +22 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.rb +16 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.boilers.json +68 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.chillers.json +490 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.construction_properties.json +21244 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.construction_sets.json +2111 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.economizers.json +676 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.elevators.json +372 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.energy_recovery.json +1096 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.ext_ltg.json +169 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.heat_pumps.json +664 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.heat_pumps_heating.json +204 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.heat_rejection.json +49 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.motors.json +274 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.prototype_inputs.json +3094 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.ref_cases.json +854 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.ref_lnup.json +562 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.refrigeration_compressors.json +58 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.refrigeration_condenser.json +238 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.refrigeration_system.json +12 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.refrigeration_walkins.json +1316 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.spc_typ.json +23067 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.unitary_acs.json +671 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.water_heaters.json +72 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.water_source_heat_pumps.json +31 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.water_source_heat_pumps_heating.json +13 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/data/ashrae_90_1.constructions.json +1662 -332
- data/lib/openstudio-standards/standards/ashrae_90_1/data/ashrae_90_1.fans.json +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/data/ashrae_90_1.materials.json +4994 -234
- data/lib/openstudio-standards/standards/ashrae_90_1/data/ashrae_90_1.schedules.json +1743 -161
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/comstock_doe_ref_1980_2004/data/ashrae_90_1.schedules.json +63 -99
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/comstock_doe_ref_1980_2004/data/comstock_doe_ref_1980_2004.ext_ltg.json +11 -11
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/data/doe_ref_1980_2004.heat_rejection.json +9 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/data/doe_ref_1980_2004.prototype_inputs.json +8 -8
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/data/doe_ref_1980_2004.spc_typ.json +5967 -2727
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/doe_ref_1980_2004.Model.rb +4 -4
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/comstock_doe_ref_pre_1980/data/ashrae_90_1.schedules.json +63 -99
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/comstock_doe_ref_pre_1980/data/comstock_doe_ref_pre_1980.ext_ltg.json +10 -10
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/data/doe_ref_pre_1980.heat_rejection.json +9 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/data/doe_ref_pre_1980.prototype_inputs.json +7 -7
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/data/doe_ref_pre_1980.spc_typ.json +5920 -2700
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/doe_ref_pre_1980.Model.rb +4 -4
- data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/data/nrel_zne_ready_2017.heat_rejection.json +9 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/data/nrel_zne_ready_2017.spc_typ.json +2011 -1112
- data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.AirLoopHVAC.rb +0 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.Model.rb +4 -4
- data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.PlantLoop.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.ZoneHVACComponent.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/data/ze_aedg_multifamily.heat_rejection.json +9 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/data/ze_aedg_multifamily.spc_typ.json +1946 -1106
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/data/ze_aedg_multifamily.water_heaters.json +2 -2
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.AirLoopHVAC.rb +3 -6
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.Model.rb +4 -4
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.PlantLoop.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.ZoneHVACComponent.rb +1 -1
- data/lib/openstudio-standards/standards/cbes/cbes.Model.rb +1 -3
- data/lib/openstudio-standards/standards/cbes/cbes.rb +1 -1
- data/lib/openstudio-standards/standards/deer/deer.AirLoopHVAC.rb +8 -13
- data/lib/openstudio-standards/standards/deer/deer.Model.rb +2 -2
- data/lib/openstudio-standards/standards/deer/deer.PlanarSurface.rb +2 -0
- data/lib/openstudio-standards/standards/deer/deer.Space.rb +1 -1
- data/lib/openstudio-standards/standards/deer/deer_2011/deer_2011.rb +0 -1
- data/lib/openstudio-standards/standards/deer/deer_2014/deer_2014.Space.rb +0 -1
- data/lib/openstudio-standards/standards/deer/deer_2014/deer_2014.rb +0 -1
- data/lib/openstudio-standards/standards/deer/deer_2015/deer_2015.Space.rb +0 -1
- data/lib/openstudio-standards/standards/deer/deer_2017/deer_2017.Space.rb +0 -1
- data/lib/openstudio-standards/standards/deer/deer_2020/deer_2020.AirLoopHVAC.rb +1 -1
- data/lib/openstudio-standards/standards/deer/deer_2020/deer_2020.FanVariableVolume.rb +1 -1
- data/lib/openstudio-standards/standards/deer/deer_2020/deer_2020.Space.rb +0 -1
- data/lib/openstudio-standards/standards/deer/deer_2025/deer_2025.AirLoopHVAC.rb +1 -1
- data/lib/openstudio-standards/standards/deer/deer_2025/deer_2025.FanVariableVolume.rb +1 -1
- data/lib/openstudio-standards/standards/deer/deer_2025/deer_2025.Space.rb +0 -1
- data/lib/openstudio-standards/standards/deer/deer_2030/deer_2030.AirLoopHVAC.rb +1 -1
- data/lib/openstudio-standards/standards/deer/deer_2030/deer_2030.FanVariableVolume.rb +1 -1
- data/lib/openstudio-standards/standards/deer/deer_2030/deer_2030.Space.rb +0 -1
- data/lib/openstudio-standards/standards/deer/deer_2035/deer_2035.AirLoopHVAC.rb +1 -1
- data/lib/openstudio-standards/standards/deer/deer_2035/deer_2035.FanVariableVolume.rb +1 -1
- data/lib/openstudio-standards/standards/deer/deer_2035/deer_2035.Space.rb +0 -1
- data/lib/openstudio-standards/standards/deer/deer_2040/deer_2040.AirLoopHVAC.rb +1 -1
- data/lib/openstudio-standards/standards/deer/deer_2040/deer_2040.FanVariableVolume.rb +1 -1
- data/lib/openstudio-standards/standards/deer/deer_2040/deer_2040.Space.rb +0 -1
- data/lib/openstudio-standards/standards/deer/deer_2045/deer_2045.AirLoopHVAC.rb +1 -1
- data/lib/openstudio-standards/standards/deer/deer_2045/deer_2045.FanVariableVolume.rb +1 -1
- data/lib/openstudio-standards/standards/deer/deer_2045/deer_2045.Space.rb +0 -1
- data/lib/openstudio-standards/standards/deer/deer_2050/deer_2050.AirLoopHVAC.rb +1 -1
- data/lib/openstudio-standards/standards/deer/deer_2050/deer_2050.FanVariableVolume.rb +1 -1
- data/lib/openstudio-standards/standards/deer/deer_2050/deer_2050.Space.rb +0 -1
- data/lib/openstudio-standards/standards/deer/deer_2055/deer_2055.AirLoopHVAC.rb +1 -1
- data/lib/openstudio-standards/standards/deer/deer_2055/deer_2055.FanVariableVolume.rb +1 -1
- data/lib/openstudio-standards/standards/deer/deer_2055/deer_2055.Space.rb +0 -1
- data/lib/openstudio-standards/standards/deer/deer_2060/deer_2060.AirLoopHVAC.rb +1 -1
- data/lib/openstudio-standards/standards/deer/deer_2060/deer_2060.FanVariableVolume.rb +1 -1
- data/lib/openstudio-standards/standards/deer/deer_2060/deer_2060.Space.rb +0 -1
- data/lib/openstudio-standards/standards/deer/deer_2065/deer_2065.AirLoopHVAC.rb +1 -1
- data/lib/openstudio-standards/standards/deer/deer_2065/deer_2065.FanVariableVolume.rb +1 -1
- data/lib/openstudio-standards/standards/deer/deer_2065/deer_2065.Space.rb +0 -1
- data/lib/openstudio-standards/standards/deer/deer_2070/deer_2070.AirLoopHVAC.rb +1 -1
- data/lib/openstudio-standards/standards/deer/deer_2070/deer_2070.FanVariableVolume.rb +1 -1
- data/lib/openstudio-standards/standards/deer/deer_2070/deer_2070.Space.rb +0 -1
- data/lib/openstudio-standards/standards/deer/deer_2075/deer_2075.AirLoopHVAC.rb +1 -1
- data/lib/openstudio-standards/standards/deer/deer_2075/deer_2075.FanVariableVolume.rb +1 -1
- data/lib/openstudio-standards/standards/deer/deer_2075/deer_2075.Space.rb +0 -1
- data/lib/openstudio-standards/standards/icc_iecc/icc_iecc_2015/icc_iecc_2015.rb +0 -1
- data/lib/openstudio-standards/standards/necb/BTAP1980TO2010/btap_1980to2010.rb +2 -18
- data/lib/openstudio-standards/standards/necb/BTAP1980TO2010/data/space_types.json +1677 -1005
- data/lib/openstudio-standards/standards/necb/BTAPPRE1980/btap_pre1980.rb +87 -15
- data/lib/openstudio-standards/standards/necb/BTAPPRE1980/building_envelope.rb +31 -19
- data/lib/openstudio-standards/standards/necb/BTAPPRE1980/data/curves.json +75 -0
- data/lib/openstudio-standards/standards/necb/BTAPPRE1980/data/heat_pumps.json +16 -16
- data/lib/openstudio-standards/standards/necb/BTAPPRE1980/data/space_types.json +1677 -1005
- data/lib/openstudio-standards/standards/necb/BTAPPRE1980/hvac_system_3_and_8_single_speed.rb +16 -2
- data/lib/openstudio-standards/standards/necb/BTAPPRE1980/hvac_system_4.rb +15 -0
- data/lib/openstudio-standards/standards/necb/BTAPPRE1980/hvac_system_6.rb +14 -0
- data/lib/openstudio-standards/standards/necb/ECMS/data/boiler_set.json +29 -0
- data/lib/openstudio-standards/standards/necb/ECMS/data/curves.json +913 -0
- data/lib/openstudio-standards/standards/necb/ECMS/data/equip_eff_lim.json +52 -0
- data/lib/openstudio-standards/standards/necb/ECMS/data/erv.json +109 -0
- data/lib/openstudio-standards/standards/necb/ECMS/data/furnace_set.json +23 -0
- data/lib/openstudio-standards/standards/necb/ECMS/data/heat_pumps.json +803 -0
- data/lib/openstudio-standards/standards/necb/ECMS/data/heat_pumps_heating.json +787 -0
- data/lib/openstudio-standards/standards/necb/ECMS/data/pv.json +112 -0
- data/lib/openstudio-standards/standards/necb/ECMS/data/shw_set.json +29 -0
- data/lib/openstudio-standards/standards/necb/ECMS/data/unitary_acs.json +50 -0
- data/lib/openstudio-standards/standards/necb/ECMS/ecms.rb +100 -0
- data/lib/openstudio-standards/standards/necb/ECMS/erv.rb +33 -0
- data/lib/openstudio-standards/standards/necb/ECMS/hvac_systems.rb +1729 -0
- data/lib/openstudio-standards/standards/necb/ECMS/nv.rb +189 -0
- data/lib/openstudio-standards/standards/necb/ECMS/pv_ground.rb +104 -0
- data/lib/openstudio-standards/standards/necb/NECB2011/autozone.rb +68 -33
- data/lib/openstudio-standards/standards/necb/NECB2011/beps_compliance_path.rb +24 -13
- data/lib/openstudio-standards/standards/necb/NECB2011/building_envelope.rb +110 -99
- data/lib/openstudio-standards/standards/necb/NECB2011/data/constants.json +24 -24
- data/lib/openstudio-standards/standards/necb/NECB2011/data/curves.json +50 -0
- data/lib/openstudio-standards/standards/necb/NECB2011/data/erv.json +31 -0
- data/lib/openstudio-standards/standards/necb/NECB2011/data/geometry/LowriseApartment.osm +39278 -0
- data/lib/openstudio-standards/standards/necb/NECB2011/data/led_lighting_data.json +2028 -0
- data/lib/openstudio-standards/standards/necb/NECB2011/data/space_types.json +1745 -1297
- data/lib/openstudio-standards/standards/necb/NECB2011/daylighting_control.md +70 -0
- data/lib/openstudio-standards/standards/necb/NECB2011/demand_controlled_ventilation.md +46 -0
- data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_1_multi_speed.rb +69 -107
- data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_1_single_speed.rb +41 -2
- data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_2_and_5.rb +15 -0
- data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_3_and_8_multi_speed.rb +139 -141
- data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_3_and_8_single_speed.rb +38 -2
- data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_4.rb +13 -0
- data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_6.rb +12 -0
- data/lib/openstudio-standards/standards/necb/NECB2011/hvac_systems.rb +492 -240
- data/lib/openstudio-standards/standards/necb/NECB2011/led_lighting.md +51 -0
- data/lib/openstudio-standards/standards/necb/NECB2011/lighting.rb +75 -9
- data/lib/openstudio-standards/standards/necb/NECB2011/necb_2011.rb +1229 -37
- data/lib/openstudio-standards/standards/necb/NECB2011/nv.md +74 -0
- data/lib/openstudio-standards/standards/necb/NECB2011/pv_ground.md +44 -0
- data/lib/openstudio-standards/standards/necb/NECB2011/qaqc/necb_qaqc.rb +11 -3
- data/lib/openstudio-standards/standards/necb/NECB2011/qaqc/qaqc_resources/neb_end_use_prices.csv +39 -84
- data/lib/openstudio-standards/standards/necb/NECB2011/service_water_heating.rb +1 -1
- data/lib/openstudio-standards/standards/necb/NECB2015/data/led_lighting_data.json +2883 -0
- data/lib/openstudio-standards/standards/necb/NECB2015/data/space_types.json +2554 -1916
- data/lib/openstudio-standards/standards/necb/NECB2015/necb_2015.rb +32 -1
- data/lib/openstudio-standards/standards/necb/NECB2017/data/led_lighting_data.json +2883 -0
- data/lib/openstudio-standards/standards/necb/NECB2017/data/space_types.json +2554 -1916
- data/lib/openstudio-standards/standards/necb/NECB2017/necb_2017.rb +29 -0
- data/lib/openstudio-standards/standards/oeesc/oeesc_2014/oeesc_2014.rb +0 -1
- data/lib/openstudio-standards/standards/standard.rb +6 -5
- data/lib/openstudio-standards/utilities/Add_template_field_to_json.rb +3 -3
- data/lib/openstudio-standards/utilities/convert_surfaces_to_adiabatic_necb_8426.rb +54 -54
- data/lib/openstudio-standards/utilities/generate_prototype_database.rb +2 -2
- data/lib/openstudio-standards/utilities/generate_space_types.rb +3 -3
- data/lib/openstudio-standards/utilities/logging.rb +7 -7
- data/lib/openstudio-standards/utilities/necb_to_epw_map.rb +14 -14
- data/lib/openstudio-standards/utilities/os_sim_extract.rb +25 -25
- data/lib/openstudio-standards/utilities/rename_surfaces.rb +10 -13
- data/lib/openstudio-standards/utilities/round_surf_coords.rb +18 -20
- data/lib/openstudio-standards/utilities/sched_create.rb +39 -41
- data/lib/openstudio-standards/utilities/set_mult_to_adiabatic.rb +31 -31
- data/lib/openstudio-standards/utilities/simulation.rb +13 -21
- data/lib/openstudio-standards/utilities/speacetype_map_converter.rb +10 -11
- data/lib/openstudio-standards/utilities/sqlfile.rb +6 -8
- data/lib/openstudio-standards/utilities/template_measure/measure.rb +108 -0
- data/lib/openstudio-standards/utilities/template_measure/measure.xml +162 -0
- data/lib/openstudio-standards/utilities/template_measure/resources/BTAPMeasureHelper.rb +448 -0
- data/lib/openstudio-standards/utilities/template_measure/tests/test.rb +160 -0
- data/lib/openstudio-standards/utilities/weatherData1_xlsx_to_json.rb +23 -26
- data/lib/openstudio-standards/version.rb +1 -1
- data/lib/openstudio-standards/weather/Weather.Model.rb +112 -87
- data/lib/openstudio-standards/weather/Weather.stat_file.rb +17 -17
- metadata +236 -2
@@ -46,4 +46,33 @@ class NECB2017 < NECB2015
|
|
46
46
|
return @standards_data
|
47
47
|
end
|
48
48
|
|
49
|
+
def set_lighting_per_area_led_lighting(space_type:, definition:, lighting_per_area_led_lighting:, lights_scale:)
|
50
|
+
|
51
|
+
# puts "#{space_type.name.to_s} - 'space_height' - #{space_height.to_s}"
|
52
|
+
#TODO: Note that 'occ_sens_lpd_frac' in this function has been removed for NECB2015 and 2017.
|
53
|
+
# ##### Since Atrium's LPD for LED lighting depends on atrium's height, the height of the atrium (if applicable) should be found.
|
54
|
+
standards_space_type = space_type.standardsSpaceType.is_initialized ? space_type.standardsSpaceType.get : nil #Sara
|
55
|
+
if standards_space_type.include? 'Atrium' # TODO: Note that since none of the archetypes has Atrium, this was tested for 'Dining'. #Atrium
|
56
|
+
puts "#{standards_space_type} - has atrium" # space_type.name.to_s
|
57
|
+
# puts space_height
|
58
|
+
if get_max_space_height_for_space_type(space_type: space_type) < 12.0
|
59
|
+
# TODO: Regarding the below equations, identify which version of ASHRAE 90.1 was used in NECB2017.
|
60
|
+
atrium_lpd_eq_smaller_12_intercept = 0
|
61
|
+
atrium_lpd_eq_smaller_12_slope = 1.06
|
62
|
+
atrium_lpd_eq_larger_12_intercept = 4.3
|
63
|
+
atrium_lpd_eq_larger_12_slope = 0.71
|
64
|
+
lighting_per_area_led_lighting_atrium = (atrium_lpd_eq_smaller_12_intercept + atrium_lpd_eq_smaller_12_slope * space_height) * 0.092903 # W/ft2
|
65
|
+
else # i.e. get_max_space_height_for_space_type >= 12.0
|
66
|
+
lighting_per_area_led_lighting_atrium = (atrium_lpd_eq_larger_12_intercept + atrium_lpd_eq_larger_12_slope * space_height) * 0.092903 # W/ft2
|
67
|
+
end
|
68
|
+
puts "#{standards_space_type} - has lighting_per_area_led_lighting_atrium - #{lighting_per_area_led_lighting_atrium}"
|
69
|
+
lighting_per_area_led_lighting = lighting_per_area_led_lighting_atrium
|
70
|
+
end
|
71
|
+
lighting_per_area_led_lighting *= lights_scale
|
72
|
+
|
73
|
+
definition.setWattsperSpaceFloorArea(OpenStudio.convert(lighting_per_area_led_lighting.to_f, 'W/ft^2', 'W/m^2').get)
|
74
|
+
|
75
|
+
OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.SpaceType', "#{space_type.name} set LPD to #{lighting_per_area_led_lighting} W/ft^2.")
|
76
|
+
end
|
77
|
+
|
49
78
|
end
|
@@ -27,13 +27,15 @@ class Standard
|
|
27
27
|
#
|
28
28
|
# @param name [String] the name of the Standard to build.
|
29
29
|
# valid choices are: DOE Pre-1980, DOE 1980-2004, 90.1-2004,
|
30
|
-
# 90.1-2007, 90.1-2010, 90.1-2013,
|
30
|
+
# 90.1-2007, 90.1-2010, 90.1-2013, 90.1-2016, 90.1-2019,
|
31
|
+
# NREL ZNE Ready 2017, NECB2011
|
31
32
|
# @example Create a new Standard object by name
|
32
33
|
# standard = Standard.build('NECB2011')
|
33
34
|
def self.build(name)
|
34
35
|
if STANDARDS_LIST[name].nil?
|
35
36
|
raise "ERROR: Did not find a class called '#{name}' to create in #{JSON.pretty_generate(STANDARDS_LIST)}"
|
36
37
|
end
|
38
|
+
|
37
39
|
OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.standard', "Using OpenStudio Standards version #{OpenstudioStandards::VERSION} with template #{name}.")
|
38
40
|
return STANDARDS_LIST[name].new
|
39
41
|
end
|
@@ -73,7 +75,6 @@ class Standard
|
|
73
75
|
return lookup_name
|
74
76
|
end
|
75
77
|
|
76
|
-
|
77
78
|
# Loads the openstudio standards dataset for this standard.
|
78
79
|
# For standards subclassed from other standards, the lowest-level
|
79
80
|
# data will override data supplied at a higher level.
|
@@ -101,7 +102,7 @@ class Standard
|
|
101
102
|
data.each_pair do |key, objs|
|
102
103
|
# Override the template in inherited files to match the instantiated template
|
103
104
|
objs.each do |obj|
|
104
|
-
if obj.
|
105
|
+
if obj.key?('template')
|
105
106
|
obj['template'] = template
|
106
107
|
end
|
107
108
|
end
|
@@ -115,13 +116,13 @@ class Standard
|
|
115
116
|
end
|
116
117
|
else
|
117
118
|
OpenStudio.logFree(OpenStudio::Debug, 'openstudio.standards.standard', "Loading JSON files from #{data_dir}")
|
118
|
-
files = Dir.glob("#{data_dir}/data/*.json").select {|e| File.file? e}
|
119
|
+
files = Dir.glob("#{data_dir}/data/*.json").select { |e| File.file? e }
|
119
120
|
files.each do |file|
|
120
121
|
data = JSON.parse(File.read(file))
|
121
122
|
data.each_pair do |key, objs|
|
122
123
|
# Override the template in inherited files to match the instantiated template
|
123
124
|
objs.each do |obj|
|
124
|
-
if obj.
|
125
|
+
if obj.key?('template')
|
125
126
|
obj['template'] = template
|
126
127
|
end
|
127
128
|
end
|
@@ -9,7 +9,7 @@ class Add_template_field_to_json
|
|
9
9
|
# Name of file you want this script to produce:
|
10
10
|
out_json_file = './necb_hvac_system_selection_type_mod.json'
|
11
11
|
# What template version do you want to add:
|
12
|
-
template_version = {
|
12
|
+
template_version = { 'template' => 'NECB2011' }
|
13
13
|
# Open the json file and put the data in data_tables:
|
14
14
|
file = File.read(in_json_file)
|
15
15
|
data_tables = JSON.parse(file)
|
@@ -18,5 +18,5 @@ class Add_template_field_to_json
|
|
18
18
|
data_tables['tables'][0]['table'][index] = template_version.merge(data_table)
|
19
19
|
end
|
20
20
|
# Save the modified hash to a the file and location defined in out_json_file
|
21
|
-
File.open(out_json_file,
|
22
|
-
end
|
21
|
+
File.open(out_json_file, 'w') { |each_file| each_file.write(JSON.pretty_generate(data_tables)) }
|
22
|
+
end
|
@@ -2,7 +2,7 @@ require_relative 'minitest_helper'
|
|
2
2
|
require_relative 'create_doe_prototype_helper'
|
3
3
|
require 'json'
|
4
4
|
|
5
|
-
$LOAD_PATH.unshift File.expand_path('
|
5
|
+
$LOAD_PATH.unshift File.expand_path('../../../openstudio-standards/lib', __dir__)
|
6
6
|
def run_dir(test_name)
|
7
7
|
# always generate test output in specially named 'output' directory so result files are not made part of the measure
|
8
8
|
"#{File.dirname(__FILE__)}/output/#{test_name}"
|
@@ -40,30 +40,29 @@ def calculate_max_delta_t(adj_DaySchedule, cur_DaySchedule)
|
|
40
40
|
# elsif (cur_DaySchedule.nil? and cur_DaySchedule.nil?)
|
41
41
|
# return nil
|
42
42
|
# end
|
43
|
-
if
|
44
|
-
raise
|
43
|
+
if cur_DaySchedule.nil? || adj_DaySchedule.nil?
|
44
|
+
raise 'cur_DaySchedule or adj_DaySchedule is nil'
|
45
45
|
return nil
|
46
46
|
end
|
47
|
-
|
47
|
+
|
48
48
|
0.upto(23) do |hour|
|
49
|
-
time = OpenStudio::Time.new(0,hour,0,0)
|
49
|
+
time = OpenStudio::Time.new(0, hour, 0, 0)
|
50
50
|
difference = (cur_DaySchedule.getValue(time) - adj_DaySchedule.getValue(time)).abs
|
51
51
|
max = difference if difference > max
|
52
52
|
end
|
53
53
|
return max
|
54
|
-
|
55
54
|
end
|
56
55
|
|
57
|
-
#returns -999 if current surface does not have heating OR cooling schedule
|
58
|
-
#returns -997 if all adjacent surfaces does not have BOTH heating AND cooling
|
59
|
-
#returns nil if the surface does not have adjacent surface
|
56
|
+
# returns -999 if current surface does not have heating OR cooling schedule
|
57
|
+
# returns -997 if all adjacent surfaces does not have BOTH heating AND cooling
|
58
|
+
# returns nil if the surface does not have adjacent surface
|
60
59
|
def get_schedule_max_delta_t(model, surface)
|
61
|
-
#find spaces that share that surface.
|
62
|
-
#load the schedules for every day type of the year. for both spaces. If the space is does not have a heating schedule..assume the temperature is the -10C always for now.
|
63
|
-
#iterate through every hour. and determine delta T
|
64
|
-
# Store the max delta T.
|
60
|
+
# find spaces that share that surface.
|
61
|
+
# load the schedules for every day type of the year. for both spaces. If the space is does not have a heating schedule..assume the temperature is the -10C always for now.
|
62
|
+
# iterate through every hour. and determine delta T
|
63
|
+
# Store the max delta T.
|
65
64
|
# end iteration
|
66
|
-
#return max deltaT
|
65
|
+
# return max deltaT
|
67
66
|
cur_space = nil
|
68
67
|
delta_t = -998
|
69
68
|
adjacent_surface_found = false
|
@@ -74,52 +73,54 @@ def get_schedule_max_delta_t(model, surface)
|
|
74
73
|
end
|
75
74
|
end
|
76
75
|
if cur_space.nil?
|
77
|
-
raise
|
76
|
+
raise "Surface: [#{surface.name}] does not belong to any space"
|
78
77
|
end
|
78
|
+
|
79
79
|
model.getSpaces.each do |space|
|
80
80
|
if space == surface.space.get
|
81
81
|
next
|
82
82
|
end
|
83
|
-
|
83
|
+
|
84
|
+
surf = BTAP::Geometry::Surfaces.get_surfaces_from_spaces([space])
|
84
85
|
surf.each do |surf|
|
85
86
|
unless surf.adjacentSurface.empty?
|
86
87
|
adj_surface = surf.adjacentSurface.get
|
87
88
|
if adj_surface == surface
|
88
89
|
adjacent_surface_found = true
|
89
|
-
unless space.thermalZone
|
90
|
-
adj_surface_thermal_zone = space.thermalZone
|
91
|
-
cur_surface_thermal_zone = cur_space.thermalZone
|
90
|
+
unless space.thermalZone.empty?
|
91
|
+
adj_surface_thermal_zone = space.thermalZone.get
|
92
|
+
cur_surface_thermal_zone = cur_space.thermalZone.get
|
92
93
|
unless adj_surface_thermal_zone.thermostatSetpointDualSetpoint.empty?
|
93
94
|
adj_thermostat = adj_surface_thermal_zone.thermostatSetpointDualSetpoint.get
|
94
95
|
cur_thermostat = cur_surface_thermal_zone.thermostatSetpointDualSetpoint.get
|
95
|
-
#if current surface does not have a thermostat schedule, then it will return -999 instead of nil because nil is reserved for surfaces without adjacent surface
|
96
|
-
if
|
96
|
+
# if current surface does not have a thermostat schedule, then it will return -999 instead of nil because nil is reserved for surfaces without adjacent surface
|
97
|
+
if cur_thermostat.getHeatingSchedule.empty? || cur_thermostat.getCoolingSchedule.empty?
|
97
98
|
return -999
|
98
99
|
end
|
99
|
-
#after this point current surface should have BOTH heating and cooling schedule
|
100
|
-
#if adjacent surface does not have a heating OR cooling schedule it will be skipped
|
101
|
-
if
|
100
|
+
# after this point current surface should have BOTH heating and cooling schedule
|
101
|
+
# if adjacent surface does not have a heating OR cooling schedule it will be skipped
|
102
|
+
if adj_thermostat.getHeatingSchedule.empty? || adj_thermostat.getCoolingSchedule.empty?
|
102
103
|
next
|
103
104
|
else
|
104
105
|
atleast_one_adjacent_surface_has_schedule = true
|
105
106
|
end
|
106
|
-
|
107
|
-
startDate = OpenStudio::Date.new(OpenStudio::MonthOfYear.new(1), 1,2009)
|
108
|
-
endDate = OpenStudio::Date.new(OpenStudio::MonthOfYear.new(1), 7,2009)
|
109
|
-
|
110
|
-
adj_surface_heating_day_schedule_array = adj_thermostat.getHeatingSchedule
|
111
|
-
adj_surface_cooling_day_schedule_array = adj_thermostat.getCoolingSchedule
|
112
|
-
cur_surface_heating_day_schedule_array = cur_thermostat.getHeatingSchedule
|
113
|
-
cur_surface_cooling_day_schedule_array = cur_thermostat.getCoolingSchedule
|
107
|
+
|
108
|
+
startDate = OpenStudio::Date.new(OpenStudio::MonthOfYear.new(1), 1, 2009)
|
109
|
+
endDate = OpenStudio::Date.new(OpenStudio::MonthOfYear.new(1), 7, 2009)
|
110
|
+
|
111
|
+
adj_surface_heating_day_schedule_array = adj_thermostat.getHeatingSchedule.get.to_ScheduleRuleset.get.getDaySchedules(startDate, endDate) unless adj_thermostat.getHeatingSchedule.empty?
|
112
|
+
adj_surface_cooling_day_schedule_array = adj_thermostat.getCoolingSchedule.get.to_ScheduleRuleset.get.getDaySchedules(startDate, endDate) unless adj_thermostat.getCoolingSchedule.empty?
|
113
|
+
cur_surface_heating_day_schedule_array = cur_thermostat.getHeatingSchedule.get.to_ScheduleRuleset.get.getDaySchedules(startDate, endDate) unless cur_thermostat.getHeatingSchedule.empty?
|
114
|
+
cur_surface_cooling_day_schedule_array = cur_thermostat.getCoolingSchedule.get.to_ScheduleRuleset.get.getDaySchedules(startDate, endDate) unless cur_thermostat.getCoolingSchedule.empty?
|
114
115
|
delta_t = -998
|
115
|
-
heating_delta_t =
|
116
|
+
heating_delta_t = []
|
116
117
|
cooling_delta_t = []
|
117
|
-
1.upto(7)
|
118
|
-
puts
|
119
|
-
puts calculate_max_delta_t(adj_surface_heating_day_schedule_array[i-1],cur_surface_heating_day_schedule_array[i-1])
|
120
|
-
heating_delta_t << calculate_max_delta_t(adj_surface_heating_day_schedule_array[i-1],cur_surface_heating_day_schedule_array[i-1])
|
121
|
-
cooling_delta_t << calculate_max_delta_t(adj_surface_cooling_day_schedule_array[i-1],cur_surface_cooling_day_schedule_array[i-1])
|
122
|
-
|
118
|
+
1.upto(7) do |i|
|
119
|
+
puts 'mee mee mee'
|
120
|
+
puts calculate_max_delta_t(adj_surface_heating_day_schedule_array[i - 1], cur_surface_heating_day_schedule_array[i - 1])
|
121
|
+
heating_delta_t << calculate_max_delta_t(adj_surface_heating_day_schedule_array[i - 1], cur_surface_heating_day_schedule_array[i - 1])
|
122
|
+
cooling_delta_t << calculate_max_delta_t(adj_surface_cooling_day_schedule_array[i - 1], cur_surface_cooling_day_schedule_array[i - 1])
|
123
|
+
end
|
123
124
|
delta_t = [heating_delta_t.max, cooling_delta_t.max].max
|
124
125
|
puts "delta_t: #{delta_t}"
|
125
126
|
end
|
@@ -128,7 +129,7 @@ def get_schedule_max_delta_t(model, surface)
|
|
128
129
|
end
|
129
130
|
end
|
130
131
|
end
|
131
|
-
#adjacent_surface_found ? (atleast_one_adjacent_surface_has_schedule ? (return delta_t) : (return -997)) : (return nil)
|
132
|
+
# adjacent_surface_found ? (atleast_one_adjacent_surface_has_schedule ? (return delta_t) : (return -997)) : (return nil)
|
132
133
|
if adjacent_surface_found
|
133
134
|
if atleast_one_adjacent_surface_has_schedule
|
134
135
|
return delta_t
|
@@ -139,7 +140,7 @@ def get_schedule_max_delta_t(model, surface)
|
|
139
140
|
return nil
|
140
141
|
end
|
141
142
|
end
|
142
|
-
#LargeOffice
|
143
|
+
# LargeOffice
|
143
144
|
class TestNECBSurfaces8426Custom < CreateDOEPrototypeBuildingTest
|
144
145
|
building_types = [
|
145
146
|
'LargeOffice',
|
@@ -149,10 +150,10 @@ class TestNECBSurfaces8426Custom < CreateDOEPrototypeBuildingTest
|
|
149
150
|
'PrimarySchool'
|
150
151
|
]
|
151
152
|
|
152
|
-
templates = [
|
153
|
+
templates = ['NECB 2011']
|
153
154
|
climate_zones = ['NECB HDD Method']
|
154
155
|
epw_files = [
|
155
|
-
# 'CAN_BC_Vancouver.718920_CWEC.epw',# CZ 5 - Gas HDD = 3019
|
156
|
+
# 'CAN_BC_Vancouver.718920_CWEC.epw',# CZ 5 - Gas HDD = 3019
|
156
157
|
# 'CAN_ON_Toronto.716240_CWEC.epw', #CZ 6 - Gas HDD = 4088
|
157
158
|
# 'CAN_PQ_Sherbrooke.716100_CWEC.epw', #CZ 7a - Electric HDD = 5068
|
158
159
|
# 'CAN_YT_Whitehorse.719640_CWEC.epw', #CZ 7b - FuelOil1 HDD = 6946
|
@@ -166,39 +167,38 @@ class TestNECBSurfaces8426Custom < CreateDOEPrototypeBuildingTest
|
|
166
167
|
unless File.exist?(run_dir(test_name))
|
167
168
|
FileUtils.mkdir_p(run_dir(test_name))
|
168
169
|
end
|
169
|
-
#assert(File.exist?(run_dir(test_name)))
|
170
|
+
# assert(File.exist?(run_dir(test_name)))
|
170
171
|
|
171
172
|
if File.exist?(report_path(test_name))
|
172
173
|
FileUtils.rm(report_path(test_name))
|
173
174
|
end
|
174
175
|
|
175
|
-
#assert(File.exist?(model_in_path))
|
176
|
+
# assert(File.exist?(model_in_path))
|
176
177
|
|
177
178
|
if File.exist?(model_out_path(test_name))
|
178
179
|
FileUtils.rm(model_out_path(test_name))
|
179
180
|
end
|
180
181
|
output_folder = "#{File.dirname(__FILE__)}/output/#{test_name}"
|
181
182
|
model = OpenStudio::Model::Model.new
|
182
|
-
model.create_prototype_building(building,'NECB 2011','NECB HDD Method',weather,output_folder)
|
183
|
+
model.create_prototype_building(building, 'NECB 2011', 'NECB HDD Method', weather, output_folder)
|
183
184
|
BTAP::Environment::WeatherFile.new(weather).set_weather_file(model)
|
184
185
|
model.getSpaces.each do |space|
|
185
|
-
#puts space.name
|
186
|
+
# puts space.name
|
186
187
|
hash[:"Space: #{space.name}"] = {}
|
187
188
|
hash[:"Space: #{space.name}"][:"With Adjacent Surface"] = {}
|
188
189
|
hash[:"Space: #{space.name}"][:"No Adjacent surface"] = []
|
189
|
-
surfaces = BTAP::Geometry::Surfaces
|
190
|
+
surfaces = BTAP::Geometry::Surfaces.get_surfaces_from_spaces([space])
|
190
191
|
surfaces.each do |surface|
|
191
192
|
max_delta_t = get_schedule_max_delta_t(model, surface)
|
192
|
-
|
193
|
-
hash[:"Space: #{space.name}"][:"With Adjacent Surface"][:"#{surface.name}"] = max_delta_t
|
194
|
-
else
|
193
|
+
if max_delta_t.nil?
|
195
194
|
hash[:"Space: #{space.name}"][:"No Adjacent surface"] << surface.name
|
195
|
+
else
|
196
|
+
hash[:"Space: #{space.name}"][:"With Adjacent Surface"][:"#{surface.name}"] = max_delta_t
|
196
197
|
end
|
197
198
|
end
|
198
199
|
end
|
199
|
-
#model.save(model_out_path(test_name), true)
|
200
|
-
File.open("#{output_folder}/max_delta_t.json", 'w') {|f| f.write(JSON.pretty_generate(hash)) }
|
200
|
+
# model.save(model_out_path(test_name), true)
|
201
|
+
File.open("#{output_folder}/max_delta_t.json", 'w') { |f| f.write(JSON.pretty_generate(hash)) }
|
201
202
|
end
|
202
203
|
end
|
203
|
-
|
204
204
|
end
|
@@ -26,8 +26,8 @@ nrel_building_types = [
|
|
26
26
|
|
27
27
|
]
|
28
28
|
|
29
|
-
templates = ['90.1-2004', '90.1-2007', '90.1-2010', '90.1-2013', 'DOE Ref Pre-1980', 'DOE Ref 1980-2004', 'NECB2011']
|
30
|
-
new_templates = ['ASHRAE9012004', 'ASHRAE9012007', 'ASHRAE9012010', 'ASHRAE9012013', 'DOERefPre1980', 'DOERef1980to2004', 'NECB2011']
|
29
|
+
templates = ['90.1-2004', '90.1-2007', '90.1-2010', '90.1-2013', '90.1-2016', '90.1-2019', 'DOE Ref Pre-1980', 'DOE Ref 1980-2004', 'NECB2011']
|
30
|
+
new_templates = ['ASHRAE9012004', 'ASHRAE9012007', 'ASHRAE9012010', 'ASHRAE9012013', 'ASHRAE9012016', 'ASHRAE9012019', 'DOERefPre1980', 'DOERef1980to2004', 'NECB2011']
|
31
31
|
|
32
32
|
array = []
|
33
33
|
Dir.glob('/home/osdev/openstudio-standards/openstudio-standards/data/geometry/archetypes//**/*.json').each do |filename|
|
@@ -1,8 +1,8 @@
|
|
1
1
|
require_relative '../../../test/helpers/minitest_helper'
|
2
2
|
require_relative '../../../test/helpers/create_doe_prototype_helper'
|
3
3
|
|
4
|
-
['NECB2011','NECB2015'].each do |template|
|
4
|
+
['NECB2011', 'NECB2015'].each do |template|
|
5
5
|
model = OpenStudio::Model::Model.new
|
6
6
|
Standard.build(template).add_all_spacetypes_to_model(model)
|
7
|
-
BTAP::FileIO
|
8
|
-
end
|
7
|
+
BTAP::FileIO.save_osm(model, File.join(File.dirname(__FILE__), 'output', "#{template}_space_types.osm"))
|
8
|
+
end
|
@@ -1,14 +1,13 @@
|
|
1
|
-
|
2
1
|
# Open a log for the library
|
3
|
-
$OPENSTUDIO_LOG = OpenStudio::StringStreamLogSink.new
|
4
|
-
$OPENSTUDIO_LOG.setLogLevel(OpenStudio::Debug)
|
2
|
+
$OPENSTUDIO_LOG = OpenStudio::StringStreamLogSink.new
|
3
|
+
$OPENSTUDIO_LOG.setLogLevel(OpenStudio::Debug)
|
5
4
|
|
6
5
|
# Log the info, warning, and error messages to a runner.
|
7
6
|
# runner @param [Runner] The Measure runner to add the messages to
|
8
7
|
# debug @param [Boolean] If true, include the debug messages in the log
|
9
8
|
# @return [Runner] The same Measure runner, with messages from the openstudio-standards library added
|
10
9
|
def log_messages_to_runner(runner, debug = false)
|
11
|
-
$OPENSTUDIO_LOG.logMessages.each do |msg|
|
10
|
+
$OPENSTUDIO_LOG.logMessages.each do |msg|
|
12
11
|
# DLM: you can filter on log channel here for now
|
13
12
|
if /openstudio.*/ =~ msg.logChannel # /openstudio\.model\..*/
|
14
13
|
# Skip certain messages that are irrelevant/misleading
|
@@ -44,7 +43,7 @@ def log_messages_to_file(file_path, debug = false)
|
|
44
43
|
messages = []
|
45
44
|
|
46
45
|
File.open(file_path, 'w') do |file|
|
47
|
-
$OPENSTUDIO_LOG.logMessages.each do |msg|
|
46
|
+
$OPENSTUDIO_LOG.logMessages.each do |msg|
|
48
47
|
# DLM: you can filter on log channel here for now
|
49
48
|
if /openstudio.*/ =~ msg.logChannel # /openstudio\.model\..*/
|
50
49
|
# Skip certain messages that are irrelevant/misleading
|
@@ -87,7 +86,7 @@ end
|
|
87
86
|
def get_logs(log_type = OpenStudio::Error)
|
88
87
|
errors = []
|
89
88
|
|
90
|
-
$OPENSTUDIO_LOG.logMessages.each do |msg|
|
89
|
+
$OPENSTUDIO_LOG.logMessages.each do |msg|
|
91
90
|
if /openstudio.*/ =~ msg.logChannel
|
92
91
|
# Skip certain messages that are irrelevant/misleading
|
93
92
|
next if msg.logMessage.include?('UseWeatherFile') || # 'UseWeatherFile' is not yet a supported option for YearDescription
|
@@ -99,6 +98,7 @@ def get_logs(log_type = OpenStudio::Error)
|
|
99
98
|
msg.logMessage.include?('has multiple parents') || # Bogus errors about curves having multiple parents
|
100
99
|
msg.logMessage.include?('does not have an Output') || # Warning from EMS translation
|
101
100
|
msg.logMessage.include?('Prior to OpenStudio 2.6.2, this field was returning a double, it now returns an Optional double') # Warning about OS API change
|
101
|
+
|
102
102
|
# Only fail on the errors
|
103
103
|
if msg.logLevel == log_type
|
104
104
|
errors << "[#{msg.logChannel}] #{msg.logMessage}"
|
@@ -110,5 +110,5 @@ def get_logs(log_type = OpenStudio::Error)
|
|
110
110
|
end
|
111
111
|
|
112
112
|
def reset_log
|
113
|
-
$OPENSTUDIO_LOG.resetStringStream
|
113
|
+
$OPENSTUDIO_LOG.resetStringStream
|
114
114
|
end
|
@@ -1,18 +1,18 @@
|
|
1
|
-
require
|
1
|
+
require 'json'
|
2
2
|
|
3
3
|
def distance(loc1, loc2)
|
4
|
-
rad_per_deg = Math::PI/180 # PI / 180
|
4
|
+
rad_per_deg = Math::PI / 180 # PI / 180
|
5
5
|
rkm = 6371 # Earth radius in kilometers
|
6
6
|
rm = rkm * 1000 # Radius in meters
|
7
7
|
|
8
|
-
dlat_rad = (loc2[0]-loc1[0]) * rad_per_deg # Delta, converted to rad
|
9
|
-
dlon_rad = (loc2[1]-loc1[1]) * rad_per_deg
|
8
|
+
dlat_rad = (loc2[0] - loc1[0]) * rad_per_deg # Delta, converted to rad
|
9
|
+
dlon_rad = (loc2[1] - loc1[1]) * rad_per_deg
|
10
10
|
|
11
|
-
lat1_rad, lon1_rad = loc1.map {|i| i * rad_per_deg}
|
12
|
-
lat2_rad, lon2_rad = loc2.map {|i| i * rad_per_deg}
|
11
|
+
lat1_rad, lon1_rad = loc1.map { |i| i * rad_per_deg }
|
12
|
+
lat2_rad, lon2_rad = loc2.map { |i| i * rad_per_deg }
|
13
13
|
|
14
|
-
a = Math.sin(dlat_rad/2)**2 + Math.cos(lat1_rad) * Math.cos(lat2_rad) * Math.sin(dlon_rad/2)**2
|
15
|
-
c = 2 * Math
|
14
|
+
a = Math.sin(dlat_rad / 2)**2 + Math.cos(lat1_rad) * Math.cos(lat2_rad) * Math.sin(dlon_rad / 2)**2
|
15
|
+
c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a))
|
16
16
|
rm * c # Delta in meters
|
17
17
|
end
|
18
18
|
|
@@ -26,18 +26,18 @@ JSON.parse(File.read(epw_data_file_path)).each do |epw|
|
|
26
26
|
necb_closest = nil
|
27
27
|
JSON.parse(File.read(necb_data_file_path))['necb_2015_table_c1']['table'].each do |necb|
|
28
28
|
next if necb['lat_long'].nil?
|
29
|
+
|
29
30
|
d = distance([epw['latitude'].to_f, epw['longitude']], necb['lat_long'])
|
30
31
|
if min_distance > d
|
31
32
|
min_distance = d
|
32
33
|
necb_closest = necb
|
33
34
|
end
|
34
35
|
end
|
35
|
-
array_of_hashes << {'epw_file' => epw['file'],
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
}
|
36
|
+
array_of_hashes << { 'epw_file' => epw['file'],
|
37
|
+
'necb_location' => "#{necb_closest['city']},#{necb_closest['province']}",
|
38
|
+
'hdd_difference' => (epw['hdd18'].to_f - necb_closest['degree_days_below_18_c'].to_f),
|
39
|
+
'distance_km' => format('%.2f', (min_distance / 1000.0)),
|
40
|
+
'hdd18' => necb_closest['degree_days_below_18_c'] }
|
41
41
|
end
|
42
42
|
File.write("#{File.dirname(__FILE__)}/../standards/necb/NECB2011/data/epw_file_to_necb_hdd_map.json", JSON.pretty_generate(array_of_hashes))
|
43
43
|
|
@@ -14,35 +14,35 @@ class OS_sim_extract
|
|
14
14
|
area_scale_factor = nil
|
15
15
|
epw_file = nil
|
16
16
|
outdoor_air = false
|
17
|
-
data_table[
|
18
|
-
if measure[
|
19
|
-
building_type = measure[
|
20
|
-
template_version = measure[
|
21
|
-
area_scale_factor = measure[
|
22
|
-
epw_file = measure[
|
23
|
-
elsif measure[
|
17
|
+
data_table['measures'].each do |measure|
|
18
|
+
if measure['name'] == 'btap_create_necb_prototype_building_scale'
|
19
|
+
building_type = measure['arguments']['building_type']
|
20
|
+
template_version = measure['arguments']['template']
|
21
|
+
area_scale_factor = measure['arguments']['area_scale_factor']
|
22
|
+
epw_file = measure['arguments']['epw_file']
|
23
|
+
elsif measure['display_name'] == 'BTAPIdealAirLoadsOptionsEplus'
|
24
24
|
outdoor_air = true
|
25
25
|
end
|
26
26
|
end
|
27
27
|
extract_hash = {
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
28
|
+
conditioned_floor_area: data_table['building']['conditioned_floor_area_m2'],
|
29
|
+
exterior_area: data_table['building']['exterior_area_m2'],
|
30
|
+
volume: data_table['building']['volume'],
|
31
|
+
hdd: data_table['geography']['hdd'],
|
32
|
+
cdd: data_table['geography']['cdd'],
|
33
|
+
heating_gj: data_table['end_uses']['heating_gj'],
|
34
|
+
cooling_gj: data_table['end_uses']['cooling_gj'],
|
35
|
+
ep_conditioned_floor_area_m2: data_table['code_metrics']['ep_conditioned_floor_area_m2'],
|
36
|
+
os_conditioned_floor_area_m2: data_table['code_metrics']['os_conditioned_floor_area_m2'],
|
37
|
+
building_tedi_gj_per_m2: data_table['code_metrics']['building_tedi_gj_per_m2'],
|
38
|
+
building_medi_gj_per_m2: data_table['code_metrics']['building_medi_gj_per_m2'],
|
39
|
+
building_type: building_type,
|
40
|
+
template_version: template_version,
|
41
|
+
epw_file: epw_file,
|
42
|
+
area_scale_factor: area_scale_factor,
|
43
|
+
outdoor_air: outdoor_air
|
44
44
|
}
|
45
45
|
output_array << extract_hash
|
46
46
|
end
|
47
|
-
File.open(out_json_file,
|
48
|
-
end
|
47
|
+
File.open(out_json_file, 'w') { |each_file| each_file.write(JSON.pretty_generate(output_array)) }
|
48
|
+
end
|