RevitAPI: 如何获得链接CAD里面对象的图层信息?
2016-03-18 17:33
2006 查看
当导入或者链接CAD文件之后,一般我们在Revit里面选中该CAD,点击"导入实例”的“查询”,选中某个图元,就会弹出图层信息
那么API如何实现此功能呢?
本人刚开始并没有找到如何做到,后来偶然机会发现Line/GeometryObject类有个属性叫GraphicsStyleId,试了一下,答案就出来了。
那就是,
使用Selection.PickObject(s)来选择链接文件里的对象获取到Reference
然后使用Element.GetGeometryObjectFromReference(Reference)获取几何信息,该几何信息是GeometryObject类,于是通过GraphicsStyleId就可以获取到GraphicsStyle,
最后通过GraphicsStyleId的GraphicsStyleCategory属性获得类别Category,Category.Name即是图层的名称
可以看看完整的代码:
那么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) { }
相关文章推荐
- ASP.NET MVC 4 Content Map
- jdk 编译器 对final字段的处理
- ios开发之oc与Swift混合编程OC进入Swift的类 以及Swift进入OC的方法-附带一个属性传值
- 插入排序—直接插入排序(Straight Insertion Sort)
- Java第二次实验
- C++创建使用静态动态库
- Bzoj3720:Gty的妹子树:树分块
- 娱乐问题=.=,可以问下你身边的人,看有几个能全答对的!
- 01背包问题-POJ 2184 Cow Exhibition
- Cocos2d-X3.0版的HelloWorld工程分析
- iOS 社区类APP讲解系列:准备工作
- 查看线程CPU占用情况
- 模拟-兰顿蚂蚁-水
- display属性值block,inline和inline-block概念和区别
- 对简单单元格的增删改
- Activity生命周期
- Android 屏幕适配(二)增强版百分比布局库(percent-support-lib)
- UML类图
- iptables做路由转发服务器经典案例
- 家具海报创意(收集)