/* ============================================================================== * 功能描述:MRevitEquipBaseExtend * 创 建 者:Garrett * 创建日期:2018/8/22 9:20:16 * ==============================================================================*/ 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 SAGA.DotNetUtils; using SAGA.DotNetUtils.DB; using SAGA.MBI.Common; using SAGA.MBI.DataArrange; using SAGA.MBI.Model; using SAGA.MBI.RequestData; using SAGA.MBI.Tools; using SAGA.MBIAssistData.Model; using SAGA.RevitUtils.Extends; namespace SAGA.MBI.Extend { /// /// MRevitEquipBaseExtend /// public static class MRevitEquipBaseExtend { /// /// Null或者是未能认识的设备类型 /// /// /// public static bool IsNullOrDefaultEquip(this MRevitEquipBase mode) { return mode == null || mode is MRevitEquipBaseNull; } /// /// 通过Duty,Bim关系数据获取没有上传但关联岗位的数据 /// /// /// public static MRevitEquipBase QueryEquipByBIMRelation(this MRevitEquipBase mode) { if (mode?.Id != null) { mode.HasUpload = true; return mode; } string dutyid = mode.GetDutyBIMRelationByBIM()?.DutyId; if (dutyid.IsNotNullEmpty()) { var rltmode = CommonConvert.QueryObjectById(dutyid); if (!rltmode.IsNullOrDefaultEquip()) { //之前要求没有上传模型的岗位信息只能看不能编辑,现在改为都可以编辑 //rltmode.HasUpload = false; rltmode.HasUpload = true; rltmode.BimID = mode?.BimID; return rltmode; } } return mode; } /// /// 岗位对应有模型 /// 模型中DutyId的属性包含有岗位id /// /// /// public static DutyBIMRelation GetDutyBIMRelationByBIM(this MRevitEquipBase mode) { var dutybimMode = new DutyBIMRelation(); dutybimMode.BIMId = mode.BimID.GetBIMID().ToString(); dutybimMode.FloorId = mode.FloorId; MBIAssistHelper.SetDBPath(); var resultMode = MBIAssistData.BLL.DutyBIMRelation.Instance.GetModel(dutybimMode); return resultMode; } /// /// 岗位对应有模型 /// 模型中DutyId的属性包含有岗位id /// /// /// public static DutyBIMRelation GetDutyBIMRelationByDuty (this MRevitEquipBase mode) { var dutybimMode = new DutyBIMRelation(); dutybimMode.DutyId = mode.Id; MBIAssistHelper.SetDBPath(); var resultMode = MBIAssistData.BLL.DutyBIMRelation.Instance.GetModel(dutybimMode); return resultMode; } /// /// 保存模型和岗位的关系 /// /// /// public static bool SaveDutyBIMRelation(this MRevitEquipBase mode,string floorId,string bimid) { var dutybimMode = new DutyBIMRelation(); dutybimMode.DutyId = mode.Id; dutybimMode.FloorId = floorId; dutybimMode.BIMId = bimid; MBIAssistHelper.SetDBPath(); var result = MBIAssistData.BLL.DutyBIMRelation.Instance.Add(dutybimMode); return result; } /// /// 删除指定BIMID的关系 /// /// /// public static bool DeleteDutyBIMRelation(this MRevitEquipBase mode, string bimid) { var dutybimMode = new DutyBIMRelation(); dutybimMode.FloorId = mode.FloorId; dutybimMode.BIMId = bimid; MBIAssistHelper.SetDBPath(); var result = MBIAssistData.BLL.DutyBIMRelation.Instance.Delete(dutybimMode); return result; } } }