private static SpaceSimulationResult SpaceSimulationResult_Cooling(float load_Simulation, int index_Simulation, ZoneData zoneData_Simulation, float load_DesignDay, int index_DesignDay, ZoneData zoneData_DesignDay) { if (float.IsNaN(load_Simulation) || float.IsNaN(load_DesignDay)) { return(null); } if (load_Simulation == 0 && load_DesignDay == 0) { return(SpaceSimulationResult(zoneData_Simulation, LoadType.Cooling)); } int index = -1; ZoneData zoneData = null; SizingMethod sizingMethod = SizingMethod.Undefined; if (load_Simulation > load_DesignDay) { sizingMethod = SizingMethod.Simulation; index = index_Simulation; zoneData = zoneData_Simulation; } else { sizingMethod = SizingMethod.CDD; index = index_DesignDay; zoneData = zoneData_DesignDay; } return(SpaceSimulationResult(zoneData, index, LoadType.Cooling, sizingMethod)); }
private static SpaceSimulationResult SpaceSimulationResult_Heating(float load_Simulation, int index_Simulation, ZoneData zoneData_Simulation, float load_DesignDay, int index_DesignDay, ZoneData zoneData_DesignDay) { if (float.IsNaN(load_Simulation) || float.IsNaN(load_DesignDay)) { return(null); } if (load_Simulation == 0 && load_DesignDay == 0) { SpaceSimulationResult result = SpaceSimulationResult(zoneData_Simulation, LoadType.Heating); if (zoneData_DesignDay != null) { double dryBulbTemp = zoneData_DesignDay.GetHourlyZoneResult(1, (short)tsdZoneArray.dryBulbTemp); result.SetValue(Analytical.SpaceSimulationResultParameter.DryBulbTempearture, dryBulbTemp); double resultantTemp = zoneData_DesignDay.GetHourlyZoneResult(1, (short)tsdZoneArray.resultantTemp); result.SetValue(Analytical.SpaceSimulationResultParameter.ResultantTemperature, resultantTemp); } return(result); } int index = -1; ZoneData zoneData = null; SizingMethod sizingMethod = SizingMethod.Undefined; if (load_Simulation > load_DesignDay) { sizingMethod = SizingMethod.Simulation; index = index_Simulation; zoneData = zoneData_Simulation; } else { sizingMethod = SizingMethod.HDD; index = index_DesignDay; zoneData = zoneData_DesignDay; } return(SpaceSimulationResult(zoneData, index, LoadType.Heating, sizingMethod)); }
public static SpaceAnalyticalFragment SpaceAnalyticalFragment(double internalDomesticHotWater = 0.0, double daylightFactor = 0.0, double facadeLength = 0.0, double fixedConvectionCoefficient = 0.0, SizingMethod sizeCooling = SizingMethod.Undefined, SizingMethod sizeHeating = SizingMethod.Undefined, double radiantProportion = 0.0) { return(new SpaceAnalyticalFragment { InternalDomesticHotWater = internalDomesticHotWater, DaylightFactor = daylightFactor, FacadeLength = facadeLength, FixedConvectionCoefficient = fixedConvectionCoefficient, SizeCoolingMethod = sizeCooling, SizeHeatingMethod = sizeHeating, RadiantProportion = radiantProportion, }); }
public static SpaceAnalyticalFragment SpaceAnalyticalFragment(string name = "", double internalDomesticHotWater = 0.0, double daylightFactor = 0.0, double facadeLength = 0.0, double fixedConvectionCoefficient = 0.0, SizingMethod sizeCooling = SizingMethod.Undefined, SizingMethod sizeHeating = SizingMethod.Undefined, double radiantProportion = 0.0) { return(Create.SpaceAnalyticalFragment(internalDomesticHotWater, daylightFactor, facadeLength, fixedConvectionCoefficient, sizeCooling, sizeHeating, radiantProportion)); }
//Pull/Convert data for Spaces (in Tas they call them Zones) but not for SAM Zones (in Tas ZoneGroups) public static List <Core.Result> ToSAM(SimulationData simulationData) { //buildingData is is yearly dynamic simulation data BuildingData buildingData = simulationData?.GetBuildingData(); if (buildingData == null) { return(null); } List <ZoneData> zoneDatas = Query.ZoneDatas(buildingData); if (zoneDatas == null || zoneDatas.Count == 0) { return(null); } Dictionary <string, Tuple <CoolingDesignData, double, int, HeatingDesignData, double, int> > designDataDictionary = Query.DesignDataDictionary(simulationData); List <List <Core.Result> > results = Enumerable.Repeat <List <Core.Result> >(null, zoneDatas.Count).ToList(); foreach (KeyValuePair <string, Tuple <CoolingDesignData, double, int, HeatingDesignData, double, int> > keyValuePair in designDataDictionary) { int index = zoneDatas.FindIndex(x => x.zoneGUID == keyValuePair.Key); if (index == -1) { continue; } ZoneData zoneData_BuildingData = zoneDatas[index]; if (zoneData_BuildingData == null) { continue; } SizingMethod sizingMethod = SizingMethod.Undefined; ZoneData zoneData_Cooling = zoneData_BuildingData; CoolingDesignData coolingDesignData = keyValuePair.Value.Item1; double coolingLoad = keyValuePair.Value.Item2; int coolingIndex = keyValuePair.Value.Item3; if (coolingDesignData != null) { sizingMethod = SizingMethod.CDD; zoneData_Cooling = coolingDesignData.GetZoneData(zoneData_BuildingData.zoneNumber); } else { sizingMethod = SizingMethod.Simulation; } ZoneData zoneData_Heating = zoneData_BuildingData; SpaceSimulationResult spaceSimulationResult_Cooling = Create.SpaceSimulationResult(zoneData_Cooling, coolingIndex, LoadType.Cooling, sizingMethod); if (spaceSimulationResult_Cooling != null && coolingDesignData != null) { spaceSimulationResult_Cooling.SetValue(SpaceSimulationResultParameter.DesignDayName, coolingDesignData.name); } HeatingDesignData heatingDesignData = keyValuePair.Value.Item4; double heatingLoad = keyValuePair.Value.Item5; int heatingIndex = keyValuePair.Value.Item6; if (heatingDesignData != null) { sizingMethod = SizingMethod.HDD; zoneData_Heating = heatingDesignData.GetZoneData(zoneData_BuildingData.zoneNumber); } else { sizingMethod = SizingMethod.Simulation; } SpaceSimulationResult spaceSimulationResult_Heating = Create.SpaceSimulationResult(zoneData_Heating, heatingIndex, LoadType.Heating, sizingMethod); if (spaceSimulationResult_Heating != null && heatingDesignData != null) { spaceSimulationResult_Heating.SetValue(SpaceSimulationResultParameter.DesignDayName, heatingDesignData.name); } if (spaceSimulationResult_Cooling != null || spaceSimulationResult_Heating != null) { Dictionary <Analytical.SpaceSimulationResultParameter, object> dictionary = Query.Overheating(zoneData_BuildingData, simulationData.firstDay, simulationData.lastDay); results[index] = new List <Core.Result>(); if (spaceSimulationResult_Cooling != null) { foreach (KeyValuePair <Analytical.SpaceSimulationResultParameter, object> keyValuePair_Temp in dictionary) { spaceSimulationResult_Cooling.SetValue(keyValuePair_Temp.Key, keyValuePair_Temp.Value); } results[index].Add(spaceSimulationResult_Cooling); } if (spaceSimulationResult_Heating != null) { foreach (KeyValuePair <Analytical.SpaceSimulationResultParameter, object> keyValuePair_Temp in dictionary) { spaceSimulationResult_Heating.SetValue(keyValuePair_Temp.Key, keyValuePair_Temp.Value); } results[index].Add(spaceSimulationResult_Heating); } } if (spaceSimulationResult_Cooling != null) { if (!spaceSimulationResult_Cooling.TryGetValue(Analytical.SpaceSimulationResultParameter.LoadIndex, out int loadIndex)) { continue; } List <PanelSimulationResult> panelSimulationResults = zoneData_Cooling.ToSAM_PanelSimulationResults(loadIndex); if (panelSimulationResults == null) { continue; } foreach (PanelSimulationResult panelSimulationResult in panelSimulationResults) { panelSimulationResult.SetValue(Analytical.PanelSimulationResultParameter.LoadType, LoadType.Cooling.ToString()); results[index].Add(panelSimulationResult); } } if (spaceSimulationResult_Heating != null) { if (!spaceSimulationResult_Heating.TryGetValue(Analytical.SpaceSimulationResultParameter.LoadIndex, out int loadIndex)) { continue; } List <PanelSimulationResult> panelSimulationResults = zoneData_Heating.ToSAM_PanelSimulationResults(loadIndex); if (panelSimulationResults == null) { continue; } foreach (PanelSimulationResult panelSimulationResult in panelSimulationResults) { panelSimulationResult.SetValue(Analytical.PanelSimulationResultParameter.LoadType, LoadType.Heating.ToString()); results[index].Add(panelSimulationResult); } } } List <Core.Result> result = new List <Core.Result>(); foreach (List <Core.Result> spaceSimulationResults_Temp in results) { if (spaceSimulationResults_Temp != null) { result.AddRange(spaceSimulationResults_Temp); } } return(result); }
public static SpaceSimulationResult SpaceSimulationResult(this ZoneData zoneData, int index, LoadType loadType, SizingMethod sizingMethod) { if (zoneData == null || index == -1 || loadType == LoadType.Undefined) { return(null); } string name = zoneData.name; string reference = zoneData.zoneGUID; double area = zoneData.floorArea; double volume = zoneData.volume; float dryBulbTemp = zoneData.GetHourlyZoneResult(index, (short)tsdZoneArray.dryBulbTemp); float resultantTemp = zoneData.GetHourlyZoneResult(index, (short)tsdZoneArray.resultantTemp); float load = zoneData.GetHourlyZoneResult(index, loadType == LoadType.Cooling ? (short)tsdZoneArray.coolingLoad : (short)tsdZoneArray.heatingLoad); float infVentGain = zoneData.GetHourlyZoneResult(index, (short)tsdZoneArray.infVentGain); float airMovementGain = zoneData.GetHourlyZoneResult(index, (short)tsdZoneArray.airMovementGain); float buildingHeatTransfer = zoneData.GetHourlyZoneResult(index, (short)tsdZoneArray.buildingHeatTransfer); float externalConductionGlazing = zoneData.GetHourlyZoneResult(index, (short)tsdZoneArray.externalConductionGlazing); float externalConductionOpaque = zoneData.GetHourlyZoneResult(index, (short)tsdZoneArray.externalConductionOpaque); float spaceHumidityRatio = zoneData.GetHourlyZoneResult(index, (short)tsdZoneArray.humidityRatio); SpaceSimulationResult result = null; if (loadType == LoadType.Heating) { result = Analytical.Create.SpaceSimulationResult(name, Query.Source(), reference, volume, area, LoadType.Heating, load, index, sizingMethod, dryBulbTemp, resultantTemp, infiltartionGain: infVentGain, airMovementGain: airMovementGain, buildingHeatTransfer: buildingHeatTransfer, glazingExternalConduction: externalConductionGlazing, opaqueExternalConduction: externalConductionOpaque, humidityRatio: spaceHumidityRatio); } else if (loadType == LoadType.Cooling) { float solarGain = zoneData.GetHourlyZoneResult(index, (short)tsdZoneArray.solarGain); float lightingGain = zoneData.GetHourlyZoneResult(index, (short)tsdZoneArray.lightingGain); float occupancySensibleGain = zoneData.GetHourlyZoneResult(index, (short)tsdZoneArray.occupantSensibleGain); float equipmentSensibleGain = zoneData.GetHourlyZoneResult(index, (short)tsdZoneArray.equipmentSensibleGain); float equipmentLatentGain = zoneData.GetHourlyZoneResult(index, (short)tsdZoneArray.equipmentLatentGain); float occupancyLatentGain = zoneData.GetHourlyZoneResult(index, (short)tsdZoneArray.occupancyLatentGain); float relativeHumidity = zoneData.GetHourlyZoneResult(index, (short)tsdZoneArray.relativeHumidity); float zoneApertureFlowIn = zoneData.GetHourlyZoneResult(index, (short)tsdZoneArray.zoneApertureFlowIn); float zoneApertureFlowOut = zoneData.GetHourlyZoneResult(index, (short)tsdZoneArray.zoneApertureFlowOut); float pollutant = zoneData.GetHourlyZoneResult(index, (short)tsdZoneArray.pollutant); result = Analytical.Create.SpaceSimulationResult(name, Query.Source(), reference, volume, area, loadType, load, index, sizingMethod, dryBulbTemp, resultantTemp, solarGain, lightingGain, infVentGain, airMovementGain, buildingHeatTransfer, externalConductionGlazing, externalConductionOpaque, occupancySensibleGain, occupancyLatentGain, equipmentSensibleGain, equipmentLatentGain, spaceHumidityRatio, relativeHumidity, zoneApertureFlowIn, zoneApertureFlowOut, pollutant); } if (result == null) { return(null); } List <double> dryBulbTemperatures = zoneData.AnnualZoneResult <double>(tsdZoneArray.dryBulbTemp); if (dryBulbTemperatures != null) { result.SetValue(SpaceSimulationResultParameter.DryBulbTemperatureProfile, new Profile("Dry Bulb Temperature", "Annual Space Values", dryBulbTemperatures)); } result.SetValue(SpaceSimulationResultParameter.ZoneGuid, zoneData.zoneGUID); ParameterSet parameterSet = ParameterSet_SpaceSimulationResult(ActiveSetting.Setting, zoneData); if (parameterSet != null) { result.Add(parameterSet); } return(result); }
public static SpaceAnalyticalProperties SpaceAnalyticalProperties(double internalDomesticHotWater = 0.0, double daylightFactor = 0.0, double facadeLength = 0.0, double fixedConvectionCoefficient = 0.0, SizingMethod sizeCooling = SizingMethod.Sizing, SizingMethod sizeHeating = SizingMethod.Sizing) { return(new SpaceAnalyticalProperties { InternalDomesticHotWater = internalDomesticHotWater, DaylightFactor = daylightFactor, FacadeLength = facadeLength, FixedConvectionCoefficient = fixedConvectionCoefficient, SizeCoolingMethod = sizeCooling, SizeHeatingMethod = sizeHeating, }); }
public ResizeProcessor(float percent) { method = SizingMethod.Percent; this.percent = percent; }
public ResizeProcessor(int newWidth, int newHeight) { method = SizingMethod.Absolute; this.newWidth = newWidth; this.newHeight = newHeight; }