SetFilterOverrides Method
Sets the overrides associated with a filter.

Namespace: Autodesk.Revit.DB
Assembly: RevitAPI (in RevitAPI.dll) Version: 17.0.0.0 (17.0.484.0)
Since:  2014

Syntax

C#
public void SetFilterOverrides(
	ElementId filterElementId,
	OverrideGraphicSettings overrideGraphicSettings
)
Visual Basic
Public Sub SetFilterOverrides ( _
	filterElementId As ElementId, _
	overrideGraphicSettings As OverrideGraphicSettings _
)
Visual C++
public:
void SetFilterOverrides(
	ElementId^ filterElementId, 
	OverrideGraphicSettings^ overrideGraphicSettings
)

Parameters

filterElementId
Type: Autodesk.Revit.DB..::..ElementId
ElementId of the filter.
overrideGraphicSettings
Type: Autodesk.Revit.DB..::..OverrideGraphicSettings
The overrides to apply to the filter.

Remarks

If the filter is not currently applied to the view, this will add the filter with the assigned overrides.

Examples

CopyC#
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();
    }
}
CopyVB.NET
Public Shared Sub ModifyExistingFilter(doc As Document, view As View)
   ' Find any filter with overrides setting cut color to Red
   Dim filterIdsToChange As New Dictionary(Of ElementId, OverrideGraphicSettings)()

   For Each filterId As ElementId In view.GetFilters()
      Dim overrideSettings As OverrideGraphicSettings = view.GetFilterOverrides(filterId)

      Dim lineColor As Color = overrideSettings.CutLineColor

      If lineColor.IsValid = False Then
         Continue For
      End If

      ' Save overrides setting the cut color to green
      If lineColor.Red = &HFF AndAlso lineColor.Green = &H0 AndAlso lineColor.Blue = &H0 Then
         overrideSettings.SetCutLineColor(New Color(&H0, &HFF, &H0))
         filterIdsToChange(filterId) = overrideSettings
      End If
   Next

   ' Make the change to all found filters
   Using t As New Transaction(doc, "Change override filters")
      t.Start()

      For Each filterId As ElementId In filterIdsToChange.Keys
         view.SetFilterOverrides(filterId, filterIdsToChange(filterId))
      Next
      t.Commit()
   End Using
End Sub

Exceptions

ExceptionCondition
Autodesk.Revit.Exceptions..::..ArgumentException ElementId is not associated with a FilterElement.
Autodesk.Revit.Exceptions..::..ArgumentNullException A non-optional argument was NULL
Autodesk.Revit.Exceptions..::..InvalidOperationException View does not belong to a project document. -or- The view type does not support Visibility/Graphics Overriddes.

See Also