ControlledApplication.FailuresProcessing
Description:
Subscribe to the FailuresProcessing event to be notified when failures are being processed at the end of transaction.
Subscribe to the FailuresProcessing event to be notified when failures are being processed at the end of transaction.
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.
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.
public event EventHandler<FailuresProcessingEventArgs> FailuresProcessing
[Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.Manual)]
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);
}
}
}
}
No comments yet. Start the discussion.
Loading…