Autodesk.Revit.DB.BuiltInFailures.DisplacementElementFailures是Revit API中的内置故障类型之一,用于表示装置元素被移位(Displacement)导致的故障。
Autodesk.Revit.DB.BuiltInFailures.DisplacementElementFailures是一个枚举类型,其中包含以下故障类型:
AttachmentLost: 表示连接件失去连接的故障。
CannotMovePinnedElement: 表示锁定元素无法移动的故障。
DraggingOntoAnElementNotAllowed: 表示无法将元素拖动到另一个元素上的故障。
ElementOverlap: 表示元素重叠的故障。
ElementTooSmall: 表示元素尺寸过小的故障。
InvalidPlacementPoint: 表示无效的放置点的故障。
MoveBlockedByLockedElements: 表示移动被锁定元素所阻塞的故障。
OverlapProhibitsOperation: 表示重叠元素禁止操作的故障。
SizeProhibitsOperation: 表示尺寸限制了操作的故障。
以下是使用Autodesk.Revit.DB.BuiltInFailures.DisplacementElementFailures枚举类型处理故障的示例代码:
try
{
// 移动元素的代码
}
catch (Autodesk.Revit.Exceptions.InvalidOperationException ex)
{
FailureMessageAccessor failureAccessor = ex.GetFailureMessageAccessor();
FailureDefinitionId failId = failureAccessor.GetFailureDefinitionIds().FirstOrDefault();
if (failId != null)
{
Autodesk.Revit.DB.BuiltInFailures.FailureSeverity severity = failureAccessor.GetSeverity(failId);
if (severity == Autodesk.Revit.DB.BuiltInFailures.FailureSeverity.Warning)
{
failureAccessor.ResolveFailure(failId);
// 处理警告
}
else if (severity == Autodesk.Revit.DB.BuiltInFailures.FailureSeverity.Error)
{
Autodesk.Revit.DB.BuiltInFailures.DisplacementElementFailures failureType =
(Autodesk.Revit.DB.BuiltInFailures.DisplacementElementFailures)Enum.Parse(typeof(Autodesk.Revit.DB.BuiltInFailures.DisplacementElementFailures),
failureAccessor.GetFailureMessages(failId).FirstOrDefault());
// 处理故障类型
}
}
}