Set surface pattern color override in view(s)

Hi all,

I’m trying to override the surface color of elements in a certain view (not active view). So I’ve found this post about that: Element color override in viewS

I’m trying to replicate the code in Python, but it’s not working for me. Can anyone help me with this?

parameter compare and override.dyn (194.0 KB)

Version:0.9 StartHTML:00000097 EndHTML:00003774 StartFragment:00000199 EndFragment:00003736 import clr
clr.AddReference('RevitAPI')
from Autodesk.Revit.DB import *

clr.AddReference("RevitNodes")
import Revit
clr.ImportExtensions(Revit.Elements)

clr.AddReference("RevitServices")
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager

doc = DocumentManager.Instance.CurrentDBDocument
items = UnwrapElement(IN[0])
view = UnwrapElement(IN[1])
trans = IN[2]
booleans = []
red = Color(255,0,0)

Pat = FilteredElementCollector(doc).OfClass(FillPatternElement).ToElements()

override = OverrideGraphicSettings()
override.SetSurfaceForegroundPatternColor(red)
override.SetSurfaceForegroundPatternId(Pat[0].Id)

TransactionManager.Instance.EnsureInTransaction(doc)
for item in items:
try:
view.SetElementOverrides(item.Id, override)
booleans.append(True)
except: booleans.append(False)
TransactionManager.Instance.TransactionTaskDone()
OUT = (items,view,booleans)

Hi @merlijnvanleeuwen,

Perhaps you can check out the solution from here: Override element in a specified view

@MartinSpence, thanks that worked!

Great :+1::grinning: