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;
});