BrowserPane.GetBrowserNodeFromObject( NativeObject As Object ) As BrowserNode
В общем этот метод мне был ране известен и не сильно помог. А вот идея насчет "подчинения" натолкнула меня на новый критерий поиска, за что еще раз спасибо.
Решением является использование свойства BrowserNode.Parent, которое возвращает BrowserNode родительского объекта, т.е. стоящего на уровень выше в браузере (возвращает ошибку для BrowserNode верхней сборки).
В итоге у меня получился такой вот код:
// oDoc - ссылка на активную сборку
// oсс - ссылка на интеесующее нас вхождение
// oBFolder - интересующая нас папка браузера
Inventor.BrowserNode bn = oDoc.BrowserPanes["AmBrowserArrangement"].GetBrowserNodeFromObject(oсс);
if (!bn.Parent.Equals(oBFolder.BrowserNode)) oBFolder.Add(bn);
П.С. Надеюсь данный код будет кому-то еще полезен. Хотя, честно признаюсь, что результат оказался хуже ожидания. Проводил тест для сборки из 450 деталей: без проверки операция делается за 4-5 секунд, с проверкой за 0.5. Компьютер мощный, на более слабых, возможно, разница будет более заметной. В любом случае, экономия времени не сильно впечатляет конечно
Ну за год-другой "отобьется" день, который я потратил на поиск данного кода.