Доброго времени суток, уважаемые форумчане. Ищу вашей помощи в решении такой вот проблемы:
Переходим работать на AI 2017 (с 2013). В программе (C#) использую старые наработки, в частности у меня есть метод для подавления вхождений. Раньше он работал абсолютно стабильно. Код такой:
private void Occ_Supress_v1
(Inventor.AssemblyComponentDefinition tmp_Ass_CD, string tmp_Occ_name, bool need_supress)
{
if (need_supress)
{
if (tmp_Ass_CD.Occurrences.ItemByName[tmp_Occ_name].Suppressed == false)
{
tmp_Ass_CD.Occurrences.ItemByName[tmp_Occ_name].Suppress(false);
}
}
else if (tmp_Ass_CD.Occurrences.ItemByName[tmp_Occ_name].Suppressed == true)
{
tmp_Ass_CD.Occurrences.ItemByName[tmp_Occ_name].Unsuppress();
}
oDoc.Rebuild();
oDoc.Update();
}
Теперь возникло две проблемы:
1. если подавить вхождение, а потом снова "расподавить", или наоборот, возникает ошибка в строке "oDoc.Rebuild();". Не смог разобраться, что с ней не так, попробовал ее закомментировать, возникла пролема №2.
2. код вроде бы адекватно выполняет свою функцию - меняет состояние подавленности, но очень часто в дереве конструирования визуальное отображение "подавленности" и "не подавленности" не соответствует текущему состоянию вхождений. Т.е. "не подавленная" деталь / подсборка может быть зачеркнута, а подавленная может отображаться как активная. Если сохранить, закрыть и снова открыть документ - все становится "как надо". Если кто-то сталкивался с чем-то подобным, прошу поделиться опытом решения проблемы.