Добрый день всем!
Подскажите, пожалуйста, как победить вот такую ошибку: "Autodesk.AutoCAD.Runtime.Exception: eNullObjectId"?.
Описание того, как она появляется: программно создается новый стиль мультивыноски, все работает без ошибок. Далее заходим через меню или ленту (Аннотоции) в Диспетчер стилей мультивыносок и удаляем этот стиль мультивыноски, который был создан программно. Далее опять вызываем команду плагина создать новый стиль мультивыноски (с тем же именем что и в первый раз) и сразу возникает вышеуказанная ошибка.
В коде наличие стиля с таким именем проверяется. Может еще что-то проверять надо? При ручном удалении удаляется только из списка стилей, из таблицы чертежа не удаляется?
using (Transaction tr = db.TransactionManager.StartTransaction())
{
DBDictionary mleaderStylesDict = tr.GetObject(db.MLeaderStyleDictionaryId, OpenMode.ForRead) as DBDictionary;
const String mleaderStyleName = "Мультивыноски";
MLeaderStyle mleaderStyle;
if (mleaderStylesDict.Contains(mleaderStyleName))
{
mleaderStyle = (MLeaderStyle)tr.GetObject((ObjectId)mleaderStylesDict[mleaderStyleName], OpenMode.ForWrite);
mleaderStyleId = mleaderStylesDict.GetAt(mleaderStyleName);
}
else
{
.....
mleaderStyleId = mleaderStyle.PostMLeaderStyleToDb(db, mleaderStyleName);
tr.AddNewlyCreatedDBObject(mleaderStyle, true);
}
....
tr.Commit();
}