Я получаю ошибку eLockViolation в
BlockTableRecord brec = trans.GetObject(acBlkTbl[BlockTableRecord.ModelSpace], OpenMode.ForWrite) as BlockTableRecord;
Я знаю, что могу заблокировать документ, чтобы избежать ошибки, но я не знаю, почему происходит eLockViolation.Кто-нибудь может мне помочь?
[CommandMethod("UnLockDoc", CommandFlags.Session)]
public static void UnLockDoc()
{
DocumentCollection docMgr = Application.DocumentManager;
Document newDoc = docMgr.Add("acad.dwt");
Database acDbNewDoc = newDoc.Database;
docMgr.MdiActiveDocument = newDoc;
using (Transaction trans = newDoc.TransactionManager.StartTransaction())
{
//docMgr.MdiActiveDocument = newDoc;
BlockTable acBlkTbl = trans.GetObject(acDbNewDoc.BlockTableId, OpenMode.ForRead) as BlockTable;
BlockTableRecord brec = trans.GetObject(acBlkTbl[BlockTableRecord.ModelSpace], OpenMode.ForWrite) as BlockTableRecord;
Line lin = new Line(new Point3d(0, 0, 0), new Point3d(100, 100, 0));
brec.AppendEntity(lin);
trans.AddNewlyCreatedDBObject(lin, true);
trans.Commit();
}
}