Insert ViewTiles in Model Example (VBA)

This example shows how to:

'--------------------------------------------------------------
' Preconditions:
' 1. Create a VBA macro in a software product in which VBA is
'    embedded.
' 2. Copy and paste this example into the Visual Basic IDE.
' 3. Add a reference to the DraftSight type library,
'    install_dir\bin\dsAutomation.dll.
' 4. Start DraftSight.
' 5. Ensure that the file specified to open exists.
' 6. Press F5 and click Step Into to step into the code.
' 7. Press F8 repeatedly to step through the code. Observe
'    the changes in the model document and ViewTiles.
'
' Postconditions:
' 1. Opens the specified file.
' 2. Inserts four ViewTiles.
' 3. Iterates through the four ViewTiles. For each ViewTile:
'    a. Turns off displaying the coordinate system at the
'       the origin.
'    b. Specifies to display the coordinate system at the origin.
'    c. Turns on displaying the coordinate system at the
'       origin.
' 4. Close the model document without saving any changes.
'----------------------------------------------------------------
Option Explicit
Sub main()    
    'Connect to DraftSight
    Dim dsApp As DraftSight.Application
    Set dsApp = GetObject(, "DraftSight.Application")  

    'Abort any command currently running in DraftSight
    'to avoid nested commands
    dsApp.AbortRunningCommand
  
    'Open document
    Dim dsDoc As DraftSight.Document
    Dim docName As String
    docName = "C:\ProgramData\Dassault Systemes\DraftSight\Examples\A-54643.DWG"
    Set dsDoc = dsApp.OpenDocument2(docName, dsDocumentOpenOption_e.dsDocumentOpen_Default, dsEncoding_e.dsEncoding_Default)
    If dsDoc Is Nothing Then
        MsgBox "There are no open documents in DraftSight."
        Return
    End If
    'Get active document
    dsApp.GetActiveDocument    
    'Get model
    Dim dsModel As DraftSight.Model
    Set dsModel = dsDoc.GetModel    
    'Insert ViewTiles
    Dim viewTiles As Variant
    Dim index As Long
    Dim dsViewTile As DraftSight.ViewTile
    viewTiles = dsModel.InsertViewTiles(dsViewTilesMode_e.dsViewTilesMode_4_Left, dsViewTilesApplyTo_e.dsViewTilesApplyTo_ActiveViewTile)
    If IsArray(viewTiles) Then
        For index = LBound(viewTiles) To UBound(viewTiles)
            Set dsViewTile = viewTiles(index) 
            'Turn off displaying coordinate system icon at origin
            dsViewTile.CSIconIsOn = False
            If Not (dsViewTile.CSIconIsOn) Then
                'Display coordinate system at origin 
                dsViewTile.CSIconAtOrigin = True
                'Turn on displaying coordinate system icon at origin
                dsViewTile.CSIconIsOn = True
            End If            
        Next
    End If 
End Sub