我对编码很新,所以这可能很明显。
为什么在运行此代码时出现错误“name'ObjectType'未定义”:
picked = uidoc.Selection.PickObject(ObjectType.Element)
我正在使用revit python shell(IronPython)
答案 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
也许你忘了导入声明了?