public static TBD.schedule Schedule(this TBD.Building building, string name, IEnumerable <int> values = null) { if (building == null || string.IsNullOrEmpty(name)) { return(null); } TBD.schedule result = building.AddSchedule(); if (result == null) { return(null); } result.name = name; if (values == null) { return(result); } int count = System.Math.Min(24, values.Count()); for (int i = 0; i < count; i++) { result.values[i] = values.ElementAt(i); } return(result); }
public static List <TBD.schedule> Schedules(this TBD.Building building) { List <TBD.schedule> result = new List <TBD.schedule>(); int index = 0; TBD.schedule schedule = building.GetSchedule(index); while (schedule != null) { result.Add(schedule); index++; schedule = building.GetSchedule(index); } return(result); }
public static TBD.IZAM IZAM(this TBD.Building building, Space space, string name, bool from, IEnumerable <TBD.zone> zones, IEnumerable <TBD.dayType> dayTypes) { string directionText = "To"; if (from) { directionText = "From"; } string name_Direction = null; if (!space.TryGetValue(string.Format("SAM_IZAM_{0}_Source", directionText), out name_Direction, true)) { return(null); } if (string.IsNullOrWhiteSpace(name_Direction)) { return(null); } TBD.IZAM iZAM = building.AddIZAM(null); foreach (TBD.dayType aDayType in dayTypes) { iZAM.SetDayType(aDayType, true); } TBD.zone zone_Source = null; TBD.zone zone_Assign = null; TBD.zone zone = zones.Zone(name_Direction); if (zone != null) { if (from) { iZAM.name = string.Format("IZAM_{0}_FROM_{1}", name, name_Direction); zone_Source = zone; zone_Assign = zones.Zone(name); } else { iZAM.name = string.Format("IZAM_{0}_FROM_{1}", name_Direction, name); zone_Source = zones.Zone(name); zone_Assign = zone; } } else { iZAM.name = string.Format("IZAM_{0}_{1} OUTSIDE", name, directionText.ToUpper()); zone_Assign = zones.Zone(name); if (from) { iZAM.fromOutside = 1; } else { iZAM.fromOutside = 0; } } if (zone_Source != null) { iZAM.SetSourceZone(zone_Source); } if (zone_Assign != null) { zone_Assign.AssignIZAM(iZAM, true); } TBD.profile profile = iZAM.GetProfile(); profile.type = TBD.ProfileTypes.ticValueProfile; double value; if (space.TryGetValue(string.Format("SAM_IZAM_{0}_Value", directionText), out value, true)) { profile.value = (float)value; } double factor; if (space.TryGetValue(string.Format("SAM_IZAM_{0}_ValueFactor", directionText), out factor, true)) { profile.factor = (float)factor; } double setbackValue; if (space.TryGetValue(string.Format("SAM_IZAM_{0}_ValueSetBack", directionText), out setbackValue, true)) { profile.setbackValue = (float)setbackValue; } string scheduleValues = null; if (space.TryGetValue(string.Format("SAM_IZAM_{0}_Schedule", directionText), out scheduleValues, true)) { string name_Schedule = string.Format("SAM_IZAM_{0}_Schedule_{1}", directionText, "IZAMSCHED"); List <int> values = scheduleValues.Ints(); TBD.schedule schedule = Schedule(building, name_Schedule, values); if (schedule != null) { profile.schedule = schedule; } } return(iZAM); }
public static bool AssignOpeningTypes(this TBD.Building building, TBD.buildingElement buildingElement, IEnumerable <TBD.dayType> dayTypes, OpeningType openingType) { if (building == null || buildingElement == null || openingType == null || dayTypes == null) { return(false); } TBD.ApertureType apertureType_Day = null; string function; function = null; if (openingType.TryGetValue("SAM_ApertureFunctionDay", out function, true) && !string.IsNullOrWhiteSpace(function)) { apertureType_Day = building.AddApertureType(null); apertureType_Day.name = buildingElement.name + "_Day"; foreach (TBD.dayType aDayType in dayTypes) { apertureType_Day.SetDayType(aDayType, true); } int sheltered; if (openingType.TryGetValue("SAM_ApertureShelteredDay", out sheltered, true)) { apertureType_Day.sheltered = sheltered; } else { apertureType_Day.sheltered = 0; } string description_ApertureType; if (openingType.TryGetValue("SAM_ApertureDescriptionDay", out description_ApertureType, true)) { apertureType_Day.description = description_ApertureType; } TBD.profile profile = apertureType_Day.GetProfile(); profile.type = TBD.ProfileTypes.ticFunctionProfile; profile.function = function; double factor; if (openingType.TryGetValue("SAM_ApertureOpeningProportionDay", out factor, true)) { profile.factor = (float)factor; } double setbackValue; if (openingType.TryGetValue("SAM_ApertureOpeningProportionDaySetBack", out setbackValue, true)) { profile.setbackValue = (float)setbackValue; } string description_Profile; if (openingType.TryGetValue("SAM_ApertureProfileDescriptionDay", out description_Profile, true)) { profile.description = description_Profile; } string scheduleValues; if (openingType.TryGetValue("SAM_ApertureScheduleDay", out scheduleValues, true)) { string name_Schedule = string.Format("{0}_{1}", apertureType_Day.name, "APSCHED"); List <int> values = scheduleValues.Ints(); TBD.schedule schedule = Create.Schedule(building, name_Schedule, values); if (schedule != null) { profile.schedule = schedule; } } } TBD.ApertureType apertureType_Night = null; function = null; if (openingType.TryGetValue("SAM_ApertureFunctionNight", out function, true) && !string.IsNullOrWhiteSpace(function)) { apertureType_Day = building.AddApertureType(null); apertureType_Day.name = buildingElement.name + "_Night"; foreach (TBD.dayType aDayType in dayTypes) { apertureType_Day.SetDayType(aDayType, true); } int sheltered; if (openingType.TryGetValue("SAM_ApertureShelteredNight", out sheltered, true)) { apertureType_Day.sheltered = sheltered; } else { apertureType_Day.sheltered = 0; } string description_ApertureType; if (openingType.TryGetValue("SAM_ApertureDescriptionNight", out description_ApertureType, true)) { apertureType_Day.description = description_ApertureType; } TBD.profile profile = apertureType_Day.GetProfile(); profile.type = TBD.ProfileTypes.ticFunctionProfile; profile.function = function; double factor; if (openingType.TryGetValue("SAM_ApertureOpeningProportionNight", out factor, true)) { profile.factor = (float)factor; } double setbackValue; if (openingType.TryGetValue("SAM_ApertureOpeningProportionNightSetBack", out setbackValue, true)) { profile.setbackValue = (float)setbackValue; } string description_Profile; if (openingType.TryGetValue("SAM_ApertureProfileDescriptionNight", out description_Profile, true)) { profile.description = description_Profile; } string scheduleValues; if (openingType.TryGetValue("SAM_ApertureScheduleNight", out scheduleValues, true)) { string name_Schedule = string.Format("{0}_{1}", apertureType_Day.name, "APSCHED"); List <int> values = scheduleValues.Ints(); TBD.schedule schedule = Create.Schedule(building, name_Schedule, values); if (schedule != null) { profile.schedule = schedule; } } } if (apertureType_Day != null) { buildingElement.AssignApertureType(apertureType_Day); } if (apertureType_Night != null) { buildingElement.AssignApertureType(apertureType_Night); } return(true); }
internal Schedule(TBD.schedule Schedule) { pSchedule = Schedule; }