Hi everyone,
I’m trying to create a list of filters and apply to the view. I’m able to create one filter but when I put a loop in to create multiple filters. I got it solved with code below.
import clr
clr.AddReference("RevitServices")
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager
doc = DocumentManager.Instance.CurrentDBDocument
clr.AddReference("RevitAPI")
import Autodesk
from Autodesk.Revit.DB import *
import System
from System.Collections.Generic import *
dataEnteringNode = IN
cats = IN[0]
rules = IN[1]
view = UnwrapElement(IN[2])
filterName = IN[3]
TransactionManager.Instance.EnsureInTransaction(doc)
catList = []
for i in cats:
catList.append(ElementId(i.Id))
typedCatList = List[ElementId](catList)
filterlist = []
for i in filterName:
filterlist.append(i)
try:
for name in filterlist:
filter = ParameterFilterElement.Create(doc, name, typedCatList,rules)
view.AddFilter(filter.Id)
except:
pass
TransactionManager.Instance.TransactionTaskDone()
OUT = filter