MRevitEquipBaseExtend.cs 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. /* ==============================================================================
  2. * 功能描述:MRevitEquipBaseExtend
  3. * 创 建 者:Garrett
  4. * 创建日期:2018/8/22 9:20:16
  5. * ==============================================================================*/
  6. using System;
  7. using System.Collections.Generic;
  8. using System.Linq;
  9. using System.Text;
  10. using System.Threading.Tasks;
  11. using Autodesk.Revit.DB;
  12. using DevExpress.Xpf.Bars;
  13. using SAGA.DotNetUtils;
  14. using SAGA.DotNetUtils.DB;
  15. using SAGA.MBI.Common;
  16. using SAGA.MBI.DataArrange;
  17. using SAGA.MBI.Model;
  18. using SAGA.MBI.RequestData;
  19. using SAGA.MBI.Tools;
  20. using SAGA.MBIAssistData.Model;
  21. using SAGA.RevitUtils.Extends;
  22. namespace SAGA.MBI.Extend
  23. {
  24. /// <summary>
  25. /// MRevitEquipBaseExtend
  26. /// </summary>
  27. public static class MRevitEquipBaseExtend
  28. {
  29. /// <summary>
  30. /// Null或者是未能认识的设备类型
  31. /// </summary>
  32. /// <param name="mode"></param>
  33. /// <returns></returns>
  34. public static bool IsNullOrDefaultEquip(this MRevitEquipBase mode)
  35. {
  36. return mode == null || mode is MRevitEquipBaseNull;
  37. }
  38. /// <summary>
  39. /// 通过Duty,Bim关系数据获取没有上传但关联岗位的数据
  40. /// </summary>
  41. /// <param name="mode"></param>
  42. /// <returns></returns>
  43. public static MRevitEquipBase QueryEquipByBIMRelation(this MRevitEquipBase mode)
  44. {
  45. if (mode?.Id != null)
  46. {
  47. mode.HasUpload = true;
  48. return mode;
  49. }
  50. string dutyid = mode.GetDutyBIMRelationByBIM()?.DutyId;
  51. if (dutyid.IsNotNullEmpty())
  52. {
  53. var rltmode = CommonConvert.QueryObjectById(dutyid);
  54. if (!rltmode.IsNullOrDefaultEquip())
  55. {
  56. //之前要求没有上传模型的岗位信息只能看不能编辑,现在改为都可以编辑
  57. //rltmode.HasUpload = false;
  58. rltmode.HasUpload = true;
  59. rltmode.BimID = mode?.BimID;
  60. return rltmode;
  61. }
  62. }
  63. return mode;
  64. }
  65. /// <summary>
  66. /// 岗位对应有模型
  67. /// 模型中DutyId的属性包含有岗位id
  68. /// </summary>
  69. /// <param name="mode"></param>
  70. /// <returns></returns>
  71. public static DutyBIMRelation GetDutyBIMRelationByBIM(this MRevitEquipBase mode)
  72. {
  73. var dutybimMode = new DutyBIMRelation();
  74. dutybimMode.BIMId = mode.BimID.GetBIMID().ToString();
  75. dutybimMode.FloorId = mode.FloorId;
  76. MBIAssistHelper.SetDBPath();
  77. var resultMode = MBIAssistData.BLL.DutyBIMRelation.Instance.GetModel(dutybimMode);
  78. return resultMode;
  79. }
  80. /// <summary>
  81. /// 岗位对应有模型
  82. /// 模型中DutyId的属性包含有岗位id
  83. /// </summary>
  84. /// <param name="mode"></param>
  85. /// <returns></returns>
  86. public static DutyBIMRelation GetDutyBIMRelationByDuty (this MRevitEquipBase mode)
  87. {
  88. var dutybimMode = new DutyBIMRelation();
  89. dutybimMode.DutyId = mode.Id;
  90. MBIAssistHelper.SetDBPath();
  91. var resultMode = MBIAssistData.BLL.DutyBIMRelation.Instance.GetModel(dutybimMode);
  92. return resultMode;
  93. }
  94. /// <summary>
  95. /// 保存模型和岗位的关系
  96. /// </summary>
  97. /// <param name="mode"></param>
  98. /// <returns></returns>
  99. public static bool SaveDutyBIMRelation(this MRevitEquipBase mode,string floorId,string bimid)
  100. {
  101. var dutybimMode = new DutyBIMRelation();
  102. dutybimMode.DutyId = mode.Id;
  103. dutybimMode.FloorId = floorId;
  104. dutybimMode.BIMId = bimid;
  105. MBIAssistHelper.SetDBPath();
  106. var result = MBIAssistData.BLL.DutyBIMRelation.Instance.Add(dutybimMode);
  107. return result;
  108. }
  109. /// <summary>
  110. /// 删除指定BIMID的关系
  111. /// </summary>
  112. /// <param name="mode"></param>
  113. /// <returns></returns>
  114. public static bool DeleteDutyBIMRelation(this MRevitEquipBase mode, string bimid)
  115. {
  116. var dutybimMode = new DutyBIMRelation();
  117. dutybimMode.FloorId = mode.FloorId;
  118. dutybimMode.BIMId = bimid;
  119. MBIAssistHelper.SetDBPath();
  120. var result = MBIAssistData.BLL.DutyBIMRelation.Instance.Delete(dutybimMode);
  121. return result;
  122. }
  123. }
  124. }