EaBIM一直以来积极响应国家“十二五”推进建筑业信息化的号召,对建筑领域的信息技术开展深入技术交流和探讨!致力于打造“BIM-建筑师-生态技术”三位一体综合资源交流共享平台,希望为BIM与可持续设计理念及技术的普及做出微小的贡献!!!

EaBIM

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

搜索
查看: 942|回复: 1
打印 上一主题 下一主题

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

[复制链接]

1514

主题

7465

帖子

1万

积分

admin

Rank: 10Rank: 10Rank: 10Rank: 10Rank: 10Rank: 10Rank: 10Rank: 10Rank: 10Rank: 10

积分
12396

社区QQ达人

跳转到指定楼层
楼主
发表于 2014-1-15 13:40:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

在软件操作上看,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


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 转播转播 分享分享 分享淘帖 支持支持 反对反对

相关帖子

工作时间:工作日的9:00-12:00/13:30-18:00,节假日不在线,请勿留言

12

主题

876

帖子

1510

积分

BIM经理

Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

积分
1510
2F
发表于 2014-2-20 14:09:02 | 只看该作者
路过!!! 不发表意见……
*滑块验证:
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|EaBIM网 ( 苏ICP备2020058923号-1  苏公网安备32011502011255号

GMT+8, 2024-9-28 20:13

Powered by Discuz! X3.2 Licensed

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表