app.ControlledApplication.FailuresProcessing += OnFailuresProcessing;
...
private void OnFailuresProcessing(object sender, FailuresProcessingEventArgs e)
{
var failureAccessor = e.GetFailuresAccessor();
var disjointFailures = failureAccessor
.GetFailureMessages(FailureSeverity.Warning)
.Where(x => x.GetFailureDefinitionId() == BuiltInFailures.JoinElementsFailures.JoiningDisjointWarn)
.ToList();
if (disjointFailures.Count == 0)
return;
foreach (var failure in disjointFailures)
{
failure.SetCurrentResolutionType(FailureResolutionType.DetachElements);
failureAccessor.ResolveFailure(failure);
}
e.SetProcessingResult(FailureProcessingResult.ProceedWithCommit);
}