Autodesk.Revit.DB.BuiltInFailures.PointFailures
是一个枚举类型,它包含了很多预定义的错误类型,这些错误类型都与点相关。在Revit中,我们经常需要使用点的位置或其他属性,但是当出现一些问题时,可能会触发某种点相关的错误。这个枚举类型使得我们可以在代码中捕获这些问题并进行处理。
以下是 Autodesk.Revit.DB.BuiltInFailures.PointFailures
枚举类型的成员列表:
CantMovePointOnElement
: 不能将点移动到指定元素上。CantMovePointOffElement
: 不能将点移动到指定元素之外。CantMovePointOntoSameElement
: 不能将点移动到同一元素上。CantMakePointCoincident
: 不能将点与另一个点合并。CantMakePointsCoincident
: 不能将多个点合并成一个点。CantCreatePoint
: 无法创建点。CantCutElementWithPoint
: 不能使用该点剪切指定元素。CantJoinElementsAtPoint
: 不能通过点将两个元素连接起来。CantJoinElementsAtPoints
: 不能通过多个点将两个元素连接起来。CantMeasureToThisPoint
: 无法测量到该点。CantIntersectWithThisPoint
: 不能与该点相交。CantArrayToThisPoint
: 不能将数组复制到该点。CantRepeatPointArrayOnCurve
: 不能在该曲线上重复点数组。以下是一个使用 Autodesk.Revit.DB.BuiltInFailures.PointFailures
枚举类型的示例:
try
{
// some code that may cause point-related failures
}
catch (Autodesk.Revit.Exceptions.InvalidOperationException ex)
{
Autodesk.Revit.DB.FailureMessageAccessor failureAccessor = ex.GetFailureMessageAccessor();
FailureDefinitionId failureDefinitionId = failureAccessor.GetFailureDefinitionIds().First();
BuiltInFailures.PointFailures failureType = (BuiltInFailures.PointFailures)failureAccessor.GetFailureInstanceId(failureDefinitionId);
switch (failureType)
{
case BuiltInFailures.PointFailures.CantMovePointOnElement:
// handle this failure type
break;
case BuiltInFailures.PointFailures.CantMovePointOffElement:
// handle this failure type
break;
// handle other failure types
}
// resolve the failure
failureAccessor.ResolveFailure(true);
}
在上面的代码中,我们尝试执行一些可能会导致点相关问题的操作,并在捕获 Autodesk.Revit.Exceptions.InvalidOperationException
异常时处理这些问题。我们首先从异常的 FailureMessageAccessor
属性中获取第一个失败定义的 FailureDefinitionId
,然后从该 FailureMessageAccessor
中获取失败实例的类型 BuiltInFailures.PointFailures
。根据不同的失败类型,我们选择不同的处理方式。最后,我们调用 ResolveFailure
方法来针对这个失败实例实施解决方案。