Python: Custom rules for FilteredElementCollector

I believe ParameterFilterElement is the API method used for View Filters, not for FilteredElementCollectors. Try adjusting the filter portion of your script to this:

import clr
clr.AddReference('RevitAPI')
from Autodesk.Revit.DB import *
import Autodesk

clr.AddReference('RevitNodes')
import Revit
clr.ImportExtensions(Revit.GeometryConversion)
clr.ImportExtensions(Revit.Elements)

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

doc = DocumentManager.Instance.CurrentDBDocument

bip = BuiltInParameter.ALL_MODEL_INSTANCE_COMMENTS
provider = ParameterValueProvider(ElementId(bip))
evaluator = FilterStringEquals();
rule = FilterStringRule(provider, evaluator, "aaa", False);
filter = ElementParameterFilter(rule);
walls = FilteredElementCollector(doc).OfClass(Wall).WherePasses(filter).ToElements()

OUT = walls
8 Likes