Revit二次开发时,处理Revit里面的坐标转换



在软件操作上看,AutoCAD的所有定位都以坐标来进行。相对的在Revit没有坐标这个概念,Revit里面对象的位置关系都是相对位置关系。

但是在Revit内部,坐标是实实在在的。没有坐标无法管理对象的位置。在做Revit二次开发,特别是涉及到几何和位置关系时,需要密切关注对象的坐标,以及不同坐标系之间的坐标转换。


Revit里面的几种坐标系:

         模型坐标系: 也理解为全局坐标系

视图坐标系:与模型坐标系之间的转换

族坐标系: 在制作族有一个坐标系,族插入到模型中,其中的几何体有自己在模型中的位置,需要进行模型坐标系的转换。

链接模型坐标系: 链接模型的位置在host模型中的位置,需要坐标转换。


Revit里面的坐标系转换工具类: Transform

Transform是Revit二次开发的坐标转换矩阵,可以用来进行点的坐标转换OfPoint,向量的坐标转换OfVector,生成旋转,平移,缩放等转换矩阵。。。。大家可从RevitAPI.chm 文件更多了解Transform类的功能。

这个Transform有两中获得途径

1. 自己创建一个转换矩阵:

2. 直接从Revit的对象获得转换矩阵。 我们可以从族的实例对象里获得这个族是如何从族定义坐标系到族实例在模型中的位置的坐标转换。

     GeometryInstance.Transform 属性可以访问族定义到模型中的位置的矩阵。使用此矩阵可以计算出族实例中的所有点在模型坐标系(也是全局坐标系)的位置。(注:从族的实例中获取其中的点线面的坐标也可以通过GeometryInstance对象的GeometryInstance.GetInstanceGeomery()  方法直接返回在模型坐标系下的坐标。)

    

3. 从视图中获取视图到全局坐标系的坐标转换。

    比如从立面图获取立面图的坐标与全局坐标的转换矩阵: ViewSection.CropBox.Transform。用来把在立面图中的点的坐标转到到模型坐标系


转载请复制以下信息:
原文链接: http://blog.csdn.net/joexiongjin/article/details/8202910

作者:  叶雄进 , Autodesk ADN



你可能感兴趣的:(Revit,读取对象几何信息,Revit,二次开发入门)