54 lines
1.7 KiB
C#
54 lines
1.7 KiB
C#
using System.Collections.Generic;
|
|
using Autodesk.Revit.DB;
|
|
|
|
namespace uBIM_EarthTools
|
|
{
|
|
public class FailureHandler : IFailuresPreprocessor
|
|
{
|
|
public string ErrorMessage { set; get; }
|
|
public string ErrorSeverity { set; get; }
|
|
|
|
public FailureHandler()
|
|
{
|
|
ErrorMessage = "";
|
|
ErrorSeverity = "";
|
|
}
|
|
|
|
public FailureProcessingResult PreprocessFailures(FailuresAccessor failuresAccessor)
|
|
{
|
|
IList<FailureMessageAccessor> failureMessages = failuresAccessor.GetFailureMessages();
|
|
foreach (FailureMessageAccessor failureMessageAccessor in failureMessages)
|
|
{
|
|
FailureDefinitionId id = failureMessageAccessor.GetFailureDefinitionId();
|
|
try
|
|
{
|
|
ErrorMessage = failureMessageAccessor.GetDescriptionText();
|
|
}
|
|
catch
|
|
{
|
|
ErrorMessage = "Unknown Error";
|
|
}
|
|
|
|
try
|
|
{
|
|
FailureSeverity failureSeverity = failureMessageAccessor.GetSeverity();
|
|
ErrorSeverity = failureSeverity.ToString();
|
|
if (failureSeverity == FailureSeverity.Warning)
|
|
{
|
|
failuresAccessor.DeleteWarning(failureMessageAccessor);
|
|
|
|
}
|
|
else
|
|
{
|
|
failuresAccessor.ResolveFailure(failureMessageAccessor);
|
|
return FailureProcessingResult.ProceedWithCommit;
|
|
}
|
|
}
|
|
catch
|
|
{ }
|
|
}
|
|
return FailureProcessingResult.Continue;
|
|
}
|
|
}
|
|
}
|