Sets the overrides associated with a filter.
Namespace: Autodesk.Revit.DB
Assembly: RevitAPI (in RevitAPI.dll) Version: 17.0.0.0 (17.0.1090.0)
Since:
2014
Syntax
Remarks
Examples
CopyC#
public static void ModifyExistingFilter(Document doc, View view)
{
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;
if (lineColor.Red == 0xFF && lineColor.Green == 0x00 && lineColor.Blue == 0x00)
{
overrideSettings.SetCutLineColor(new Color(0x00, 0xFF, 0x00));
filterIdsToChange[filterId] = overrideSettings;
}
}
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)
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
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
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
See Also