1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- /*-------------------------------------------------------------------------
- * 功能描述: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);
- }
- /// <summary>
- /// 英尺转换成现在阶段使用单位
- /// </summary>
- /// <param name="footValue"></param>
- /// <returns></returns>
- public static double FtToUse(this double footValue)
- {
- return Round(footValue.FromApi());
- }
- /// <summary>
- /// 将点转换成毫米单位形式
- /// </summary>
- /// <param name="xyz"></param>
- /// <param name="ignoreZ">转换是否忽略Z</param>
- /// <returns></returns>
- public static XYZ ConvertToXYZ(Autodesk.Revit.DB.XYZ xyz,bool ignoreZ=false)
- {
- var result = new XYZ()
- {
- X = FtToUse(xyz.X),
- Y = FtToUse(xyz.Y)
- };
- if (!ignoreZ)
- {
- result.Z = FtToUse(xyz.Z);
- }
- return result;
- }
- /// <summary>
- /// 转换成向量
- /// </summary>
- /// <param name="xyz"></param>
- /// <returns></returns>
- public static XYZ ConvertToDirection(Autodesk.Revit.DB.XYZ xyz)
- {
- return new XYZ() { X = xyz.X, Y = xyz.Y, Z = xyz.Z, };
- }
- /// <summary>
- /// 将点转换成毫米单位形式
- /// </summary>
- /// <param name="xyzs"></param>
- /// <param name="ignoreZ">转换是否忽略Z</param>
- /// <returns></returns>
- public static List<XYZ> ConvertToXYZs(List<Autodesk.Revit.DB.XYZ> xyzs, bool ignoreZ=false)
- {
- return xyzs.Select(xyz=>ConvertToXYZ(xyz, ignoreZ)).ToList();
- }
-
- }
- }
|