修改命名空间
This commit is contained in:
53
ShrlAlgoToolkit.RevitCore/Assists/FailuresPreProcessor.cs
Normal file
53
ShrlAlgoToolkit.RevitCore/Assists/FailuresPreProcessor.cs
Normal file
@@ -0,0 +1,53 @@
|
||||
using Autodesk.Revit.DB;
|
||||
|
||||
namespace ShrlAlgoToolkit.RevitCore.Assists
|
||||
{
|
||||
/// <summary>
|
||||
/// 错误预处理
|
||||
/// </summary>
|
||||
public class FailuresPreProcessor : IFailuresPreprocessor
|
||||
{
|
||||
////警告、错误处理,放在发生警告的前面
|
||||
|
||||
public FailureProcessingResult PreprocessFailures(FailuresAccessor failuresAccessor)
|
||||
{
|
||||
//获取所有的失败信息
|
||||
var listFma = failuresAccessor.GetFailureMessages();
|
||||
if (listFma.Count == 0)
|
||||
{
|
||||
return FailureProcessingResult.Continue;
|
||||
}
|
||||
|
||||
foreach (var fma in listFma)
|
||||
{
|
||||
if (fma?.GetFailureDefinitionId() == BuiltInFailures.JoinElementsFailures.CannotJoinElementsError)
|
||||
{
|
||||
failuresAccessor.ResolveFailure(fma);
|
||||
}
|
||||
if (fma.GetFailureDefinitionId() == BuiltInFailures.OverlapFailures.WallsOverlap)
|
||||
{
|
||||
failuresAccessor.DeleteWarning(fma);
|
||||
}
|
||||
//如果是错误,则尝试解决
|
||||
if (fma.GetSeverity() == FailureSeverity.Error)
|
||||
{
|
||||
//模拟手动单击"删除连接"按钮
|
||||
if (fma.HasResolutions())
|
||||
{
|
||||
failuresAccessor.ResolveFailure(fma);
|
||||
}
|
||||
|
||||
return FailureProcessingResult.ProceedWithRollBack;
|
||||
}
|
||||
|
||||
//如果是警告,则禁止弹框
|
||||
if (fma.GetSeverity() == FailureSeverity.Warning)
|
||||
{
|
||||
failuresAccessor.DeleteWarning(fma);
|
||||
}
|
||||
}
|
||||
|
||||
return FailureProcessingResult.ProceedWithCommit;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user