浏览代码

mxg:模型检查添加《管网及相关设备检查》

mengxiangge 6 年之前
父节点
当前提交
b3734a2872

二进制
MBI/MBIResource/DataCheck/垃圾数据检查结果输出-模版.xlsx


二进制
MBI/MBIResource/DataCheck/模型检查结果输出格式-模版.xlsx


+ 1 - 0
MBI/SAGA.MBI/ToolsData/CheckBase/CheckOperation.cs

@@ -62,6 +62,7 @@ namespace SAGA.MBI.ToolsData.CheckBase
             list.Add(new ConnectorCheck());
             list.Add(new SystemCheck());
             list.Add(new EquipmentInSpaceCheck());
+            list.Add(new EquipReferSystemCheck());
             list.ForEach(t =>
             {
                 t.SetBaseCheck(checkBase);

+ 6 - 4
MBI/SAGA.MBI/ToolsData/DataCheck/SpaceEquipFloorCheck.cs

@@ -23,6 +23,7 @@ using SAGA.MBI.Tools;
 using SAGA.MBI.ToolsData.CheckBase;
 using SAGA.MBI.ToolsData.ModeCheck;
 using SAGA.RevitUtils.Extends;
+using SAGA.RevitUtils.MEP;
 
 namespace SAGA.MBI.ToolsData.DataCheck
 {
@@ -88,14 +89,14 @@ namespace SAGA.MBI.ToolsData.DataCheck
 
         //忽略的信息点
         private List<string> m_IgnoreList = new List<string>() { "EquipID", "EquipName" };
-        private DutyFMInfoCheckResult GetCheckResult(List<MRevitEquipBase> equips, GraphRelationType businessSpaceType, MFloor mFloor)
+        private DutyFMInfoCheckResult GetCheckResult(List<MRevitEquipBase> equipsA, GraphRelationType businessSpaceType, MFloor mFloor)
         {
             DutyFMInfoCheckResult result = null;
             try
             {
-                var spaces = DalCommon.DownLoadCouldData(mFloor.Id, new[] { businessSpaceType.Code });
+                var spacesB = DalCommon.DownLoadCouldData(mFloor.Id, new[] { businessSpaceType.Code });
                 JObject jobject = new JObject();
-                foreach (MRevitEquipBase space in spaces)
+                foreach (MRevitEquipBase space in spacesB)
                 {
                     JObject graphJObject = new JObject();
                     graphJObject.Add("graphType", businessSpaceType.Code);
@@ -104,7 +105,8 @@ namespace SAGA.MBI.ToolsData.DataCheck
                     graphJObject.Add("toId", space.Id);
                     jobject.Add(graphJObject);
                 }
-                CommonConvert.FloorQuery_SubSet(mFloor.Id, jobject, new[] { businessSpaceType.Code });
+                var equipsC= CommonConvert.FloorQuery_SubSet(mFloor.Id, jobject, new[] { businessSpaceType.Code });
+                var equipsD = equipsC.Except(equipsA, new CommonEqualComparer<MRevitEquipBase>((a, b) => a.Id == b.Id));
 
             }
             catch (Exception e)

+ 2 - 2
MBI/SAGA.MBI/ToolsData/ModeCheck/DataCheckRule.cs

@@ -92,7 +92,7 @@ namespace SAGA.MBI.ToolsData.ModeCheck
     /// <summary>
     /// 设备类是否有连接件
     /// </summary>
-    [SheetInfo(SheetName = "参考-连接件对照表", RowStartIndex = 0)]
+    [SheetInfo(SheetName = "参考-连接件对照表", RowStartIndex = 1)]
     public class DCR_Connector
     {
         [CellIndex(4)]
@@ -116,7 +116,7 @@ namespace SAGA.MBI.ToolsData.ModeCheck
     /// <summary>
     /// 参考-管网与相关设备
     /// </summary>
-    [SheetInfo(SheetName = "参考-管网与相关设备", RowStartIndex = 1)]
+    [SheetInfo(SheetName = "参考-管网与相关设备", RowStartIndex = 3)]
     public class DCR_SystemReferEquip
     {
         [CellIndex(4)]

+ 16 - 40
MBI/SAGA.MBI/ToolsData/ModeCheck/EquipReferSystemCheck.cs

@@ -3,23 +3,17 @@
  * 创 建 者:Garrett
  * 创建日期:2018/10/23 15:08:55
  * ==============================================================================*/
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
 using Autodesk.Revit.DB;
 using NPOI.SS.UserModel;
-using SAGA.DotNetUtils;
-using SAGA.DotNetUtils.Extend;
 using SAGA.DotNetUtils.Logger;
 using SAGA.DotNetUtils.Others;
-using SAGA.MBI.DataArrange;
-using SAGA.MBI.Model;
 using SAGA.MBI.Tools;
 using SAGA.MBI.ToolsData.CheckBase;
 using SAGA.RevitUtils.Extends;
 using SAGA.RevitUtils.MEP;
+using System;
+using System.Collections.Generic;
+using System.Linq;
 
 namespace SAGA.MBI.ToolsData.ModeCheck
 {
@@ -31,7 +25,7 @@ namespace SAGA.MBI.ToolsData.ModeCheck
         public EquipReferSystemCheck()
         {
             Name = "管网及相关设备检查";
-            RSPecificationSheet.Add("参考-网及相关设备");
+            RSPecificationSheet.Add("参考-网及相关设备");
         }
         [DataCheckProcessAspect]
         public override bool Check()
@@ -99,22 +93,16 @@ namespace SAGA.MBI.ToolsData.ModeCheck
             if (referSystems.Count == 0) return null;
 
             result.FamilyName = fi.GetFamily().Name;
-            result.Type = code.Length == 4 ? DCElementType.Equipment : DCElementType.EuipmentPart;
             result.Id = fi.Id.ToString();
 
             var tuple = CheckConType(fi, referSystems);
             result.IsRight = !tuple.Item2.Any();
+            result.ConnectorsName += string.Join("、", tuple.Item1.ToArray());
             if (!result.IsRight)
             {
-                result.RMessage = $"设备与管道系统类型不匹配;";
-                if (tuple.Item1.Any())
-                {
-                    result.RMessage += "匹配的系统类型有";
-                    result.RMessage += string.Join(",", tuple.Item1.ToArray());
-                }
-
-                result.RMessage += "不匹配的有:";
-                result.RMessage+= string.Join(",", tuple.Item2.ToArray());
+                result.RMessage = $"连接件所连接的管道系统与规范不一致,包含错误的管道系统:";
+                
+                result.RMessage+= string.Join("、", tuple.Item2.ToArray());
             }
             return result;
         }
@@ -137,7 +125,7 @@ namespace SAGA.MBI.ToolsData.ModeCheck
         /// <param name="domain"></param>
         private Tuple<List<string>,List<string>> CheckConType(FamilyInstance fi, List<string> referSystems)
         {
-            List<string> passList=new List<string>();
+            List<string> allList=new List<string>();
             List<string> unpassList=new List<string>();
 
             var connectors = fi.GetAllConnectors();
@@ -149,14 +137,12 @@ namespace SAGA.MBI.ToolsData.ModeCheck
                     if (mepSystem == null) continue;
                     var elementId = mepSystem.GetTypeId();
                     var type = fi.Document.GetElement(elementId);
-                    if (referSystems.Contains(type.Name))
-                    {
-                        passList.Add(mepSystem.Name);
-                    }
-                    else
+                    if (!referSystems.Contains(type.Name))
                     {
                         unpassList.Add(mepSystem.Name);
                     }
+
+                    allList.Add(mepSystem.Name);
                 }
                 catch (Exception e)
                 {
@@ -164,7 +150,7 @@ namespace SAGA.MBI.ToolsData.ModeCheck
                 }
             }
 
-            return new Tuple<List<string>, List<string>>(passList, unpassList);
+            return new Tuple<List<string>, List<string>>(allList, unpassList);
         }
         
 
@@ -184,17 +170,7 @@ namespace SAGA.MBI.ToolsData.ModeCheck
                 //添加 共检查XXX条数据,未通过检查的如下 提示
                 IRow rowTip = sheet.CreateRow(index - 1);
                 rowTip.AddCell(0, $"总检查{Results.Count}条数据,未通过检查的如下", DataCheckNPOIStyle.Title);
-                //IRow row4 = sheet.CreateRow(index);
-                //row4.HeightInPoints = 15;
-
-                //row4.AddCell(0, "楼层本地名称", DataCheckNPOIStyle.Title);
-                //row4.AddCell(1, "文件名", DataCheckNPOIStyle.Title);
-                //row4.AddCell(2, "文件地址", DataCheckNPOIStyle.Title);
-                //row4.AddCell(3, "族名称", DataCheckNPOIStyle.Title);
-                //row4.AddCell(4, "类型", DataCheckNPOIStyle.Title);
-                //row4.AddCell(5, "ID", DataCheckNPOIStyle.Title);
-                //row4.AddCell(6, "通过", DataCheckNPOIStyle.Title);
-                //row4.AddCell(7, "备注(失败原因)", DataCheckNPOIStyle.Title);
+
                 foreach (EquipReferSystemCheckResult result in Results)
                 {
                     SagaSignCheckResult rbase = result.RBase as SagaSignCheckResult;
@@ -210,8 +186,8 @@ namespace SAGA.MBI.ToolsData.ModeCheck
                     rowN.AddCell(1, rbase.RFileName, style);
                     rowN.AddCell(2, rbase.RPath, style);
                     rowN.AddCell(3, result.FamilyName, style);
-                    rowN.AddCell(4, result.Type.GetDescription(), style);
-                    rowN.AddCell(5, result.Id, style);
+                    rowN.AddCell(4, result.Id, style);
+                    rowN.AddCell(5, result.ConnectorsName, style);
                     string rowN4 = result.IsRight ? "通过" : "不通过";
                     rowN.AddCell(6, rowN4, style);
                     rowN.AddCell(7, result.RMessage, style);

+ 1 - 2
MBI/SAGA.MBI/ToolsData/ModeCheck/EquipReferSystemCheckResult.cs

@@ -20,9 +20,8 @@ namespace SAGA.MBI.ToolsData.ModeCheck
     {
         public string FamilyName { get; set; }
 
-        public DCElementType Type { get; set; }
-
         public string Id { get; set; }
+        public string ConnectorsName { get; set; }
         public override void Export()
         {
             base.Export();