Message 1 of 4
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
Hi. I inserted a block from a dwg drawing with the following method:
public static ObjectId InsertBlock(string fileName, Point3d insPoint)
{
var acadDoc = Application.DocumentManager.MdiActiveDocument;
var blockId = default(ObjectId);
using (var acadLockDoc = acadDoc.LockDocument())
{
var dbTemp = new Database(false, true);
dbTemp.ReadDwgFile(fileName, FileShare.Read, false, "");
var blockName = Path.GetFileNameWithoutExtension(fileName);
SymbolUtilityServices.ValidateSymbolName(blockName, false);
var acadDb = acadDoc.Database;
blockId = acadDb.Insert(blockName, dbTemp, false);
var blockToInsert = new BlockReference(insPoint, blockId);
using (Transaction acadTrans = acadDoc.TransactionManager.StartTransaction())
{
var blockTable = (BlockTable)acadTrans.GetObject(acadDoc.Database.BlockTableId, OpenMode.ForRead);
var activeSpace = (BlockTableRecord)acadTrans.GetObject(_db.CurrentSpaceId, OpenMode.ForWrite);
activeSpace.AppendEntity(blockToInsert);
acadTrans.AddNewlyCreatedDBObject(blockToInsert,true);
var block = (BlockTableRecord)acadTrans.GetObject(blockId, OpenMode.ForWrite);
foreach (ObjectId elementId in block)
{
var element = acadTrans.GetObject(elementId, OpenMode.ForRead);
if (element.GetType().Name.Equals("AttributeDefinition"))
{
var attDef = (AttributeDefinition)acadTrans.GetObject(elementId, OpenMode.ForRead);
var attRef = new AttributeReference();
attRef.SetAttributeFromBlock(attDef, blockToInsert.BlockTransform);
blockToInsert.AttributeCollection.AppendAttribute(attRef);
acadTrans.AddNewlyCreatedDBObject(attRef, true);
}
}
acadTrans.Commit();
}
}
Application.UpdateScreen();
return blockId;
}After inserting a block, i can access it's BlockTableRecord like this:
var block = (BlockTableRecord)trans.GetObject(blockRefId, OpenMode.ForWrite);
but i can't access the BlockReference object like this:
var blockRef = trans.GetObject(blockRefId, OpenMode.ForWrite) as BlockReference;
It's a null. What is going on?
Solved! Go to Solution.