.Net CAD: электронное нарушение - PullRequest
0 голосов
/ 13 марта 2019

Я получаю ошибку 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();
        }
    }
...