/*------------------------------------------------------------------------- * 功能描述:Converter * 作者:xulisong * 创建时间: 2019/6/17 12:01:36 * 版本号:v1.0 * -------------------------------------------------------------------------*/ using JBIM; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using JBIM.Definition; using SAGA.RevitUtils.Extends; namespace RevitToJBim.Common { public static class BimConvert { public static readonly int CoordinateDecimalDigits = 2; public static double Round(double coordinateDecimal) { return Math.Round(coordinateDecimal, CoordinateDecimalDigits); } /// /// 英尺转换成现在阶段使用单位 /// /// /// public static double FtToUse(this double footValue) { return Round(footValue.FromApi()); } /// /// 将点转换成毫米单位形式 /// /// /// 转换是否忽略Z /// public static XYZ ConvertToXYZ(Autodesk.Revit.DB.XYZ xyz,bool ignoreZ=false) { if (xyz == null) return null; var result = new XYZ() { X = FtToUse(xyz.X), Y = FtToUse(xyz.Y) }; if (!ignoreZ) { result.Z = FtToUse(xyz.Z); } return result; } /// /// 转换成向量 /// /// /// public static XYZ ConvertToDirection(Autodesk.Revit.DB.XYZ xyz) { return new XYZ() { X = xyz.X, Y = xyz.Y, Z = xyz.Z, }; } /// /// 将点转换成毫米单位形式 /// /// /// 转换是否忽略Z /// public static List ConvertToXYZs(List xyzs, bool ignoreZ=false) { return xyzs.Select(xyz=>ConvertToXYZ(xyz, ignoreZ)).Where(t=>t!=null).ToList(); } } }