From c08723efaee772bc2c901a537d1bbea995073db5 Mon Sep 17 00:00:00 2001 From: Chris Welch Date: Fri, 11 Sep 2020 12:53:21 +1200 Subject: [PATCH 1/2] Added the capacity to ignore all warnings so that running isn't interrupted --- xUnitRevitUtils2021/xru.cs | 32 +++++++++++++++++++++++++++++--- 1 file changed, 29 insertions(+), 3 deletions(-) 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 - } } From dfb12644e1085f66353f8c3fbcaa69ebf3d20798 Mon Sep 17 00:00:00 2001 From: Chris Welch Date: Tue, 15 Sep 2020 11:04:47 +1200 Subject: [PATCH 2/2] Updated warnings documentation --- xUnitRevitUtils2021/xru.cs | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/xUnitRevitUtils2021/xru.cs b/xUnitRevitUtils2021/xru.cs index 0d26aae..6a609fb 100644 --- a/xUnitRevitUtils2021/xru.cs +++ b/xUnitRevitUtils2021/xru.cs @@ -99,14 +99,15 @@ namespace xUnitRevitUtils } - /// - /// Runs an Action in a Revit transaction, uses TaskCompletionSource to communicate when done - /// - /// Action to run - /// Revit Document - /// Transaction Name - /// - public static Task RunInTransaction(Action action, Document doc, string transactionName = "transaction", bool ignoreWarnings = false) + /// + /// Runs an Action in a Revit transaction, uses TaskCompletionSource to communicate when done + /// + /// Action to run + /// Revit Document + /// Transaction Name + /// Enable to swallow all warnings generated by the transaction and prevent them from being raised within Revit + /// + public static Task RunInTransaction(Action action, Document doc, string transactionName = "transaction", bool ignoreWarnings = false) { var tcs = new TaskCompletionSource(); Queue.Add(new Action(() => @@ -141,7 +142,10 @@ namespace xUnitRevitUtils } - public class IgnoreAllWarnings : IFailuresPreprocessor + /// + /// A failures preprocesser that clears any failures that occur within a transaction + /// + internal class IgnoreAllWarnings : IFailuresPreprocessor { public FailureProcessingResult PreprocessFailures(FailuresAccessor failuresAccessor) {