Subscribe to the FailuresProcessing event to be notified when failures are being processed at the end of transaction.
Namespace: Autodesk.Revit.ApplicationServices
Assembly: RevitAPI (in RevitAPI.dll) Version: 2015.0.0.0 (2015.0.0.0)
Since: 2011
Syntax
C# |
---|
|
Visual Basic |
---|
|
Visual C++ |
---|
|
Remarks
This event is raised when failures are being processed during transaction commit or rollback operations. Handlers of this event have a limited ability to modify the document and/or failures in it, using provided restricted failures accessor interface.
Examples

[Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.Automatic)]
public class NoUnenclosedRoomWarnings : IExternalApplication
{
static AddInId m_appId = new AddInId(new Guid("EB296268-8364-4d25-96E6-F664C608503C"));
public Result OnStartup(UIControlledApplication application)
{
//Create an API application that subscribes to FailuresProcessing event for the lifetime of the session.
application.ControlledApplication.FailuresProcessing += new EventHandler<FailuresProcessingEventArgs>(CheckWarnings);
return Result.Succeeded;
}
public Result OnShutdown(UIControlledApplication application)
{
return Result.Succeeded;
}
private void CheckWarnings(object sender, FailuresProcessingEventArgs e)
{
FailuresAccessor fa = e.GetFailuresAccessor();
IList<FailureMessageAccessor> failList = new List<FailureMessageAccessor>();
failList = fa.GetFailureMessages(); // Inside event handler, get all warnings
foreach (FailureMessageAccessor failure in failList)
{
// check FailureDefinitionIds against ones that you want to dismiss,
FailureDefinitionId failID = failure.GetFailureDefinitionId();
// prevent Revit from showing Unenclosed room warnings
if (failID == BuiltInFailures.RoomFailures.RoomNotEnclosed)
{
fa.DeleteWarning(failure);
}
}
}
}

<Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.Automatic)> _
Public Class NoUnenclosedRoomWarnings
Implements IExternalApplication
Shared m_appId As New AddInId(New Guid("EB296268-8364-4d25-96E6-F664C608503C"))
Public Function OnStartup(application As UIControlledApplication) As Autodesk.Revit.UI.Result Implements IExternalApplication.OnStartup
'Create an API application that subscribes to FailuresProcessing event for the lifetime of the session.
AddHandler application.ControlledApplication.FailuresProcessing, AddressOf CheckWarnings
Return Result.Succeeded
End Function
Public Function OnShutdown(application As UIControlledApplication) As Autodesk.Revit.UI.Result Implements IExternalApplication.OnShutdown
Return Result.Succeeded
End Function
Private Sub CheckWarnings(sender As Object, e As FailuresProcessingEventArgs)
Dim fa As FailuresAccessor = e.GetFailuresAccessor()
Dim failList As IList(Of FailureMessageAccessor) = New List(Of FailureMessageAccessor)()
failList = fa.GetFailureMessages()
' Inside event handler, get all warnings
For Each failure As FailureMessageAccessor In failList
' check FailureDefinitionIds against ones that you want to dismiss,
Dim failID As FailureDefinitionId = failure.GetFailureDefinitionId()
' prevent Revit from showing Unenclosed room warnings
If failID = BuiltInFailures.RoomFailures.RoomNotEnclosed Then
fa.DeleteWarning(failure)
End If
Next
End Sub
End Class