diff --git a/xUnitRevitUtils2021/xru.cs b/xUnitRevitUtils2021/xru.cs
index a539bc4..0d26aae 100644
--- a/xUnitRevitUtils2021/xru.cs
+++ b/xUnitRevitUtils2021/xru.cs
@@ -106,7 +106,7 @@ namespace xUnitRevitUtils
/// Revit Document
/// Transaction Name
///
- public static Task RunInTransaction(Action action, Document doc, string transactionName = "transaction")
+ public static Task RunInTransaction(Action action, Document doc, string transactionName = "transaction", bool ignoreWarnings = false)
{
var tcs = new TaskCompletionSource();
Queue.Add(new Action(() =>
@@ -116,6 +116,14 @@ namespace xUnitRevitUtils
using (Transaction transaction = new Transaction(doc, transactionName))
{
transaction.Start();
+
+ if (ignoreWarnings)
+ {
+ var options = transaction.GetFailureHandlingOptions();
+ options.SetFailuresPreprocessor(new IgnoreAllWarnings());
+ transaction.SetFailureHandlingOptions(options);
+ }
+
action.Invoke();
transaction.Commit();
}
@@ -130,7 +138,25 @@ namespace xUnitRevitUtils
EventHandler.Raise();
return tcs.Task;
+
+ }
+
+ public class IgnoreAllWarnings : IFailuresPreprocessor
+ {
+ public FailureProcessingResult PreprocessFailures(FailuresAccessor failuresAccessor)
+ {
+ var failList = failuresAccessor.GetFailureMessages();
+
+ foreach (FailureMessageAccessor failure in failList)
+ {
+ failuresAccessor.DeleteWarning(failure);
+ }
+
+ return FailureProcessingResult.Continue;
+ }
+ }
+
+
+ #endregion
}
-#endregion
- }
}