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

时间:2018-03-28 14:10:18

标签: revit-api revit revitpythonshell pyrevit

我已经启动了一个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

2 个答案:

答案 0 :(得分:1)

作为一个起点,打印类的名称而不是将类转换为字符串会更有帮助。但这不会让你得到一切。 GetRuleParameters将返回规则中使用的参数的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

答案 1 :(得分:0)

您可以使用RevitLookup来探索通过元素ID列表或research in more depth using the interactive RPS console返回的规则参数元素的属性和参数值。