AddSheets Method (ActiveX/ATO)

Adds the files in a sheet set (DST) file to a transmittal set.

Supported platforms: Windows only

Namespace: TRANSMITTALLib

Assembly: AcETransmit19.tlb

Signature

VB.NET:

object.addSheets sheets, includeSSFiles

C#:

object.addSheets(sheets, includeSSFiles);
object

Type: TransmittalOperation object

The object this method applies to.

sheets

Access: Input-only

Type: Array of AcSmSheet objects

The AcSmSheet object is defined in the AcSmComponents library.

includeSSFiles

Access: Input-only

Type: Long

  • 0 (False): Do not include the sheet set (DST) and support files referenced by the DST file
  • 1 (True): Include the sheet set (DST) and support files referenced by the DST file

Return Value (RetVal)

No return value.

Remarks

No additional remarks.

Release Information

Releases: AutoCAD 2005 and later

Examples

VB.NET:

' Custom command to create a transmittal package from the sheets in a sheet set
<CommandMethod("eTransmitDSTFile_Sheets")> _
Public Shared Sub eTransmitDSTFile_Sheets()

    ' Create a transmittal operation
    Dim tro As TransmittalOperation = New TransmittalOperation()

    ' Setup the transmittal behavior
    Dim ti As TransmittalInfo = _
        TransInfo(tro.getTransmittalInfoInterface(), "C:\Users\Public\TransmittalAPITest\")

    ' Add a sheet selection set from a sheet set and 
    ' the drawings contained in it
    ' Get a reference to the Sheet Set Manager object
    Dim sheetSetManager As IAcSmSheetSetMgr = New AcSmSheetSetMgr

    ' Open a Sheet Set file
    Dim sheetSetDatabase As AcSmDatabase = _
        sheetSetManager.OpenDatabase("C:\AutoCAD\Sample\Sheet Sets\Architectural\IRD Addition.dst", False)

    ' Get the enumerator for the objects in the 
    ' sheet set and then set the first object
    Dim enumerator As IAcSmEnumPersist = sheetSetDatabase.GetEnumerator()
    Dim itemSheetSet As IAcSmPersist = enumerator.Next()

    Dim sheetNames(0) As String
    Dim sheetSetSelOrSheetName As String = "T-01 TITLE SHEET;A-01 MAIN AND SECOND FLOOR PLAN"

    ' Semi-colon detected, multiple sheet names are being passed 
    If sheetSetSelOrSheetName.Contains(";") = True Then
        sheetNames = sheetSetSelOrSheetName.Split(";")
    Else
        sheetNames(0) = sheetSetSelOrSheetName
    End If

    ' Create an array of the sheets based on their names
    Dim sheetArray(0) As IAcSmObjectId
    Dim sheet As AcSmSheet, nCount As Integer = 0

    ' Step through the objects in the sheet set
    Do While Not itemSheetSet Is Nothing

        ' Check to see if the object is a Sheet
        If itemSheetSet.GetTypeName() = "AcSmSheet" Then

            ' A sheet was found, now to see if it is the one needed
            sheet = itemSheetSet

            ' Step through each name provided
            For Each sheetName As String In sheetNames

                ' Check to see if the sheet name matches the sheet
                If UCase(sheet.GetName()).Equals(UCase(sheetName)) = True Then
                    ReDim Preserve sheetArray(0 To nCount)

                    ' Match was found, add the sheet's object Id to the array
                    sheetArray(nCount) = sheet.GetObjectId()

                    ' Increment the counter by 1
                    nCount = nCount + 1
                End If
            Next
        End If

        ' Get the next object
        itemSheetSet = enumerator.Next()
    Loop

    ' Get the sheets from the database and process them
    ' 0 - Do not include DST file or support files referenced 
    '     by the DST file (templates, blocks, ...)
    ' 1 - Include DST file, all files referenced by the 
    '     DST file, its sheets and references
    If sheetArray.Length > 0 And sheetArray(0).Equals("") = False Then
        tro.addSheets(sheetArray, vbTrue)
    End If

    ' Close the sheet set
    sheetSetManager.Close(sheetSetDatabase)

    ' Create the transmittal package
    ' Files are copied and resaved to the path specified by the destinationRoot property
    ' and the other settings of the TransmittalInfo object.
    tro.createTransmittalPackage()
End Sub

C#:

// Custom command to create a transmittal package from the sheets in a sheet set
[CommandMethod("eTransmitDSTFile_Sheets")]
public static void eTransmitDSTFile_Sheets()
{
    // Create a transmittal operation
    TransmittalOperation tro = new TransmittalOperation();

    // Setup the transmittal behavior
    TransmittalInfo ti =
        TransInfo(tro.getTransmittalInfoInterface(), "C:\\Users\\Public\\TransmittalAPITest\\");

    // Add a sheet set and the drawings referenced in it
    // Get a reference to the Sheet Set Manager object
    IAcSmSheetSetMgr sheetSetManager = new AcSmSheetSetMgr();

    // Open a sheet set (DST) file
    AcSmDatabase sheetSetDatabase =
        sheetSetManager.OpenDatabase("C:\\AutoCAD\\Sample\\Sheet Sets\\Architectural\\IRD Addition.dst", false);

    // Get the enumerator for the objects in the 
    // sheet set and then set the first object
    IAcSmEnumPersist enumerator = sheetSetDatabase.GetEnumerator();
    IAcSmPersist itemSheetSet = enumerator.Next();

    string[] sheetNames = new string[1];
    string sheetSetSelOrSheetName = "T-01 TITLE SHEET;A-01 MAIN AND SECOND FLOOR PLAN";

    // Semi-colon detected, multiple sheet names are being passed 
    if (sheetSetSelOrSheetName.Contains(";") == true)
    {
        sheetNames = sheetSetSelOrSheetName.Split(';');
    }
    else
    {
        sheetNames[0] = sheetSetSelOrSheetName;
    }

    // Create an array of the sheets based on their names
    IAcSmObjectId[] sheetArray = new IAcSmObjectId[1];
    AcSmSheet sheet = default(AcSmSheet);
    int nCount = 0;

    // Step through the objects in the sheet set
    while (itemSheetSet != null)
    {
        // Check to see if the object is a Sheet
        if (itemSheetSet.GetTypeName() == "AcSmSheet")
        {
            // A sheet was found, now to see if it is the one needed
            sheet = (AcSmSheet)itemSheetSet;

            // Step through each name provided
            foreach (string sheetName in sheetNames)
            {
                // Check to see if the sheet name matches the sheet
                if (sheet.GetName().ToUpper().Equals(sheetName.ToUpper()) == true)
                {
                    Array.Resize(ref sheetArray, nCount + 1);

                    // Match was found, add the sheet's object Id to the array
                    sheetArray[nCount] = sheet.GetObjectId();

                    // Increment the counter by 1
                    nCount = nCount + 1;
                }
            }
        }

        // Get the next object
        itemSheetSet = enumerator.Next();
    }

    // Get the sheets from the database and process them
    // 0 - Do not include DST file or support files referenced 
    //     by the DST file (templates, blocks, ...)
    // 1 - Include DST file, all files referenced by the 
    //     DST file, its sheets and references
    if (sheetArray.Length > 0 & sheetArray[0].Equals("") == false)
    {
        tro.addSheets(sheetArray, 1);
    }

    // Close the sheet set
    sheetSetManager.Close(sheetSetDatabase);

    // Create the transmittal package
    // Files are copied and resaved to the path specified by the destinationRoot property
    // and the other settings of the TransmittalInfo object.
    tro.createTransmittalPackage();
}