本文主要是介绍RevitAPI: 如何获得链接CAD里面对象的图层信息?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
当导入或者链接CAD文件之后,一般我们在Revit里面选中该CAD,点击"导入实例”的“查询”,选中某个图元,就会弹出图层信息
那么API如何实现此功能呢?
本人刚开始并没有找到如何做到,后来偶然机会发现Line/GeometryObject类有个属性叫GraphicsStyleId,试了一下,答案就出来了。
那就是,
- 使用Selection.PickObject或Selection.PickObjects来选择链接文件里的对象获取到Reference
- 然后使用Element.GetGeometryObjectFromReference(Reference)获取几何信息,该几何信息是GeometryObject类,于是通过GraphicsStyleId就可以获取到GraphicsStyle,
- 最后通过GraphicsStyleId的GraphicsStyleCategory属性获得类别Category,Category.Name即是图层的名称
可以看看完整的代码:
var doc = commandData.Application.ActiveUIDocument.Document;
var uiSel = commandData.Application.ActiveUIDocument.Selection;try
{var reference = uiSel.PickObject(ObjectType.PointOnElement, "statusPrompt");var element = doc.GetElement(reference);var geoObj = element.GetGeometryObjectFromReference(reference);if (geoObj.GraphicsStyleId != ElementId.InvalidElementId){GraphicsStyle gs = doc.GetElement(geoObj.GraphicsStyleId) as GraphicsStyle;if (gs != null){var name = gs.GraphicsStyleCategory.Name;}}
}
catch (Autodesk.Revit.Exceptions.OperationCanceledException)
{
}
这篇关于RevitAPI: 如何获得链接CAD里面对象的图层信息?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!