SetFilterOverrides Method


View Set Filter Overrides Method

Sets the overrides associated with a filter.

Namespace: Autodesk.Revit.DB
Assembly: RevitAPI (in RevitAPI.dll) Version: 25.0.0.0 (25.0.0.0)
Syntax
public void SetFilterOverrides(
	ElementId filterElementId,
	OverrideGraphicSettings overrideGraphicSettings
)

Parameters

filterElementId ElementId
ElementId of the filter.
overrideGraphicSettings OverrideGraphicSettings
The overrides to apply to the filter.
Exceptions
Exception Condition
ArgumentException ElementId is not associated with a FilterElement. -or- Fill pattern must be a drafting pattern. -or- Fill pattern Id must be invalidElementId or point to a LinePattern element.
ArgumentNullException A non-optional argument was null
InvalidOperationException The element "this View" does not belong to a project document. -or- The view type does not support Visibility/Graphics Overriddes.
Remarks
If the filter is not currently applied to the view, this will add the filter with the assigned overrides.
Example
public static void ModifyExistingFilter(Document doc, View view)
{
    // Find any filter with overrides setting cut color to Red
    Dictionary<ElementId, OverrideGraphicSettings> filterIdsToChange = new Dictionary<ElementId, OverrideGraphicSettings>();

    foreach (ElementId filterId in view.GetFilters())
    {
        OverrideGraphicSettings overrideSettings = view.GetFilterOverrides(filterId);

        Color lineColor = overrideSettings.CutLineColor;

        if (lineColor == Color.InvalidColorValue)
            continue;

        // Save overrides setting the cut color to green
        if (lineColor.Red == 0xFF && lineColor.Green == 0x00 && lineColor.Blue == 0x00)
        {
            overrideSettings.SetCutLineColor(new Color(0x00, 0xFF, 0x00));
            filterIdsToChange[filterId] = overrideSettings;
        }
    }

    // Make the change to all found filters
    using (Transaction t = new Transaction(doc, "Change override filters"))
    {
        t.Start();

        foreach (ElementId filterId in filterIdsToChange.Keys)
        {
            view.SetFilterOverrides(filterId, filterIdsToChange[filterId]);
        }
        t.Commit();
    }
}
See Also
ArchiLabs Desktop

Put AI to work inside Revit.

Give Desktop your instructions and project files to build Revit families, update model elements, and create views and schedules. Works directly in Revit and AutoCAD.

Explore Desktop →