title: Is it possible to edit block attributes in AutoCAD using Autodesk.AutoCAD.Interop?
body: <p>I have developed an external WPF application to generate drawings in c#. I have been able to draw, dimension, add blocks and every thing else required by the application using Autodesk.AutoCAD.Interop, however I can't seem to populate The title block, or generate a parts list.</p>
  
  <p>All the examples I've seen are based on the mechanism that requires the application to run as a plugin inside AutoCAD. The truth is, inserting a line used is one or two lines of code using ModelSpace.InsertLine, now, it's at least 8 lines of code!</p>
  
  <p>Is there a way to achieve this functionality using the Autodesk.AutoCAD.Interop? Or is there a way to combine using the interop with a plugin that can be called from the external exe?</p>
  
  <p>Any pointers on this will be appreciated.</p>
  
  <p>Thanks. </p>
  
  <p><strong>EDIT</strong>
  To illustrate:</p>
  
  <pre><code>// before - Draw Line with Autodesk.AutoCAD.Interop
  private static AcadLine DrawLine(double[] startPoint, double[] endPoint)
  {
      AcadLine line = ThisDrawing.ModelSpace.AddLine(startPoint, endPoint);
      return line;
  }
  // Now - Draw line with Autodesk.AutoCAD.Runtime
  [CommandMethod("DrawLine")]
  public static Line DrawLine(Coordinate start, Coordinate end)
  {
      // Get the current document and database 
      // Get the current document and database
      Document acDoc = Application.DocumentManager.MdiActiveDocument;
      Database acCurDb = acDoc.Database;
  
      // Start a transaction
      using (Transaction acTrans = acCurDb.TransactionManager.StartTransaction())
      {
          // Open the Block table for read
          BlockTable acBlkTbl;
          acBlkTbl = acTrans.GetObject(acCurDb.BlockTableId, OpenMode.ForRead) as BlockTable;
  
          // Open the Block table record Model space for write
          BlockTableRecord acBlkTblRec;
          acBlkTblRec = acTrans.GetObject(acBlkTbl[BlockTableRecord.ModelSpace], OpenMode.ForWrite) as BlockTableRecord;
  
          // Create a line that starts at 5,5 and ends at 12,3
          Line acLine = new Line(start.Point3d, end.Point3d);
  
          acLine.SetDatabaseDefaults();
  
          // Add the new object to the block table record and the transaction
          acBlkTblRec.AppendEntity(acLine);
          acTrans.AddNewlyCreatedDBObject(acLine, true);
  
          // Save the new object to the database
          acTrans.Commit();
          return acLine;
      }
  }
  </code></pre>