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); }
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); }
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 }); }