Autodesk.Revit.DB.BuiltInFailures.SiteImportFailures是Revit软件中的一个内置失败类别,用于处理导入场地模型时可能出现的错误。
Autodesk.Revit.DB.BuiltInFailures.SiteImportFailures包括以下成员:
建议在使用Autodesk.Revit.DB.BuiltInFailures.SiteImportFailures时,先进行错误的检测,然后针对不同的错误发生时采取不同的处理方式。比如说:
public FailureProcessingResult ProcessFailures(FailuresAccessor failuresAccessor)
{
var failureMessages = failuresAccessor.GetFailureMessages();
foreach (var failureMessage in failureMessages)
{
var failureSeverity = failureMessage.GetSeverity();
// 如果出现了场地高程超出范围的错误,则仅记录该错误,并继续执行导入操作
if (failureSeverity == FailureSeverity.Warning && failureMessage.GetFailureDefinitionId() == BuiltInFailures.SiteImportFailures.SiteElevationOutOfRangeFailure)
{
failuresAccessor.DeleteWarning(failureMessage);
}
// 如果出现了场地不是平面或不是封闭实体的错误,则应该中断导入操作,提示用户重新制作场地模型
else if (failureSeverity == FailureSeverity.Error && (failureMessage.GetFailureDefinitionId() == BuiltInFailures.SiteImportFailures.SiteNonPlanarFailure || failureMessage.GetFailureDefinitionId() == BuiltInFailures.SiteImportFailures.SiteNotSolidFailure))
{
failuresAccessor.ResolveFailure(failureMessage);
return FailureProcessingResult.ProceedWithCommit;
}
// 如果出现了场地包含的三角形数量过多的错误,则提示用户重新制作场地模型,或按照Revit软件的要求减少三角形数量
else if (failureSeverity == FailureSeverity.Error && failureMessage.GetFailureDefinitionId() == BuiltInFailures.SiteImportFailures.SiteTooManyTrianglesFailure)
{
failuresAccessor.ResolveFailure(failureMessage);
return FailureProcessingResult.ProceedWithCommit;
}
// 如果出现了场地单位比Revit软件中的单位大或小得多的错误,则提示用户进行单位协调
else if (failureSeverity == FailureSeverity.Error && failureMessage.GetFailureDefinitionId() == BuiltInFailures.SiteImportFailures.SiteUnitScaleErrorFailure)
{
failuresAccessor.ResolveFailure(failureMessage);
return FailureProcessingResult.ProceedWithCommit;
}
}
return FailureProcessingResult.Continue;
}
Autodesk.Revit.DB.BuiltInFailures.SiteImportFailures是Revit软件内置的一个示意类别,用于处理导入场地模型时可能出现的错误。我们可以根据具体的错误发生情况,采取不同的处理方式来解决问题。