Printing all Sheet Models to PDF Using VBA


  
 Applies To 
  
 Product(s):MicroStation
 Version(s):08.11.09.578
 Environment: Windows 7 32 bit,Windows 7 64 bit
 Area: Programming
 Subarea: VBA
 Original Author:Tristan Anderson, Bentley Technical Support Group
  

Any existing sheet models in a drawing should be printed to PDF via VBA.

In the following example, such an approach is shown. As a prerequisite, it is assumed that a printer driver set to print to PDF is already present.

Sub PlotAllerBlattmodelle()
Dim oMod As ModelReference
Dim Filename As String
Dim PDFFilename As String
 
'Define the output Directory:
If ActiveWorkspace.IsConfigurationVariableDefined("MS_PLTFILES") Then
    Filename = ActiveWorkspace.ConfigurationVariableValue("MS_PLTFILES")
    Filename = Filename + ActiveDesignFile.Name
Else
    Filename = ActiveDesignFile.FullName
End If
 
'Open the print dialog, so that the "Print" command loads:
CadInputQueue.SendKeyin "DIALOG PLOT"
     
'Print each sheet model:
For Each oMod In ActiveDesignFile.Models
    If oMod.Type = msdModelTypeSheet Then
        oMod.Activate
        'Output filename is based on drawing name + model name:
        PDFFilename = Filename + "--" + oMod.Name + ".PDF"
        'Print to File:
        CadInputQueue.SendKeyin "print execute " + PDFFilename
    End If
Next
End Sub
 

To make sure the output directory is checks, we will use the variable defined as MS_PLTFILES.

If it is checked, the path is used for output. The filename of the PDF file is defined by the drawing name + model name.

This will only print sheet models, and all other models will be ignored while printing.