Exemplo n.º 1
0
        public static global::OpenStudio.ScheduleTypeLimits ToOSMScheduleTypeLimits(global::OpenStudio.Model modelReference)
        {
            // TODO: Convert from BH.oM Profiles to OpenStudio profiles rather than using these fixed/constant profiles!
            ScheduleTypeLimits ScheduleTypeLimitsAlwaysOn = new ScheduleTypeLimits(modelReference);

            ScheduleTypeLimitsAlwaysOn.setNumericType("Discrete");
            ScheduleTypeLimitsAlwaysOn.setUnitType("Dimensionless");
            ScheduleTypeLimitsAlwaysOn.setLowerLimitValue(0);
            ScheduleTypeLimitsAlwaysOn.setUpperLimitValue(1);
            return(ScheduleTypeLimitsAlwaysOn);
        }
Exemplo n.º 2
0
        public static global::OpenStudio.ScheduleTypeLimits ToOSMScheduleTypeLimitsActivity(global::OpenStudio.Model modelReference)
        {
            // TODO: Convert from BH.oM Profiles to OpenStudio profiles rather than using these fixed/constant profiles!
            ScheduleTypeLimits ScheduleTypeLimitsActivity = new ScheduleTypeLimits(modelReference);

            ScheduleTypeLimitsActivity.setNumericType("Continuous");
            ScheduleTypeLimitsActivity.setUnitType("ActivityLevel");
            ScheduleTypeLimitsActivity.setLowerLimitValue(0);
            ScheduleTypeLimitsActivity.setUpperLimitValue(1000);
            return(ScheduleTypeLimitsActivity);
        }
Exemplo n.º 3
0
        public static List <IEnergyPlusClass> ToEnergyPlus(this BH.oM.Environment.SpaceCriteria.Profile profile, ScheduleTypeLimitsNumericType scheduleTypeLimitsNumericType, ScheduleTypeLimitsUnitType scheduleTypeLimitsUnitType)
        {
            ScheduleTypeLimits scheduleTypeLimits = new ScheduleTypeLimits();

            scheduleTypeLimits.Name            = string.Format("{0} TypeLimits", profile.Name).Trim();
            scheduleTypeLimits.NumericType     = scheduleTypeLimitsNumericType;
            scheduleTypeLimits.UnitType        = scheduleTypeLimitsUnitType;
            scheduleTypeLimits.NumericType     = scheduleTypeLimitsNumericType;
            scheduleTypeLimits.LowerLimitValue = profile.HourlyValues.Min();
            scheduleTypeLimits.UpperLimitValue = profile.HourlyValues.Max();

            ScheduleDayHourly scheduleDayHourly = new ScheduleDayHourly();

            scheduleDayHourly.Name = string.Format("{0} Daily", profile.Name).Trim();
            scheduleDayHourly.ScheduleTypeLimitsName = scheduleTypeLimits.Name;
            for (int i = 0; i < 24; i++)
            {
                PropertyInfo propertyInfo = scheduleDayHourly.GetType().GetProperty(string.Format("Hour{0}", i + 1));
                propertyInfo.SetValue(scheduleDayHourly, profile.HourlyValues[i]);
            }

            ScheduleWeekDaily scheduleWeekDaily = new ScheduleWeekDaily();

            scheduleWeekDaily.Name = string.Format("{0} Weekly", profile.Name).Trim();
            scheduleWeekDaily.SundayScheduleDayName          = scheduleDayHourly.Name;
            scheduleWeekDaily.MondayScheduleDayName          = scheduleDayHourly.Name;
            scheduleWeekDaily.TuesdayScheduleDayName         = scheduleDayHourly.Name;
            scheduleWeekDaily.WednesdayScheduleDayName       = scheduleDayHourly.Name;
            scheduleWeekDaily.ThursdayScheduleDayName        = scheduleDayHourly.Name;
            scheduleWeekDaily.FridayScheduleDayName          = scheduleDayHourly.Name;
            scheduleWeekDaily.SaturdayScheduleDayName        = scheduleDayHourly.Name;
            scheduleWeekDaily.HolidayScheduleDayName         = scheduleDayHourly.Name;
            scheduleWeekDaily.SummerDesignDayScheduleDayName = scheduleDayHourly.Name;
            scheduleWeekDaily.WinterDesignDayScheduleDayName = scheduleDayHourly.Name;
            scheduleWeekDaily.CustomDay1ScheduleDayName      = scheduleDayHourly.Name;
            scheduleWeekDaily.CustomDay2ScheduleDayName      = scheduleDayHourly.Name;

            return(new List <IEnergyPlusClass>()
            {
                scheduleTypeLimits, scheduleDayHourly, scheduleWeekDaily
            });
        }