Skip to content

ScheduleFilter.ByFieldTypeAndValue Does not allow for "HasNoValue", "HasParameter" and "HasValue" ScheduleFilterTypes #3277

@tinrobot2000

Description

@tinrobot2000

ScheduleFilterTypes HasParameter, HasValue and HasNoValue when used with a ScheduleFilter requires no value. This is not covered in the cases and it may also be possible that ScheduleView.AddFilter throws an exception when casting to Autodesk.Revit.DB.ScheduleFilter

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

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

Status

In Progress

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions