【问题标题】:How to verify if a parameter is empty in Revit Python Shell如何在 Revit Python Shell 中验证参数是否为空
【发布时间】:2020-10-20 22:50:18
【问题描述】:

我正在尝试验证文档中是否存在参数,以及(如果存在)它是空的还是填充的。

问题是代码总是返回参数如果存在则填充。即使它存在但为空。所以第 30 到 33 行并没有真正起作用。我已经尝试了很多东西,但我不知道我做错了什么。

有人知道错在哪里吗?

谢谢!

...我必须在此处的评论中添加我正在谈论的代码,因为我无法在其中添加图片...

参数 IsExtendedWarranty 的屏幕截图:

【问题讨论】:

    标签: revit revitpythonshell


    【解决方案1】:

    您正在拨打Element GetParameters method

    它返回Parameter 对象的列表

    要检查一个参数的值,你需要再添加两个步骤:

    • 从列表中选择一个参数,例如通过选择第一个元素。
    • 检索其值。例如,如果它具有字符串数据类型,请使用AsString

    【讨论】:

    • 感谢您的回答!所以,也许在我的情况下,最好使用 LookupParameter 方法,它为我提供了第一个具有该名称的参数......我使用了 LookupParameter 方法并添加了 AsString,现在当参数为空时它会显示我!谢谢!
    • GetParameters 不好。 LookupParameter 也。他们很愚蠢,因为他们搜索字符串。更好:使用内置参数枚举值获取参数。
    • 阅读本讨论中的答案 2:thebuildingcoder.typepad.com/blog/2018/11/…
    • 是的,对于用户定义的族参数和共享参数,避免字符串比较比使用内置参数有点棘手。如果您绝对确定只有一个参数与搜索/目标名称匹配,那么LookupParameter 将返回它;它返回它找到的第一个匹配项。从Parameter 对象中,您仍然需要提取值,例如,使用AsStringAsDoubleAsElementId 等。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-14
    相关资源
    最近更新 更多