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
- RevitAPI: 如何获得链接CAD里面对象的图层信息?
- RevitAPI: 如何插入链接文件
- RevitAPI: 如何获取RevitLinkInstance链接模型的位置?
- CAD 删不掉的图层
- 如何获得iframe 里面的对象和操作iframe里面的对象
- CAD中如何删除顽固图层?
- CAD中如何删除顽固图层?
- RevitAPI: 如何在族里面创建一条带颜色的二维线?
- 关于jdom解析XML文件的方法将获得信息转存到PO对象里面
- CAD 二次开发 图层操作(3)取得指定图层下的所有对象id
- AUTOCAD二次开发-----删除一个图层里面的所有对象
- AUTOCAD二次开发-----删除一个图层里面的所有对象
- RevitAPI: 获取DWG导出的设置信息
- CAD如何创建图层并绘制图形
- 如何把CAD中的图层转到另一个中
- java里面如何去获得map里面的key-value;
- 如何获取文件夹里面的文本信息
- 如何把清晰的CAD图纸转到Word文档里面且背景是白色的
- 透视投影原理(只有网址)
- 测试用例设计之三——OATS PK Pairwise
- iOS应用运行时在设置中更改权限应用崩溃问题
- 使用CSS3开启GPU硬件加速提升网站动画渲染性能
- 第四周项目1-求最大公约数(3)
- RevitAPI: 如何获得链接CAD里面对象的图层信息?
- 2016年c#实验3.4:计算年龄和天数
- java基础
- ubuntu中apt-get安装与默认路径
- 2014年第五届蓝桥杯B组C/C++省赛题解
- 文件管理系统课堂笔记
- Mysql中文乱码解决方案
- WebView与H5的交互
- Html_tag