Revit Python选择对象/选择对象

时间:2014-01-22 23:30:15

标签: python api revit revitpythonshell

我对编码很新,所以这可能很明显。

为什么在运行此代码时出现错误“name'ObjectType'未定义”:

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

我正在使用revit python shell(IronPython)

2 个答案:

答案 0 :(得分:3)

您应该将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()

答案 1 :(得分:1)

这是因为ObjectType未在该声明的范围内定义:

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

也许你忘了导入声明了?