示例#1
0
        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);
        }
示例#2
0
        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);
        }
示例#3
0
        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);
        }
示例#4
0
        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);
        }
示例#5
0
 internal Schedule(TBD.schedule Schedule)
 {
     pSchedule = Schedule;
 }