Author Topic: Get File Paths From Sheet Set Manager  (Read 1933 times)

0 Members and 1 Guest are viewing this topic.

chriskroll

  • Guest
Get File Paths From Sheet Set Manager
« on: December 16, 2014, 12:22:23 PM »
Does anyone know how I can get the file path associated with each layout in the sheet set manager?

Here is what I have so far, just going through each sheet and grabbing the name.  Can't seem to find any properties for file path.


Code - C#: [Select]
  1.             AcSmSheetSetMgr SSM = new AcSmSheetSetMgr();
  2.  
  3.             AcSmDatabase sheetSetDatabase = SSM.OpenDatabase(ssPath,false);
  4.  
  5.             AcSmSheetSet sheetSet = sheetSetDatabase.GetSheetSet();
  6.             IAcSmEnumComponent ssEnum = sheetSet.GetSheetEnumerator();
  7.  
  8.             IAcSmComponent sheet = ssEnum.Next();
  9.             while (sheet != null)
  10.             {
  11.                 string type = sheet.GetTypeName();
  12.                 String sheetName = sheet.GetName();
  13.                 sheet = ssEnum.Next();
  14.             }

Jeff_M

  • King Gator
  • Posts: 4094
  • C3D user & customizer
Re: Get File Paths From Sheet Set Manager
« Reply #1 on: December 16, 2014, 12:50:07 PM »
The AcSmSheet object has the GetLayout() method which returns an AcSmAcDbLayoutReference object. The AcSmAcDbLayoutReference Class has the  GetAcSmAcDbDatabase() method, and the AcSmAcDbDatabase Class has the GetAcDbDatabase() & GetIAcadDatabase() methods. From either of these you should be able to obtain the File Path.

chriskroll

  • Guest
Re: Get File Paths From Sheet Set Manager
« Reply #2 on: December 16, 2014, 01:17:19 PM »
Thanks Jeff!

That is what I was looking for.  In fact, it appears that I can get the file path from the AcSmAcDbLayoutReference object.

Code - C#: [Select]
  1. AcSmSheetSetMgr SSM = new AcSmSheetSetMgr();
  2.  
  3.             AcSmDatabase sheetSetDatabase = SSM.OpenDatabase(ssPath,false);
  4.  
  5.             AcSmSheetSet sheetSet = sheetSetDatabase.GetSheetSet();
  6.             IAcSmEnumComponent ssEnum = sheetSet.GetSheetEnumerator();
  7.  
  8.             IAcSmComponent component = ssEnum.Next();
  9.             while (component != null)
  10.             {
  11.                 String type = component.GetTypeName();
  12.                 if (type == "AcSmSheet")
  13.                 {
  14.                     AcSmSheet sheet = component as AcSmSheet;
  15.                     AcSmAcDbLayoutReference layoutRef = sheet.GetLayout();
  16.                     layoutRef.GetFileName();  // Returns the complete file path of the DWG
  17.                 }
  18.             }