我已经启动了一个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
答案 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返回的规则参数元素的属性和参数值。