Ignore revit error (duplicate mark)

Hi guys,

Does pyrevit have a way to ignore Revit errors, for example ‘duplicate mark’?

Right now I’m using a class to do so, but perhaps things can be achieved easier?

class Warning_DuplicateMark_Allower(IFailuresPreprocessor):

    def PreprocessFailures(self, failuresAccessor):

        fail_acc_list = List[FailureMessageAccessor]()
        fail_acc_list = failuresAccessor.GetFailureMessages().GetEnumerator()        
        for failure in fail_acc_list:
            failure_id = failure.GetFailureDefinitionId()            
            failure_severity = failure.GetSeverity()          
            failure_type = BuiltInFailures.GeneralFailures.DuplicateValue
            if failure_id == failure_type:
                #print("{} with id: {} of type: Duplicate Mark values removed!".format(failure_severity, failure_id.Guid))
                failuresAccessor.DeleteWarning(failure)

        return FailureProcessingResult.Continue

Usage:

t = Transaction(doc, "your_wish_is_my_command")
t.Start()   
Options = t.GetFailureHandlingOptions()
Options.SetFailuresPreprocessor(Warning_DuplicateMark_Allower())
t.SetFailureHandlingOptions(Options)   
mark.Set(typemark_val)            
t.Commit()

I figured it out, I should use swallow_errors.

with revit.Transaction("your_wish_is_my_command", swallow_errors=True):

2 Likes