在Revit中,Autodesk.Revit.DB.BuiltInFailures.CreationFailures
是一种已定义的内置发布(Built-in Failures),用于捕获创建元素时的错误和异常情况。它是Autodesk.Revit.DB.FailuresManager
类的一部分,用于管理整个Revit会话中的发布。
要使用Autodesk.Revit.DB.BuiltInFailures.CreationFailures
,您需要先使用FailuresManager
类创建一个发布管理器对象。然后使用AddFailure()
方法将发布添加到管理器对象中。
FailuresManager failuresManager = document.Application.FailuresManager;
ElementId wallTypeId = new ElementId(BuiltInCategory.OST_Walls);
WallType wallType = document.GetElement(wallTypeId) as WallType;
using (Transaction transaction = new Transaction(document))
{
transaction.Start("Create Wall");
Wall wall = Wall.Create(document, line, wallType.Id, levelId, height, 0, true, false);
if (failuresManager.HasFailures())
{
IList<FailureMessageAccessor> failureMessages = failuresManager.GetFailureMessages();
foreach (FailureMessageAccessor failureMessage in failureMessages)
{
string errorMessage = failureMessage.GetDescriptionText();
TaskDialog.Show("Failure", errorMessage);
}
failuresManager.DeleteAllWarnings();
}
transaction.Commit();
}
在上面的示例中,我们创建了一个名为Create Wall
的事务,并使用Wall.Create
方法来创建一个长方形墙。如果发生了错误或异常,failuresManager.HasFailures()
方法将返回true
,并且可以使用failuresManager.GetFailureMessages()
方法获取所有失败消息。如果存在警告,则使用failuresManager.DeleteAllWarnings()
方法进行清除。
Autodesk.Revit.DB.BuiltInFailures.CreationFailures
支持以下类型的发布:
CantCreateOtherCategory
- 找不到指定类别。CantCreateWallDetail
- 无法在墙体上创建详细信息。CantCreateFloorDetail
- 无法在楼板上创建详细信息。CantCreateModelElementsInPerspectiveView
- 无法在透视视图中创建模型元素。CantCreateTextNoteWithNullTypeId
- 无法创建具有空类型ID的文本说明。CantCreateModelElementsInSectionView
- 无法在剖面视图中创建模型元素。CantCreateViewTitleblock
- 无法创建纸张空间中视图的标题块。CantCreateViewSheetInView
- 无法在视图中创建纸张空间中的视图。CantCreateViewOnSheet
- 无法在纸张空间中创建视图。请注意,这些发布可能因版本、安装和配置而有所不同。
Autodesk.Revit.DB.BuiltInFailures.CreationFailures
提供了一种捕获创建元素时的错误和异常情况的机制。可以使用其中的发布来指示发生何种类型的故障,并在必要时采取必要的措施。该技术文档提供了一些基本示例来使用Autodesk.Revit.DB.BuiltInFailures.CreationFailures
。