Перед запуском кода нужно папку в браузере выделить:
Что-то сразу затупил, как избавиться от выделения в браузере. В итоге задал ссылку на папку.
Также создал коллекцию объектов инвентора.
Если подытожить:результат не совсем тот, что я хотел, ибо было желание совсем избавиться от перебора. Но тем не менее, идет перебор объектов всего 1 папки, а не всей огромной сборки. Так что задачу считаю решенной, очередное большое спасибо вам, Михаил. Решением помечу свой код, как максимально отвечающий на изначальный вопрос топика, но разумеется, все мы понимаем, что в большей части это ваша заслуга.
private void test(object sender, EventArgs e)
{
Inventor.ObjectCollection oObjColl = oTO.CreateObjectCollection();
// ссылка на интересующую папку
Inventor.BrowserFolder oBFolder = oPane.TopNode.BrowserFolders["TEST"];
foreach (Inventor.BrowserNode bn in oBFolder.BrowserNode.BrowserNodes)
{
if ((bn.NativeObject as Inventor.ComponentOccurrence) != null)
{
Inventor.ComponentOccurrence comp = bn.NativeObject as Inventor.ComponentOccurrence;
oObjColl.Add(comp);
}
}
Debug.WriteLine(oObjColl.Count);
// коллекция инвентора нумеруется с 1 члена
for (int i = 1; i <= oObjColl.Count; i++)
{
Inventor.ComponentOccurrence comp = (Inventor.ComponentOccurrence) oObjColl[i];
Debug.WriteLine( i + " - " + comp.Name);
}
}
П.С. Напоследок остался один вопрос, можно ли создать мнимую библиотеку типа ComponentOccurrence? (ну или не мнимую, не знаю, как точно это называется) Я имею ввиду, чтобы коллекция была сразу нужного типа, а не ObjectCollection. Просто помню, что что-то такое обсуждалось, два раза весь форум перелистал, не смог найти соответствующего топика ((