.NET

Reply
Valued Contributor
99 Posts
4 Kudos
Registered: ‎10-03-2011
Post 1 of 2
Accepted Solution

Insert wblock - annotative

343 Views, 1 Replies
01-19-2012 01:00 PM

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.

 

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;

 


 


Active Contributor
32 Posts
1 Kudo
Registered: ‎08-12-2011
Post 2 of 2

Re: Insert wblock - annotative

01-19-2012 01:51 PM in reply to: Ertqwa

 

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;

 


 


Post to the Community

Have questions about Autodesk products? Ask the community.

New Post