IFailuresPreprocessor Interface


An interface that may be used to perform a preprocessing step to either filter out anticipated transaction failures or to mark certain failures as non-continuable.

Namespace: Autodesk.Revit.DB
Assembly: RevitAPI (in RevitAPI.dll) Version: 2015.0.0.0 (2015.0.0.0)
Since: 2011

Syntax

C#
public interface IFailuresPreprocessor
Visual Basic
Public Interface IFailuresPreprocessor
Visual C++
public interface class IFailuresPreprocessor

Remarks

This interface, if provided, is invoked when there are failures found at the end of a transaction. An instance of this interface can be set in the failure handling options of transaction object.

Examples

Copy C#
public class RoomWarningSwallower : IFailuresPreprocessor
{
    public FailureProcessingResult PreprocessFailures(FailuresAccessor failuresAccessor)
    {
        IList<FailureMessageAccessor> failList = new List<FailureMessageAccessor>();
        // Inside event handler, get all warnings
        failList = failuresAccessor.GetFailureMessages(); 
        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)
            {
                failuresAccessor.DeleteWarning(failure);
            }
        }

        return FailureProcessingResult.Continue;
    }
}
Copy VB.NET
Public Class RoomWarningSwallower
    Implements IFailuresPreprocessor
    Public Function PreprocessFailures(failuresAccessor As FailuresAccessor) As FailureProcessingResult Implements IFailuresPreprocessor.PreprocessFailures
        Dim failList As IList(Of FailureMessageAccessor) = New List(Of FailureMessageAccessor)()
        ' Inside event handler, get all warnings
        failList = failuresAccessor.GetFailureMessages()
        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
                failuresAccessor.DeleteWarning(failure)
            End If
        Next

        Return FailureProcessingResult.[Continue]
    End Function
End Class

See Also

ArchiLabs Desktop

Put AI to work inside Revit.

Give Desktop your instructions and project files to build Revit families, update model elements, and create views and schedules. Works directly in Revit and AutoCAD.

Explore Desktop →