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

EaBIM

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

Revit API中长度单位都是英尺

[复制链接]

1514

主题

7465

帖子

1万

积分

admin

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

积分
12404

社区QQ达人

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

     写了个读取屏幕拾取ModelLine的得到其属性的例子,但是获取的线的长度怎么和revit中尺寸标注的值不同。

          代码如下:

  1. [csharp] view plaincopy
  2. [Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.Manual)]  
  3. public class GetEndsPt : IExternalCommand  
  4. {  
  5.   
  6.   public Autodesk.Revit.UI.Result Execute(Autodesk.Revit.UI.ExternalCommandData commandData,  
  7.                                          ref string message,  
  8.                                          ElementSet elements)  
  9.   {  
  10.     try  
  11.     {  
  12.       Document doc = commandData.Application.ActiveUIDocument.Document;  
  13.       Selection sel = commandData.Application.ActiveUIDocument.Selection;  
  14.       Reference ref1 = sel.PickObject(ObjectType.Element, "请选择一个模型线");  
  15.   
  16.   
  17.   
  18.       ModelLine dbline = doc.GetElement(ref1) as ModelLine;  
  19.       Curve cure = dbline.GeometryCurve;  
  20.   
  21.       XYZ ptStart = cure.get_EndPoint(0);  
  22.       XYZ ptEnd = cure.get_EndPoint(1);  
  23.   
  24.       string slineinfo = "line Info: ";  
  25.       slineinfo += string.Format("\n开始点xyz:({0:F3},{1:F3},{2:F3})", ptStart.X, ptStart.Y, ptStart.Z);  
  26.       slineinfo += string.Format("\n结束点xyz:({0:F3},{1:F3},{2:F3})", ptEnd.X, ptEnd.Y, ptEnd.Z);  
  27.       slineinfo += "\n线长:" + cure.Length;  
  28.       TaskDialog.Show("Get Model Line length", slineinfo);  
  29.     }  
  30.     catch(Exception ex)  
  31.     {  
  32.       message = ex.Message;  
  33.       return Result.Failed;  
  34.     }  
  35.     return Result.Succeeded;  
  36.   }  
  37. }  
复制代码
答:

Revit API中的长度单位都是统一用英尺。而软件界面看到的单位(属性栏,尺寸标注等)都是根据模型当前的长度单位显示的。如果你的长度单位设置的是mm或者m,那么你在界面上看到的数值肯定不一样。

1 英尺 = 304.8 mm
作者:叶雄进文章来源:http://blog.csdn.net/joexiongjin/article/category/782739

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 转播转播 分享分享 分享淘帖 支持支持 反对反对
工作时间:工作日的9:00-12:00/13:30-18:00,节假日不在线,请勿留言

11

主题

846

帖子

1772

积分

BIM经理

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

积分
1772
2F
发表于 2014-2-20 14:08:34 | 只看该作者
顶...... 楼下跟上.....
*滑块验证:
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-16 21:33

Powered by Discuz! X3.2 Licensed

© 2001-2013 Comsenz Inc.

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