Subscribe to the ViewPrinting event to be notified when Revit is just about to print a view of the document.
Namespace: Autodesk.Revit.ApplicationServicesAssembly: RevitAPI (in RevitAPI.dll) Version: 21.0.0.0 (21.1.1.109)
Since: 2010
Syntax
C# |
---|
public event EventHandler<ViewPrintingEventArgs> ViewPrinting |
Visual Basic |
---|
Public Event ViewPrinting As EventHandler(Of ViewPrintingEventArgs) |
Visual C++ |
---|
public: event EventHandler<ViewPrintingEventArgs^>^ ViewPrinting { void add (EventHandler<ViewPrintingEventArgs^>^ value); void remove (EventHandler<ViewPrintingEventArgs^>^ value); } |
Remarks
This event is raised when Revit is just about to print a view of the document. If multiple views are combined to a single file, this event will be raised only once.
Handlers of this event are permitted to make modifications to any document (including the active document), except for documents that are currently in read-only mode.
Event is not cancellable. The 'Cancellable' property of event's argument is always False.
The following API functions are not available for the current document during this event:
- All overloads of Autodesk.Revit.DB.Document.Export()
- Autodesk.Revit.DB.Document.Print()
- Print()()()() and similar overloads.
- SubmitPrint()()()() and similar overloads.
- Close()()()() and similar overloads.
- Save()()()() .
- SaveAs(String) and similar overloads.
Exception InvalidOperationException will be thrown if any of the above methods is called during this event.
Another event ViewPrinted will be raised immediately after view printing is finished.
Examples

public class Application_ViewPrinting : IExternalApplication { /// <ExampleMethod> /// <summary> /// Implement the OnStartup method to register events when Revit starts. /// </summary> public Result OnStartup(UIControlledApplication application) { // Register related events application.ControlledApplication.ViewPrinting += new EventHandler<Autodesk.Revit.DB.Events.ViewPrintingEventArgs>(AppViewPrinting); return Result.Succeeded; } /// <summary> /// Implement this method to unregister the subscribed events when Revit exits. /// </summary> public Result OnShutdown(UIControlledApplication application) { // unregister events application.ControlledApplication.ViewPrinting -= new EventHandler<Autodesk.Revit.DB.Events.ViewPrintingEventArgs>(AppViewPrinting); return Result.Succeeded; } /// <TrivialCode> /// Code ID: 501 /// For ViewPrinting class description /// </TrivialCode> /// <summary> /// Handler method for ViewPrinting event, it will display some event arguments. /// </summary> public void AppViewPrinting(object sender, Autodesk.Revit.DB.Events.ViewPrintingEventArgs args) { StringBuilder info = new StringBuilder(); info.AppendLine("ViewPrintingEventArgs Parameters ------>"); info.AppendLine(" Event Cancellable : " + args.Cancellable); info.AppendLine(" TotalViews : " + args.TotalViews); info.AppendLine(" View Index : " + args.Index); info.AppendLine(" View Information :"); // View DumpViewInfo(args.View, " ", ref info); TaskDialog.Show("Revit",info.ToString()); } /// <summary> /// Dump information of single view: ViewType, Id and ViewName. /// </summary> /// <param name="view">View element to be displayed in message box.</param> /// <param name="prefix">Prefix mark for each line added to message box string.</param> /// <param name="info">String where data is stored for display</param> private static void DumpViewInfo(Autodesk.Revit.DB.View view, String prefix, ref StringBuilder info) { info.AppendLine(String.Format("{0} Id: {1}, ViewName: {2}, ViewType: {3}", prefix, view.Id.IntegerValue, view.Name, view.ViewType)); } /// </ExampleMethod> }

Public Class Application_ViewPrinting Implements IExternalApplication ' <ExampleMethod> ' <summary> ' Implement the OnStartup method to register events when Revit starts. ' </summary> Public Function OnStartup(application As UIControlledApplication) As Autodesk.Revit.UI.Result Implements IExternalApplication.OnStartup ' Register related events AddHandler application.ControlledApplication.ViewPrinting, AddressOf AppViewPrinting Return Result.Succeeded End Function ' <summary> ' Implement this method to unregister the subscribed events when Revit exits. ' </summary> Public Function OnShutdown(application As UIControlledApplication) As Autodesk.Revit.UI.Result Implements IExternalApplication.OnShutdown ' unregister events RemoveHandler application.ControlledApplication.ViewPrinting, AddressOf AppViewPrinting Return Result.Succeeded End Function ' <TrivialCode> ' Code ID: 501 ' For ViewPrinting class description ' </TrivialCode> ' <summary> ' Handler method for ViewPrinting event, it will display some event arguments. ' </summary> Public Sub AppViewPrinting(sender As Object, args As Autodesk.Revit.DB.Events.ViewPrintingEventArgs) Dim info As New StringBuilder() info.AppendLine("ViewPrintingEventArgs Parameters ------>") info.AppendLine(" Event Cancellable : " & Convert.ToString(args.Cancellable)) info.AppendLine(" TotalViews : " & Convert.ToString(args.TotalViews)) info.AppendLine(" View Index : " & Convert.ToString(args.Index)) info.AppendLine(" View Information :") ' View DumpViewInfo(args.View, " ", info) TaskDialog.Show("Revit", info.ToString()) End Sub ' <summary> ' Dump information of single view: ViewType, Id and ViewName. ' </summary> ' <param name="view">View element to be displayed in message box.</param> ' <param name="prefix">Prefix mark for each line added to message box string.</param> ' <param name="info">String where data is stored for display</param> Private Shared Sub DumpViewInfo(view As Autodesk.Revit.DB.View, prefix As [String], ByRef info As StringBuilder) info.AppendLine([String].Format("{0} Id: {1}, ViewName: {2}, ViewType: {3}", prefix, view.Id.IntegerValue, view.Name, view.ViewType)) End Sub ' </ExampleMethod> End Class