openstudio-standards 0.7.1 → 0.8.0.rc1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/data/geometry/ASHRAE90120162019LargeHotel.json +58 -13
- data/data/geometry/ASHRAELargeHotel.json +58 -13
- data/data/standards/OpenStudio_Standards-ashrae_90_1-ALL-comstock(space_types).xlsx +0 -0
- data/data/standards/export_OpenStudio_libraries.rb +2 -2
- data/data/standards/manage_OpenStudio_Standards.rb +6 -6
- data/data/standards/openstudio_standards_duplicates_log.csv +7961 -1
- data/data/standards/test_performance_expected_dd_results.csv +2016 -2004
- data/lib/openstudio-standards/btap/fileio.rb +171 -5
- data/lib/openstudio-standards/constructions/create.rb +38 -4
- data/lib/openstudio-standards/constructions/modify.rb +10 -3
- data/lib/openstudio-standards/create_typical/create_typical.rb +42 -28
- data/lib/openstudio-standards/create_typical/space_type_information.rb +160 -0
- data/lib/openstudio-standards/create_typical/space_type_ratios.rb +16 -19
- data/lib/openstudio-standards/exterior_lighting/create.rb +454 -0
- data/lib/openstudio-standards/exterior_lighting/data/entryways.csv +52 -0
- data/lib/openstudio-standards/exterior_lighting/data/parking.csv +54 -0
- data/lib/openstudio-standards/exterior_lighting/data/typical_exterior_lighting.json +37 -0
- data/lib/openstudio-standards/exterior_lighting/information.rb +202 -0
- data/lib/openstudio-standards/geometry/information.rb +49 -2
- data/lib/openstudio-standards/hvac/components/create.rb +169 -0
- data/lib/openstudio-standards/hvac/components/modify.rb +42 -0
- data/lib/openstudio-standards/hvac/exhaust/create_exhaust_fan.rb +108 -0
- data/lib/openstudio-standards/hvac/exhaust/data/convert_data.rb +86 -0
- data/lib/openstudio-standards/hvac/exhaust/data/typical_exhaust.csv +18 -0
- data/lib/openstudio-standards/hvac/exhaust/data/typical_exhaust.json +89 -0
- data/lib/openstudio-standards/infiltration/nist_infiltration.rb +25 -13
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.LargeHotel.rb +0 -64
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.LargeOffice.rb +0 -25
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.MediumOffice.rb +0 -25
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.Warehouse.rb +1 -11
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.AirConditionerVariableRefrigerantFlow.rb +5 -1
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.Fan.rb +0 -7
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.HeatExchangerAirToAirSensibleAndLatent.rb +36 -18
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.hvac.rb +1 -1
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.rb +121 -239
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.hvac_systems.rb +179 -151
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.refrigeration.rb +0 -466
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.utilities.rb +18 -2
- data/lib/openstudio-standards/refrigeration/create_case.rb +125 -0
- data/lib/openstudio-standards/refrigeration/create_compressor.rb +78 -0
- data/lib/openstudio-standards/refrigeration/create_compressor_rack.rb +48 -0
- data/lib/openstudio-standards/refrigeration/create_refrigeration_system.rb +74 -0
- data/lib/openstudio-standards/refrigeration/create_typical_refrigeration.rb +161 -0
- data/lib/openstudio-standards/refrigeration/create_walkin.rb +116 -0
- data/lib/openstudio-standards/refrigeration/data/refrigerated_cases.csv +31 -0
- data/lib/openstudio-standards/refrigeration/data/refrigerated_walkins.csv +76 -0
- data/lib/openstudio-standards/refrigeration/data/refrigeration_compressors.csv +13 -0
- data/lib/openstudio-standards/refrigeration/data/typical_refrigerated_cases.csv +17 -0
- data/lib/openstudio-standards/refrigeration/data/typical_refrigerated_walkins.csv +53 -0
- data/lib/openstudio-standards/refrigeration/information.rb +130 -0
- data/lib/openstudio-standards/schedules/parametric.rb +1 -1
- data/lib/openstudio-standards/service_water_heating/create_typical.rb +299 -0
- data/lib/openstudio-standards/service_water_heating/create_water_heating_loop.rb +16 -14
- data/lib/openstudio-standards/service_water_heating/data/convert_data.rb +119 -0
- data/lib/openstudio-standards/service_water_heating/data/typical_water_use_equipment.csv +54 -0
- data/lib/openstudio-standards/service_water_heating/data/typical_water_use_equipment.json +810 -0
- data/lib/openstudio-standards/service_water_heating/information.rb +69 -0
- data/lib/openstudio-standards/sql_file/fenestration.rb +1 -1
- data/lib/openstudio-standards/standards/Standards.AirConditionerVariableRefrigerantFlow.rb +154 -0
- data/lib/openstudio-standards/standards/Standards.AirLoopHVAC.rb +35 -12
- data/lib/openstudio-standards/standards/Standards.CoilCoolingDXMultiSpeed.rb +110 -61
- data/lib/openstudio-standards/standards/Standards.CoilCoolingDXSingleSpeed.rb +128 -29
- data/lib/openstudio-standards/standards/Standards.CoilCoolingDXTwoSpeed.rb +103 -38
- data/lib/openstudio-standards/standards/Standards.CoilCoolingWaterToAirHeatPumpEquationFit.rb +1 -1
- data/lib/openstudio-standards/standards/Standards.CoilDX.rb +106 -5
- data/lib/openstudio-standards/standards/Standards.CoilHeatingGasMultiStage.rb +8 -8
- data/lib/openstudio-standards/standards/Standards.CoolingTower.rb +44 -17
- data/lib/openstudio-standards/standards/Standards.Fan.rb +32 -21
- data/lib/openstudio-standards/standards/Standards.FluidCooler.rb +45 -18
- data/lib/openstudio-standards/standards/Standards.HeatExchangerSensLat.rb +14 -9
- data/lib/openstudio-standards/standards/Standards.Model.rb +294 -76
- data/lib/openstudio-standards/standards/Standards.Motor.rb +66 -0
- data/lib/openstudio-standards/standards/Standards.PlanarSurface.rb +2 -1
- data/lib/openstudio-standards/standards/Standards.Pump.rb +34 -20
- data/lib/openstudio-standards/standards/Standards.ServiceWaterHeating.rb +0 -353
- data/lib/openstudio-standards/standards/Standards.Space.rb +3 -107
- data/lib/openstudio-standards/standards/Standards.SpaceType.rb +2 -57
- data/lib/openstudio-standards/standards/Standards.Surface.rb +11 -3
- data/lib/openstudio-standards/standards/Standards.ThermalZone.rb +1 -120
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.computer_room_acs.json +142 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.economizers.json +1006 -596
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.energy_recovery.json +724 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.ext_ltg.json +1258 -163
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.motors.json +1070 -140
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.spc_typ.json +33 -3374
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.unitary_acs.json +1400 -340
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.vrfs.json +769 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/comstock_ashrae_90_1_2007/data/comstock_ashrae_90_1_2007.spc_typ.json +2 -5338
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.computer_room_acs.json +142 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.economizers.json +1006 -596
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.energy_recovery.json +724 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.ext_ltg.json +1258 -163
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.motors.json +1070 -140
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.spc_typ.json +15 -3343
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.unitary_acs.json +1840 -372
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.vrfs.json +769 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.AirLoopHVAC.rb +20 -10
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.Space.rb +0 -9
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/comstock_ashrae_90_1_2010/data/comstock_ashrae_90_1_2010.spc_typ.json +0 -5382
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.computer_room_acs.json +142 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.economizers.json +1006 -628
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.energy_recovery.json +718 -712
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.ext_ltg.json +1438 -163
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.motors.json +2552 -182
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.spc_typ.json +14 -3368
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.unitary_acs.json +2348 -352
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.vrfs.json +769 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.AirLoopHVAC.rb +47 -61
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.Model.rb +6 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.Motor.rb +11 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.Space.rb +0 -9
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/comstock_ashrae_90_1_2013/data/comstock_ashrae_90_1_2013.spc_typ.json +2 -5522
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.computer_room_acs.json +142 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.economizers.json +1006 -628
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.energy_recovery.json +1358 -1346
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.ext_ltg.json +1438 -163
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.motors.json +1359 -189
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.spc_typ.json +19 -3451
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.unitary_acs.json +2176 -616
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.vrfs.json +616 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.AirLoopHVAC.rb +47 -61
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.Model.rb +9 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.Motor.rb +11 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.Space.rb +0 -9
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/comstock_ashrae_90_1_2016/data/comstock_ashrae_90_1_2016.spc_typ.json +8 -6055
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.computer_room_acs.json +142 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.economizers.json +1006 -628
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.energy_recovery.json +1188 -1424
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.ext_ltg.json +1498 -163
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.motors.json +1769 -189
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.spc_typ.json +15 -3422
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.unitary_acs.json +1807 -408
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.vrfs.json +1024 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.AirLoopHVAC.rb +70 -87
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.Model.rb +9 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.Motor.rb +11 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.Space.rb +0 -9
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/comstock_ashrae_90_1_2019/data/comstock_ashrae_90_1_2019.spc_typ.json +8 -6080
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.computer_room_acs.json +142 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.economizers.json +1006 -628
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.energy_recovery.json +2806 -3296
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.ext_ltg.json +1558 -163
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.motors.json +1759 -189
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.spc_typ.json +16 -3448
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.unitary_acs.json +2758 -422
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.vrfs.json +684 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/data/ashrae_90_1.schedules.json +14 -3318
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/comstock_doe_ref_1980_2004/data/comstock_doe_ref_1980_2004.spc_typ.json +2 -4786
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/data/doe_ref_1980_2004.chillers.json +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/data/doe_ref_1980_2004.economizers.json +953 -207
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/data/doe_ref_1980_2004.energy_recovery.json +724 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/data/doe_ref_1980_2004.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/data/doe_ref_1980_2004.spc_typ.json +11 -2858
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/doe_ref_1980_2004.AirConditionerVariableRefrigerantFlow.rb +13 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/doe_ref_1980_2004.Model.rb +0 -18
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/comstock_doe_ref_pre_1980/data/comstock_doe_ref_pre_1980.spc_typ.json +1 -4739
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/data/doe_ref_pre_1980.chillers.json +0 -51
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/data/doe_ref_pre_1980.economizers.json +953 -207
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/data/doe_ref_pre_1980.energy_recovery.json +724 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/data/doe_ref_pre_1980.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/data/doe_ref_pre_1980.spc_typ.json +9 -2830
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/doe_ref_pre_1980.AirConditionerVariableRefrigerantFlow.rb +13 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/doe_ref_pre_1980.Model.rb +0 -18
- data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/data/nrel_zne_ready_2017.economizers.json +1006 -564
- data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/data/nrel_zne_ready_2017.energy_recovery.json +1264 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/data/nrel_zne_ready_2017.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/data/nrel_zne_ready_2017.spc_typ.json +0 -1079
- data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.AirLoopHVAC.rb +132 -288
- data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.HeatExchangerSensLat.rb +44 -20
- data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.Model.rb +11 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.Space.rb +0 -8
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/data/ze_aedg_multifamily.economizers.json +1006 -564
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/data/ze_aedg_multifamily.energy_recovery.json +1264 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/data/ze_aedg_multifamily.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/data/ze_aedg_multifamily.spc_typ.json +0 -1079
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.AirLoopHVAC.rb +137 -288
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.HeatExchangerSensLat.rb +44 -20
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.Model.rb +11 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.Space.rb +0 -9
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.AirLoopHVAC.rb +12 -10
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilCoolingDXSingleSpeed.rb +8 -6
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilCoolingDXTwoSpeed.rb +8 -6
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilDX.rb +9 -3
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.Fan.rb +6 -40
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.Model.rb +30 -337
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.Space.rb +4 -5
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.SpaceType.rb +1 -2
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.rb +56 -3
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/ashrae_90_1_prm_2019.Model.rb +80 -0
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/ashrae_90_1_prm_2019.rb +0 -10
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/ashrae_90_1_prm_2019_WaterHeaterMixed.rb +35 -0
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/data/ashrae_90_1_prm_2019.economizers.json +550 -0
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/data/ashrae_90_1_prm_2019.energy_recovery.json +724 -0
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/data/ashrae_90_1_prm_2019.ext_ltg.json +1216 -0
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/data/ashrae_90_1_prm_2019.heat_pumps.json +5 -5
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/data/ashrae_90_1_prm_2019.motors.json +225 -245
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/data/ashrae_90_1_prm_2019.unitary_acs.json +174 -78
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/data/ashrae_90_1_prm_2019.water_heaters.json +354 -317
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_csv/userdata_enums.rb +19 -3
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_json/userdata_airloop_hvac.json +185 -0
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_json/userdata_airloop_hvac_doas.json +127 -0
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_json/userdata_building.json +121 -0
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_json/userdata_design_specification_outdoor_air.json +49 -0
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_json/userdata_electric_equipment.json +113 -0
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_json/userdata_exterior_lights.json +120 -0
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_json/userdata_space.json +388 -0
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_json/userdata_spacetype.json +367 -0
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_json/userdata_thermal_zone.json +56 -0
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_json/userdata_wateruse_connections.json +37 -0
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_json/userdata_wateruse_equipment.json +69 -0
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_json/userdata_wateruse_equipment_definition.json +37 -0
- data/lib/openstudio-standards/standards/cbes/cbes_pre_1978/data/cbes_pre_1978.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/cbes/cbes_t24_1978/data/cbes_t24_1978.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/cbes/cbes_t24_1992/data/cbes_t24_1992.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/cbes/cbes_t24_2001/data/cbes_t24_2001.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/cbes/cbes_t24_2005/data/cbes_t24_2005.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/cbes/cbes_t24_2008/data/cbes_t24_2008.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_1985/comstock_deer_1985/data/comstock_deer_1985.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_1985/data/deer_1985.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_1996/comstock_deer_1996/data/comstock_deer_1996.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_1996/data/deer_1996.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_2003/comstock_deer_2003/data/comstock_deer_2003.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_2003/data/deer_2003.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_2007/comstock_deer_2007/data/comstock_deer_2007.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_2007/data/deer_2007.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_2011/comstock_deer_2011/data/comstock_deer_2011.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_2011/data/deer_2011.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_2014/comstock_deer_2014/data/comstock_deer_2014.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_2014/data/deer_2014.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_2015/comstock_deer_2015/data/comstock_deer_2015.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_2015/data/deer_2015.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_2017/comstock_deer_2017/data/comstock_deer_2017.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_2017/data/deer_2017.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_2020/comstock_deer_2020/data/comstock_deer_2020.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_2020/data/deer_2020.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_2025/comstock_deer_2025/data/comstock_deer_2025.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_2025/data/deer_2025.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_2030/comstock_deer_2030/data/comstock_deer_2030.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_2030/data/deer_2030.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_2035/comstock_deer_2035/data/comstock_deer_2035.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_2035/data/deer_2035.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_2040/comstock_deer_2040/data/comstock_deer_2040.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_2040/data/deer_2040.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_2045/comstock_deer_2045/data/comstock_deer_2045.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_2045/data/deer_2045.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_2050/comstock_deer_2050/data/comstock_deer_2050.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_2050/data/deer_2050.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_2055/comstock_deer_2055/data/comstock_deer_2055.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_2055/data/deer_2055.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_2060/comstock_deer_2060/data/comstock_deer_2060.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_2060/data/deer_2060.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_2065/comstock_deer_2065/data/comstock_deer_2065.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_2065/data/deer_2065.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_2070/comstock_deer_2070/data/comstock_deer_2070.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_2070/data/deer_2070.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_2075/comstock_deer_2075/data/comstock_deer_2075.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_2075/data/deer_2075.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_pre_1975/comstock_deer_pre_1975/data/comstock_deer_pre_1975.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/deer/deer_pre_1975/data/deer_pre_1975.ext_ltg.json +5 -5
- data/lib/openstudio-standards/standards/necb/BTAPPRE1980/btap_pre1980.rb +10 -1
- data/lib/openstudio-standards/standards/necb/BTAPPRE1980/data/unitary_acs.json +20 -20
- data/lib/openstudio-standards/standards/necb/ECMS/hvac_systems.rb +379 -27
- data/lib/openstudio-standards/standards/necb/NECB2011/autozone.rb +1 -4
- data/lib/openstudio-standards/standards/necb/NECB2011/beps_compliance_path.rb +0 -1
- data/lib/openstudio-standards/standards/necb/NECB2011/data/fuel_type_sets.json +1 -1
- data/lib/openstudio-standards/standards/necb/NECB2011/data/unitary_acs.json +20 -20
- data/lib/openstudio-standards/standards/necb/NECB2011/hvac_systems.rb +34 -22
- data/lib/openstudio-standards/standards/necb/NECB2011/necb_2011.rb +76 -23
- data/lib/openstudio-standards/standards/necb/NECB2011/necb_shw_calculation.xlsx +0 -0
- data/lib/openstudio-standards/standards/necb/NECB2011/service_water_heating.rb +4 -5
- data/lib/openstudio-standards/standards/necb/NECB2011/system_fuels.rb +6 -2
- data/lib/openstudio-standards/standards/necb/NECB2015/data/unitary_acs.json +26 -24
- data/lib/openstudio-standards/standards/necb/NECB2015/hvac_systems.rb +2 -1
- data/lib/openstudio-standards/standards/necb/NECB2020/data/unitary_acs.json +38 -32
- data/lib/openstudio-standards/standards/necb/common/btap_data.rb +215 -18
- data/lib/openstudio-standards/standards/necb/common/btap_datapoint.rb +190 -15
- data/lib/openstudio-standards/standards/necb/common/national_carbon_price_sched_feb_2025.json +60 -0
- data/lib/openstudio-standards/standards/necb/common/utility_pricing_2025-02-20.csv +92 -0
- data/lib/openstudio-standards/utilities/ruleset_check.rb +204 -0
- data/lib/openstudio-standards/version.rb +1 -1
- data/lib/openstudio-standards/weather/information.rb +1 -1
- data/lib/openstudio-standards.rb +32 -12
- metadata +78 -80
- data/lib/openstudio-standards/prototypes/ashrae_90_1/doe_ref_1980_2004/doe_ref_1980_2004.refrigeration.rb +0 -13
- data/lib/openstudio-standards/prototypes/ashrae_90_1/doe_ref_pre_1980/doe_ref_pre_1980.refrigeration.rb +0 -13
- data/lib/openstudio-standards/prototypes/cbes/cbes.refrigeration.rb +0 -13
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.exterior_lights.rb +0 -432
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/ashrae_90_1_2004.Space.rb +0 -11
- 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 +0 -169
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/comstock_ashrae_90_1_2004/data/comstock_ashrae_90_1_2004.ref_cases.json +0 -1456
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/comstock_ashrae_90_1_2004/data/comstock_ashrae_90_1_2004.ref_lnup.json +0 -562
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/comstock_ashrae_90_1_2004/data/comstock_ashrae_90_1_2004.spc_typ.json +0 -20804
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/ashrae_90_1_2007.Space.rb +0 -11
- 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 +0 -169
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/comstock_ashrae_90_1_2007/data/comstock_ashrae_90_1_2007.ref_cases.json +0 -1456
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/comstock_ashrae_90_1_2007/data/comstock_ashrae_90_1_2007.ref_lnup.json +0 -562
- 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 +0 -169
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/comstock_ashrae_90_1_2010/data/comstock_ashrae_90_1_2010.ref_cases.json +0 -1456
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/comstock_ashrae_90_1_2010/data/comstock_ashrae_90_1_2010.ref_lnup.json +0 -562
- 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 +0 -169
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/comstock_ashrae_90_1_2013/data/comstock_ashrae_90_1_2013.ref_cases.json +0 -1456
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/comstock_ashrae_90_1_2013/data/comstock_ashrae_90_1_2013.ref_lnup.json +0 -562
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/comstock_ashrae_90_1_2016/data/comstock_ashrae_90_1_2016.ext_ltg.json +0 -169
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/comstock_ashrae_90_1_2016/data/comstock_ashrae_90_1_2016.ref_cases.json +0 -763
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/comstock_ashrae_90_1_2016/data/comstock_ashrae_90_1_2016.ref_lnup.json +0 -562
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/comstock_ashrae_90_1_2019/data/comstock_ashrae_90_1_2019.ext_ltg.json +0 -169
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/comstock_ashrae_90_1_2019/data/comstock_ashrae_90_1_2019.ref_cases.json +0 -763
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/comstock_ashrae_90_1_2019/data/comstock_ashrae_90_1_2019.ref_lnup.json +0 -562
- 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 +0 -169
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/comstock_doe_ref_1980_2004/data/comstock_doe_ref_1980_2004.ref_cases.json +0 -1456
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/comstock_doe_ref_1980_2004/data/comstock_doe_ref_1980_2004.ref_lnup.json +0 -562
- 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 +0 -169
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/comstock_doe_ref_pre_1980/data/comstock_doe_ref_pre_1980.ref_cases.json +0 -1456
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/comstock_doe_ref_pre_1980/data/comstock_doe_ref_pre_1980.ref_lnup.json +0 -562
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/data/ashrae_90_1_prm_2019.prm_economizers.json +0 -213
- data/lib/openstudio-standards/standards/cbes/cbes.Space.rb +0 -11
- data/lib/openstudio-standards/standards/cbes/cbes_t24_2005/cbes_t24_2005.Space.rb +0 -11
- data/lib/openstudio-standards/standards/cbes/cbes_t24_2008/cbes_t24_2008.Space.rb +0 -11
- data/lib/openstudio-standards/standards/deer/deer.Space.rb +0 -20
- data/lib/openstudio-standards/standards/deer/deer_1985/data/deer_1985.ref_cases.json +0 -1456
- data/lib/openstudio-standards/standards/deer/deer_1985/data/deer_1985.ref_lnup.json +0 -562
- data/lib/openstudio-standards/standards/deer/deer_1996/data/deer_1996.ref_cases.json +0 -1456
- data/lib/openstudio-standards/standards/deer/deer_1996/data/deer_1996.ref_lnup.json +0 -562
- data/lib/openstudio-standards/standards/deer/deer_2003/data/deer_2003.ref_cases.json +0 -1456
- data/lib/openstudio-standards/standards/deer/deer_2003/data/deer_2003.ref_lnup.json +0 -562
- data/lib/openstudio-standards/standards/deer/deer_2007/data/deer_2007.ref_cases.json +0 -1456
- data/lib/openstudio-standards/standards/deer/deer_2007/data/deer_2007.ref_lnup.json +0 -562
- data/lib/openstudio-standards/standards/deer/deer_2011/data/deer_2011.ref_cases.json +0 -1456
- data/lib/openstudio-standards/standards/deer/deer_2011/data/deer_2011.ref_lnup.json +0 -562
- data/lib/openstudio-standards/standards/deer/deer_2014/data/deer_2014.ref_cases.json +0 -1456
- data/lib/openstudio-standards/standards/deer/deer_2014/data/deer_2014.ref_lnup.json +0 -562
- data/lib/openstudio-standards/standards/deer/deer_2015/data/deer_2015.ref_cases.json +0 -1456
- data/lib/openstudio-standards/standards/deer/deer_2015/data/deer_2015.ref_lnup.json +0 -562
- data/lib/openstudio-standards/standards/deer/deer_2017/data/deer_2017.ref_cases.json +0 -1456
- data/lib/openstudio-standards/standards/deer/deer_2017/data/deer_2017.ref_lnup.json +0 -562
- data/lib/openstudio-standards/standards/deer/deer_2020/data/deer_2020.ref_cases.json +0 -1456
- data/lib/openstudio-standards/standards/deer/deer_2020/data/deer_2020.ref_lnup.json +0 -562
- data/lib/openstudio-standards/standards/deer/deer_2025/data/deer_2025.ref_cases.json +0 -1456
- data/lib/openstudio-standards/standards/deer/deer_2025/data/deer_2025.ref_lnup.json +0 -562
- data/lib/openstudio-standards/standards/deer/deer_2030/data/deer_2030.ref_cases.json +0 -1456
- data/lib/openstudio-standards/standards/deer/deer_2030/data/deer_2030.ref_lnup.json +0 -562
- data/lib/openstudio-standards/standards/deer/deer_2035/data/deer_2035.ref_cases.json +0 -1456
- data/lib/openstudio-standards/standards/deer/deer_2035/data/deer_2035.ref_lnup.json +0 -562
- data/lib/openstudio-standards/standards/deer/deer_2040/data/deer_2040.ref_cases.json +0 -1456
- data/lib/openstudio-standards/standards/deer/deer_2040/data/deer_2040.ref_lnup.json +0 -562
- data/lib/openstudio-standards/standards/deer/deer_2045/data/deer_2045.ref_cases.json +0 -1456
- data/lib/openstudio-standards/standards/deer/deer_2045/data/deer_2045.ref_lnup.json +0 -562
- data/lib/openstudio-standards/standards/deer/deer_2050/data/deer_2050.ref_cases.json +0 -1456
- data/lib/openstudio-standards/standards/deer/deer_2050/data/deer_2050.ref_lnup.json +0 -562
- data/lib/openstudio-standards/standards/deer/deer_2055/data/deer_2055.ref_cases.json +0 -1456
- data/lib/openstudio-standards/standards/deer/deer_2055/data/deer_2055.ref_lnup.json +0 -562
- data/lib/openstudio-standards/standards/deer/deer_2060/data/deer_2060.ref_cases.json +0 -1456
- data/lib/openstudio-standards/standards/deer/deer_2060/data/deer_2060.ref_lnup.json +0 -562
- data/lib/openstudio-standards/standards/deer/deer_2065/data/deer_2065.ref_cases.json +0 -1456
- data/lib/openstudio-standards/standards/deer/deer_2065/data/deer_2065.ref_lnup.json +0 -562
- data/lib/openstudio-standards/standards/deer/deer_2070/data/deer_2070.ref_cases.json +0 -1456
- data/lib/openstudio-standards/standards/deer/deer_2070/data/deer_2070.ref_lnup.json +0 -562
- data/lib/openstudio-standards/standards/deer/deer_2075/data/deer_2075.ref_cases.json +0 -1456
- data/lib/openstudio-standards/standards/deer/deer_2075/data/deer_2075.ref_lnup.json +0 -562
- data/lib/openstudio-standards/standards/deer/deer_pre_1975/data/deer_pre_1975.ref_cases.json +0 -1456
- data/lib/openstudio-standards/standards/deer/deer_pre_1975/data/deer_pre_1975.ref_lnup.json +0 -562
@@ -1,13 +0,0 @@
|
|
1
|
-
class DOERef1980to2004 < ASHRAE901
|
2
|
-
# @!group refrigeration
|
3
|
-
|
4
|
-
# Determine the latent case credit curve to use for walkins.
|
5
|
-
# @todo Should probably use the model_add_refrigeration_walkin and lookups from the spreadsheet instead of hard-coded values.
|
6
|
-
#
|
7
|
-
# @param model [OpenStudio::Model::Model] OpenStudio model object
|
8
|
-
# @return [String] curve name
|
9
|
-
def model_walkin_freezer_latent_case_credit_curve(model)
|
10
|
-
latent_case_credit_curve_name = 'Single Shelf Horizontal Latent Energy Multiplier_Pre2004'
|
11
|
-
return latent_case_credit_curve_name
|
12
|
-
end
|
13
|
-
end
|
@@ -1,13 +0,0 @@
|
|
1
|
-
class DOERefPre1980 < ASHRAE901
|
2
|
-
# @!group refrigeration
|
3
|
-
|
4
|
-
# Determine the latent case credit curve to use for walkins.
|
5
|
-
# @todo Should probably use the model_add_refrigeration_walkin and lookups from the spreadsheet instead of hard-coded values.
|
6
|
-
#
|
7
|
-
# @param model [OpenStudio::Model::Model] OpenStudio model object
|
8
|
-
# @return [String] curve name
|
9
|
-
def model_walkin_freezer_latent_case_credit_curve(model)
|
10
|
-
latent_case_credit_curve_name = 'Single Shelf Horizontal Latent Energy Multiplier_Pre2004'
|
11
|
-
return latent_case_credit_curve_name
|
12
|
-
end
|
13
|
-
end
|
@@ -1,13 +0,0 @@
|
|
1
|
-
class CBES < Standard
|
2
|
-
# @!group refrigeration
|
3
|
-
|
4
|
-
# Determine the latent case credit curve to use for walkins.
|
5
|
-
# @todo Should probably use the model_add_refrigeration_walkin and lookups from the spreadsheet instead of hard-coded values.
|
6
|
-
#
|
7
|
-
# @param model [OpenStudio::Model::Model] OpenStudio model object
|
8
|
-
# @return [String] curve name
|
9
|
-
def model_walkin_freezer_latent_case_credit_curve(model)
|
10
|
-
latent_case_credit_curve_name = 'Single Shelf Horizontal Latent Energy Multiplier_Pre2004'
|
11
|
-
return latent_case_credit_curve_name
|
12
|
-
end
|
13
|
-
end
|
@@ -1,432 +0,0 @@
|
|
1
|
-
class Standard
|
2
|
-
# Add exterior lighting to the model
|
3
|
-
#
|
4
|
-
# @param model [OpenStudio::Model::Model] OpenStudio model object
|
5
|
-
# @param exterior_lighting_zone_number [Integer] exterior lighting zone number, 0-4
|
6
|
-
# @param onsite_parking_fraction [Double] onsite parking fraction, 0-1
|
7
|
-
# @param add_base_site_allowance [Boolean] whether to include the base site allowance
|
8
|
-
# @param use_model_for_entries_and_canopies [Boolean] use building geometry for number of entries and canopy size
|
9
|
-
# @return [Hash] a hash of OpenStudio::Model::ExteriorLights objects
|
10
|
-
# @todo would be nice to add argument for some building types (SmallHotel, MidriseApartment, PrimarySchool, SecondarySchool, RetailStripmall) if it has interior or exterior circulation.
|
11
|
-
def model_add_typical_exterior_lights(model, exterior_lighting_zone_number, onsite_parking_fraction = 1.0, add_base_site_allowance = false, use_model_for_entries_and_canopies = false)
|
12
|
-
exterior_lights = {}
|
13
|
-
installed_power = 0.0
|
14
|
-
|
15
|
-
# populate search hash
|
16
|
-
search_criteria = {
|
17
|
-
'template' => template,
|
18
|
-
'exterior_lighting_zone_number' => exterior_lighting_zone_number
|
19
|
-
}
|
20
|
-
|
21
|
-
# load exterior_lighting_properties
|
22
|
-
exterior_lighting_properties = standards_lookup_table_first(table_name: 'exterior_lighting', search_criteria: search_criteria)
|
23
|
-
|
24
|
-
# make sure lighting properties were found
|
25
|
-
if exterior_lighting_properties.nil?
|
26
|
-
OpenStudio.logFree(OpenStudio::Warn, 'openstudio.prototype.exterior_lights', "Exterior lighting properties not found for #{template}, ext lighting zone #{exterior_lighting_zone_number}, none will be added to model.")
|
27
|
-
return exterior_lights
|
28
|
-
end
|
29
|
-
|
30
|
-
# get building types and ratio (needed to get correct schedules, parking area, entries, canopies, and drive throughs)
|
31
|
-
space_type_hash = model_create_space_type_hash(model)
|
32
|
-
|
33
|
-
# get model specific values to map to exterior_lighting_properties
|
34
|
-
area_length_count_hash = model_create_exterior_lighting_area_length_count_hash(model, space_type_hash, use_model_for_entries_and_canopies)
|
35
|
-
|
36
|
-
# using midnight to 6am setback or shutdown
|
37
|
-
start_setback_shutoff = { hr: 24, min: 0 }
|
38
|
-
end_setback_shutoff = { hr: 6, min: 0 }
|
39
|
-
shuttoff = false
|
40
|
-
setback = false
|
41
|
-
if exterior_lighting_properties['building_facade_and_landscape_automatic_shut_off'] == 1
|
42
|
-
ext_lights_sch_facade_and_landscape = OpenStudio::Model::ScheduleRuleset.new(model)
|
43
|
-
default_day = ext_lights_sch_facade_and_landscape.defaultDaySchedule
|
44
|
-
default_day.addValue(OpenStudio::Time.new(0, end_setback_shutoff[:hr], end_setback_shutoff[:min], 0), 0.0)
|
45
|
-
default_day.addValue(OpenStudio::Time.new(0, start_setback_shutoff[:hr], start_setback_shutoff[:min], 0), 1.0)
|
46
|
-
OpenStudio.logFree(OpenStudio::Info, 'openstudio.prototype.exterior_lights', "Facade and Landscape exterior lights shut off from #{start_setback_shutoff} to #{end_setback_shutoff}")
|
47
|
-
else
|
48
|
-
ext_lights_sch_facade_and_landscape = model.alwaysOnDiscreteSchedule
|
49
|
-
end
|
50
|
-
if !exterior_lighting_properties['occupancy_setback_reduction'].nil? && (exterior_lighting_properties['occupancy_setback_reduction'] > 0.0)
|
51
|
-
ext_lights_sch_other = OpenStudio::Model::ScheduleRuleset.new(model)
|
52
|
-
setback_value = 1.0 - exterior_lighting_properties['occupancy_setback_reduction']
|
53
|
-
default_day = ext_lights_sch_other.defaultDaySchedule
|
54
|
-
default_day.addValue(OpenStudio::Time.new(0, end_setback_shutoff[:hr], end_setback_shutoff[:min], 0), setback_value)
|
55
|
-
default_day.addValue(OpenStudio::Time.new(0, start_setback_shutoff[:hr], start_setback_shutoff[:min], 0), 1.0)
|
56
|
-
OpenStudio.logFree(OpenStudio::Info, 'openstudio.prototype.exterior_lights', "Non Facade and Landscape lights reduce by #{exterior_lighting_properties['occupancy_setback_reduction'] * 100} % from #{start_setback_shutoff} to #{end_setback_shutoff}")
|
57
|
-
else
|
58
|
-
ext_lights_sch_other = model.alwaysOnDiscreteSchedule
|
59
|
-
end
|
60
|
-
|
61
|
-
# add exterior lights for parking area
|
62
|
-
if !area_length_count_hash[:parking_area_and_drives_area].nil? && area_length_count_hash[:parking_area_and_drives_area] > 0
|
63
|
-
|
64
|
-
# lighting values
|
65
|
-
multiplier = area_length_count_hash[:parking_area_and_drives_area] * onsite_parking_fraction
|
66
|
-
power = exterior_lighting_properties['parking_areas_and_drives']
|
67
|
-
name_prefix = 'Parking Areas and Drives'
|
68
|
-
|
69
|
-
# create ext light def
|
70
|
-
OpenStudio.logFree(OpenStudio::Info, 'openstudio.prototype.exterior_lights', "Added #{power.round(2)} W/ft^2 of lighting for #{multiplier} ft^2 of parking area.")
|
71
|
-
ext_lights_def = OpenStudio::Model::ExteriorLightsDefinition.new(model)
|
72
|
-
ext_lights_def.setName("#{name_prefix} Def (W/ft^2)")
|
73
|
-
ext_lights_def.setDesignLevel(power)
|
74
|
-
|
75
|
-
# create ext light inst
|
76
|
-
# creating exterior lights object
|
77
|
-
ext_lights = OpenStudio::Model::ExteriorLights.new(ext_lights_def, ext_lights_sch_other)
|
78
|
-
ext_lights.setMultiplier(multiplier)
|
79
|
-
ext_lights.setName(name_prefix)
|
80
|
-
ext_lights.setControlOption(exterior_lighting_properties['control_option'])
|
81
|
-
ext_lights.setEndUseSubcategory(name_prefix)
|
82
|
-
exterior_lights[name_prefix] = ext_lights
|
83
|
-
|
84
|
-
# update installed power
|
85
|
-
installed_power += power * multiplier
|
86
|
-
end
|
87
|
-
|
88
|
-
# add exterior lights for facades
|
89
|
-
if !area_length_count_hash[:building_facades].nil? && area_length_count_hash[:building_facades] > 0
|
90
|
-
|
91
|
-
# lighting values
|
92
|
-
multiplier = area_length_count_hash[:building_facades]
|
93
|
-
power = exterior_lighting_properties['building_facades']
|
94
|
-
name_prefix = 'Building Facades'
|
95
|
-
|
96
|
-
# create ext light def
|
97
|
-
OpenStudio.logFree(OpenStudio::Info, 'openstudio.prototype.exterior_lights', "Added #{power.round(2)} W/ft^2 of lighting for #{multiplier} ft^2 of building facade area.")
|
98
|
-
ext_lights_def = OpenStudio::Model::ExteriorLightsDefinition.new(model)
|
99
|
-
ext_lights_def.setName("#{name_prefix} Def (W/ft^2)")
|
100
|
-
ext_lights_def.setDesignLevel(power)
|
101
|
-
|
102
|
-
# create ext light inst
|
103
|
-
# creating exterior lights object
|
104
|
-
ext_lights = OpenStudio::Model::ExteriorLights.new(ext_lights_def, ext_lights_sch_facade_and_landscape)
|
105
|
-
ext_lights.setMultiplier(multiplier)
|
106
|
-
ext_lights.setName(name_prefix)
|
107
|
-
ext_lights.setControlOption(exterior_lighting_properties['control_option'])
|
108
|
-
ext_lights.setEndUseSubcategory(name_prefix)
|
109
|
-
exterior_lights[name_prefix] = ext_lights
|
110
|
-
|
111
|
-
# update installed power
|
112
|
-
installed_power += power * multiplier
|
113
|
-
end
|
114
|
-
|
115
|
-
# add exterior lights for main entries
|
116
|
-
if !area_length_count_hash[:main_entries].nil? && area_length_count_hash[:main_entries] > 0
|
117
|
-
|
118
|
-
# lighting values
|
119
|
-
multiplier = area_length_count_hash[:main_entries]
|
120
|
-
power = exterior_lighting_properties['main_entries']
|
121
|
-
name_prefix = 'Main Entries'
|
122
|
-
|
123
|
-
# create ext light def
|
124
|
-
OpenStudio.logFree(OpenStudio::Info, 'openstudio.prototype.exterior_lights', "Added #{power.round(2)} W/ft of lighting for #{multiplier} ft of main entry length.")
|
125
|
-
ext_lights_def = OpenStudio::Model::ExteriorLightsDefinition.new(model)
|
126
|
-
ext_lights_def.setName("#{name_prefix} Def (W/ft)")
|
127
|
-
ext_lights_def.setDesignLevel(power)
|
128
|
-
|
129
|
-
# create ext light inst
|
130
|
-
# creating exterior lights object
|
131
|
-
ext_lights = OpenStudio::Model::ExteriorLights.new(ext_lights_def, ext_lights_sch_other)
|
132
|
-
ext_lights.setMultiplier(multiplier)
|
133
|
-
ext_lights.setName(name_prefix)
|
134
|
-
ext_lights.setControlOption(exterior_lighting_properties['control_option'])
|
135
|
-
ext_lights.setEndUseSubcategory(name_prefix)
|
136
|
-
exterior_lights[name_prefix] = ext_lights
|
137
|
-
|
138
|
-
# update installed power
|
139
|
-
installed_power += power * multiplier
|
140
|
-
end
|
141
|
-
|
142
|
-
# add exterior lights for other doors
|
143
|
-
if !area_length_count_hash[:other_doors].nil? && area_length_count_hash[:other_doors] > 0
|
144
|
-
|
145
|
-
# lighting values
|
146
|
-
multiplier = area_length_count_hash[:other_doors]
|
147
|
-
power = exterior_lighting_properties['other_doors']
|
148
|
-
name_prefix = 'Other Doors'
|
149
|
-
|
150
|
-
# create ext light def
|
151
|
-
OpenStudio.logFree(OpenStudio::Info, 'openstudio.prototype.exterior_lights', "Added #{power.round(2)} W/ft of lighting for #{multiplier} ft of other doors.")
|
152
|
-
ext_lights_def = OpenStudio::Model::ExteriorLightsDefinition.new(model)
|
153
|
-
ext_lights_def.setName("#{name_prefix} Def (W/ft)")
|
154
|
-
ext_lights_def.setDesignLevel(power)
|
155
|
-
|
156
|
-
# create ext light inst
|
157
|
-
# creating exterior lights object
|
158
|
-
ext_lights = OpenStudio::Model::ExteriorLights.new(ext_lights_def, ext_lights_sch_other)
|
159
|
-
ext_lights.setMultiplier(multiplier)
|
160
|
-
ext_lights.setName(name_prefix)
|
161
|
-
ext_lights.setControlOption(exterior_lighting_properties['control_option'])
|
162
|
-
ext_lights.setEndUseSubcategory(name_prefix)
|
163
|
-
exterior_lights[name_prefix] = ext_lights
|
164
|
-
|
165
|
-
# update installed power
|
166
|
-
installed_power += power * multiplier
|
167
|
-
end
|
168
|
-
|
169
|
-
# add exterior lights for entry canopies
|
170
|
-
if !area_length_count_hash[:canopy_entry_area].nil? && area_length_count_hash[:canopy_entry_area] > 0
|
171
|
-
|
172
|
-
# lighting values
|
173
|
-
multiplier = area_length_count_hash[:canopy_entry_area]
|
174
|
-
power = exterior_lighting_properties['entry_canopies']
|
175
|
-
name_prefix = 'Entry Canopies'
|
176
|
-
|
177
|
-
# create ext light def
|
178
|
-
OpenStudio.logFree(OpenStudio::Info, 'openstudio.prototype.exterior_lights', "Added #{power} W/ft^2 of lighting for #{multiplier} ft^2 of building entry canopies.")
|
179
|
-
ext_lights_def = OpenStudio::Model::ExteriorLightsDefinition.new(model)
|
180
|
-
ext_lights_def.setName("#{name_prefix} Def (W/ft^2)")
|
181
|
-
ext_lights_def.setDesignLevel(power)
|
182
|
-
|
183
|
-
# create ext light inst
|
184
|
-
# creating exterior lights object
|
185
|
-
ext_lights = OpenStudio::Model::ExteriorLights.new(ext_lights_def, ext_lights_sch_other)
|
186
|
-
ext_lights.setMultiplier(multiplier)
|
187
|
-
ext_lights.setName(name_prefix)
|
188
|
-
ext_lights.setControlOption(exterior_lighting_properties['control_option'])
|
189
|
-
ext_lights.setEndUseSubcategory(name_prefix)
|
190
|
-
exterior_lights[name_prefix] = ext_lights
|
191
|
-
|
192
|
-
# update installed power
|
193
|
-
installed_power += power * multiplier
|
194
|
-
end
|
195
|
-
|
196
|
-
# add exterior lights for emergency canopies
|
197
|
-
if !area_length_count_hash[:canopy_emergency_area].nil? && area_length_count_hash[:canopy_emergency_area] > 0
|
198
|
-
|
199
|
-
# lighting values
|
200
|
-
multiplier = area_length_count_hash[:canopy_emergency_area]
|
201
|
-
power = exterior_lighting_properties['loading_areas_for_emergency_vehicles']
|
202
|
-
name_prefix = 'Emergency Canopies'
|
203
|
-
|
204
|
-
# create ext light def
|
205
|
-
OpenStudio.logFree(OpenStudio::Info, 'openstudio.prototype.exterior_lights', "Added #{power} W/ft^2 of lighting for #{multiplier} ft^2 of building emergency canopies.")
|
206
|
-
ext_lights_def = OpenStudio::Model::ExteriorLightsDefinition.new(model)
|
207
|
-
ext_lights_def.setName("#{name_prefix} Def (W/ft^2)")
|
208
|
-
ext_lights_def.setDesignLevel(power)
|
209
|
-
|
210
|
-
# create ext light inst
|
211
|
-
# creating exterior lights object
|
212
|
-
ext_lights = OpenStudio::Model::ExteriorLights.new(ext_lights_def, ext_lights_sch_other)
|
213
|
-
ext_lights.setMultiplier(multiplier)
|
214
|
-
ext_lights.setName(name_prefix)
|
215
|
-
ext_lights.setControlOption(exterior_lighting_properties['control_option'])
|
216
|
-
ext_lights.setEndUseSubcategory(name_prefix)
|
217
|
-
exterior_lights[name_prefix] = ext_lights
|
218
|
-
|
219
|
-
# update installed power
|
220
|
-
installed_power += power * multiplier
|
221
|
-
end
|
222
|
-
|
223
|
-
# add exterior lights for drive through windows
|
224
|
-
if !area_length_count_hash[:drive_through_windows].nil? && area_length_count_hash[:drive_through_windows] > 0
|
225
|
-
|
226
|
-
# lighting values
|
227
|
-
multiplier = area_length_count_hash[:drive_through_windows]
|
228
|
-
power = exterior_lighting_properties['drive_through_windows_and_doors']
|
229
|
-
name_prefix = 'Drive Through Windows'
|
230
|
-
|
231
|
-
# create ext light def
|
232
|
-
OpenStudio.logFree(OpenStudio::Info, 'openstudio.prototype.exterior_lights', "Added #{power} W/drive through window of lighting for #{multiplier} drive through windows.")
|
233
|
-
ext_lights_def = OpenStudio::Model::ExteriorLightsDefinition.new(model)
|
234
|
-
ext_lights_def.setName("#{name_prefix} Def (W/ft^2)")
|
235
|
-
ext_lights_def.setDesignLevel(power)
|
236
|
-
|
237
|
-
# create ext light inst
|
238
|
-
# creating exterior lights object
|
239
|
-
ext_lights = OpenStudio::Model::ExteriorLights.new(ext_lights_def, ext_lights_sch_other)
|
240
|
-
ext_lights.setMultiplier(multiplier)
|
241
|
-
ext_lights.setName(name_prefix)
|
242
|
-
ext_lights.setControlOption(exterior_lighting_properties['control_option'])
|
243
|
-
ext_lights.setEndUseSubcategory(name_prefix)
|
244
|
-
exterior_lights[name_prefix] = ext_lights
|
245
|
-
|
246
|
-
# update installed power
|
247
|
-
installed_power += power * multiplier
|
248
|
-
end
|
249
|
-
|
250
|
-
# @todo - add_base_site_lighting_allowance (non landscaping tradable lighting)
|
251
|
-
# add exterior lights for drive through windows
|
252
|
-
if add_base_site_allowance
|
253
|
-
|
254
|
-
# lighting values
|
255
|
-
if !exterior_lighting_properties['base_site_allowance_power'].nil?
|
256
|
-
power = exterior_lighting_properties['base_site_allowance_power']
|
257
|
-
elsif !exterior_lighting_properties['base_site_allowance_fraction'].nil?
|
258
|
-
power = exterior_lighting_properties['base_site_allowance_fraction'] * installed_power # shold be of allowed vs. installed, but hard to calculate
|
259
|
-
else
|
260
|
-
OpenStudio.logFree(OpenStudio::Info, 'openstudio.prototype.exterior_lights', 'Cannot determine target base site allowance power, will set to 0 W.')
|
261
|
-
power = 0.0
|
262
|
-
end
|
263
|
-
name_prefix = 'Base Site Allowance'
|
264
|
-
|
265
|
-
# create ext light def
|
266
|
-
OpenStudio.logFree(OpenStudio::Info, 'openstudio.prototype.exterior_lights', "Added #{power} W of non landscape tradable exterior lighting. Will follow occupancy setback reduction.")
|
267
|
-
ext_lights_def = OpenStudio::Model::ExteriorLightsDefinition.new(model)
|
268
|
-
ext_lights_def.setName("#{name_prefix} Def (W)")
|
269
|
-
ext_lights_def.setDesignLevel(power)
|
270
|
-
|
271
|
-
# create ext light inst
|
272
|
-
# creating exterior lights object
|
273
|
-
ext_lights = OpenStudio::Model::ExteriorLights.new(ext_lights_def, ext_lights_sch_other)
|
274
|
-
ext_lights.setName(name_prefix)
|
275
|
-
ext_lights.setControlOption(exterior_lighting_properties['control_option'])
|
276
|
-
ext_lights.setEndUseSubcategory(name_prefix)
|
277
|
-
exterior_lights[name_prefix] = ext_lights
|
278
|
-
|
279
|
-
# don't need to update installed power for this
|
280
|
-
end
|
281
|
-
|
282
|
-
return exterior_lights
|
283
|
-
end
|
284
|
-
|
285
|
-
# get exterior lighting areas, distances, and counts
|
286
|
-
#
|
287
|
-
# @param model [OpenStudio::Model::Model] OpenStudio model object
|
288
|
-
# @param space_type_hash [Hash] hash of space types
|
289
|
-
# @param use_model_for_entries_and_canopies [Boolean] use building geometry for number of entries and canopy size
|
290
|
-
# @return [Hhash] hash of exterior lighting value types and building type and model specific values
|
291
|
-
# @todo add code in to determine number of entries and canopy area from model geoemtry
|
292
|
-
# @todo come up with better logic for entry widths
|
293
|
-
def model_create_exterior_lighting_area_length_count_hash(model, space_type_hash, use_model_for_entries_and_canopies)
|
294
|
-
# populate building_type_hashes from space_type_hash
|
295
|
-
building_type_hashes = {}
|
296
|
-
space_type_hash.each do |space_type, hash|
|
297
|
-
# if space type standards building type already exists,
|
298
|
-
# add data to that standards building type in building_type_hashes
|
299
|
-
if building_type_hashes.key?(hash[:stds_bldg_type])
|
300
|
-
building_type_hashes[hash[:stds_bldg_type]][:effective_num_spaces] += hash[:effective_num_spaces]
|
301
|
-
building_type_hashes[hash[:stds_bldg_type]][:floor_area] += hash[:floor_area]
|
302
|
-
building_type_hashes[hash[:stds_bldg_type]][:num_people] += hash[:num_people]
|
303
|
-
building_type_hashes[hash[:stds_bldg_type]][:num_students] += hash[:num_students]
|
304
|
-
building_type_hashes[hash[:stds_bldg_type]][:num_units] += hash[:num_units]
|
305
|
-
building_type_hashes[hash[:stds_bldg_type]][:num_beds] += hash[:num_beds]
|
306
|
-
else
|
307
|
-
# initialize hash for this building type
|
308
|
-
building_type_hash = {}
|
309
|
-
building_type_hash[:effective_num_spaces] = hash[:effective_num_spaces]
|
310
|
-
building_type_hash[:floor_area] = hash[:floor_area]
|
311
|
-
building_type_hash[:num_people] = hash[:num_people]
|
312
|
-
building_type_hash[:num_students] = hash[:num_students]
|
313
|
-
building_type_hash[:num_units] = hash[:num_units]
|
314
|
-
building_type_hash[:num_beds] = hash[:num_beds]
|
315
|
-
building_type_hashes[hash[:stds_bldg_type]] = building_type_hash
|
316
|
-
end
|
317
|
-
end
|
318
|
-
|
319
|
-
# rename Office to SmallOffice, MediumOffice or LargeOffice depending on size
|
320
|
-
if building_type_hashes.key?('Office')
|
321
|
-
office_type = model_remap_office(model, building_type_hashes['Office'][:floor_area])
|
322
|
-
building_type_hashes[office_type] = building_type_hashes.delete('Office')
|
323
|
-
end
|
324
|
-
|
325
|
-
# initialize parking areas and drives area variables
|
326
|
-
parking_area_and_drives_area = 0.0
|
327
|
-
main_entries = 0.0
|
328
|
-
other_doors = 0.0
|
329
|
-
drive_through_windows = 0.0
|
330
|
-
canopy_entry_area = 0.0
|
331
|
-
canopy_emergency_area = 0.0
|
332
|
-
|
333
|
-
# calculate exterior lighting properties for each building type
|
334
|
-
building_type_hashes.each do |building_type, hash|
|
335
|
-
# calculate floor area and ground floor area in IP units
|
336
|
-
floor_area_ip = OpenStudio.convert(hash[:floor_area], 'm^2', 'ft^2').get
|
337
|
-
effective_num_stories = model_effective_num_stories(model)
|
338
|
-
ground_floor_area_ip = floor_area_ip / effective_num_stories[:above_grade]
|
339
|
-
|
340
|
-
# load illuminated parking area properties for standards building type
|
341
|
-
search_criteria = { 'building_type' => building_type }
|
342
|
-
illuminated_parking_area_lookup = standards_lookup_table_first(table_name: 'parking', search_criteria: search_criteria)
|
343
|
-
if illuminated_parking_area_lookup.nil?
|
344
|
-
OpenStudio.logFree(OpenStudio::Error, 'openstudio.prototype.exterior_lights', "Could not find parking data for #{building_type}.")
|
345
|
-
return {} # empty hash
|
346
|
-
end
|
347
|
-
|
348
|
-
# calculate number of parking spots
|
349
|
-
num_spots = 0.0
|
350
|
-
if !illuminated_parking_area_lookup['building_area_per_spot'].nil?
|
351
|
-
num_spots += floor_area_ip / illuminated_parking_area_lookup['building_area_per_spot'].to_f
|
352
|
-
elsif !illuminated_parking_area_lookup['units_per_spot'].nil?
|
353
|
-
num_spots += hash[:num_units] / illuminated_parking_area_lookup['units_per_spot'].to_f
|
354
|
-
elsif !illuminated_parking_area_lookup['students_per_spot'].nil?
|
355
|
-
num_spots += hash[:num_students] / illuminated_parking_area_lookup['students_per_spot'].to_f
|
356
|
-
elsif !illuminated_parking_area_lookup['beds_per_spot'].nil?
|
357
|
-
num_spots += hash[:num_beds] / illuminated_parking_area_lookup['beds_per_spot'].to_f
|
358
|
-
else
|
359
|
-
OpenStudio.logFree(OpenStudio::Info, 'openstudio.prototype.exterior_lights', "Unexpected key, can't calculate number of parking spots from #{illuminated_parking_area_lookup.keys.first}.")
|
360
|
-
end
|
361
|
-
# add to cumulative parking area
|
362
|
-
parking_area_and_drives_area += num_spots * illuminated_parking_area_lookup['parking_area_per_spot']
|
363
|
-
|
364
|
-
# load entryways data for standards building type
|
365
|
-
search_criteria = { 'building_type' => building_type }
|
366
|
-
exterior_lighting_assumptions_lookup = standards_lookup_table_first(table_name: 'entryways', search_criteria: search_criteria)
|
367
|
-
|
368
|
-
if exterior_lighting_assumptions_lookup.nil?
|
369
|
-
OpenStudio.logFree(OpenStudio::Error, 'openstudio.prototype.exterior_lights', "Could not find entryway data for #{building_type}.")
|
370
|
-
return {} # empty hash
|
371
|
-
end
|
372
|
-
|
373
|
-
# calculate door, window, and canopy length properties for exterior lighting
|
374
|
-
if use_model_for_entries_and_canopies
|
375
|
-
# @todo get number of entries and canopy size from model geometry
|
376
|
-
else
|
377
|
-
|
378
|
-
# main entries
|
379
|
-
main_entries = (ground_floor_area_ip / 10_000.0) * exterior_lighting_assumptions_lookup['entrance_doors_per_10,000']
|
380
|
-
|
381
|
-
# other doors
|
382
|
-
other_doors += (ground_floor_area_ip / 10_000.0) * exterior_lighting_assumptions_lookup['others_doors_per_10,000']
|
383
|
-
|
384
|
-
# drive through windows
|
385
|
-
unless exterior_lighting_assumptions_lookup['floor_area_per_drive_through_window'].nil?
|
386
|
-
drive_through_windows += ground_floor_area_ip / exterior_lighting_assumptions_lookup['floor_area_per_drive_through_window'].to_f
|
387
|
-
end
|
388
|
-
|
389
|
-
# rollup doors are currently excluded
|
390
|
-
|
391
|
-
# entrance canopies
|
392
|
-
if !exterior_lighting_assumptions_lookup['entrance_canopies'].nil? && !exterior_lighting_assumptions_lookup['canopy_size'].nil?
|
393
|
-
canopy_entry_area = exterior_lighting_assumptions_lookup['entrance_canopies'] * exterior_lighting_assumptions_lookup['canopy_size']
|
394
|
-
end
|
395
|
-
|
396
|
-
# emergency canopies
|
397
|
-
if !exterior_lighting_assumptions_lookup['emergency_canopies'].nil? && !exterior_lighting_assumptions_lookup['canopy_size'].nil?
|
398
|
-
canopy_emergency_area = exterior_lighting_assumptions_lookup['emergency_canopies'] * exterior_lighting_assumptions_lookup['canopy_size']
|
399
|
-
end
|
400
|
-
end
|
401
|
-
end
|
402
|
-
|
403
|
-
# no source for width of different entry types
|
404
|
-
main_entry_width_ip = 8 # ft
|
405
|
-
other_doors_width_ip = 4 # ft
|
406
|
-
|
407
|
-
# ensure the building has at least 1 main entry
|
408
|
-
main_entries = 1.0 if main_entries > 0 && main_entries < 1
|
409
|
-
|
410
|
-
# populate hash
|
411
|
-
area_length_count_hash = {}
|
412
|
-
area_length_count_hash[:parking_area_and_drives_area] = parking_area_and_drives_area
|
413
|
-
area_length_count_hash[:main_entries] = main_entries * main_entry_width_ip
|
414
|
-
area_length_count_hash[:other_doors] = other_doors * other_doors_width_ip
|
415
|
-
area_length_count_hash[:drive_through_windows] = drive_through_windows
|
416
|
-
area_length_count_hash[:canopy_entry_area] = canopy_entry_area
|
417
|
-
area_length_count_hash[:canopy_emergency_area] = canopy_emergency_area
|
418
|
-
|
419
|
-
# determine effective number of stories to find first above grade story exterior wall area
|
420
|
-
effective_num_stories = model_effective_num_stories(model)
|
421
|
-
ground_story = effective_num_stories[:story_hash].keys[effective_num_stories[:below_grade]]
|
422
|
-
ground_story_ext_wall_area_si = effective_num_stories[:story_hash][ground_story][:ext_wall_area]
|
423
|
-
ground_story_ext_wall_area_ip = OpenStudio.convert(ground_story_ext_wall_area_si, 'm^2', 'ft^2').get
|
424
|
-
|
425
|
-
# building_facades
|
426
|
-
# reference buildings uses first story and plenum area all around
|
427
|
-
# prototype uses Table 4.19 by building type lit facade vs. total facade
|
428
|
-
area_length_count_hash[:building_facades] = ground_story_ext_wall_area_ip
|
429
|
-
|
430
|
-
return area_length_count_hash
|
431
|
-
end
|
432
|
-
end
|
data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/ashrae_90_1_2004.Space.rb
DELETED
@@ -1,11 +0,0 @@
|
|
1
|
-
class ASHRAE9012004 < ASHRAE901
|
2
|
-
# @!group Space
|
3
|
-
|
4
|
-
# Baseline infiltration rate
|
5
|
-
#
|
6
|
-
# @return [Double] the baseline infiltration rate, in cfm/ft^2 exterior above grade wall area at 75 Pa
|
7
|
-
def space_infiltration_rate_75_pa(space = nil)
|
8
|
-
basic_infil_rate_cfm_per_ft2 = 1.8
|
9
|
-
return basic_infil_rate_cfm_per_ft2
|
10
|
-
end
|
11
|
-
end
|
@@ -1,169 +0,0 @@
|
|
1
|
-
{
|
2
|
-
"exterior_lighting": [
|
3
|
-
{
|
4
|
-
"exterior_lighting_zone_number": 0.0,
|
5
|
-
"exterior_lighting_zone_name": "Undeveloped Areas Parks",
|
6
|
-
"template": "ComStock 90.1-2004",
|
7
|
-
"control_option": "AstronomicalClock",
|
8
|
-
"building_facade_and_landscape_automatic_shut_off": 1,
|
9
|
-
"occupancy_setback_reduction": 0.0,
|
10
|
-
"base_site_allowance_power": null,
|
11
|
-
"base_site_allowance_fraction": 0.05,
|
12
|
-
"parking_areas_and_drives": 0.15,
|
13
|
-
"walkways_less_than_10ft_wide": 1.0,
|
14
|
-
"walkways_10ft_wide_or_greater": 0.2,
|
15
|
-
"stairways": 1.0,
|
16
|
-
"pedestrian_tunnels": null,
|
17
|
-
"landscaping": null,
|
18
|
-
"main_entries": 30.0,
|
19
|
-
"other_doors": 20.0,
|
20
|
-
"entry_canopies": 1.25,
|
21
|
-
"loading_docks": null,
|
22
|
-
"sales_canopies": null,
|
23
|
-
"outdoor_sales_open_areas": 0.5,
|
24
|
-
"outdoor_sales_street_frontage_for_vehicle_sales": 20.0,
|
25
|
-
"building_facades": 0.2,
|
26
|
-
"building_facades_alt_perim": 5.0,
|
27
|
-
"automated_teller_machines_per_location": 270.0,
|
28
|
-
"automated_teller_machines_per_machine": 90.0,
|
29
|
-
"entries_and_gates": 1.25,
|
30
|
-
"loading_areas_for_emergency_vehicles": 0.5,
|
31
|
-
"drive_through_windows_and_doors": 400.0,
|
32
|
-
"parking_near_24_hour_entrances": 800.0,
|
33
|
-
"roadway_parking": null,
|
34
|
-
"notes": null
|
35
|
-
},
|
36
|
-
{
|
37
|
-
"exterior_lighting_zone_number": 1.0,
|
38
|
-
"exterior_lighting_zone_name": "Developed Areas Parks",
|
39
|
-
"template": "ComStock 90.1-2004",
|
40
|
-
"control_option": "AstronomicalClock",
|
41
|
-
"building_facade_and_landscape_automatic_shut_off": 1,
|
42
|
-
"occupancy_setback_reduction": 0.0,
|
43
|
-
"base_site_allowance_power": null,
|
44
|
-
"base_site_allowance_fraction": 0.05,
|
45
|
-
"parking_areas_and_drives": 0.15,
|
46
|
-
"walkways_less_than_10ft_wide": 1.0,
|
47
|
-
"walkways_10ft_wide_or_greater": 0.2,
|
48
|
-
"stairways": 1.0,
|
49
|
-
"pedestrian_tunnels": null,
|
50
|
-
"landscaping": null,
|
51
|
-
"main_entries": 30.0,
|
52
|
-
"other_doors": 20.0,
|
53
|
-
"entry_canopies": 1.25,
|
54
|
-
"loading_docks": null,
|
55
|
-
"sales_canopies": null,
|
56
|
-
"outdoor_sales_open_areas": 0.5,
|
57
|
-
"outdoor_sales_street_frontage_for_vehicle_sales": 20.0,
|
58
|
-
"building_facades": 0.2,
|
59
|
-
"building_facades_alt_perim": 5.0,
|
60
|
-
"automated_teller_machines_per_location": 270.0,
|
61
|
-
"automated_teller_machines_per_machine": 90.0,
|
62
|
-
"entries_and_gates": 1.25,
|
63
|
-
"loading_areas_for_emergency_vehicles": 0.5,
|
64
|
-
"drive_through_windows_and_doors": 400.0,
|
65
|
-
"parking_near_24_hour_entrances": 800.0,
|
66
|
-
"roadway_parking": null,
|
67
|
-
"notes": null
|
68
|
-
},
|
69
|
-
{
|
70
|
-
"exterior_lighting_zone_number": 2.0,
|
71
|
-
"exterior_lighting_zone_name": "Neighborhood",
|
72
|
-
"template": "ComStock 90.1-2004",
|
73
|
-
"control_option": "AstronomicalClock",
|
74
|
-
"building_facade_and_landscape_automatic_shut_off": 1,
|
75
|
-
"occupancy_setback_reduction": 0.0,
|
76
|
-
"base_site_allowance_power": null,
|
77
|
-
"base_site_allowance_fraction": 0.05,
|
78
|
-
"parking_areas_and_drives": 0.15,
|
79
|
-
"walkways_less_than_10ft_wide": 1.0,
|
80
|
-
"walkways_10ft_wide_or_greater": 0.2,
|
81
|
-
"stairways": 1.0,
|
82
|
-
"pedestrian_tunnels": null,
|
83
|
-
"landscaping": null,
|
84
|
-
"main_entries": 30.0,
|
85
|
-
"other_doors": 20.0,
|
86
|
-
"entry_canopies": 1.25,
|
87
|
-
"loading_docks": null,
|
88
|
-
"sales_canopies": null,
|
89
|
-
"outdoor_sales_open_areas": 0.5,
|
90
|
-
"outdoor_sales_street_frontage_for_vehicle_sales": 20.0,
|
91
|
-
"building_facades": 0.2,
|
92
|
-
"building_facades_alt_perim": 5.0,
|
93
|
-
"automated_teller_machines_per_location": 270.0,
|
94
|
-
"automated_teller_machines_per_machine": 90.0,
|
95
|
-
"entries_and_gates": 1.25,
|
96
|
-
"loading_areas_for_emergency_vehicles": 0.5,
|
97
|
-
"drive_through_windows_and_doors": 400.0,
|
98
|
-
"parking_near_24_hour_entrances": 800.0,
|
99
|
-
"roadway_parking": null,
|
100
|
-
"notes": null
|
101
|
-
},
|
102
|
-
{
|
103
|
-
"exterior_lighting_zone_number": 3.0,
|
104
|
-
"exterior_lighting_zone_name": "All Other Areas",
|
105
|
-
"template": "ComStock 90.1-2004",
|
106
|
-
"control_option": "AstronomicalClock",
|
107
|
-
"building_facade_and_landscape_automatic_shut_off": 1,
|
108
|
-
"occupancy_setback_reduction": 0.0,
|
109
|
-
"base_site_allowance_power": null,
|
110
|
-
"base_site_allowance_fraction": 0.05,
|
111
|
-
"parking_areas_and_drives": 0.041457711,
|
112
|
-
"walkways_less_than_10ft_wide": 1.0,
|
113
|
-
"walkways_10ft_wide_or_greater": 0.2,
|
114
|
-
"stairways": 1.0,
|
115
|
-
"pedestrian_tunnels": null,
|
116
|
-
"landscaping": null,
|
117
|
-
"main_entries": 30.0,
|
118
|
-
"other_doors": 20.0,
|
119
|
-
"entry_canopies": 1.25,
|
120
|
-
"loading_docks": null,
|
121
|
-
"sales_canopies": null,
|
122
|
-
"outdoor_sales_open_areas": 0.5,
|
123
|
-
"outdoor_sales_street_frontage_for_vehicle_sales": 20.0,
|
124
|
-
"building_facades": 0.2,
|
125
|
-
"building_facades_alt_perim": 5.0,
|
126
|
-
"automated_teller_machines_per_location": 270.0,
|
127
|
-
"automated_teller_machines_per_machine": 90.0,
|
128
|
-
"entries_and_gates": 1.25,
|
129
|
-
"loading_areas_for_emergency_vehicles": 0.5,
|
130
|
-
"drive_through_windows_and_doors": 400.0,
|
131
|
-
"parking_near_24_hour_entrances": 800.0,
|
132
|
-
"roadway_parking": null,
|
133
|
-
"notes": "Parking Areas and Drives lpd updated based on values derived from 2015 U.S. Lighting Market Characterization report."
|
134
|
-
},
|
135
|
-
{
|
136
|
-
"exterior_lighting_zone_number": 4.0,
|
137
|
-
"exterior_lighting_zone_name": "High Activity",
|
138
|
-
"template": "ComStock 90.1-2004",
|
139
|
-
"control_option": "AstronomicalClock",
|
140
|
-
"building_facade_and_landscape_automatic_shut_off": 1,
|
141
|
-
"occupancy_setback_reduction": 0.0,
|
142
|
-
"base_site_allowance_power": null,
|
143
|
-
"base_site_allowance_fraction": 0.05,
|
144
|
-
"parking_areas_and_drives": 0.15,
|
145
|
-
"walkways_less_than_10ft_wide": 1.0,
|
146
|
-
"walkways_10ft_wide_or_greater": 0.2,
|
147
|
-
"stairways": 1.0,
|
148
|
-
"pedestrian_tunnels": null,
|
149
|
-
"landscaping": null,
|
150
|
-
"main_entries": 30.0,
|
151
|
-
"other_doors": 20.0,
|
152
|
-
"entry_canopies": 1.25,
|
153
|
-
"loading_docks": null,
|
154
|
-
"sales_canopies": null,
|
155
|
-
"outdoor_sales_open_areas": 0.5,
|
156
|
-
"outdoor_sales_street_frontage_for_vehicle_sales": 20.0,
|
157
|
-
"building_facades": 0.2,
|
158
|
-
"building_facades_alt_perim": 0.0,
|
159
|
-
"automated_teller_machines_per_location": 270.0,
|
160
|
-
"automated_teller_machines_per_machine": 90.0,
|
161
|
-
"entries_and_gates": 1.25,
|
162
|
-
"loading_areas_for_emergency_vehicles": 0.5,
|
163
|
-
"drive_through_windows_and_doors": 400.0,
|
164
|
-
"parking_near_24_hour_entrances": 800.0,
|
165
|
-
"roadway_parking": null,
|
166
|
-
"notes": null
|
167
|
-
}
|
168
|
-
]
|
169
|
-
}
|