Revit Python Pick Object / Выбрать объект
Я довольно новичок в кодировании, так что это может быть очевидно.
Почему я получаю ошибку "имя 'ObjectType' не определено" при запуске этого кода:
picked = uidoc.Selection.PickObject(ObjectType.Element)
Я использую оболочку revit python (IronPython)
2 ответа
Вы должны импортировать ObjectType
в текущую область:
>>> from Autodesk.Revit.UI.Selection import ObjectType
>>> picked = uidoc.Selection.PickObject(ObjectType.Element)
Я только что попробовал это в RevitPythonShell и заметил, что он не работает, потому что оболочка все еще находится на переднем плане. Таким образом, этот метод будет работать для сценариев, которые вы добавляете на ленту, но не прямо из оболочки... Я пока не совсем уверен, как это исправить. Сожалею.
РЕДАКТИРОВАТЬ: Используйте функцию, как эта, чтобы сделать трюк:
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
Может быть, вы забыли заявление на импорт?