using (Transaction t = doc.TransactionManager.StartTransaction()) { ObjectId idBTR = doc.Database.Insert(blockname, db, false); BlockTable bt = (BlockTable)t.GetObject(doc.Database.BlockTableId, OpenMode.ForRead); BlockTableRecord btr = (BlockTableRecord)t.GetObject(bt[BlockTableRecord.ModelSpace], OpenMode.ForWrite); using (BlockReference bref = new BlockReference(pt, idBTR)) { btr.AppendEntity(bref); t.AddNewlyCreatedDBObject(bref, true); asdf = bref.BlockId;//return btr.ObjectId.ToString(); } t.Commit(); t.Dispose(); return asdf; } 我尝试在 插入的时候 把 BlockReference bref 的ID 保存 并返回 但经过调试发现 获得的这个ObjectId 不是 实际插入的 ObjectId 好象有函数 可以直接获得刚插入的 块 或者 实体 的ObjectId 请教下高手, 谢谢! |