ViewSetFilterOverrides Method |
Sets the overrides associated with a filter.
Namespace: Autodesk.Revit.DBAssembly: RevitAPI (in RevitAPI.dll) Version: 25.0.0.0 (25.0.0.0)
Syntaxpublic void SetFilterOverrides(
ElementId filterElementId,
OverrideGraphicSettings overrideGraphicSettings
)
Public Sub SetFilterOverrides (
filterElementId As ElementId,
overrideGraphicSettings As OverrideGraphicSettings
)
public:
void SetFilterOverrides(
ElementId^ filterElementId,
OverrideGraphicSettings^ overrideGraphicSettings
)
member SetFilterOverrides :
filterElementId : ElementId *
overrideGraphicSettings : OverrideGraphicSettings -> unit
Parameters
- filterElementId ElementId
-
ElementId of the filter.
- overrideGraphicSettings OverrideGraphicSettings
-
The overrides to apply to the filter.
ExceptionsException | 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.
Examplepublic 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();
}
}
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
No code example is currently available or this language may not be supported.
No code example is currently available or this language may not be supported.
See Also