/// <summary> /// Creates Schedule Filter by Schedule Field, Filter Type and value. /// </summary> /// <param name="field">Schedule Field used for creating filter.</param> /// <param name="filterType">Filter type. Ex: Equal.</param> /// <param name="value">Value used by filter for comparison.</param> /// <returns name="ScheduleFilter">Schedule Filter</returns> public static ScheduleFilter ByFieldTypeAndValue(ScheduleField field, string filterType, object value) { var ft = (Autodesk.Revit.DB.ScheduleFilterType)System.Enum.Parse(typeof(Autodesk.Revit.DB.ScheduleFilterType), filterType); Autodesk.Revit.DB.ScheduleFilter filter; if (value.GetType() == typeof(int)) { filter = new Autodesk.Revit.DB.ScheduleFilter(field.InternalScheduleField.FieldId, ft, (int)value); } else if (value.GetType() == typeof(double)) { filter = new Autodesk.Revit.DB.ScheduleFilter(field.InternalScheduleField.FieldId, ft, (double)value); } else if (value.GetType() == typeof(string)) { filter = new Autodesk.Revit.DB.ScheduleFilter(field.InternalScheduleField.FieldId, ft, (string)value); } else { filter = new Autodesk.Revit.DB.ScheduleFilter(field.InternalScheduleField.FieldId, ft, ((Revit.Elements.Element)value).InternalElement.Id); } return(new ScheduleFilter(filter)); }
/// <summary> /// Reference to the Element /// </summary> /// <param name="internalScheduleFilter"></param> internal ScheduleFilter(Autodesk.Revit.DB.ScheduleFilter internalScheduleFilter) { this.InternalScheduleFilter = internalScheduleFilter; }