var entities = new List<Entity>();
Logger.Trace("AcadDrawerPlugin.AddBlock");
var database = AcadHelper.GetActiveDb();
AcadHelper.GetActiveDocument().LockDocument();
ObjectIdCollection objectIdCollection = new ObjectIdCollection();
using (Transaction transaction = database.TransactionManager.StartTransaction())
{
BlockTable blockTable = database.GetBlockTable(transaction);
blockTable.UpgradeOpen();
BlockTableRecord blockTableRecord = new BlockTableRecord();
blockTableRecord.Name = blockName;
blockTable.UpgradeOpen();
ObjectId objectId = blockTable.Add(blockTableRecord);
foreach (EntityId entityId in entityIds)
{
ObjectId newObjectId = database.GetObjectId(false, new Handle(Convert.ToInt64(entityId.Id)), 0);
Logger.Debug("Server.AddBlock.Seacrh1: " + entityId);
Logger.Debug("Server.AddBlock.Seacrh2: " + newObjectId);
var entity = (Entity)newObjectId.GetObject(OpenMode.ForRead);
entities.Add(entity);
objectIdCollection.Add(newObjectId);
}
blockTableRecord.AssumeOwnershipOf(objectIdCollection);
blockTableRecord.DowngradeOpen();
Point3d pt = new Point3d(10,10,10);
BlockReference br = new BlockReference(pt, objectId);
AcadHelper.GetActiveDocument().AddEntity(br);
Application.UpdateScreen();
transaction.Commit();
}