1

我已经启动了一个提取过滤器规则信息的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
4

2 回答 2

1

作为起点,打印类的名称比将类转换为字符串更有帮助。但这不会让你得到一切。GetRuleParameters 将返回规则中使用的参数的 elementID;但是,内置参数的元素 id 是负数。如果参数的元素 ID 为负,GetElement 函数似乎不会找到参数。我找不到从 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
于 2018-03-29T15:49:43.267 回答
0

您可以使用 RevitLookup 探索通过元素 ID 列表返回的规则参数元素的属性和参数值,或者使用交互式 RPS 控制台进行更深入的研究

于 2018-03-29T09:31:06.910 回答