• Industries
  • Products
  • Buy
  • Services & Support
  • Communities
  • Discussion Groups

    .NET

    Reply
    Valued Contributor
    Ertqwa
    Posts: 73
    Registered: ‎10-03-2011
    Accepted Solution

    Insert wblock - annotative

    237 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.

    Please use plain text.
    Active Contributor
    cincir
    Posts: 32
    Registered: ‎08-12-2011

    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;

     


     


    Please use plain text.