Hello forum,
I use the following code to insert a wblock:
using (dbInsert = new Database(false, true)) { dbInsert.ReadDwgFile(strDwgPath, System.IO.FileShare.Read, true, ""); oidInsert = dbActive.Insert(System.IO.Path.GetFileNameWithoutExtension(strDwgPath), dbInsert, true); }
Works as it should, and I can create a reference and use it. But when strDwgPath is an annotative block, it is inserted as a non-annotative block (BlockReference.Annotative == false).
I can use the following code, but then ALL blocks are inserted as annotative:
// Get the new blocktablerecord. btrInsert = transActive.GetObject(oidInsert, OpenMode.ForWrite) as BlockTableRecord; btrInsert.Annotative = AnnotativeStates.True;
How am I suppose to insert a wblock so annotative wblocks will be annotative and non-annotatives wont be?
Thank you.
Solved! Go to Solution.
Solved by cincir. Go to Solution.
bool bIsAnnotative = false; using (dbInsert = new Database(false, true)) { dbInsert.ReadDwgFile(strDwgPath, System.IO.FileShare.Read, true, ""); oidInsert = dbActive.Insert(System.IO.Path.GetFileNameWithoutExtension(strDwgPath), dbInsert, true); bIsAnnotative = dbInsert.AnnotativeDrawing; }
will help you i think. then
// Get the new blocktablerecord. btrInsert = transActive.GetObject(oidInsert, OpenMode.ForWrite) as BlockTableRecord; if (bIsAnnotative) btrInsert.Annotative = AnnotativeStates.True;