Autodesk.Revit.DB.BuiltInFailures.TagFailures 是用于在 Revit 中自动处理标记错误的枚举类型。 标记失败指的是在标记元素或标记文本等动作中出现的错误。
以下枚举成员列举了在 Revit 中可能出现的标记失败情况:
DuplicateTagValueFailures:当有标记重复时。InvalidTagCharactersFailures:当标记名称包含无效字符时。InvalidTagValueFailures:当标记值不符合规范或格式不正确时。InvalidTagLeaderFailures:当标记引线与标记相连部分存在问题时。MissingTagLeaderFailures:当某些标记缺少引线或引线存在问题时。MultipleTagsSameElementFailures:当同一元素上有多个标记时。UnplacedTagFailures:当标记未被正确放置在元素上时。UserCancelledTaggingFailures:当用户取消标记时。以下示例演示如何使用 Autodesk.Revit.DB.BuiltInFailures.TagFailures 处理标记失败:
public FailureProcessingResult TaggingFailureHandler(FailuresAccessor failuresAccessor)
{
var failures = failuresAccessor.GetFailureMessages()
.Where(x => x.GetFailureDefinitionId() == BuiltInFailures.TagFailures);
foreach (var failure in failures)
{
var failureMessage = failure.GetDescriptionText();
switch ((BuiltInFailures.TagFailures)failure.GetFailureDefinitionId().IntegerValue)
{
case BuiltInFailures.TagFailures.DuplicateTagValueFailures:
// 标记值重复
break;
case BuiltInFailures.TagFailures.InvalidTagCharactersFailures:
// 标记名称包含无效字符
break;
case BuiltInFailures.TagFailures.InvalidTagValueFailures:
// 标记值不符合规范或格式不正确
break;
case BuiltInFailures.TagFailures.InvalidTagLeaderFailures:
// 标记引线与标记相连部分存在问题
break;
case BuiltInFailures.TagFailures.MissingTagLeaderFailures:
// 某些标记缺少引线或引线存在问题
break;
case BuiltInFailures.TagFailures.MultipleTagsSameElementFailures:
// 同一元素上有多个标记
break;
case BuiltInFailures.TagFailures.UnplacedTagFailures:
// 标记未被正确放置在元素上
break;
case BuiltInFailures.TagFailures.UserCancelledTaggingFailures:
// 用户取消标记
break;
default:
// 处理未知的标记失败情况
break;
}
}
return FailureProcessingResult.Continue;
}
以上代码中,TaggingFailureHandler 是处理标记失败的方法。在该方法中,failuresAccessor.GetFailureMessages() 可以获取与标记相关的所有错误消息。使用 Where 过滤出类型为 TagFailures 的错误,并依次处理。