这个问题相对复杂,我估计题主问这个问题是因为想在Dynamo里面调用Revit API开发语言。
如果大家用的是新版的Dynamo和最近版本的Revit, 比如你的Dynamo版本是1.XX,那么以下答案适用于你;如果你用的是0.xx版本,那么就像哆啦A梦所说,Dynamo默认单位是米。
1 Revit API开发默认单位是英尺。如果你只是使用Revit建模而不是进行二次开发,就不用往下看了。
2 Dynamo 1.xx版本开始,默认单位就是你在Revit里面选择的单位,例如国内长度单位常设置为mm。所以仅仅使用Dynamo,那就不会引起单位换算问题。
在Dynamo的Python里面调用Revit API开发语言,在下列情况你需要注意:
1 如果你只是将Dynamo里的几何形体调入到Python Script,那么你需要调用clr.ImportExtensions(Revit.GeometryConversion); 然后.ToRevitType() 在完成几何形体转换的时候,同时也给你完成了单位转换。
2 如果你是将数字(double, int)调入到Python Script,然后在Python里调用Revit API函数来使用这些数字赋值给构件作为长度等,那么你需要进行单位转换。
2.1 你可以直接调用Dynamo里的单位,在Python里完成转换。
2.2 你也可以在数据调入Python之前使用Dynamo自带单位转换工具,先将数据放大或者缩小。
2.3 最简单的办法,自己在Python里输入转换因子
metersToFeet =0.3048
feetToMeters = 1/ metersToFeet