Используйте python для получения информации о правилах фильтрации в Revit API
Я запустил скрипт на python, который извлекает информацию о правилах фильтрации, но не может найти способ получить информацию из "GetRuleParameters()"
Любая помощь с благодарностью. Я видел много информации о создании фильтров правил, но мало о том, как извлечь информацию о правилах.
Вот пример переопределений фильтров в представлении
Вот где я нахожусь:
pfes = list(FilteredElementCollector(doc).OfClass(ParameterFilterElement).ToElements()) for pfe in pfes:
rps = pfe.GetRuleParameters()
for rp in rps:
print rp.ToString()
el = doc.GetElement(rp)
print el
2 ответа
В качестве отправной точки было бы более полезно напечатать имя классов, а не преобразовывать классы в строку. Это не даст вам всего, хотя. GetRuleParameters вернет elementID параметров, которые используются в правиле; однако идентификатор элемента встроенных параметров отрицателен. Функция GetElement не находит параметры, если они имеют отрицательный идентификатор элемента. Я не могу найти способ получить встроенный параметр из идентификатора.
for pfe in pfes:
print(pfe.Name)
rps = pfe.GetRuleParameters()
for rp in rps:
el = doc.GetElement(rp)
# this will only work if the parameter used in the
# filter is not built in
try:
print("\t" + el.Name)
except:
pass
Вы можете использовать RevitLookup для изучения свойств и значений параметров элементов параметров правила, возвращаемых через список идентификаторов элементов, или для более глубокого исследования с помощью интерактивной консоли RPS.