openstudio-standards 0.4.0 → 0.5.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/inventory/thermal_bridging.csv +90 -0
- data/data/standards/OpenStudio_Standards-deer-comstock.xlsx +0 -0
- data/data/standards/manage_OpenStudio_Standards.rb +1 -1
- data/data/standards/test_performance_expected_dd_results.csv +2014 -1891
- data/lib/openstudio-standards/btap/analysis.rb +8 -8
- data/lib/openstudio-standards/btap/bridging.rb +664 -645
- data/lib/openstudio-standards/btap/btap.model.rb +14 -14
- data/lib/openstudio-standards/btap/btap.rb +7 -7
- data/lib/openstudio-standards/btap/btap_result.rb +1 -1
- data/lib/openstudio-standards/btap/economics.rb +23 -23
- data/lib/openstudio-standards/btap/envelope.rb +8 -8
- data/lib/openstudio-standards/btap/equest.rb +1 -1
- data/lib/openstudio-standards/btap/geometry.rb +2 -2
- data/lib/openstudio-standards/btap/mpc.rb +7 -7
- data/lib/openstudio-standards/btap/schedules.rb +1 -1
- data/lib/openstudio-standards/btap/simmanager.rb +4 -4
- data/lib/openstudio-standards/btap/spaceloads.rb +26 -26
- data/lib/openstudio-standards/btap/utilities.rb +6 -6
- data/lib/openstudio-standards/btap/vintagizer.rb +1 -1
- data/lib/openstudio-standards/constructions/information.rb +83 -0
- data/lib/openstudio-standards/constructions/materials/modify.rb +72 -0
- data/lib/openstudio-standards/constructions/modify.rb +80 -0
- data/lib/openstudio-standards/create_typical/create_typical.rb +983 -0
- data/lib/openstudio-standards/create_typical/enumerations.rb +484 -0
- data/lib/openstudio-standards/create_typical/space_type_blend.rb +791 -0
- data/lib/openstudio-standards/create_typical/space_type_ratios.rb +494 -0
- data/lib/openstudio-standards/daylighting/space.rb +47 -0
- data/lib/openstudio-standards/geometry/create.rb +801 -0
- data/lib/openstudio-standards/geometry/create_bar.rb +2171 -0
- data/lib/openstudio-standards/geometry/information.rb +462 -0
- data/lib/openstudio-standards/geometry/modify.rb +48 -0
- data/lib/openstudio-standards/hvac/air_loop/information.rb +79 -0
- data/lib/openstudio-standards/hvac/cbecs_hvac.rb +616 -0
- data/lib/openstudio-standards/hvac/setpoint_managers/information.rb +91 -0
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2004/ashrae_90_1_2004.AirTerminalSingleDuctVAVReheat.rb +1 -1
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2007/ashrae_90_1_2007.AirTerminalSingleDuctVAVReheat.rb +1 -1
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.AirTerminalSingleDuctVAVReheat.rb +1 -1
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.Model.rb +1 -1
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.AirTerminalSingleDuctVAVReheat.rb +1 -1
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.Model.rb +2 -2
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.hvac_systems.rb +1 -1
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.AirTerminalSingleDuctVAVReheat.rb +1 -1
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.Model.rb +4 -36
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.hvac_systems.rb +1 -1
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.AirTerminalSingleDuctVAVReheat.rb +1 -1
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.Model.rb +4 -36
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.Space.rb +3 -3
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.hvac_systems.rb +1 -1
- data/lib/openstudio-standards/prototypes/ashrae_90_1/doe_ref_1980_2004/doe_ref_1980_2004.AirTerminalSingleDuctVAVReheat.rb +1 -1
- data/lib/openstudio-standards/prototypes/ashrae_90_1/doe_ref_1980_2004/doe_ref_1980_2004.Model.elevators.rb +1 -1
- data/lib/openstudio-standards/prototypes/ashrae_90_1/doe_ref_pre_1980/doe_ref_pre_1980.AirTerminalSingleDuctVAVReheat.rb +1 -1
- data/lib/openstudio-standards/prototypes/ashrae_90_1/doe_ref_pre_1980/doe_ref_pre_1980.CoilHeatingGas.rb +1 -1
- data/lib/openstudio-standards/prototypes/ashrae_90_1/doe_ref_pre_1980/doe_ref_pre_1980.Model.elevators.rb +1 -1
- data/lib/openstudio-standards/prototypes/ashrae_90_1/nrel_nze_ready_2017/nrel_zne_ready_2017.AirTerminalSingleDuctVAVReheat.rb +1 -1
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.AirTerminalSingleDuctVAVReheat.rb +1 -1
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.College.rb +7 -7
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.Courthouse.rb +8 -8
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.FullServiceRestaurant.rb +14 -14
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.HighRiseApartment.rb +9 -9
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.Hospital.rb +16 -16
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.Laboratory.rb +7 -7
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.LargeDataCenterHighITE.rb +8 -8
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.LargeDataCenterLowITE.rb +8 -8
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.LargeHotel.rb +11 -11
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.LargeOffice.rb +7 -7
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.LargeOfficeDetailed.rb +9 -9
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.MediumOffice.rb +8 -8
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.MediumOfficeDetailed.rb +11 -11
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.MidriseApartment.rb +9 -9
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.Outpatient.rb +19 -19
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.PrimarySchool.rb +10 -10
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.QuickServiceRestaurant.rb +13 -13
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.RetailStandalone.rb +6 -6
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.RetailStripmall.rb +6 -6
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SecondarySchool.rb +9 -9
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SmallDataCenterHighITE.rb +8 -8
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SmallDataCenterLowITE.rb +8 -8
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SmallHotel.rb +8 -8
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SmallOffice.rb +8 -8
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SmallOfficeDetailed.rb +11 -11
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SuperMarket.rb +10 -10
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SuperTallBuilding.rb +19 -19
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.TallBuilding.rb +18 -18
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.Warehouse.rb +6 -6
- data/lib/openstudio-standards/prototypes/common/do_not_edit_metaclasses.rb +957 -957
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.AirConditionerVariableRefrigerantFlow.rb +1 -1
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.AirTerminalSingleDuctVAVReheat.rb +1 -1
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilCoolingWaterToAirHeatPumpEquationFit.rb +84 -16
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilHeatingDXSingleSpeed.rb +1 -1
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilHeatingGas.rb +1 -1
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilHeatingWaterToAirHeatPumpEquationFit.rb +61 -10
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.ControllerWaterCoil.rb +1 -1
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoolingTower.rb +1 -1
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.Fan.rb +1 -1
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.FanConstantVolume.rb +1 -1
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.FanOnOff.rb +1 -1
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.FanVariableVolume.rb +1 -1
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.FanZoneExhaust.rb +1 -1
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.HeatExchangerAirToAirSensibleAndLatent.rb +2 -2
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.exterior_lights.rb +4 -4
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.hvac.rb +4 -4
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.rb +43 -30
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.swh.rb +1 -1
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.ServiceWaterHeating.rb +18 -11
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.SizingSystem.rb +1 -1
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.hvac_systems.rb +774 -117
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.radiant_system_controls.rb +340 -481
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.refrigeration.rb +3 -3
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.utilities.rb +3 -3
- data/lib/openstudio-standards/prototypes/common/prototype_metaprogramming.rb +22 -22
- data/lib/openstudio-standards/prototypes/deer/deer.Model.rb +1 -1
- data/lib/openstudio-standards/qaqc/calibration.rb +131 -0
- data/lib/openstudio-standards/qaqc/create_results.rb +983 -0
- data/lib/openstudio-standards/qaqc/envelope.rb +399 -0
- data/lib/openstudio-standards/qaqc/eui.rb +213 -0
- data/lib/openstudio-standards/qaqc/hvac.rb +1943 -0
- data/lib/openstudio-standards/qaqc/internal_loads.rb +568 -0
- data/lib/openstudio-standards/qaqc/reporting.rb +141 -0
- data/lib/openstudio-standards/qaqc/schedules.rb +129 -0
- data/lib/openstudio-standards/qaqc/service_water_heating.rb +273 -0
- data/lib/openstudio-standards/qaqc/weather_files.rb +497 -0
- data/lib/openstudio-standards/qaqc/zone_conditions.rb +278 -0
- data/lib/openstudio-standards/schedules/create.rb +364 -0
- data/lib/openstudio-standards/schedules/information.rb +169 -0
- data/lib/openstudio-standards/schedules/modify.rb +445 -0
- data/lib/openstudio-standards/standards/Standards.AirLoopHVAC.rb +110 -71
- data/lib/openstudio-standards/standards/Standards.AirTerminalSingleDuctParallelPIUReheat.rb +3 -3
- data/lib/openstudio-standards/standards/Standards.AirTerminalSingleDuctVAVReheat.rb +4 -4
- data/lib/openstudio-standards/standards/Standards.BoilerHotWater.rb +2 -1
- data/lib/openstudio-standards/standards/Standards.ChillerElectricEIR.rb +16 -10
- data/lib/openstudio-standards/standards/Standards.CoilCoolingDXSingleSpeed.rb +4 -4
- data/lib/openstudio-standards/standards/Standards.CoilCoolingDXTwoSpeed.rb +1 -1
- data/lib/openstudio-standards/standards/Standards.CoilCoolingWaterToAirHeatPumpEquationFit.rb +1 -1
- data/lib/openstudio-standards/standards/Standards.CoilDX.rb +4 -4
- data/lib/openstudio-standards/standards/Standards.CoilHeatingDXMultiSpeed.rb +1 -1
- data/lib/openstudio-standards/standards/Standards.CoilHeatingDXSingleSpeed.rb +5 -5
- data/lib/openstudio-standards/standards/Standards.CoilHeatingGas.rb +1 -1
- data/lib/openstudio-standards/standards/Standards.CoilHeatingGasMultiStage.rb +1 -1
- data/lib/openstudio-standards/standards/Standards.CoilHeatingWaterToAirHeatPumpEquationFit.rb +1 -1
- data/lib/openstudio-standards/standards/Standards.Construction.rb +17 -18
- data/lib/openstudio-standards/standards/Standards.CoolingTower.rb +6 -6
- data/lib/openstudio-standards/standards/Standards.CoolingTowerSingleSpeed.rb +1 -1
- data/lib/openstudio-standards/standards/Standards.CoolingTowerTwoSpeed.rb +1 -1
- data/lib/openstudio-standards/standards/Standards.CoolingTowerVariableSpeed.rb +1 -1
- data/lib/openstudio-standards/standards/Standards.Fan.rb +6 -12
- data/lib/openstudio-standards/standards/Standards.FanVariableVolume.rb +2 -2
- data/lib/openstudio-standards/standards/Standards.FluidCooler.rb +1 -1
- data/lib/openstudio-standards/standards/Standards.HeaderedPumpsVariableSpeed.rb +1 -1
- data/lib/openstudio-standards/standards/Standards.HeatExchangerSensLat.rb +3 -3
- data/lib/openstudio-standards/standards/Standards.Model.rb +411 -261
- data/lib/openstudio-standards/standards/Standards.PlanarSurface.rb +2 -2
- data/lib/openstudio-standards/standards/Standards.PlantLoop.rb +94 -29
- data/lib/openstudio-standards/standards/Standards.Pump.rb +2 -2
- data/lib/openstudio-standards/standards/Standards.ScheduleConstant.rb +2 -2
- data/lib/openstudio-standards/standards/Standards.ScheduleRuleset.rb +14 -14
- data/lib/openstudio-standards/standards/Standards.Space.rb +37 -30
- data/lib/openstudio-standards/standards/Standards.SpaceType.rb +38 -29
- data/lib/openstudio-standards/standards/Standards.SubSurface.rb +7 -7
- data/lib/openstudio-standards/standards/Standards.Surface.rb +13 -13
- data/lib/openstudio-standards/standards/Standards.ThermalZone.rb +109 -66
- data/lib/openstudio-standards/standards/Standards.WaterHeaterMixed.rb +11 -4
- data/lib/openstudio-standards/standards/Standards.ZoneHVACComponent.rb +6 -6
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/ashrae_90_1_2004.AirLoopHVAC.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/ashrae_90_1_2004.PlantLoop.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/ashrae_90_1_2004.Space.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/ashrae_90_1_2007.Space.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.AirLoopHVAC.rb +4 -4
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.AirTerminalSingleDuctVAVReheat.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.Space.rb +4 -4
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.AirLoopHVAC.rb +4 -4
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.AirTerminalSingleDuctVAVReheat.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.CoolingTowerVariableSpeed.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.Model.rb +5 -21
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.Space.rb +4 -4
- 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/ashrae_90_1_2013.ZoneHVACComponent.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.AirLoopHVAC.rb +36 -4
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.AirTerminalSingleDuctVAVReheat.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.CoolingTowerVariableSpeed.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.Space.rb +4 -4
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.ZoneHVACComponent.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/comstock_ashrae_90_1_2016/comstock_ashrae_90_1_2016.AirLoopHVAC.rb +26 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.AirLoopHVAC.rb +53 -10
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.AirTerminalSingleDuctVAVReheat.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.CoolingTowerVariableSpeed.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.Space.rb +6 -6
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.ZoneHVACComponent.rb +2 -2
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/comstock_ashrae_90_1_2019/comstock_ashrae_90_1_2019.AirLoopHVAC.rb +26 -0
- data/lib/openstudio-standards/standards/ashrae_90_1/data/ashrae_90_1.curves.json +211 -211
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/data/doe_ref_1980_2004.economizers.json +14 -14
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/doe_ref_1980_2004.AirLoopHVAC.rb +4 -4
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/doe_ref_1980_2004.Model.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/doe_ref_1980_2004.PlantLoop.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/data/doe_ref_pre_1980.economizers.json +14 -14
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/doe_ref_pre_1980.AirLoopHVAC.rb +4 -4
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/doe_ref_pre_1980.Model.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/doe_ref_pre_1980.PlantLoop.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.AirLoopHVAC.rb +6 -6
- data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.AirTerminalSingleDuctVAVReheat.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.CoolingTowerVariableSpeed.rb +1 -1
- 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.Space.rb +4 -4
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.AirLoopHVAC.rb +6 -6
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.AirTerminalSingleDuctVAVReheat.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.CoolingTowerVariableSpeed.rb +1 -1
- 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.Space.rb +4 -4
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.AirLoopHVAC.rb +22 -28
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.AirTerminalSingleDuctParallelPIUReheat.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.AirTerminalSingleDuctVAVReheat.rb +2 -2
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.BoilerHotWater.rb +1 -74
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.ChillerElectricEIR.rb +7 -59
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilCoolingDXSingleSpeed.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilCoolingDXTwoSpeed.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilDX.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilHeatingDXSingleSpeed.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilHeatingGas.rb +1 -21
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.DesignSpecificationOutdoorAir.rb +101 -0
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.FanConstantVolume.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.FanOnOff.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.FanVariableVolume.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.HeatExchangerSensLat.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.Model.rb +643 -526
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.PlanarSurface.rb +8 -2
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.PlantLoop.rb +17 -77
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.Space.rb +74 -16
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.SpaceType.rb +96 -44
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.Surface.rb +6 -6
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.ThermalZone.rb +18 -6
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.ZoneHVACComponent.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.rb +328 -74
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/ashrae_90_1_prm_2019.Model.rb +0 -118
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/ashrae_90_1_prm_2019.rb +2 -1
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/data/ashrae_90_1_prm_2019.heat_rejection.json +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/docs/baseline_outdoor_air.md +35 -0
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/docs/set_plug_load_measures.md +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_csv/ashrae_90_1_prm.UserData.rb +228 -0
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_csv/userdata_enums.rb +131 -0
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_csv/userdata_space.csv +1 -1
- data/lib/openstudio-standards/standards/cbes/cbes.AirLoopHVAC.rb +5 -5
- data/lib/openstudio-standards/standards/cbes/cbes.Model.rb +1 -1
- data/lib/openstudio-standards/standards/cbes/cbes.PlantLoop.rb +1 -1
- data/lib/openstudio-standards/standards/cbes/cbes.Space.rb +1 -1
- data/lib/openstudio-standards/standards/cbes/cbes_t24_2005/cbes_t24_2005.Space.rb +1 -1
- data/lib/openstudio-standards/standards/cbes/cbes_t24_2008/cbes_t24_2008.Space.rb +1 -1
- data/lib/openstudio-standards/standards/deer/deer.AirLoopHVAC.rb +109 -27
- data/lib/openstudio-standards/standards/deer/deer.Space.rb +1 -1
- data/lib/openstudio-standards/standards/deer/deer_1985/data/deer_1985.economizers.json +246 -4
- data/lib/openstudio-standards/standards/deer/deer_1996/data/deer_1996.economizers.json +246 -4
- data/lib/openstudio-standards/standards/deer/deer_2003/data/deer_2003.economizers.json +246 -4
- data/lib/openstudio-standards/standards/deer/deer_2003/deer_2003.ThermalZone.rb +18 -18
- data/lib/openstudio-standards/standards/deer/deer_2007/data/deer_2007.economizers.json +246 -4
- data/lib/openstudio-standards/standards/deer/deer_2007/deer_2007.ThermalZone.rb +18 -18
- data/lib/openstudio-standards/standards/deer/deer_2011/data/deer_2011.economizers.json +246 -4
- data/lib/openstudio-standards/standards/deer/deer_2011/deer_2011.ThermalZone.rb +18 -18
- data/lib/openstudio-standards/standards/deer/deer_2014/data/deer_2014.economizers.json +248 -6
- data/lib/openstudio-standards/standards/deer/deer_2014/deer_2014.Space.rb +3 -3
- data/lib/openstudio-standards/standards/deer/deer_2014/deer_2014.ThermalZone.rb +18 -18
- data/lib/openstudio-standards/standards/deer/deer_2015/data/deer_2015.economizers.json +248 -6
- data/lib/openstudio-standards/standards/deer/deer_2015/deer_2015.Space.rb +3 -3
- data/lib/openstudio-standards/standards/deer/deer_2015/deer_2015.ThermalZone.rb +18 -18
- data/lib/openstudio-standards/standards/deer/deer_2017/data/deer_2017.economizers.json +248 -6
- data/lib/openstudio-standards/standards/deer/deer_2017/deer_2017.Space.rb +3 -3
- data/lib/openstudio-standards/standards/deer/deer_2017/deer_2017.ThermalZone.rb +18 -18
- data/lib/openstudio-standards/standards/deer/deer_2020/data/deer_2020.economizers.json +248 -6
- data/lib/openstudio-standards/standards/deer/deer_2020/deer_2020.AirLoopHVAC.rb +18 -5
- 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 +3 -3
- data/lib/openstudio-standards/standards/deer/deer_2020/deer_2020.ThermalZone.rb +18 -18
- data/lib/openstudio-standards/standards/deer/deer_2025/data/deer_2025.economizers.json +248 -6
- data/lib/openstudio-standards/standards/deer/deer_2025/deer_2025.AirLoopHVAC.rb +3 -3
- 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 +3 -3
- data/lib/openstudio-standards/standards/deer/deer_2030/data/deer_2030.economizers.json +248 -6
- data/lib/openstudio-standards/standards/deer/deer_2030/data/deer_2030.heat_pumps.json +2 -2
- data/lib/openstudio-standards/standards/deer/deer_2030/deer_2030.AirLoopHVAC.rb +3 -3
- 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 +3 -3
- data/lib/openstudio-standards/standards/deer/deer_2035/data/deer_2035.economizers.json +248 -6
- data/lib/openstudio-standards/standards/deer/deer_2035/deer_2035.AirLoopHVAC.rb +3 -3
- 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 +3 -3
- data/lib/openstudio-standards/standards/deer/deer_2040/data/deer_2040.economizers.json +248 -6
- data/lib/openstudio-standards/standards/deer/deer_2040/deer_2040.AirLoopHVAC.rb +3 -3
- 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 +3 -3
- data/lib/openstudio-standards/standards/deer/deer_2045/data/deer_2045.economizers.json +260 -0
- data/lib/openstudio-standards/standards/deer/deer_2045/deer_2045.AirLoopHVAC.rb +3 -3
- 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 +3 -3
- data/lib/openstudio-standards/standards/deer/deer_2050/data/deer_2050.economizers.json +248 -6
- data/lib/openstudio-standards/standards/deer/deer_2050/deer_2050.AirLoopHVAC.rb +3 -3
- 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 +3 -3
- data/lib/openstudio-standards/standards/deer/deer_2055/data/deer_2055.economizers.json +248 -6
- data/lib/openstudio-standards/standards/deer/deer_2055/deer_2055.AirLoopHVAC.rb +3 -3
- 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 +3 -3
- data/lib/openstudio-standards/standards/deer/deer_2060/data/deer_2060.economizers.json +248 -6
- data/lib/openstudio-standards/standards/deer/deer_2060/deer_2060.AirLoopHVAC.rb +3 -3
- 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 +3 -3
- data/lib/openstudio-standards/standards/deer/deer_2065/data/deer_2065.economizers.json +248 -6
- data/lib/openstudio-standards/standards/deer/deer_2065/deer_2065.AirLoopHVAC.rb +3 -3
- 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 +3 -3
- data/lib/openstudio-standards/standards/deer/deer_2070/data/deer_2070.economizers.json +248 -6
- data/lib/openstudio-standards/standards/deer/deer_2070/deer_2070.AirLoopHVAC.rb +3 -3
- 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 +3 -3
- data/lib/openstudio-standards/standards/deer/deer_2075/data/deer_2075.economizers.json +248 -6
- data/lib/openstudio-standards/standards/deer/deer_2075/deer_2075.AirLoopHVAC.rb +3 -3
- 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 +3 -3
- data/lib/openstudio-standards/standards/deer/deer_pre_1975/data/deer_pre_1975.economizers.json +246 -4
- data/lib/openstudio-standards/standards/necb/BTAP1980TO2010/data/space_types.json +447 -223
- data/lib/openstudio-standards/standards/necb/BTAPPRE1980/building_envelope.rb +1 -1
- data/lib/openstudio-standards/standards/necb/BTAPPRE1980/data/space_types.json +447 -223
- data/lib/openstudio-standards/standards/necb/BTAPPRE1980/hvac_systems.rb +5 -2
- data/lib/openstudio-standards/standards/necb/ECMS/data/chiller_types.json +25 -0
- data/lib/openstudio-standards/standards/necb/ECMS/data/chillers.json +44 -0
- data/lib/openstudio-standards/standards/necb/ECMS/data/curves.json +225 -0
- data/lib/openstudio-standards/standards/necb/ECMS/ecms.rb +2 -2
- data/lib/openstudio-standards/standards/necb/ECMS/hvac_systems.rb +193 -73
- data/lib/openstudio-standards/standards/necb/ECMS/pv_ground.rb +1 -1
- data/lib/openstudio-standards/standards/necb/NECB2011/autozone.rb +10 -4
- data/lib/openstudio-standards/standards/necb/NECB2011/beps_compliance_path.rb +7 -7
- data/lib/openstudio-standards/standards/necb/NECB2011/building_envelope.rb +4 -5
- data/lib/openstudio-standards/standards/necb/NECB2011/data/chiller_types.json +32 -0
- data/lib/openstudio-standards/standards/necb/NECB2011/data/chillers.json +1 -1
- data/lib/openstudio-standards/standards/necb/NECB2011/data/constants.json +36 -0
- data/lib/openstudio-standards/standards/necb/NECB2011/data/fuel_type_sets.json +7 -7
- data/lib/openstudio-standards/standards/necb/NECB2011/data/geometry/NorthernEducation.osm +47587 -0
- data/lib/openstudio-standards/standards/necb/NECB2011/data/geometry/NorthernHealthCare.osm +49764 -0
- data/lib/openstudio-standards/standards/necb/NECB2011/data/geometry/Warehouse.osm +283 -297
- data/lib/openstudio-standards/standards/necb/NECB2011/data/space_type_unit_definitions.txt +2 -1
- data/lib/openstudio-standards/standards/necb/NECB2011/data/space_types.json +447 -223
- data/lib/openstudio-standards/standards/necb/NECB2011/data/standards_data.rb +3 -3
- data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_1_multi_speed.rb +1 -1
- data/lib/openstudio-standards/standards/necb/NECB2011/hvac_systems.rb +49 -27
- data/lib/openstudio-standards/standards/necb/NECB2011/necb_2011.rb +400 -202
- data/lib/openstudio-standards/standards/necb/NECB2011/service_water_heating.rb +4 -4
- data/lib/openstudio-standards/standards/necb/NECB2015/data/space_types.json +637 -318
- data/lib/openstudio-standards/standards/necb/NECB2015/hvac_systems.rb +18 -1
- data/lib/openstudio-standards/standards/necb/NECB2015/necb_2015.rb +3 -3
- data/lib/openstudio-standards/standards/necb/NECB2017/data/space_types.json +637 -318
- data/lib/openstudio-standards/standards/necb/NECB2017/hvac_systems.rb +1 -1
- data/lib/openstudio-standards/standards/necb/NECB2017/necb_2017.rb +3 -3
- data/lib/openstudio-standards/standards/necb/NECB2020/building_envelope.rb +1 -1
- data/lib/openstudio-standards/standards/necb/NECB2020/data/space_types.json +615 -307
- data/lib/openstudio-standards/standards/necb/NECB2020/service_water_heating.rb +4 -4
- data/lib/openstudio-standards/standards/necb/common/btap_data.rb +10 -5
- data/lib/openstudio-standards/standards/necb/common/btap_datapoint.rb +1 -1
- data/lib/openstudio-standards/utilities/assertion.rb +128 -0
- data/lib/openstudio-standards/utilities/logging.rb +2 -3
- data/lib/openstudio-standards/utilities/object_info.rb +39 -18
- data/lib/openstudio-standards/utilities/schedule_translator.rb +8 -6
- data/lib/openstudio-standards/utilities/simulation.rb +24 -11
- data/lib/openstudio-standards/utilities/sqlfile.rb +10 -5
- data/lib/openstudio-standards/version.rb +1 -1
- data/lib/openstudio-standards/weather/Weather.Model.rb +8 -9
- data/lib/openstudio-standards/weather/Weather.stat_file.rb +3 -3
- data/lib/openstudio-standards/weather/information.rb +35 -0
- data/lib/openstudio-standards.rb +69 -5
- metadata +52 -16
- data/data/standards/OpenStudio_Standards-deer-ALL-comstock(space_types).xlsx +0 -0
- data/lib/openstudio-standards/hvac_sizing/Siz.AirLoopHVAC.rb +0 -59
- data/lib/openstudio-standards/hvac_sizing/Siz.CoilCoolingWater.rb +0 -13
- data/lib/openstudio-standards/hvac_sizing/Siz.HVACComponent.rb +0 -36
- data/lib/openstudio-standards/hvac_sizing/Siz.HeatingCoolingFuels.rb +0 -898
- data/lib/openstudio-standards/hvac_sizing/Siz.Model.rb +0 -126
- data/lib/openstudio-standards/hvac_sizing/Siz.ThermalZone.rb +0 -356
- data/lib/openstudio-standards/prototypes/ashrae_90_1/nrel_nze_ready_2017/nrel_zne_ready_2017.Model.rb +0 -35
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoolingTower.rb +0 -110
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoolingTowerVariableSpeed.rb +0 -5
|
@@ -63,7 +63,7 @@
|
|
|
63
63
|
#
|
|
64
64
|
# #This method will scale people loads.
|
|
65
65
|
# #@author phylroy.lopez@nrcan.gc.ca
|
|
66
|
-
# #@param model [OpenStudio::
|
|
66
|
+
# #@param model [OpenStudio::Model::Model] A model object
|
|
67
67
|
# #@param factor [Float]
|
|
68
68
|
# def self.scale_people_loads( model, factor )
|
|
69
69
|
# model.getPeoples.sort.each do |item|
|
|
@@ -73,7 +73,7 @@
|
|
|
73
73
|
#
|
|
74
74
|
# #This method will scale people loads schedule.
|
|
75
75
|
# #@author phylroy.lopez@nrcan.gc.ca
|
|
76
|
-
# #@param model [OpenStudio::
|
|
76
|
+
# #@param model [OpenStudio::Model::Model] A model object
|
|
77
77
|
# #@param a_coef [Float]
|
|
78
78
|
# #@param b_coef [Float]
|
|
79
79
|
# #@param c_coef [Float]
|
|
@@ -88,7 +88,7 @@
|
|
|
88
88
|
#
|
|
89
89
|
# #This method will scale lighting loads.
|
|
90
90
|
# #@author phylroy.lopez@nrcan.gc.ca
|
|
91
|
-
# #@param model [OpenStudio::
|
|
91
|
+
# #@param model [OpenStudio::Model::Model] A model object
|
|
92
92
|
# #@param factor [Float]
|
|
93
93
|
# def self.scale_lighting_loads( model, factor )
|
|
94
94
|
# model.getLightss.sort.each do |item|
|
|
@@ -98,7 +98,7 @@
|
|
|
98
98
|
#
|
|
99
99
|
# #This method will scale lighting loads schedule.
|
|
100
100
|
# #@author phylroy.lopez@nrcan.gc.ca
|
|
101
|
-
# #@param model [OpenStudio::
|
|
101
|
+
# #@param model [OpenStudio::Model::Model] A model object
|
|
102
102
|
# #@param a_coef [Float]
|
|
103
103
|
# #@param b_coef [Float]
|
|
104
104
|
# #@param c_coef [Float]
|
|
@@ -113,7 +113,7 @@
|
|
|
113
113
|
#
|
|
114
114
|
# #This method will scale electrical loads.
|
|
115
115
|
# #@author phylroy.lopez@nrcan.gc.ca
|
|
116
|
-
# #@param model [OpenStudio::
|
|
116
|
+
# #@param model [OpenStudio::Model::Model] A model object
|
|
117
117
|
# #@param factor [Float]
|
|
118
118
|
# def self.scale_electrical_loads( model, factor )
|
|
119
119
|
# model.getElectricEquipments.sort.each do |item|
|
|
@@ -123,7 +123,7 @@
|
|
|
123
123
|
#
|
|
124
124
|
# #This method will scale electrical loads schedule.
|
|
125
125
|
# #@author phylroy.lopez@nrcan.gc.ca
|
|
126
|
-
# #@param model [OpenStudio::
|
|
126
|
+
# #@param model [OpenStudio::Model::Model] A model object
|
|
127
127
|
# #@param a_coef [Float]
|
|
128
128
|
# #@param b_coef [Float]
|
|
129
129
|
# #@param c_coef [Float]
|
|
@@ -137,7 +137,7 @@
|
|
|
137
137
|
#
|
|
138
138
|
# #This method will scale hotwater loads.
|
|
139
139
|
# #@author phylroy.lopez@nrcan.gc.ca
|
|
140
|
-
# #@param model [OpenStudio::
|
|
140
|
+
# #@param model [OpenStudio::Model::Model] A model object
|
|
141
141
|
# #@param factor [Float]
|
|
142
142
|
# def self.scale_hot_water_loads( model, factor )
|
|
143
143
|
# model.getHotWaterEquipments.sort.each do |item|
|
|
@@ -147,7 +147,7 @@
|
|
|
147
147
|
#
|
|
148
148
|
# #This method will scale Outdoor Air loads.
|
|
149
149
|
# #@author phylroy.lopez@nrcan.gc.ca
|
|
150
|
-
# #@param model [OpenStudio::
|
|
150
|
+
# #@param model [OpenStudio::Model::Model] A model object
|
|
151
151
|
# #@param factor [Float]
|
|
152
152
|
# def self.scale_oa_loads( model, factor )
|
|
153
153
|
# model.getDesignSpecificationOutdoorAirs.sort.each do |oa_def|
|
|
@@ -160,7 +160,7 @@
|
|
|
160
160
|
#
|
|
161
161
|
# #This method will scale infiltration loads.
|
|
162
162
|
# #@author phylroy.lopez@nrcan.gc.ca
|
|
163
|
-
# #@param model [OpenStudio::
|
|
163
|
+
# #@param model [OpenStudio::Model::Model] A model object
|
|
164
164
|
# #@param factor [Float]
|
|
165
165
|
# def self.scale_inflitration_loads( model, factor )
|
|
166
166
|
# model.getSpaceInfiltrationDesignFlowRates.sort.each do |infiltration_load|
|
|
@@ -173,7 +173,7 @@
|
|
|
173
173
|
#
|
|
174
174
|
# #This method will set the infiltration magnitude.
|
|
175
175
|
# #@author phylroy.lopez@nrcan.gc.ca
|
|
176
|
-
# #@param model [OpenStudio::
|
|
176
|
+
# #@param model [OpenStudio::Model::Model] A model object
|
|
177
177
|
# #@param setDesignFlowRate [Float]
|
|
178
178
|
# #@param setFlowperSpaceFloorArea [Float]
|
|
179
179
|
# #@param setFlowperExteriorSurfaceArea [Float]
|
|
@@ -202,7 +202,7 @@
|
|
|
202
202
|
#
|
|
203
203
|
# #This method removes people loads from the model.
|
|
204
204
|
# #@author phylroy.lopez@nrcan.gc.ca
|
|
205
|
-
# #@param model [OpenStudio::
|
|
205
|
+
# #@param model [OpenStudio::Model::Model] A model object
|
|
206
206
|
# def self.remove_all_people_loads(model)
|
|
207
207
|
# model.getPeoples.sort.each {|people| people.remove}
|
|
208
208
|
# model.getPeopleDefinitions.sort.each {|people| people.remove}
|
|
@@ -211,7 +211,7 @@
|
|
|
211
211
|
#
|
|
212
212
|
# #This method created people loads from the model.
|
|
213
213
|
# #@author phylroy.lopez@nrcan.gc.ca
|
|
214
|
-
# #@param model [OpenStudio::
|
|
214
|
+
# #@param model [OpenStudio::Model::Model] A model object
|
|
215
215
|
# #@param people_name [String]
|
|
216
216
|
# #@param floor_area_per_person [Float]
|
|
217
217
|
# #@param multiplier [Float]
|
|
@@ -239,7 +239,7 @@
|
|
|
239
239
|
#
|
|
240
240
|
# #This method removes light loads from model.
|
|
241
241
|
# #@author phylroy.lopez@nrcan.gc.ca
|
|
242
|
-
# #@param model [OpenStudio::
|
|
242
|
+
# #@param model [OpenStudio::Model::Model] A model object
|
|
243
243
|
# def self.remove_all_light_loads(model)
|
|
244
244
|
# model.getLightss.sort.each {|item| item.remove}
|
|
245
245
|
# model.getLightsDefinitions.sort.each {|item| item.remove}
|
|
@@ -247,7 +247,7 @@
|
|
|
247
247
|
#
|
|
248
248
|
# #This method created people loads from the model.
|
|
249
249
|
# #@author phylroy.lopez@nrcan.gc.ca
|
|
250
|
-
# #@param model [OpenStudio::
|
|
250
|
+
# #@param model [OpenStudio::Model::Model] A model object
|
|
251
251
|
# #@param light_name [String]
|
|
252
252
|
# #@param light_watts_per_floor_area [Float]
|
|
253
253
|
# #@param multiplier [Float]
|
|
@@ -268,7 +268,7 @@
|
|
|
268
268
|
#
|
|
269
269
|
# #This method removes elec loads from model.
|
|
270
270
|
# #@author phylroy.lopez@nrcan.gc.ca
|
|
271
|
-
# #@param model [OpenStudio::
|
|
271
|
+
# #@param model [OpenStudio::Model::Model] A model object
|
|
272
272
|
# def self.remove_all_electric_loads(model)
|
|
273
273
|
# model.getElectricEquipments.sort.each {|item| item.remove}
|
|
274
274
|
# model.getElectricEquipmentDefinitions.sort.each {|item| item.remove}
|
|
@@ -277,7 +277,7 @@
|
|
|
277
277
|
#
|
|
278
278
|
# #This method created people loads from the model.
|
|
279
279
|
# #@author phylroy.lopez@nrcan.gc.ca
|
|
280
|
-
# #@param model [OpenStudio::
|
|
280
|
+
# #@param model [OpenStudio::Model::Model] A model object
|
|
281
281
|
# #@param elec_name [String]
|
|
282
282
|
# #@param elec_watts_per_floor_area [Float]
|
|
283
283
|
# #@param multiplier [Float]
|
|
@@ -297,7 +297,7 @@
|
|
|
297
297
|
#
|
|
298
298
|
# #This method removes hot water loads from model.
|
|
299
299
|
# #@author phylroy.lopez@nrcan.gc.ca
|
|
300
|
-
# #@param model [OpenStudio::
|
|
300
|
+
# #@param model [OpenStudio::Model::Model] A model object
|
|
301
301
|
# def self.remove_all_hot_water_loads(model)
|
|
302
302
|
# model.getHotWaterEquipments.sort.each {|item| item.remove}
|
|
303
303
|
# model.getHotWaterEquipmentDefinitions.sort.each {|item| item.remove}
|
|
@@ -305,7 +305,7 @@
|
|
|
305
305
|
#
|
|
306
306
|
# #This method creats hot water load.
|
|
307
307
|
# #@author phylroy.lopez@nrcan.gc.ca
|
|
308
|
-
# #@param model [OpenStudio::
|
|
308
|
+
# #@param model [OpenStudio::Model::Model] A model object
|
|
309
309
|
# #@param hot_water_name [String]
|
|
310
310
|
# #@param hot_water_watts_per_floor_area [Float]
|
|
311
311
|
# #@param multiplier [Float]
|
|
@@ -326,7 +326,7 @@
|
|
|
326
326
|
#
|
|
327
327
|
# #This method removes all design specification OA from model.
|
|
328
328
|
# #@author phylroy.lopez@nrcan.gc.ca
|
|
329
|
-
# #@param model [OpenStudio::
|
|
329
|
+
# #@param model [OpenStudio::Model::Model] A model object
|
|
330
330
|
# def self.remove_all_DesignSpecificationOutdoorAir(model)
|
|
331
331
|
# model.getDesignSpecificationOutdoorAirs.sort.each { |item| item.remove }
|
|
332
332
|
# end
|
|
@@ -334,7 +334,7 @@
|
|
|
334
334
|
#
|
|
335
335
|
# #This method removes all space infiltration design flow rate OA from model.
|
|
336
336
|
# #@author phylroy.lopez@nrcan.gc.ca
|
|
337
|
-
# #@param model [OpenStudio::
|
|
337
|
+
# #@param model [OpenStudio::Model::Model] A model object
|
|
338
338
|
# def self.remove_all_SpaceInfiltrationDesignFlowRate(model)
|
|
339
339
|
# OpenStudio::Model::SpaceInfiltrationDesignFlowRate
|
|
340
340
|
# model.getSpaceInfiltrationDesignFlowRates.sort.each { |item| item.remove }
|
|
@@ -342,7 +342,7 @@
|
|
|
342
342
|
#
|
|
343
343
|
# #This method creats hot water load.
|
|
344
344
|
# #@author phylroy.lopez@nrcan.gc.ca
|
|
345
|
-
# #@param model [OpenStudio::
|
|
345
|
+
# #@param model [OpenStudio::Model::Model] A model object
|
|
346
346
|
# #@param oa_name [String]
|
|
347
347
|
# #@param oa_person [Fixnum]
|
|
348
348
|
# #@param oa_area [Fixnum]
|
|
@@ -350,7 +350,7 @@
|
|
|
350
350
|
# #@param oa_flowrate [Fixnum]
|
|
351
351
|
# #@param method [String]
|
|
352
352
|
# #@param schedule [Float]
|
|
353
|
-
# #@return [OpenStudio::
|
|
353
|
+
# #@return [OpenStudio::Model::Model] oa_def
|
|
354
354
|
# def self.create_oa_load(model,oa_name,oa_person = 0 ,oa_area = 0, oa_ach = 0, oa_flowrate = 0, method = "Maximum",schedule = nil)
|
|
355
355
|
# raise("DesignSpecificationOutdoorAir #{name} already exists. Please use a different name") unless model.getDesignSpecificationOutdoorAirByName( oa_name ).empty?
|
|
356
356
|
# #units are in m3/s for flow and m2 for area.
|
|
@@ -373,7 +373,7 @@
|
|
|
373
373
|
#
|
|
374
374
|
# #This method removes infiltration from model..
|
|
375
375
|
# #@author phylroy.lopez@nrcan.gc.ca
|
|
376
|
-
# #@param model [OpenStudio::
|
|
376
|
+
# #@param model [OpenStudio::Model::Model] A model object
|
|
377
377
|
# def self.remove_all_SpaceInfiltrationDesignFlowRates(model)
|
|
378
378
|
# model.getSpaceInfiltrationDesignFlowRates.sort.each { |item| item.remove }
|
|
379
379
|
# end
|
|
@@ -381,7 +381,7 @@
|
|
|
381
381
|
# #This method creates infiltration load.
|
|
382
382
|
# #NECB infiltration rate is 0.25L/s/m2 or 0.00025 m3/s/m2
|
|
383
383
|
# #@author phylroy.lopez@nrcan.gc.ca
|
|
384
|
-
# #@param model [OpenStudio::
|
|
384
|
+
# #@param model [OpenStudio::Model::Model] A model object
|
|
385
385
|
# #@return [String] infiltration_load
|
|
386
386
|
# def self.create_infiltration_load(model,
|
|
387
387
|
# infil_name,
|
|
@@ -419,7 +419,7 @@
|
|
|
419
419
|
#
|
|
420
420
|
# #This method removes all loads from model.
|
|
421
421
|
# #@author phylroy.lopez@nrcan.gc.ca
|
|
422
|
-
# #@param model [OpenStudio::
|
|
422
|
+
# #@param model [OpenStudio::Model::Model] A model object
|
|
423
423
|
# def self.remove_all_casual_loads(model)
|
|
424
424
|
# self.remove_all_people_loads(model)
|
|
425
425
|
# self.remove_all_light_loads(model)
|
|
@@ -429,7 +429,7 @@
|
|
|
429
429
|
#
|
|
430
430
|
# #This method removes all space loads from model.
|
|
431
431
|
# #@author phylroy.lopez@nrcan.gc.ca
|
|
432
|
-
# #@param model [OpenStudio::
|
|
432
|
+
# #@param model [OpenStudio::Model::Model] A model object
|
|
433
433
|
# def self.remove_all_SpaceLoads(model)
|
|
434
434
|
# model.getSpaceLoads.sort.each { |item| item.remove }
|
|
435
435
|
# model.getSpaceLoadDefinitions.sort.each { |item| item.remove }
|
|
@@ -49,9 +49,9 @@
|
|
|
49
49
|
# #argument model(s). This is handy for quickly viewing changes to the file during
|
|
50
50
|
# #runtime for debugging and QA.
|
|
51
51
|
# #@author phylroy.lopez@nrcan.gc.ca
|
|
52
|
-
# #@param model1 [OpenStudio::
|
|
53
|
-
# #@param model2 [OpenStudio::
|
|
54
|
-
# #@param model3 [OpenStudio::
|
|
52
|
+
# #@param model1 [OpenStudio::Model::Model] A model object.
|
|
53
|
+
# #@param model2 [OpenStudio::Model::Model] A model object.
|
|
54
|
+
# #@param model3 [OpenStudio::Model::Model] A model object.
|
|
55
55
|
# def self.kdiff3_model_osm(model1, model2, model3 = "")
|
|
56
56
|
# Dir::mkdir("C:\\kdiff_test") unless File.exists?("C:\\kdiff_test")
|
|
57
57
|
# model1.save(OpenStudio::Path.new("c:\\kdiff_test\\diffA.osm"))
|
|
@@ -71,9 +71,9 @@
|
|
|
71
71
|
# #argument model(s). This is handy for quickly viewing changes to the file during
|
|
72
72
|
# #runtime for debugging and QA.
|
|
73
73
|
# #@author phylroy.lopez@nrcan.gc.ca
|
|
74
|
-
# #@param model1 [OpenStudio::
|
|
75
|
-
# #@param model2 [OpenStudio::
|
|
76
|
-
# #@param model3 [OpenStudio::
|
|
74
|
+
# #@param model1 [OpenStudio::Model::Model] A model object.
|
|
75
|
+
# #@param model2 [OpenStudio::Model::Model] A model object.
|
|
76
|
+
# #@param model3 [OpenStudio::Model::Model] A model object.
|
|
77
77
|
# def self.kdiff3_model_idf(model1, model2, model3 = "")
|
|
78
78
|
# Dir::mkdir("C:\\kdiff_test") unless File.exists?("C:\\kdiff_test")
|
|
79
79
|
#
|
|
@@ -24,7 +24,7 @@ class Vintagizer
|
|
|
24
24
|
|
|
25
25
|
#This method loads Vintage database information.
|
|
26
26
|
#@author phylroy.lopez@nrcan.gc.ca
|
|
27
|
-
#@param model [OpenStudio::
|
|
27
|
+
#@param model [OpenStudio::Model::Model] A model object
|
|
28
28
|
#@param file [String]
|
|
29
29
|
#@param selectionHash [???]
|
|
30
30
|
def initialize(model,file,selectionHash)
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
# Methods to create typical models
|
|
2
|
+
module OpenstudioStandards
|
|
3
|
+
module Constructions
|
|
4
|
+
# @!group Information
|
|
5
|
+
|
|
6
|
+
# Returns the solar reflectance index of an exposed surface.
|
|
7
|
+
# On a scale of 0 to 100, standard black is 0, and standard white is 100.
|
|
8
|
+
# The calculation derived from ASTM E1980 assuming medium wind speed.
|
|
9
|
+
#
|
|
10
|
+
# @param construction [OpenStudio::Model::Construction] OpenStudio Construction object
|
|
11
|
+
# @return [Double] The solar reflectance value
|
|
12
|
+
def self.construction_get_solar_reflectance_index(construction)
|
|
13
|
+
exposed_material = construction.to_LayeredConstruction.get.getLayer(0)
|
|
14
|
+
solar_absorptance = exposed_material.to_OpaqueMaterial.get.solarAbsorptance
|
|
15
|
+
thermal_emissivity = exposed_material.to_OpaqueMaterial.get.thermalAbsorptance
|
|
16
|
+
x = (20.797 * solar_absorptance - 0.603 * thermal_emissivity) / (9.5205 * thermal_emissivity + 12.0)
|
|
17
|
+
sri = 123.97 - 141.35 * x + 9.6555 * x * x
|
|
18
|
+
|
|
19
|
+
return sri
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
# report names of constructions in a construction set
|
|
23
|
+
#
|
|
24
|
+
# @param default_construction_set [OpenStudio::Model::Defaultdefault_construction_set] OpenStudio Defaultdefault_construction_set object
|
|
25
|
+
# @return [Array<OpenStudio::Model::Construction>] Array of OpenStudio Construction objects
|
|
26
|
+
def self.construction_set_get_constructions(default_construction_set)
|
|
27
|
+
construction_array = []
|
|
28
|
+
|
|
29
|
+
# populate exterior surfaces
|
|
30
|
+
if default_construction_set.defaultExteriorSurfaceConstructions.is_initialized
|
|
31
|
+
default_surface_constructions = default_construction_set.defaultExteriorSurfaceConstructions.get
|
|
32
|
+
construction_array << default_surface_constructions.floorConstruction.get if default_surface_constructions.floorConstruction.is_initialized
|
|
33
|
+
construction_array << default_surface_constructions.wallConstruction.get if default_surface_constructions.wallConstruction.is_initialized
|
|
34
|
+
construction_array << default_surface_constructions.roofCeilingConstruction.get if default_surface_constructions.roofCeilingConstruction.is_initialized
|
|
35
|
+
end
|
|
36
|
+
# populate interior surfaces
|
|
37
|
+
if default_construction_set.defaultInteriorSurfaceConstructions.is_initialized
|
|
38
|
+
default_surface_constructions = default_construction_set.defaultInteriorSurfaceConstructions.get
|
|
39
|
+
construction_array << default_surface_constructions.floorConstruction.get if default_surface_constructions.floorConstruction.is_initialized
|
|
40
|
+
construction_array << default_surface_constructions.wallConstruction.get if default_surface_constructions.wallConstruction.is_initialized
|
|
41
|
+
construction_array << default_surface_constructions.roofCeilingConstruction.get if default_surface_constructions.roofCeilingConstruction.is_initialized
|
|
42
|
+
end
|
|
43
|
+
# populate ground surfaces
|
|
44
|
+
if default_construction_set.defaultGroundContactSurfaceConstructions.is_initialized
|
|
45
|
+
default_surface_constructions = default_construction_set.defaultGroundContactSurfaceConstructions.get
|
|
46
|
+
construction_array << default_surface_constructions.floorConstruction.get if default_surface_constructions.floorConstruction.is_initialized
|
|
47
|
+
construction_array << default_surface_constructions.wallConstruction.get if default_surface_constructions.wallConstruction.is_initialized
|
|
48
|
+
construction_array << default_surface_constructions.roofCeilingConstruction.get if default_surface_constructions.roofCeilingConstruction.is_initialized
|
|
49
|
+
end
|
|
50
|
+
# populate exterior sub-surfaces
|
|
51
|
+
if default_construction_set.defaultExteriorSubSurfaceConstructions.is_initialized
|
|
52
|
+
default_subsurface_constructions = default_construction_set.defaultExteriorSubSurfaceConstructions.get
|
|
53
|
+
construction_array << default_subsurface_constructions.fixedWindowConstruction.get if default_subsurface_constructions.fixedWindowConstruction.is_initialized
|
|
54
|
+
construction_array << default_subsurface_constructions.operableWindowConstruction.get if default_subsurface_constructions.operableWindowConstruction.is_initialized
|
|
55
|
+
construction_array << default_subsurface_constructions.doorConstruction.get if default_subsurface_constructions.doorConstruction.is_initialized
|
|
56
|
+
construction_array << default_subsurface_constructions.glassDoorConstruction.get if default_subsurface_constructions.glassDoorConstruction.is_initialized
|
|
57
|
+
construction_array << default_subsurface_constructions.overheadDoorConstruction.get if default_subsurface_constructions.overheadDoorConstruction.is_initialized
|
|
58
|
+
construction_array << default_subsurface_constructions.skylightConstruction.get if default_subsurface_constructions.skylightConstruction.is_initialized
|
|
59
|
+
construction_array << default_subsurface_constructions.tubularDaylightDomeConstruction.get if default_subsurface_constructions.tubularDaylightDomeConstruction.is_initialized
|
|
60
|
+
construction_array << default_subsurface_constructions.tubularDaylightDiffuserConstruction.get if default_subsurface_constructions.tubularDaylightDiffuserConstruction.is_initialized
|
|
61
|
+
end
|
|
62
|
+
# populate interior sub-surfaces
|
|
63
|
+
if default_construction_set.defaultInteriorSubSurfaceConstructions.is_initialized
|
|
64
|
+
default_subsurface_constructions = default_construction_set.defaultInteriorSubSurfaceConstructions.get
|
|
65
|
+
construction_array << default_subsurface_constructions.fixedWindowConstruction.get if default_subsurface_constructions.fixedWindowConstruction.is_initialized
|
|
66
|
+
construction_array << default_subsurface_constructions.operableWindowConstruction.get if default_subsurface_constructions.operableWindowConstruction.is_initialized
|
|
67
|
+
construction_array << default_subsurface_constructions.doorConstruction.get if default_subsurface_constructions.doorConstruction.is_initialized
|
|
68
|
+
construction_array << default_subsurface_constructions.glassDoorConstruction.get if default_subsurface_constructions.glassDoorConstruction.is_initialized
|
|
69
|
+
construction_array << default_subsurface_constructions.overheadDoorConstruction.get if default_subsurface_constructions.overheadDoorConstruction.is_initialized
|
|
70
|
+
construction_array << default_subsurface_constructions.skylightConstruction.get if default_subsurface_constructions.skylightConstruction.is_initialized
|
|
71
|
+
construction_array << default_subsurface_constructions.tubularDaylightDomeConstruction.get if default_subsurface_constructions.tubularDaylightDomeConstruction.is_initialized
|
|
72
|
+
construction_array << default_subsurface_constructions.tubularDaylightDiffuserConstruction.get if default_subsurface_constructions.tubularDaylightDiffuserConstruction.is_initialized
|
|
73
|
+
end
|
|
74
|
+
# populate misc surfaces
|
|
75
|
+
construction_array << default_construction_set.interiorPartitionConstruction.get if default_construction_set.interiorPartitionConstruction.is_initialized
|
|
76
|
+
construction_array << default_construction_set.spaceShadingConstruction.get if default_construction_set.spaceShadingConstruction.is_initialized
|
|
77
|
+
construction_array << default_construction_set.buildingShadingConstruction.get if default_construction_set.buildingShadingConstruction.is_initialized
|
|
78
|
+
construction_array << default_construction_set.siteShadingConstruction.get if default_construction_set.siteShadingConstruction.is_initialized
|
|
79
|
+
|
|
80
|
+
return construction_array
|
|
81
|
+
end
|
|
82
|
+
end
|
|
83
|
+
end
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
# Methods to modify material properties
|
|
2
|
+
module OpenstudioStandards
|
|
3
|
+
module Constructions
|
|
4
|
+
module Materials
|
|
5
|
+
# @!group Modify
|
|
6
|
+
|
|
7
|
+
# change thermal resistance of opaque materials by increasing material thickness,
|
|
8
|
+
# or setting thermal resistance directly for massless or airgap materials.
|
|
9
|
+
#
|
|
10
|
+
# @param opaque_material [OpenStudio::Model::OpaqueMaterial] OpenStudio OpaqueMaterial object
|
|
11
|
+
# @param thermal_resistance [Double] Target thermal resistance of the material in m^2*K/W
|
|
12
|
+
# @return [OpenStudio::Model::OpaqueMaterial] OpenStudio OpaqueMaterial object
|
|
13
|
+
def self.opaque_material_set_thermal_resistance(opaque_material, thermal_resistance)
|
|
14
|
+
unless opaque_material.to_OpaqueMaterial.is_initialized
|
|
15
|
+
OpenStudio.logFree(OpenStudio::Error, 'openstudio.standards.constructions.materials', "Object #{opaque_material} cannot be cast as an OpaqueMaterial object.")
|
|
16
|
+
return false
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
# edit insulation material
|
|
20
|
+
material = opaque_material.to_OpaqueMaterial.get
|
|
21
|
+
if material.to_MasslessOpaqueMaterial.is_initialized
|
|
22
|
+
material = material.to_MasslessOpaqueMaterial.get
|
|
23
|
+
material.setThermalResistance(thermal_resistance)
|
|
24
|
+
elsif material.to_AirGap.is_initialized
|
|
25
|
+
material = material.to_AirGap.get
|
|
26
|
+
material.setThermalResistance(thermal_resistance)
|
|
27
|
+
else
|
|
28
|
+
starting_thickness = material.thickness
|
|
29
|
+
target_thickness = starting_thickness * thermal_resistance / material.thermalResistance
|
|
30
|
+
material.setThickness(target_thickness)
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
return material.to_OpaqueMaterial.get
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
# set material surface properties
|
|
37
|
+
#
|
|
38
|
+
# @param opaque_material [OpenStudio::Model::OpaqueMaterial] OpenStudio OpaqueMaterial object
|
|
39
|
+
# @param roughness [String] surface roughness. Options are 'VeryRough', 'Rough', 'MediumRough',
|
|
40
|
+
# 'MediumSmooth', 'Smooth', and 'VerySmooth'
|
|
41
|
+
# @param thermal_absorptance [Double] target thermal absorptance
|
|
42
|
+
# @param solar_absorptance [Double] target solar absorptance
|
|
43
|
+
# @param visible_absorptance [Double] target visible absorptance
|
|
44
|
+
# @return [OpenStudio::Model::OpaqueMaterial] OpenStudio OpaqueMaterial object
|
|
45
|
+
def self.opaque_material_set_surface_properties(opaque_material,
|
|
46
|
+
roughness: nil,
|
|
47
|
+
thermal_absorptance: nil,
|
|
48
|
+
solar_absorptance: nil,
|
|
49
|
+
visible_absorptance: nil)
|
|
50
|
+
unless opaque_material.to_OpaqueMaterial.is_initialized
|
|
51
|
+
OpenStudio.logFree(OpenStudio::Error, 'openstudio.standards.constructions.materials', "Object #{opaque_material} cannot be cast as an OpaqueMaterial object.")
|
|
52
|
+
return false
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
# set requested material properties
|
|
56
|
+
material = opaque_material.to_OpaqueMaterial.get
|
|
57
|
+
if material.to_StandardOpaqueMaterial.is_initialized
|
|
58
|
+
material = material.to_StandardOpaqueMaterial.get
|
|
59
|
+
material.setRoughness(roughness) unless roughness.nil?
|
|
60
|
+
elsif material.to_MasslessOpaqueMaterial.is_initialized
|
|
61
|
+
material = material.to_MasslessOpaqueMaterial.get
|
|
62
|
+
material.setRoughness(roughness) unless roughness.nil?
|
|
63
|
+
end
|
|
64
|
+
material.setThermalAbsorptance(thermal_absorptance) unless thermal_absorptance.nil?
|
|
65
|
+
material.setSolarAbsorptance(solar_absorptance) unless solar_absorptance.nil?
|
|
66
|
+
material.setVisibleAbsorptance(visible_absorptance) unless visible_absorptance.nil?
|
|
67
|
+
|
|
68
|
+
return material.to_OpaqueMaterial.get
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
end
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# Methods to modify construction properties
|
|
2
|
+
module OpenstudioStandards
|
|
3
|
+
module Constructions
|
|
4
|
+
# @!group Modify
|
|
5
|
+
|
|
6
|
+
# add new material layer to a construction
|
|
7
|
+
#
|
|
8
|
+
# @param construction [OpenStudio::Model::Construction] OpenStudio Construction object
|
|
9
|
+
# @param layer_index [Integer] the layer index, default is 0
|
|
10
|
+
# @param name [String] name of the new material layer
|
|
11
|
+
# @param roughness [String] surface roughness of the new material layer.
|
|
12
|
+
# Options are 'VeryRough', 'Rough', 'MediumRough', 'MediumSmooth', 'Smooth', and 'VerySmooth'
|
|
13
|
+
# @param thickness [Double] thickness of the new material layer in meters
|
|
14
|
+
# @param conductivity [Double] conductivity of new material layer in W/m*K
|
|
15
|
+
# @param density [Double] density of the new material layer in kg/m^3
|
|
16
|
+
# @param specific_heat [Double] specific heat of the new material layer in J/kg*K
|
|
17
|
+
# @param thermal_absorptance [Double] target thermal absorptance
|
|
18
|
+
# @param solar_absorptance [Double] target solar absorptance
|
|
19
|
+
# @param visible_absorptance [Double] target visible absorptance
|
|
20
|
+
# @return [OpenStudio::Model::StandardOpaqueMaterial] The new material layer, a OpenStudio StandardOpaqueMaterial object
|
|
21
|
+
def self.construction_add_new_opaque_material(construction,
|
|
22
|
+
layer_index: 0,
|
|
23
|
+
name: nil,
|
|
24
|
+
roughness: nil,
|
|
25
|
+
thickness: nil,
|
|
26
|
+
conductivity: nil,
|
|
27
|
+
density: nil,
|
|
28
|
+
specific_heat: nil,
|
|
29
|
+
thermal_absorptance: nil,
|
|
30
|
+
solar_absorptance: nil,
|
|
31
|
+
visible_absorptance: nil)
|
|
32
|
+
|
|
33
|
+
# make new material
|
|
34
|
+
new_material = OpenStudio::Model::StandardOpaqueMaterial.new(construction.model)
|
|
35
|
+
if name.nil?
|
|
36
|
+
new_material.setName("#{construction.name} New Material")
|
|
37
|
+
else
|
|
38
|
+
new_material.setName(name)
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
# set requested material properties
|
|
42
|
+
new_material.setRoughness(roughness) unless roughness.nil?
|
|
43
|
+
new_material.setThickness(thickness) unless thickness.nil?
|
|
44
|
+
new_material.setConductivity(conductivity) unless conductivity.nil?
|
|
45
|
+
new_material.setDensity(density) unless density.nil?
|
|
46
|
+
new_material.setSpecificHeat(specific_heat) unless specific_heat.nil?
|
|
47
|
+
new_material.setThermalAbsorptance(thermal_absorptance) unless thermal_absorptance.nil?
|
|
48
|
+
new_material.setSolarAbsorptance(solar_absorptance) unless solar_absorptance.nil?
|
|
49
|
+
new_material.setVisibleAbsorptance(visible_absorptance) unless visible_absorptance.nil?
|
|
50
|
+
|
|
51
|
+
# add material to construction
|
|
52
|
+
construction.insertLayer(layer_index, new_material)
|
|
53
|
+
|
|
54
|
+
return new_material
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
# set construction surface properties
|
|
58
|
+
#
|
|
59
|
+
# @param construction [OpenStudio::Model::Construction] OpenStudio Construction object
|
|
60
|
+
# @param roughness [String] surface roughness
|
|
61
|
+
# @param thermal_absorptance [Double] target thermal absorptance
|
|
62
|
+
# @param solar_absorptance [Double] target solar absorptance
|
|
63
|
+
# @param visible_absorptance [Double] target visible absorptance
|
|
64
|
+
# @return [OpenStudio::Model::OpaqueMaterial] OpenStudio OpaqueMaterial object
|
|
65
|
+
def self.construction_set_surface_properties(construction,
|
|
66
|
+
roughness: nil,
|
|
67
|
+
thermal_absorptance: nil,
|
|
68
|
+
solar_absorptance: nil,
|
|
69
|
+
visible_absorptance: nil)
|
|
70
|
+
|
|
71
|
+
surface_material = construction.to_LayeredConstruction.get.getLayer(0)
|
|
72
|
+
new_material = OpenstudioStandards::Constructions::Materials.opaque_material_set_surface_properties(surface_material,
|
|
73
|
+
roughness: roughness,
|
|
74
|
+
thermal_absorptance: thermal_absorptance,
|
|
75
|
+
solar_absorptance: solar_absorptance,
|
|
76
|
+
visible_absorptance: visible_absorptance)
|
|
77
|
+
return new_material
|
|
78
|
+
end
|
|
79
|
+
end
|
|
80
|
+
end
|