EaBIM

标题: Revit API中长度单位都是英尺 [打印本页]

作者: 萧闫子    时间: 2014-1-15 13:45
标题: Revit API中长度单位都是英尺
问题:

     写了个读取屏幕拾取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


作者: 楚客    时间: 2014-2-20 14:08
顶...... 楼下跟上.....




欢迎光临 EaBIM (https://eabim.net/) Powered by Discuz! X3.2