我对编码很陌生,所以这可能很明显。
为什么我在运行此代码时收到错误“名称'ObjectType'未定义”:
picked = uidoc.Selection.PickObject(ObjectType.Element)
我正在使用 revit python shell (IronPython)
我对编码很陌生,所以这可能很明显。
为什么我在运行此代码时收到错误“名称'ObjectType'未定义”:
picked = uidoc.Selection.PickObject(ObjectType.Element)
我正在使用 revit python shell (IronPython)
您应该导入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()
在需要选择元素时调用。
这是因为ObjectType
未在该语句范围内的任何地方定义:
>>> ObjectType
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'ObjectType' is not defined
>>> ObjectType = 12
>>> ObjectType
12
也许您忘记了导入声明?