Autodesk.Revit.DB.BuiltInFailures.LevelFailures
是用于表示Revit建模平台中级别失效信息的枚举。该枚举包含了一系列的级别失效信息,帮助用户了解并处理在Revit中可能遇到的失效情况。
Autodesk.Revit.DB.BuiltInFailures.LevelFailures
包含以下成员:
BuiltInCategory
枚举中获取。BuiltInCategory
枚举中获取。BuiltInCategory
枚举中获取。BuiltInCategory
枚举中获取。BuiltInCategory
枚举中获取。BuiltInCategory
枚举中获取。以上成员均为枚举常量,可直接调用。
使用Autodesk.Revit.DB.BuiltInFailures.LevelFailures
可以实现针对不同类别及类型的级别失效信息处理,防止在Revit建模过程中出现因级别失效影响建模效率和精度的问题。
在代码中使用枚举成员时,可以通过枚举成员的字符串描述形式获取对应的枚举常量,例如需要获取Architectural:Wall
对应的枚举常量,可以使用以下代码:
BuiltInCategory category = BuiltInCategory.OST_Walls;
LevelFailure wallFailure = (LevelFailure)Enum.Parse(typeof(LevelFailure), "Architectural:" + category.ToString());
以上代码中,先获取到BuiltInCategory.OST_Walls
,并将其作为字符串描述的一部分与"Architectural:"
进行拼接,得到字符串"Architectural:OST_Walls"
,然后通过Enum.Parse
方法实现字符串到枚举常量的解析。
以下示例代码展示了如何使用Autodesk.Revit.DB.BuiltInFailures.LevelFailures
处理级别失效信息:
public void CheckFailures(Document doc)
{
ElementCategoryFilter filter1 = new ElementCategoryFilter(BuiltInCategory.OST_Doors);
ElementCategoryFilter filter2 = new ElementCategoryFilter(BuiltInCategory.OST_Windows);
LogicalOrFilter orFilter = new LogicalOrFilter(filter1, filter2);
FilteredElementCollector collector = new FilteredElementCollector(doc).WherePasses(orFilter).WhereElementIsNotElementType();
using (Transaction tx = new Transaction(doc))
{
tx.Start("Check Failures");
IList<ElementId> ids = collector.ToElementIds();
foreach (ElementId id in ids)
{
try
{
doc.Delete(id);
}
catch (Autodesk.Revit.Exceptions.InvalidOperationException ex)
{
LevelFailure failure = (LevelFailure)Enum.Parse(typeof(LevelFailure), "Architectural:" + BuiltInCategory.OST_Doors.ToString());
FailureMessage failureMessage = new FailureMessage(failure, id);
FailureDefinitionId definitionId = new FailureDefinitionId(failure);
FailureMessageDisplayType displayType = FailureMessageDisplayType.Modal;
tx.RollBack();
doc.PostFailure(failureMessage, displayType);
}
}
tx.Commit();
}
}
以上示例代码中,先通过逻辑或过滤器和FilteredElementCollector
获取到OST_Doors
和OST_Windows
的实体元素,然后尝试删除它们。如果在删除过程中遇到了失效信息,则根据BuiltInCategory.OST_Doors
获取到Architectural:Doors
对应的枚举常量,并通过FailureMessage
类构造出适当的失效信息。最后通过doc.PostFailure
方法将失效信息推送到Revit应用程序中展示出来,以引导用户处理相应问题。