Autodesk.Revit.DB.FailureDefinition是Revit API中的一个类,用于定义存在故障或错误时自动触发的错误报告。
public class FailureDefinition
FailureDefinition(string name)
此构造函数用于创建一个新的FailureDefinition实例。
参数:
name
(字符串):故障定义的名称。Id
类型为BuiltInFailures
的枚举类型,表示故障定义的唯一标识符。
Name
类型为字符串,表示故障定义的名称。
CategoryId
类型为整数,表示故障定义所属的类别。
Description
类型为字符串,表示故障定义的描述信息。
SetDefaultResolutionType
此方法用于将故障定义的默认解决类型设置为指定的FailureResolutionType
。
参数:
defaultResolutionType
(FailureResolutionType
枚举类型):故障定义的默认解决类型。GetDefaultResolutionType
此方法用于获取故障定义的默认解决类型。
返回值:
FailureResolutionType
枚举类型,表示故障定义的默认解决类型。SetDefaultSeverity
此方法用于将故障定义的默认严重性级别设置为指定的FailureSeverity
。
参数:
defaultSeverity
(FailureSeverity
枚举类型):故障定义的默认严重性级别。GetDefaultSeverity
此方法用于获取故障定义的默认严重性级别。
返回值:
FailureSeverity
枚举类型,表示故障定义的默认严重性级别。AddResolutionType
此方法用于为故障定义添加解决类型。
参数:
resolutionType
(FailureResolutionType
枚举类型):要添加的解决类型。HasResolutionType
此方法用于检查故障定义是否包含指定的解决类型。
参数:
resolutionType
(FailureResolutionType
枚举类型):要检查的解决类型。返回值:
bool
,若故障定义包含指定的解决类型则返回true
,否则返回false
。GetAllResolutionTypes
此方法用于获取故障定义的所有解决类型。
返回值:
IEnumerable<FailureResolutionType>
,表示故障定义的所有解决类型的集合。AddResolutionImmediate
此方法用于添加可立即执行的解决方法。
参数:
resolutionMethod
(FailureResolutionImmediateDelegate
委托类型):解决方法的委托。AddResolutionDelay
此方法用于添加需要延迟执行的解决方法。
参数:
resolutionMethod
(FailureResolutionDelayedDelegate
委托类型):解决方法的委托。GetPreFailureHandlerIds
此方法用于获取当前故障定义的前置故障处理程序的唯一标识符集合。
返回值:
ICollection<ElementId>
,表示当前故障定义的前置故障处理程序的唯一标识符集合。AddPreFailureHandlerId
此方法用于添加前置故障处理程序的唯一标识符。
参数:
preHandlerId
(ElementId
类型):前置故障处理程序的唯一标识符。RemovePreFailureHandlerId
此方法用于移除前置故障处理程序的唯一标识符。
参数:
preHandlerId
(ElementId
类型):要移除的前置故障处理程序的唯一标识符。以下代码示例演示如何创建一个新的故障定义:
// 创建一个名称为“Custom Failure”的故障定义
FailureDefinition failureDefinition = new FailureDefinition("Custom Failure");
// 将默认严重性级别设置为CriticalError
failureDefinition.SetDefaultSeverity(FailureSeverity.CriticalError);
// 添加一个解决类型
failureDefinition.AddResolutionType(FailureResolutionType.Cancel);
// 添加一个可立即执行的解决方法
failureDefinition.AddResolutionImmediate(delegate(FailuresAccessor a)
{
// 处理故障
return FailureProcessingResult.Continue;
});