使用python在Revit中获取过滤规则信息API

Use python to get filter rule information in Revit API

我已经启动了一个 python 脚本来提取过滤规则信息,但找不到从 "GetRuleParameters()"

中获取信息的方法

非常感谢任何帮助。我看过很多关于创建规则过滤器的信息,但很少看到关于提取规则信息的信息。
Here is an example for filter overrides in a view

这是我所在的位置:

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

您可以使用 RevitLookup 探索通过元素 ID 列表或 research in more depth using the interactive RPS console.

返回的规则参数元素的属性和参数值

作为起点,打印 类 的名称比将 类 转换为字符串更有帮助。但这不会让你得到一切。 GetRuleParameters 将 return 规则中使用的参数的 elementID;但是,内置参数的元素 id 为负数。如果 GetElement 函数具有负元素 ID,则它们似乎无法找到参数。我找不到从 id 获取内置参数的方法。

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