123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 |
- /* ==============================================================================
- * 功能描述:设备数据整理
- * 创 建 者:Garrett
- * 创建日期:2018/5/17 14:09:00
- * ==============================================================================*/
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using Autodesk.Revit.DB;
- using DevExpress.Xpf.Bars;
- using Newtonsoft.Json.Linq;
- using SAGA.DotNetUtils;
- using SAGA.DotNetUtils.Extend;
- using SAGA.DotNetUtils.Logger;
- using SAGA.MBI.Common;
- using SAGA.MBI.JsonConvert;
- using SAGA.MBI.Model;
- using SAGA.MBI.RequestData;
- using SAGA.MBI.Tools;
- using SAGA.RevitUtils.Extends;
- namespace SAGA.MBI.DataArrange
- {
- /// <summary>
- /// DalEquipment
- /// </summary>
- public class DalEquip
- {
- /// <summary>
- /// 获取设备的信息,同时根据bimid,请求云平台id
- /// </summary>
- /// <param name="elem"></param>
- /// <returns></returns>
- public static MEquipment GetEquipmentnQueryId(FamilyInstance elem)
- {
- MEquipment mode = GetEquipment(elem);
- if (mode == null) return null;
- EquipmentConvert.QueryEquipInfo(mode);
- //mode.FMID = MatchFMConvert.QueryEquipFM(mode.Id);
- return mode;
- }
- /// <summary>
- /// 获取设备的信息
- /// </summary>
- /// <param name="elem"></param>
- /// <returns></returns>
- public static MEquipment GetEquipment(FamilyInstance elem)
- {
- if (!elem.IsEquipment()) return null;
- string familyCode = elem.GetFamilyCode();
- MEquipmentFamily family = CommonTool.GetEquipFamily(familyCode);
- if (family == null) return null;
- string floorId = elem.Document.PathName.GetFileName();
- string bimid = elem.GetCloudBIMId();
- MEquipment mode = new MEquipment(floorId, bimid);
- mode.EquipClassCode = familyCode;
- mode.Family = family;
- mode.PreviewImage = elem.GetFamily().GetPreviewImage(new System.Drawing.Size(200, 200));
- //从模型中读取的信息点
- mode.ReadRevitParamter(elem);
- //model.BIMType = familyName + ";" + typeName;
- //Revit族名称
- //mode.RevitFamilyName = elem.GetFamily().Name;
- //dic.Add("Length", (instance.GetBoxLength() / 1000).Round(3));
- //dic.Add("Width", (instance.GetBoxWidth() / 1000).Round(3));
- //dic.Add("Height", (instance.GetBoxHeight() / 1000).Round(3));
- return mode;
- }
- /// <summary>
- /// 批量更新Infos
- /// </summary>
- /// <param name="datas"></param>
- public static void BatchUpdate(IEnumerable<MRevitEquipBase> datas)
- {
- var addJArray = new JArray();
- var delJArray = new JArray();
- var updateJArray = new JArray();
- foreach (MRevitEquipBase mode in datas)
- {
- switch (mode.Operator)
- {
- case DocumentChangedOperator.Add:
- JObject addJObject = new JObject();
- addJObject.Add("floor_id", mode.FloorId);
- addJObject.Add("building_id", DalProjectTree.GetBuildingIdByFloor(mode.FloorId));
- addJObject.Add("equipment_category", mode.EquipClassCode);
- addJObject.Add("infos", mode.GetInfosJObject());
- addJArray.Add(addJObject);
- break;
- case DocumentChangedOperator.Delete:
- JObject delJObject = new JObject();
- delJObject.Add("id", mode.Id);
- delJArray.Add(delJObject);
- break;
- case DocumentChangedOperator.Modified:
- JObject criteria = CommonConvert.GetUpdateInfosJObject(mode.Id, mode.GetInfosJObject());
- updateJArray.Add(criteria);
- break;
- case DocumentChangedOperator.None:
- break;
- default:
- mode.AddorUpdateObject();
- break;
- }
- }
- if (addJArray.Count > 0)
- EquipmentRequest.BatchAdd(addJArray);
- if (delJArray.Count > 0)
- EquipmentRequest.BatchDel(delJArray);
- if (updateJArray.Count > 0)
- CommonRequest.BatchUpdate(updateJArray);
- }
- }
- }
|