View.SetFilterOverrides
Description:
Sets the overrides associated with a filter.
Sets the overrides associated with a filter.
Remarks:
If the filter is not currently applied to the view, this will add the filter with the assigned overrides.
If the filter is not currently applied to the view, this will add the filter with the assigned overrides.
public void SetFilterOverrides(
ElementId filterElementId,
OverrideGraphicSettings overrideGraphicSettings
)
-
filterElementIdElementId of the filter.
-
overrideGraphicSettingsThe overrides to apply to the filter.
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();
}
}
-
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.
-
A non-optional argument was null
-
The element "this View" does not belong to a project document. -or- The view type does not support Visibility/Graphics Overriddes.