Сломалась функция uidoc.Selection.PickObjects

Для коллег которые не разбираются в Grasshopper делаю интерфейс для своего скрипта с помощью плагина Human UI. В чём его суть - нажимая на кнопку пользователь должен выбрать объект из Revit и нажать “готово” или “отмена” вызванного “uidoc.Selection.PickObjects” в Python (весь код Python прикрепляю ниже).

import clr

clr.AddReference(‘RhinoInside.Revit’)

import RhinoInside

from RhinoInside.Revit import Revit, Convert

import RhinoInside.Revit.Convert.Geometry

clr.AddReference(‘RevitAPI’)

import Autodesk

from Autodesk.Revit.DB import RevitLinkInstance

from Autodesk.Revit.Exceptions import OperationCanceledException

clr.AddReference(‘RevitAPIUI’)

from Autodesk.Revit.UI import *

from Autodesk.Revit.UI.Selection import *

doc = Revit.ActiveDBDocument

uidoc = Revit.ActiveUIDocument

try:

elemInLinks

except:

elemInLinks = \[\]

a = None

Autodesk.Revit.DB.Reference.LinkedElementId

elemInLinks = []

lnkinst = []

if sel:

#TaskDialog.Show("Create Selection", "Select the linked elements and press Finish")

try:

    #reflnk = uidoc.Selection.PickObjects(ObjectType.LinkedElement, "Select linked elements")     

    reflnk = uidoc.Selection.PickObjects(ObjectType.Element, "Select linked elements")   

    #elemInLinks = \[\]

    elemIDs = \[\]

    #for ref in reflnk:

    counter = len(reflnk)

    while counter != 0:

        lnkinst.append(doc.GetElement(reflnk\[counter-1\]))

        #doclnk = lnkinst.GetLinkDocument()

        #elemInLink = doclnk.GetElement(ref.LinkedElementId)

        #elemInLinks.append(elemInLink)

        #elemIDs.append(elemInLink.Id.IntegerValue)

        counter -= 1;

except:

    pass

if len(elemInLinks)>1: _Elements = elemInLinks

elif len(elemInLinks) == 1: _Elements = elemInLinks[0]

В этом файле изначально у меня было управление только в Grasshopper, но спустя время добавил Human UI, и чтобы оно работа и там и здесь сделал переключатель входных данных через Meta Hopper (Enable/ Disable object). Всё работало отлично и через Human и через Grasshopper. Но … Когда я решил удалить переключатель и выделенные красным цветом ноды на скриншоте, чтобы можно было работать только через Human UI- мой файл сломался.

Место поломки :

На видео первый вариант рабочий, при нажатии на кнопку появляется меню “uidoc.Selection.PickObjects”, выбираю обьект, нажимаю готово- всё работает. Но во втором скрипте которые я переключал на видео после нажатия на кнопку выбора элемента - поле uidoc.Selection.PickObjects не появляется. Но сам функционал uidoc.Selection.PickObjects вызывается .

Обьясняю - в Revit у меня становиться активным функция выбора элемента которую я не могу закрыть/отменить/подтвердить. И вообще любой другой функционал Revit (выбрать элемент и поменять ему параметр/ создать спецификацию / вообще всё остальное) -не работает. Единственный выход из ситуации- закрыть полностью Revit через Диспетчер задач Windows и открыть обратно.

Вопрос.

  1. Есть ли способ выхода из этой функции через hot key?
  2. Какой ещё есть вариант для выбора элемента в Revit через Button Human UI

*Мне нужен элемент или его ID. Элемент нужен всегда только 1 (“Несколько”- мне не нужно.)
Мне идеально подойдет функция “Graphical Element> set one element”, если кто то знает как это сделать, буду рад если вы поделитесь этим со мной)

Кто нибудь сталкивался с подобным?
Заранее спасибо за ответ!