Autodesk.Revit.DB.BuiltInFailures.HvacFailures
是 Revit API 中的一个枚举类型,包含了 HVAC 工具中可能出现的错误和失败类型。
Autodesk.Revit.DB.BuiltInFailures.HvacFailures
枚举类型包含以下成员:
AirVelocityOutOfRange
: 空气速度超出合适范围。DuctCrossSectionTooSmallToSustainVelocity
: 管道横截面积太小,无法支撑相应的速度。DuctFittingAirflowBalancingFailed
: 管道配件风量平衡失败。DuctHeightTooSmallAtWyeOrTeeBranch
: 管道分支处,高度过小。DuctHighLossAtBend
: 沿弯曲方向管道阻力过大。DuctInsulationThicknessOutOfRange
: 管道隔热层厚度超出合适范围。DuctLiningThicknessOutOfRange
: 管道内衬层厚度超出合适范围。DuctMaterialNotFound
: 未找到所需的管道材料。DuctPressureDropTooHigh
: 管道压力降落过大。DuctSizeOutOfRange
: 管道尺寸超出合适范围。DuctStaticPressureTooHigh
: 管道静压过高。DuctStaticPressureTooLow
: 管道静压过低。DuctSystemAirflowOutOfRange
: 系统风量超出合适范围。DuctSystemEnergyOutOfRange
: 系统能量超出合适范围。DuctSystemPressureOutOfRange
: 系统压力超出合适范围。DuctVelocityTooHighAtSupplyDiffuser
: 在供应散流器处,空气速度过高。DuctWidthTooSmallAtWyeOrTeeBranch
: 管道分支处,宽度过小。FanCurveFilePathInvalid
: 指定的风机曲线文件路径无效。FanEfficiencyOutOfRange
: 风机效率超出合适范围。FanFlowOutOfRange
: 风机流量超出合适范围。FanNotFound
: 未找到所需的风机。FanPressureDropOutOfRange
: 风机压力降落超出合适范围。FanSpeedOutOfRange
: 风机转速超出合适范围。FilterPressureDropOutOfRange
: 过滤器压力降落超出合适范围。FilterVelocityOutOfRange
: 过滤器速度超出合适范围。将 Autodesk.Revit.DB.BuiltInFailures.HvacFailures
作为输入参数的方法,将其用于检测 HVAC 相关的失败情况。通常,当使用 Autodesk.Revit.DB.FailureHandlingOptions
类型的 SetFailuresPreprocessor
方法时,会采用此枚举类型的值。
以下是一个示例:
// 假定已创建一个要检测的 Revit 文档对象 doc
Autodesk.Revit.DB.FailureHandlingOptions options = new Autodesk.Revit.DB.FailureHandlingOptions();
options.SetFailuresPreprocessor(new MyFailuresPreprocessor());
// 具体实现检测细节和处理方法的 MyFailuresPreprocessor 类需要自行编写
// 在 MyFailuresPreprocessor 中,可以使用 HvacFailures 枚举类型进行错误类型检查
在处理失败时,可以使用 Autodesk.Revit.DB.FailureResolutionOptions
类型的对象,调用 DefaultResolutionMethod
和 DisablingDemotingResolutionMethod
方法,来进行默认方式或禁用/降级方式的处理。
以下是一个示例:
// 假定已创建一个要检测的 Revit 文档对象 doc
// 接上述示例中的代码
Autodesk.Revit.DB.FailureResolutionOptions resOptions = options.GetClearAfterRollbackOptions();
foreach (Autodesk.Revit.DB.FailureMessageAccessor failure in failuresAccessor.GetFailureMessages())
{
if (failure.GetFailureDefinitionId() == Autodesk.Revit.DB.BuiltInFailures.HvacFailures.AirVelocityOutOfRange)
{
// 默认方式处理
options.SetClearAfterRollback(false);
failure.SetCurrentResolutionMethod(Autodesk.Revit.DB.FixtureResolution.DefaultResolutionMethod);
continue;
}
if (failure.HasResolutionMethod(Autodesk.Revit.DB.DisablingDemotingResolutionMethod.Disable))
{
// 禁用方式处理
options.SetClearAfterRollback(false);
failure.SetCurrentResolutionMethod(Autodesk.Revit.DB.DisablingDemotingResolutionMethod.Disable);
continue;
}
}
doc.PostFailure(failuresAccessor);