【问题标题】:Revit Python Pick Object / Select ObjectRevit Python 拾取对象/选择对象
【发布时间】:2014-02-13 07:13:45
【问题描述】:

我对编码还很陌生,所以这可能很明显。

为什么我在运行此代码时收到错误“名称'ObjectType'未定义”:

picked = uidoc.Selection.PickObject(ObjectType.Element)

我正在使用 revit python shell (IronPython)

【问题讨论】:

    标签: python api revit revitpythonshell


    【解决方案1】:

    您应该将ObjectType 导入当前范围:

    >>> from Autodesk.Revit.UI.Selection import ObjectType
    >>> picked = uidoc.Selection.PickObject(ObjectType.Element)
    

    我刚刚在 RevitPythonShell 中进行了尝试,并注意到它不起作用,因为 shell 仍在前台。因此,这种技术适用于您添加到功能区的脚本,但不能直接从 shell 中...我不太确定如何解决这个问题。对不起。

    编辑:使用类似这样的函数来解决问题:

    def pickobject():
        from Autodesk.Revit.UI.Selection import ObjectType
        __window__.Hide()
        picked = uidoc.Selection.PickObject(ObjectType.Element)
        __window__.Show()
        __window__.Topmost = True
        return picked
    

    您可以通过将其粘贴到底部的编辑器窗格中并按 F5 或将其添加到您的 Init-Script 或其他方式来运行它。然后,当您需要选择元素时,只需调用 pickobject()

    【讨论】:

    • 达人,谢谢!!我刚刚开始了解编程和使用 revit 的 SDK。我一直在查看您的网站和 jeremy tammik 的网站,但进展缓慢。
    • @dciolino,不客气!坚持下去,很快一切都会开始变得有意义 ;-) 我收到来自 StackOverflow 的电子邮件,询问标记为 revit 和 revitapi 的问题,请随时提问!
    【解决方案2】:

    这是因为ObjectType 没有在该语句范围内的任何地方定义:

    >>> ObjectType
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    NameError: name 'ObjectType' is not defined
    >>> ObjectType = 12
    >>> ObjectType
    12
    

    也许您忘记了导入语句?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-10-29
      • 1970-01-01
      • 1970-01-01
      • 2013-11-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多