Hi all,
I would like to create a filter, assign it to a view and turn its visibility off.
I already found how to create the filter and assign it to a view. It is also solved how to change its graphic override, but I could not find a way to turn its visibility off.
Does anyone know a solution for that?
This is the custom node that I use:
This is what I got from this topic “Create and add view filter (ParameterFilterElement)”:
The problem is in Line 53. It does not give a warning, but definitely does not turn the visibility off. What can be the problem?
Here is the code for copy/paste:
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
def GetBuiltInParam(paramName):
builtInParams = System.Enum.GetValues(BuiltInParameter)
test =
for i in builtInParams:
if i.ToString() == paramName:
test.append(i)
break
else:
continue
return test [0]
cats = IN[0]
paramName = IN[1]
pValue = IN[2]
filName = IN[3]
view = UnwrapElement(IN[4])
TransactionManager.Instance.EnsureInTransaction(doc)
catList =
for i in cats:
catList.append(ElementId(i.Id))
typedCatList = ListElementId
bip = GetBuiltInParam(paramName)
rules =
rules.append(ParameterFilterRuleFactory.CreateNotBeginsWithRule(ElementId(bip), pValue, 0.001))
try:
filter = ParameterFilterElement.Create(doc, filName, typedCatList, rules)
view.AddFilter(filter.Id)
view.SetFilterVisibility(filter.Id,false)
except:
pass
TransactionManager.Instance.TransactionTaskDone()
OUT = view