Добрый день.
В процессе повторной загрузки отредактированных семейств обратно в проект выскакивает окно с ошибкой "Произошла ошибка при прорисовке содержимого окна..."
В качестве загрузки семейства в проект использую метод
LoadFamily Method (Document, IFamilyLoadOptions)IFamilyLoadOptions l_opt = new MyFamilyLoadOptions();
....
UpdatedFam = famDoc.LoadFamily(_doc, l_opt);
В интерфейсе
IFamilyLoadOptions произвёл переопределение:
class MyFamilyLoadOptions : IFamilyLoadOptions
{
public bool OnFamilyFound(
bool familyInUse,
out bool overwriteParameterValues)
{
if (!familyInUse)
{
overwriteParameterValues = true;
return true;
}
else
{
MessageBox.Show("The family is in use.");
overwriteParameterValues = true;
return true;
}
}
public bool OnSharedFamilyFound(
Family sharedFamily,
bool familyInUse,
out FamilySource source,
out bool overwriteParameterValues)
{
if (!familyInUse)
{
source = FamilySource.Family;
overwriteParameterValues = true;
return true;
}
else
{
MessageBox.Show("The shared family is in use.");
source = FamilySource.Family;
overwriteParameterValues = true;
return true;
}
}
}
Добавил обработку
familyInUse для понимания какие семейства используются в проекте, в моём случае как только количество этих семейств переваливает за число 6-7 то возникает вышеописанная ошибка с окном. Если выбрать другой вид то процедура доходит до конца (загрузка всех модифицированных семейств) и никаких проблем нет.
Кто сталкивался с такими странными глюками? Пробовал использовать
RefreshActiveView() после каждого загруженного семейства - результата не дало, ошибка по прежнему выскакивает.
При чем интересно что на проекте с 30 семействами такая проблема вылезает, а в другом проекте с 50 семействами (хотя там
familyInUse дает всего 4 семейства) - нет.