uBIMEarthTools/地质建模/Utils/FailureHandler.cs
2018-10-22 19:28:56 +08:00

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;
}
}
}