Author Topic: Creating ViewTableRecord  (Read 1873 times)

0 Members and 1 Guest are viewing this topic.

latour_g

  • Newt
  • Posts: 184
Creating ViewTableRecord
« on: September 08, 2016, 02:13:49 PM »
Hi,

I try to do this :
1 - Read a DWG and put all ViewTableRecord in a list
2 - Create ViewTableRecord using the list.

I don't get any error but my code does not create any view, something must be wrong but I don't know what.

Code - C#: [Select]
  1.         public struct INFOVIEW
  2.         {
  3.             public Point2d viewCenter;
  4.             public Point3d viewTarget;
  5.             public Vector3d viewDirection;
  6.             public double viewHeight;
  7.         }
  8.  
  9.         private void btnView_Click(object sender, EventArgs e)
  10.         {
  11.             List<INFOVIEW> list = new List<INFOVIEW>();
  12.  
  13.             Document doc = AcadApp.DocumentManager.MdiActiveDocument;
  14.             Database dbXref = new Database(false, true);
  15.  
  16.             using (doc.LockDocument())
  17.             {
  18.                 using (dbXref)
  19.                 {
  20.                     try
  21.                     {
  22.                         dbXref.ReadDwgFile("C:\\TEMP\\viewtesting.dwg", FileShare.ReadWrite, false, "");
  23.                     }
  24.  
  25.                     catch
  26.                     {
  27.                         dbXref.Dispose();
  28.                         return;
  29.                     }
  30.  
  31.                     using (Transaction tr = dbXref.TransactionManager.StartTransaction())
  32.                     {
  33.                         ViewTable vt = (ViewTable)tr.GetObject(dbXref.ViewTableId, OpenMode.ForWrite);
  34.                         foreach (ObjectId id in vt)
  35.                         {
  36.                             ViewTableRecord vtr = (ViewTableRecord)tr.GetObject(id, OpenMode.ForWrite);
  37.  
  38.                             INFOVIEW newInfo;
  39.                             newInfo.viewCenter = vtr.CenterPoint;
  40.                             newInfo.viewTarget = vtr.Target;
  41.                             newInfo.viewDirection = vtr.ViewDirection;
  42.                             newInfo.viewHeight = vtr.Height;
  43.                             list.Add(newInfo);
  44.                         }
  45.                         tr.Commit();
  46.                     }
  47.                     dbXref.Dispose();
  48.                 }
  49.  
  50.                 Database db = doc.Database;
  51.                
  52.                 using (Transaction tr = db.TransactionManager.StartTransaction())
  53.                 {
  54.                     ViewTable vt2 = (ViewTable)tr.GetObject(db.ViewTableId, OpenMode.ForWrite);
  55.  
  56.                     foreach (INFOVIEW vtrList in list)
  57.                     {
  58.                         ViewTableRecord viewTBR = new ViewTableRecord();
  59.                         viewTBR.Target = vtrList.viewTarget;
  60.                         viewTBR.ViewDirection = vtrList.viewDirection;
  61.                         viewTBR.Height = vtrList.viewHeight;
  62.                         viewTBR.CenterPoint = vtrList.viewCenter;
  63.                         vt2.Add(viewTBR);
  64.                         tr.AddNewlyCreatedDBObject(viewTBR, true);
  65.                     }
  66.                     tr.Commit();
  67.                 }
  68.             }
  69.         }
  70.  
  71.  
  72.  
« Last Edit: September 08, 2016, 02:22:48 PM by latour_g »

Jeff H

  • Needs a day job
  • Posts: 6144
Re: Creating ViewTableRecord
« Reply #1 on: September 08, 2016, 02:42:31 PM »
Just a quick glance have you tried naming them? They might be added but anonymous.

latour_g

  • Newt
  • Posts: 184
Re: Creating ViewTableRecord
« Reply #2 on: September 08, 2016, 02:50:04 PM »
Woohoo  :-D :-D :-D
That's it, it's working fine now. Than you so much !

latour_g

  • Newt
  • Posts: 184
Re: Creating ViewTableRecord
« Reply #3 on: September 09, 2016, 10:34:39 AM »
One last question !
Is there any other way I can apply a UCS to my view ?
 

latour_g

  • Newt
  • Posts: 184
Re: Creating ViewTableRecord
« Reply #4 on: September 09, 2016, 10:38:31 AM »
Oh I should be alright, I've just say that I can probably use "setUCS" to my viewtablerecord.