Autodesk.Revit.DB.BuiltInFailures.LooseDimensionFailures
是 Revit API 提供的一个内置的失败原因枚举值。该枚举类型包含了与尺寸标注相关的失败原因。
在 Revit 中,如果一个尺寸标注没有正确地连接到相关的几何元素(例如墙或柱),则会出现 "松散的尺寸标注"。自动修复这些问题的能力很重要,因为标注是在建筑设计软件中必需的。
该枚举类型包含以下成员:
ShortSeg
- 尺寸标注所连接的线段太短Other
- 其他松散的尺寸标注以下代码示例演示如何使用 Autodesk.Revit.DB.BuiltInFailures.LooseDimensionFailures
枚举类型:
// 获取当前文档中标注的可编辑状态
Document doc = commandData.Application.ActiveUIDocument.Document;
UIDocument uidoc = commandData.Application.ActiveUIDocument;
Selection sel = uidoc.Selection;
// 检查选择的元素是否为尺寸标注
List<ElementId> selectedIds = sel.GetElementIds().ToList();
List<Dimension> selectedDims = new List<Dimension>();
foreach(ElementId id in selectedIds)
{
Element elem = doc.GetElement(id);
if(elem is Dimension dim)
{
selectedDims.Add(dim);
}
}
// 处理所有松散的尺寸标注
foreach(Dimension dim in selectedDims)
{
FailureMessage fm = null;
// 处理 "ShortSeg" 失败原因
if(dim.ShortSegmentCount > 0)
{
fm = new FailureMessage(FailureSeverity.Warning, "标注与线段连接太短");
FailureResolution fr = new DeleteElementsResolution(dim.Id);
fm.SetResolution(fr);
}
// 处理 "Other" 失败原因
if(dim.OtherFailures)
{
fm = new FailureMessage(FailureSeverity.Warning, "标注未正确连接到几何元素");
FailureResolution fr = new DeleteElementsResolution(dim.Id);
fm.SetResolution(fr);
}
// 添加失败并自动修复
if(fm != null)
{
uidoc.PostFailure(fm);
uidoc.Delete(dim.Id);
}
}
以上代码示例演示了如何使用 Autodesk.Revit.DB.BuiltInFailures.LooseDimensionFailures
枚举类型来检查选择的尺寸标注,并自动修复任何松散的标注。如果标注与线段连接太短或未正确连接到几何元素,该代码将创建适当的警告消息和删除标注的解决方案。