RevitAPI: 如何获得链接CAD里面对象的图层信息?

来源:互联网 发布:2017淘宝c店 编辑:程序博客网 时间:2024/05/22 15:19

当导入或者链接CAD文件之后,一般我们在Revit里面选中该CAD,点击"导入实例”的“查询”,选中某个图元,就会弹出图层信息



那么API如何实现此功能呢?

本人刚开始并没有找到如何做到,后来偶然机会发现Line/GeometryObject类有个属性叫GraphicsStyleId,试了一下,答案就出来了。

那就是,

  • 使用Selection.PickObject(s)来选择链接文件里的对象获取到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){}




0 0
原创粉丝点击