123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260 |
- /* ==============================================================================
- * 功能描述:CommonTool
- * 创 建 者:Garrett
- * 创建日期:2018/3/13 17:26:29
- * ==============================================================================*/
- using System;
- using System.Collections.Generic;
- using System.IO;
- using System.Linq;
- using Autodesk.Revit.DB;
- using Newtonsoft.Json.Linq;
- using SAGA.DotNetUtils;
- using SAGA.DotNetUtils.Extend;
- using SAGA.DotNetUtils.WPF.UserControl.ComboboxTreeView;
- using SAGA.MBI.CmbData;
- using SAGA.MBI.DataArrange;
- using SAGA.MBI.FileStream;
- using SAGA.MBI.Model;
- namespace SAGA.MBI.Common
- {
- /// <summary>
- /// CommonTool
- /// </summary>
- public class CommonTool
- {
- /// <summary>
- /// 读取工作区
- /// </summary>
- /// <param name="projectId"></param>
- public static string ReadWorkPath(string projectId)
- {
- if (projectId == null) return null;
- var path = ProjectDirOperate.GetProjectDir(projectId);
- return path;
- }
- /// <summary>
- /// 设置按钮图片
- /// </summary>
- /// <param name="path"></param>
- public static string GetBtnImagePath(string path)
- {
- var basePath = System.IO.Path.Combine(MBIConst.MBIImagePath);
- string imageName = "folder.png";
- if (Directory.Exists(path))
- {
- imageName = "folder_go.png";
- }
- var OFImage = System.IO.Path.Combine(basePath, imageName);
- return OFImage;
- }
-
- /// <summary>
- /// 获取楼层顺序号
- /// </summary>
- /// <param name="cur">当前顺序号</param>
- /// <param name="seed">上面增加(1)下面增加是(-1)</param>
- /// <returns></returns>
- public static int GetNewSequence(int cur, int seed)
- {
- if (seed == -1)
- {
- cur = cur < 0 ? cur + seed : cur;
- }
- else
- {
- cur = cur < 0 ? cur : cur + seed;
- }
- return cur;
- }
- /// <summary>
- /// 获取楼层顺序号
- /// </summary>
- /// <param name="cur">当前顺序号</param>
- /// <param name="seed">上面增加(1)下面增加是(-1)</param>
- /// <returns></returns>
- public static int GetNextSequence(int cur)
- {
- cur = cur > 0 ? cur + 1 : cur - 1;
- return cur;
- }
- /// <summary>
- /// 由楼层顺序号获取生成revit文件的文件名称;
- /// 默认为B1,B2,F1,F2...
- /// </summary>
- /// <param name="sequence"></param>
- /// <returns></returns>
- public static string GetFloorRevitFileName(int sequence)
- {
- if (sequence > 0)
- return "F" + sequence;
- else
- {
- return "B" + Math.Abs(sequence);
- }
- }
- public static JArray GetPropertyJArray(string value)
- {
- JArray jArray = new JArray();
- JObject valueJObject = new JObject();
- valueJObject.Add("value", value);
- jArray.Add(valueJObject);
- return jArray;
- }
- /// <summary>
- /// 获取信息点更新是传递的数据结构
- /// </summary>
- /// <param name="code"></param>
- /// <param name="value"></param>
- /// <returns></returns>
- public static JObject GetPropertyJObject(string code,string value)
- {
- #region 构建array
- JArray jArray = new JArray();
- JObject valueJObject = new JObject();
- valueJObject.Add("value", value);
- jArray.Add(valueJObject);
- #endregion
- JObject jObject = new JObject();
- jObject.Add(code, jArray);
- return jObject;
- }
- public static JArray GetPropertyJArray(string time, string value)
- {
- JArray jArray = new JArray();
- JObject valueJObject = new JObject();
- valueJObject.Add("time", time);
- valueJObject.Add("value", value);
- jArray.Add(valueJObject);
- return jArray;
- }
- public static JArray GetPropertyJArray(JToken value)
- {
- JArray jArray = new JArray();
- JObject valueJObject = new JObject();
- valueJObject.Add("value", value);
- jArray.Add(valueJObject);
- return jArray;
- }
- /// <summary>
- /// 由文件的全路径获取云端文件名
- /// </summary>
- /// <param name="path"></param>
- /// <returns></returns>
- public static string GetCloudRevitName(string path)
- {
- var strs = path.Split('\\', ':');
- List<string> last3Strs = new List<string>();
- for (int i = strs.Length - 3; i < strs.Length; i++)
- {
- last3Strs.Add(strs[i]);
- }
- string fileName = string.Join("_", last3Strs.ToArray());
- return fileName;
- }
- /// <summary>
- /// 将点按 “;”进行分组
- /// </summary>
- /// <param name="xyzs"></param>
- /// <returns></returns>
- public static string ConvertSpaceEdgesToStr(List<XYZ> xyzs)
- {
- var strs = xyzs.Select(t => t.X + "," + t.Y);
- var str = string.Join(";", strs.ToArray());
- return str;
- }
- /// <summary>
- /// 获取设备的种族类型
- /// </summary>
- /// <returns></returns>
- public static MEquipmentFamily GetEquipFamily(string familyCode)
- {
- var codeTb = MBIControl.EquipmentFamilys.FirstOrDefault(t => t.EquipmentTypes.FirstOrDefault(tt => tt.Code == familyCode) != null);
- return (codeTb);
- }
- /// <summary>
- /// 创建个资产id
- /// id为Pe+uuid(去掉横线)
- /// </summary>
- /// <returns></returns>
- public static string CreateNewFmId()
- {
- string id = System.Guid.NewGuid().ToString("N");
- return "Pe" + id;
- }
- /// <summary>
- /// 获取BIMId
- /// </summary>
- /// <param name="docName"></param>
- /// <param name="id"></param>
- /// <returns></returns>
- public static string GetCloudBIMId(string docName, string id)
- {
- return $"{docName}:{id}";
- }
- /// <summary>
- /// 判断是否为夹层
- /// 夹层FloorType 为4
- /// </summary>
- /// <param name="id"></param>
- /// <returns></returns>
- public static bool IsFloorMezzanine(string id)
- {
- bool ismezzanine = false;
- string mezzaninestr = "4";
- TreeNodeItem tree = DalModeFileManange.GetFloorTreeById(id);
- if (tree != null)
- {
- MFileBase floorBase = tree.Item;
- if (floorBase is MFloor floor)
- {
- ismezzanine = floor.FloorType == mezzaninestr;
- }
- }
- return ismezzanine;
- }
- /// <summary>
- /// 由楼层id获取楼层的序列号
- /// </summary>
- /// <param name="id"></param>
- /// <returns></returns>
- public static int GetFloorSequenceByFloorId(string id)
- {
- int sequence = -100;
- MFloor floor = DalProjectTree.GetFloorByFloorId(id);
- if (floor != null)
- sequence = floor.Sequence;
- return sequence;
- }
- /// <summary>
- /// 由视频预览图--获取视频的名称
- /// </summary>
- /// <param name="name"></param>
- /// <returns></returns>
- public static string GetVideoKeyByImageKey(string name)
- {
- string videoSuffix = ".mp4";
- return name.GetAppointSuffixPath(videoSuffix);
- }
- /// <summary>
- /// 判断一个图片是否为视频缩略图
- /// </summary>
- /// <param name="mode"></param>
- /// <returns></returns>
- public static bool IsVideoImage(MServiceAttachment mode)
- {
- return mode.ImageType == ServiceImageType.image_video;
- }
- }
- }
|