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