Revit API: 单位转换 UnitUtils
程序员文章站
2022-06-10 23:33:31
...
前言
对于从一个单位转换成另一个单位的问题,本质是很简单的,就是一个系数的问题,但是当单位的种类非常多的时候,如果自己编写,工作量就会很大。工作量一大,出错的概率也会随之增加。
内容
实际上,Revit API 提供了对应的转换功能,来进行转换。
namespace Autodesk.Revit.DB
{
//
// 摘要:
// A utility class of functions related to units.
public static class UnitUtils
{
public static double Convert(double value, DisplayUnitType currentDisplayUnit, DisplayUnitType desiredDisplayUnit);
public static double ConvertFromInternalUnits(double value, DisplayUnitType displayUnit);
public static double ConvertToInternalUnits(double value, DisplayUnitType displayUnit);
public static string GetTypeCatalogString(DisplayUnitType displayUnit);
public static string GetTypeCatalogString(UnitType unitType);
public static UnitGroup GetUnitGroup(UnitType unitType);
public static IList<DisplayUnitType> GetValidDisplayUnits(UnitType unitType);
public static IList<DisplayUnitType> GetValidDisplayUnits();
public static IList<UnitType> GetValidUnitTypes();
public static bool IsValidDisplayUnit(UnitType unitType, DisplayUnitType displayUnit);
public static bool IsValidDisplayUnit(DisplayUnitType displayUnit);
public static bool IsValidUnitType(UnitType unitType);
}
}
Revit Units:
- Revit 自带的,Revit 内部是用
英尺
来做最基础的单位,不是用米
。 - 这个类提供的转化,包括 Revit 内部几十种单位,并且适应 Revit 的精度,除了极个别情况,这些转化还是很准确的。
- 这实际上是个工具类,所以这些都是静态方法。