Autodesk.Revit.DB.BuiltInFailures.LevelAssociationFailures
是Revit API中的一个枚举类型,用于描述在Revit中涉及到楼层高度的错误或警告信息。在Revit中,如何正确的处理与楼层高度相关的问题是十分重要的,因为这关系到建筑物的造型、结构和实际使用。
Autodesk.Revit.DB.BuiltInFailures.LevelAssociationFailures
包含以下枚举成员:
CannotAddLevel
:无法添加楼层。CannotDeleteLastLevel
:无法删除最后一个楼层。CannotEditLevel
:无法编辑楼层。CannotMoveLevel
:无法移动楼层。ElevationOutOfRange
:高程超出范围。HeightAboveTopLevel
:高度超出顶层高度。HeightBelowBottomLevel
:高度低于底层高度。IncompatibleLevelType
:不兼容的楼层类型。InvalidLevelElevation
:无效的楼层高程。InvalidLevelHeight
:无效的楼层高度。InvalidProjectedElevation
:无效的投影高程。LastLevelIsTemporary
:最后一个楼层是临时的。LevelAssociatedWithLevel
:楼层已与楼层关联。LevelHasElements
:楼层上有元素不能进行操作。LevelInUse
:楼层正在使用中,无法删除或移动。NoTopLevelDefined
:未定义顶层。RevitCannotMoveLevels
:Revit无法移动楼层。SelectedLevelsHaveRelationship
:选择的楼层之间存在关联关系。下面是一个使用 Autodesk.Revit.DB.BuiltInFailures.LevelAssociationFailures
枚举类型的示例,通过判断楼层高度和类型是否合法,进行相应的错误处理。
public void CheckLevels(Document doc)
{
List<Level> allLevels = new FilteredElementCollector(doc).OfClass(typeof(Level)).Cast<Level>().ToList();
foreach (Level level in allLevels)
{
// 判断楼层高度是否合法
if (level.Elevation < -100 || level.Elevation > 1000)
{
TaskDialog.Show("Error", "楼层高度不合法!");
throw new Autodesk.Revit.Exceptions.OperationCanceledException("楼层高度不合法!");
}
// 判断楼层类型是否合法
if (level.LevelType != LevelType.FirstFloor && level.LevelType != LevelType.SecondFloor && level.LevelType != LevelType.Roof)
{
FailureMessage fm = new FailureMessage(FailureSeverity.Warning, "楼层类型不合法!");
fm.SetFailureCategory(FailureCategory.BuiltInFailures);
fm.SetElementIds(new List<ElementId>() { level.Id });
fm.SetFailureDefinitionId(Autodesk.Revit.DB.BuiltInFailures.LevelAssociationFailures.IncompatibleLevelType);
doc.PostFailure(fm);
}
}
}