ViewSetFilterOverrides 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
ExceptionCondition
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