Browse Source

mxg:添加单项检查异常报错提示

mengxiangge 5 years ago
parent
commit
b29262dd41

+ 27 - 20
Executer/DataCheck/DataCheck.Mode/ColumnCheck.cs

@@ -22,31 +22,38 @@ namespace ServiceRevitLib.Mode
     {
         public override void Check()
         {
-            base.Check();
+            try
+            {
+                base.Check();
 
-            #region
+                #region
 
-            var document = m_Doc;
-            var elements = document.GetElements<FamilyInstance>(BuiltInCategory.OST_StructuralColumns);
-            foreach (FamilyInstance fi in elements)
-            {
-                var result = new ColumnCheckResult();
-                result.FamilyName = fi.GetFamilyName();
-                result.Id = fi.Id.ToString();
-                var roomBoundaries = fi.GetParameterInteger(BuiltInParameter.WALL_ATTR_ROOM_BOUNDING);
-                if (roomBoundaries == 1)
-                {
-                    result.Result = ResultState.Success;
-                }
-                else
+                var document = m_Doc;
+                var elements = document.GetElements<FamilyInstance>(BuiltInCategory.OST_StructuralColumns);
+                foreach (FamilyInstance fi in elements)
                 {
-                    result.Result = ResultState.Failure;
-                    result.ResultMsg = "柱的房间边界属性 未勾选";
+                    var result = new ColumnCheckResult();
+                    result.FamilyName = fi.GetFamilyName();
+                    result.Id = fi.Id.ToString();
+                    var roomBoundaries = fi.GetParameterInteger(BuiltInParameter.WALL_ATTR_ROOM_BOUNDING);
+                    if (roomBoundaries == 1)
+                    {
+                        result.Result = ResultState.Success;
+                    }
+                    else
+                    {
+                        result.Result = ResultState.Failure;
+                        result.ResultMsg = "柱的房间边界属性 未勾选";
+                    }
+                    Content.Add(result);
                 }
-                Content.Add(result);
+                #endregion
+            }
+            catch (Exception e)
+            {
+                Result = ResultState.Failure;
+                ResultMsg = $"{e.Message}\r\n{e.StackTrace}";
             }
-            #endregion
-
         }
     }
 }

+ 19 - 12
Executer/DataCheck/DataCheck.Mode/ConnectorCheck.cs

@@ -29,23 +29,30 @@ namespace ServiceRevitLib.Mode
         }
         public override void Check()
         {
-            base.Check();
+            try
+            {
+                base.Check();
 
-            #region
+                #region
 
-            bool unitResult = true;
-            m_ProDefineConnectors = GetPreDefineConnectors();
-            var elements = m_Doc.GetEqEcElements();
+                bool unitResult = true;
+                m_ProDefineConnectors = GetPreDefineConnectors();
+                var elements = m_Doc.GetEqEcElements();
 
-            foreach (var element in elements)
+                foreach (var element in elements)
+                {
+                    //检查设备或者部件
+                    var result = GetCheckResult(element);
+                    if (result == null) continue;
+                    Content.Add(result);
+                }
+                #endregion
+            }
+            catch (Exception e)
             {
-                //检查设备或者部件
-                var result = GetCheckResult(element);
-                if (result == null) continue;
-                Content.Add(result);
+                Result = ResultState.Failure;
+                ResultMsg = $"{e.Message}\r\n{e.StackTrace}";
             }
-            #endregion
-
         }
         
 

+ 21 - 12
Executer/DataCheck/DataCheck.Mode/ElementRangeCheck.cs

@@ -57,22 +57,31 @@ namespace ServiceRevitLib.Mode
         #endregion
         public override void Check()
         {
-            base.Check();
+            try
+            {
+                base.Check();
 
-            #region
+                #region
 
-            var document = m_Doc;
-            if (!SetFloorBaseTopRange()) return;
-            var elements = document.GetAllElements();
-            foreach (var element in elements)
-            {
-                var result = GetCheckResult(element);
-                if (result != null)
-                    Content.Add(result);
-            }
+                var document = m_Doc;
+                if (!SetFloorBaseTopRange()) return;
+                var elements = document.GetAllElements();
+                foreach (var element in elements)
+                {
+                    var result = GetCheckResult(element);
+                    if (result != null)
+                        Content.Add(result);
+                }
 
 
-            #endregion
+                #endregion
+            }
+            catch (Exception e)
+            {
+                Result = ResultState.Failure;
+                ResultMsg = $"{e.Message}\r\n{e.StackTrace}";
+            }
+            
         }
 
         /// <summary>

+ 18 - 11
Executer/DataCheck/DataCheck.Mode/EquipInSpaceCheck.cs

@@ -24,21 +24,28 @@ namespace ServiceRevitLib.Mode
     {
         public override void Check()
         {
-            base.Check();
+            try
+            {
+                base.Check();
+
+                #region
 
-            #region
+                var document = m_Doc;
+                var elements = document.GetEqEcElements();
+                var rspaces = document.GetSpaces().Where(t => t.IsValidObject).ToList();
+                foreach (Element fi in elements)
+                {
+                    var result = GetCheckResult(fi, rspaces);
+                    Content.Add(result);
+                }
 
-            var document = m_Doc;
-            var elements = document.GetEqEcElements();
-            var rspaces = document.GetSpaces().Where(t => t.IsValidObject).ToList();
-            foreach (Element fi in elements)
+                #endregion
+            }
+            catch (Exception e)
             {
-                var result = GetCheckResult(fi, rspaces);
-                Content.Add(result);
+                Result = ResultState.Failure;
+                ResultMsg = $"{e.Message}\r\n{e.StackTrace}";
             }
-
-            #endregion
-
         }
 
         /// <summary>

+ 32 - 23
Executer/DataCheck/DataCheck.Mode/EquipPartLocationCheck.cs

@@ -22,33 +22,42 @@ namespace ServiceRevitLib.Mode
     {
         public override void Check()
         {
-            base.Check();
-
-            #region
-            
-            var document = m_Doc;
-            var elements = document.GetEqEcElements();
-            var parts = elements.Where(t => t.IsEquipmentPart());
-            foreach (Element fi in parts)
+            try
             {
-                var result = new EquipPartLocationCheckResult();
-                result.PartFamilyName = fi.GetFamilyName();
-                result.PartId = fi.Id.ToString();
-                var partParent = fi.GetPartParent();
-                if (partParent == null)
-                {
-                    result.Result = ResultState.Failure;
-                    result.ResultMsg = "未与设备相交,请检查";
-                }
-                else
+                base.Check();
+
+                #region
+
+                var document = m_Doc;
+                var elements = document.GetEqEcElements();
+                var parts = elements.Where(t => t.IsEquipmentPart());
+                foreach (Element fi in parts)
                 {
-                    result.RefId = partParent.Id.ToString();
-                    result.Result = ResultState.Success;
+                    var result = new EquipPartLocationCheckResult();
+                    result.PartFamilyName = fi.GetFamilyName();
+                    result.PartId = fi.Id.ToString();
+                    var partParent = fi.GetPartParent();
+                    if (partParent == null)
+                    {
+                        result.Result = ResultState.Failure;
+                        result.ResultMsg = "未与设备相交,请检查";
+                    }
+                    else
+                    {
+                        result.RefId = partParent.Id.ToString();
+                        result.Result = ResultState.Success;
+                    }
+                    Content.Add(result);
                 }
-                Content.Add(result);
-            }
 
-            #endregion
+                #endregion
+            }
+            catch (Exception e)
+            {
+                Result = ResultState.Failure;
+                ResultMsg = $"{e.Message}\r\n{e.StackTrace}";
+            }
+           
 
         }
     }

+ 42 - 33
Executer/DataCheck/DataCheck.Mode/FamilyNameCheck.cs

@@ -28,49 +28,58 @@ namespace ServiceRevitLib.Mode
         }
         public override void Check()
         {
-            base.Check();
-
-            #region
-            
-            var ccategories = DataCheckRule.GetCodeCheckCategories();
-            var categories = m_Doc.Settings.Categories;
-            foreach (DCR_CodeCheckCategory ccategory in ccategories)
+            try
             {
-                try
+                base.Check();
+
+                #region
+
+                var ccategories = DataCheckRule.GetCodeCheckCategories();
+                var categories = m_Doc.Settings.Categories;
+                foreach (DCR_CodeCheckCategory ccategory in ccategories)
                 {
-                    var category = categories.get_Item(ccategory.Name);
-                    if (category == null) continue;
-                    BuiltInCategory builtInCategory = (BuiltInCategory)category.Id.IntegerValue;
-                    var elements = m_Doc.GetElements<FamilyInstance>(builtInCategory);
-                    var groupByFamily = elements.GroupBy(t => t.GetFamilyName());
-                    foreach (IGrouping<string, FamilyInstance> grouping in groupByFamily)
+                    try
                     {
-                        var subElements = grouping.ToList();
-                        var subElement = subElements.FirstOrDefault();
-                        if (subElement is FamilyInstance fi)
+                        var category = categories.get_Item(ccategory.Name);
+                        if (category == null) continue;
+                        BuiltInCategory builtInCategory = (BuiltInCategory)category.Id.IntegerValue;
+                        var elements = m_Doc.GetElements<FamilyInstance>(builtInCategory);
+                        var groupByFamily = elements.GroupBy(t => t.GetFamilyName());
+                        foreach (IGrouping<string, FamilyInstance> grouping in groupByFamily)
                         {
-                            var result = new FamilyNameCheckResult();
-                            result.FamilyName = grouping.Key;
-                            if (fi.IsEquipment()|| fi.IsEquipmentPart()|| fi.IsBeacon())
+                            var subElements = grouping.ToList();
+                            var subElement = subElements.FirstOrDefault();
+                            if (subElement is FamilyInstance fi)
                             {
-                                result.Result = ResultState.Success;
+                                var result = new FamilyNameCheckResult();
+                                result.FamilyName = grouping.Key;
+                                if (fi.IsEquipment() || fi.IsEquipmentPart() || fi.IsBeacon())
+                                {
+                                    result.Result = ResultState.Success;
+                                }
+                                else
+                                {
+                                    result.Result = ResultState.Failure;
+                                    result.ResultMsg = "请检查族名称编码是否符合要求";
+                                }
+                                Content.Add(result);
                             }
-                            else
-                            {
-                                result.Result = ResultState.Failure;
-                                result.ResultMsg = "请检查族名称编码是否符合要求";
-                            }
-                            Content.Add(result);
                         }
                     }
+                    catch (Exception e)
+                    {
+                        Console.WriteLine(e);
+                    }
                 }
-                catch (Exception e)
-                {
-                    Console.WriteLine(e);
-                }
-            }
 
-            #endregion
+                #endregion
+            }
+            catch (Exception e)
+            {
+                Result = ResultState.Failure;
+                ResultMsg = $"{e.Message}\r\n{e.StackTrace}";
+            }
+         
 
         }
         

+ 23 - 14
Executer/DataCheck/DataCheck.Mode/ParameterIntegrityCheck.cs

@@ -23,24 +23,33 @@ namespace ServiceRevitLib.Mode
     {
         public override void Check()
         {
-            base.Check();
+            try
+            {
+                base.Check();
+
+                #region
 
-            #region
+                var doc = m_Doc;
+                var instances = doc.GetEqEcElements();
+                var familyGroups = instances.GroupBy(t => t.GetFamilyName());
+                foreach (IGrouping<string, Element> familyGroup in familyGroups)
+                {
+                    Element fi = familyGroup.FirstOrDefault();
+                    if (fi == null) continue;
+                    var result = GetCheckResult(fi);
+                    if (result == null) continue;
+                    result.FamilyName = familyGroup.Key;
+                    Content.Add(result);
+                }
 
-            var doc = m_Doc;
-            var instances = doc.GetEqEcElements();
-            var familyGroups = instances.GroupBy(t => t.GetFamilyName());
-            foreach (IGrouping<string, Element> familyGroup in familyGroups)
+                #endregion
+            }
+            catch (Exception e)
             {
-                Element fi = familyGroup.FirstOrDefault();
-                if (fi == null) continue;
-                var result = GetCheckResult(fi);
-                if (result == null) continue;
-                result.FamilyName = familyGroup.Key;
-                Content.Add(result);
+                Result = ResultState.Failure;
+                ResultMsg = $"{e.Message}\r\n{e.StackTrace}";
             }
-
-            #endregion
+           
 
         }
 

+ 34 - 25
Executer/DataCheck/DataCheck.Mode/PipeCheck.cs

@@ -26,37 +26,46 @@ namespace ServiceRevitLib.Mode
     {
         public override void Check()
         {
-            base.Check();
+            try
+            {
+                base.Check();
 
-            #region
+                #region
 
-            var document = m_Doc;
+                var document = m_Doc;
 
-            var elements = document.FilterElements<MEPCurve>().ToList();
-            foreach (var element in elements)
-            {
-                if (element.IsStart())
+                var elements = document.FilterElements<MEPCurve>().ToList();
+                foreach (var element in elements)
                 {
-                    //标记立管,所有连接点都未记录则删除                 
-                    //if (!connectors.Any(c => c.IsConnected))
-                    //{
-                    //    item.ErrorCode = "001";
-                    //    reportItem.ResultItems.Add(item);                      
-                    //}
-                    continue;
-                }
-                var item = new PipeCheckResult();
-                item.SystemName = element.GetSystemTypeName();
-                item.Id = element.Id.ToString();
-                var code = GetErrorCode(element, item.SystemName);
-                if (IsNeedExport(code))
-                {
-                    item.Result = ResultState.Failure;
-                    item.ResultMsg = GetErrorDescription(code);
-                    Content.Add(item);
+                    if (element.IsStart())
+                    {
+                        //标记立管,所有连接点都未记录则删除                 
+                        //if (!connectors.Any(c => c.IsConnected))
+                        //{
+                        //    item.ErrorCode = "001";
+                        //    reportItem.ResultItems.Add(item);                      
+                        //}
+                        continue;
+                    }
+                    var item = new PipeCheckResult();
+                    item.SystemName = element.GetSystemTypeName();
+                    item.Id = element.Id.ToString();
+                    var code = GetErrorCode(element, item.SystemName);
+                    if (IsNeedExport(code))
+                    {
+                        item.Result = ResultState.Failure;
+                        item.ResultMsg = GetErrorDescription(code);
+                        Content.Add(item);
+                    }
                 }
+                #endregion
+            }
+            catch (Exception e)
+            {
+                Result = ResultState.Failure;
+                ResultMsg = $"{e.Message}\r\n{e.StackTrace}";
             }
-            #endregion
+           
 
         }
         /// <summary>

+ 56 - 47
Executer/DataCheck/DataCheck.Mode/SagaCheck.cs

@@ -21,69 +21,78 @@ namespace ServiceRevitLib.Mode
     {
         public override void Check()
         {
-            base.Check();
+            try
+            {
+                base.Check();
 
-            #region
+                #region
 
-            string resultMsg = null;
-            ResultState resultState = 0;
-            string planName = "";
+                string resultMsg = null;
+                ResultState resultState = 0;
+                string planName = "";
 
-            //判断是否存在Saga标记
-            var document = m_Doc;
-            var sagaPlans = document.GetElements<ViewPlan>()
-                .Where(t => t.ViewType == ViewType.FloorPlan && t.Name.Contains("-saga")).ToList();
-            if (sagaPlans.Count == 0)
-            {
-                resultState = ResultState.Failure;
-                resultMsg = "缺少saga标记";
-            }
-            else if (sagaPlans.Count() >= 2)
-            {
-                resultState = ResultState.Failure;
-                resultMsg = "有多个saga标记";
-            }
-            else
-            {
-                //只有一个saga标记
-                var sagaPlan = sagaPlans.FirstOrDefault();
-                if (sagaPlan != null)
+                //判断是否存在Saga标记
+                var document = m_Doc;
+                var sagaPlans = document.GetElements<ViewPlan>()
+                    .Where(t => t.ViewType == ViewType.FloorPlan && t.Name.Contains("-saga")).ToList();
+                if (sagaPlans.Count == 0)
                 {
-                    planName = sagaPlan.Name;
-                    //打标记的楼层名称必需为指定格式;B1,B1M,F1,F1M,RFM,RF
-                    if (Regex.IsMatch(planName, $"{RegexConstPattern.IsMBIView}"))
+                    resultState = ResultState.Failure;
+                    resultMsg = "缺少saga标记";
+                }
+                else if (sagaPlans.Count() >= 2)
+                {
+                    resultState = ResultState.Failure;
+                    resultMsg = "有多个saga标记";
+                }
+                else
+                {
+                    //只有一个saga标记
+                    var sagaPlan = sagaPlans.FirstOrDefault();
+                    if (sagaPlan != null)
                     {
-                        var rfLevel = document.GetLevels().FirstOrDefault(t =>
-                            System.Text.RegularExpressions.Regex.IsMatch(t.Name, $"{RegexConstPattern.IsRF}"));
-                        if (rfLevel == null)
-                        {
-                            resultState = ResultState.Failure;
-                            resultMsg = $"缺少RF标高";
-                        }
-                        else
+                        planName = sagaPlan.Name;
+                        //打标记的楼层名称必需为指定格式;B1,B1M,F1,F1M,RFM,RF
+                        if (Regex.IsMatch(planName, $"{RegexConstPattern.IsMBIView}"))
                         {
-                            if (rfLevel.Elevation.IsThanEq(sagaPlan.GenLevel.Elevation))
+                            var rfLevel = document.GetLevels().FirstOrDefault(t =>
+                                System.Text.RegularExpressions.Regex.IsMatch(t.Name, $"{RegexConstPattern.IsRF}"));
+                            if (rfLevel == null)
                             {
-                                resultState = ResultState.Success;
+                                resultState = ResultState.Failure;
+                                resultMsg = $"缺少RF标高";
                             }
                             else
                             {
-                                resultState = ResultState.Failure;
-                                resultMsg = $"RF标高的位置不正确,请检查";
+                                if (rfLevel.Elevation.IsThanEq(sagaPlan.GenLevel.Elevation))
+                                {
+                                    resultState = ResultState.Success;
+                                }
+                                else
+                                {
+                                    resultState = ResultState.Failure;
+                                    resultMsg = $"RF标高的位置不正确,请检查";
+                                }
                             }
                         }
-                    }
-                    else
-                    {
-                        resultState = ResultState.Failure;
-                        resultMsg = $"楼层 {planName} 不符合楼层命名规范";
+                        else
+                        {
+                            resultState = ResultState.Failure;
+                            resultMsg = $"楼层 {planName} 不符合楼层命名规范";
+                        }
                     }
                 }
-            }
 
-            Content.Add(new SagaCheckResult() {PlanName = planName, Result = resultState, ResultMsg = resultMsg});
+                Content.Add(new SagaCheckResult() { PlanName = planName, Result = resultState, ResultMsg = resultMsg });
 
-            #endregion
+                #endregion
+            }
+            catch (Exception e)
+            {
+                Result = ResultState.Failure;
+                ResultMsg = $"{e.Message}\r\n{e.StackTrace}";
+            }
+           
 
         }
     }

+ 20 - 11
Executer/DataCheck/DataCheck.Mode/SystemNameCheck.cs

@@ -30,22 +30,31 @@ namespace ServiceRevitLib.Mode
         }
         public override void Check()
         {
-            base.Check();
+            try
+            {
+                base.Check();
+
+                #region
 
-            #region
+                m_MEPSystems = DataCheckRule.GetMepSystems();
 
-            m_MEPSystems = DataCheckRule.GetMepSystems();
+                var mepsystemTypes = new List<MEPSystemType>();
+                mepsystemTypes.AddRange(m_Doc.GetMechanicalSystemTypes());
+                mepsystemTypes.AddRange(m_Doc.GetPipingSystemTypes());
+                foreach (var t in mepsystemTypes)
+                {
+                    var result = GetCheckResult(t);
+                    Content.Add(result);
+                }
 
-            var mepsystemTypes = new List<MEPSystemType>();
-            mepsystemTypes.AddRange(m_Doc.GetMechanicalSystemTypes());
-            mepsystemTypes.AddRange(m_Doc.GetPipingSystemTypes());
-            foreach (var t in mepsystemTypes)
+                #endregion
+            }
+            catch (Exception e)
             {
-                var result = GetCheckResult(t);
-                Content.Add(result);
+                Result = ResultState.Failure;
+                ResultMsg = $"{e.Message}\r\n{e.StackTrace}";
             }
-
-            #endregion
+           
 
         }
         private List<DCR_MEPSystem> m_MEPSystems;

+ 19 - 10
Executer/DataCheck/DataCheck.Mode/SystemReferEquipCheck.cs

@@ -30,21 +30,30 @@ namespace ServiceRevitLib.Mode
         }
         public override void Check()
         {
-            base.Check();
+            try
+            {
+                base.Check();
+
+                #region
 
-            #region
+                m_EquipReferSystems = DataCheckRule.GetEquipReferSystems();
 
-            m_EquipReferSystems = DataCheckRule.GetEquipReferSystems();
+                var elements = m_Doc.GetEqEcElements();
+                foreach (Element element in elements)
+                {
+                    var result = GetCheckResult(element);
+                    if (result == null) continue;
+                    Content.Add(result);
+                }
 
-            var elements = m_Doc.GetEqEcElements();
-            foreach (Element element in elements)
+                #endregion
+            }
+            catch (Exception e)
             {
-                var result = GetCheckResult(element);
-                if (result == null) continue;
-                Content.Add(result);
+                Result = ResultState.Failure;
+                ResultMsg = $"{e.Message}\r\n{e.StackTrace}";
             }
-
-            #endregion
+          
 
         }
 

+ 28 - 19
Executer/DataCheck/DataCheck.Mode/UnitCheck.cs

@@ -16,30 +16,39 @@ namespace ServiceRevitLib.Mode
     {
         public override void Check()
         {
-            base.Check();
+            try
+            {
+                base.Check();
 
-            #region
+                #region
 
-            string resultMsg =null;
-            ResultState resultState = ResultState.Failure;
-            string unit = "";
-            
-            var formatOptions = m_Doc.GetUnits().GetFormatOptions(UnitType.UT_Length);
-            var ismmUnit= formatOptions.DisplayUnits == DisplayUnitType.DUT_MILLIMETERS;
-            unit = formatOptions.DisplayUnits.ToString();
-            if (!ismmUnit)
-            {
-                resultMsg = "单位异常,请修改长度单位为毫米(mm)";
-                resultState = ResultState.Failure;
+                string resultMsg = null;
+                ResultState resultState = ResultState.Failure;
+                string unit = "";
+
+                var formatOptions = m_Doc.GetUnits().GetFormatOptions(UnitType.UT_Length);
+                var ismmUnit = formatOptions.DisplayUnits == DisplayUnitType.DUT_MILLIMETERS;
+                unit = formatOptions.DisplayUnits.ToString();
+                if (!ismmUnit)
+                {
+                    resultMsg = "单位异常,请修改长度单位为毫米(mm)";
+                    resultState = ResultState.Failure;
+                }
+                else
+                {
+                    resultState = ResultState.Success;
+                }
+
+                Content.Add(new UnitCheckResult() { Unit = unit, Result = resultState, ResultMsg = resultMsg });
+
+                #endregion
             }
-            else
+            catch (Exception e)
             {
-                resultState = ResultState.Success;
+                Result = ResultState.Failure;
+                ResultMsg = $"{e.Message}\r\n{e.StackTrace}";
             }
-
-            Content.Add(new UnitCheckResult() { Unit = unit, Result = resultState, ResultMsg = resultMsg });
-
-            #endregion
+           
         }
     }
 }

+ 10 - 13
Executer/DataCheck/ServiceDataCheck.csproj

@@ -35,23 +35,23 @@
     <StartupObject />
   </PropertyGroup>
   <ItemGroup>
-    <Reference Include="ICSharpCode.SharpZipLib, Version=1.0.0.999, Culture=neutral, PublicKeyToken=1b03e6acf1164f73, processorArchitecture=MSIL">
-      <HintPath>..\..\packages\SharpZipLib.1.0.0\lib\net45\ICSharpCode.SharpZipLib.dll</HintPath>
+    <Reference Include="ICSharpCode.SharpZipLib, Version=0.86.0.518, Culture=neutral, PublicKeyToken=1b03e6acf1164f73, processorArchitecture=MSIL">
+      <HintPath>..\..\packages\SharpZipLib.0.86.0\lib\20\ICSharpCode.SharpZipLib.dll</HintPath>
     </Reference>
     <Reference Include="Newtonsoft.Json, Version=11.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
       <HintPath>..\..\packages\Newtonsoft.Json.11.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
     </Reference>
-    <Reference Include="NPOI, Version=2.3.0.0, Culture=neutral, PublicKeyToken=0df73ec7942b34e1, processorArchitecture=MSIL">
-      <HintPath>..\..\packages\NPOI.2.3.0\lib\net40\NPOI.dll</HintPath>
+    <Reference Include="NPOI, Version=2.2.1.0, Culture=neutral, PublicKeyToken=0df73ec7942b34e1, processorArchitecture=MSIL">
+      <HintPath>..\..\packages\NPOI.2.2.1\lib\net40\NPOI.dll</HintPath>
     </Reference>
-    <Reference Include="NPOI.OOXML, Version=2.3.0.0, Culture=neutral, PublicKeyToken=0df73ec7942b34e1, processorArchitecture=MSIL">
-      <HintPath>..\..\packages\NPOI.2.3.0\lib\net40\NPOI.OOXML.dll</HintPath>
+    <Reference Include="NPOI.OOXML, Version=2.2.1.0, Culture=neutral, PublicKeyToken=0df73ec7942b34e1, processorArchitecture=MSIL">
+      <HintPath>..\..\packages\NPOI.2.2.1\lib\net40\NPOI.OOXML.dll</HintPath>
     </Reference>
-    <Reference Include="NPOI.OpenXml4Net, Version=2.3.0.0, Culture=neutral, PublicKeyToken=0df73ec7942b34e1, processorArchitecture=MSIL">
-      <HintPath>..\..\packages\NPOI.2.3.0\lib\net40\NPOI.OpenXml4Net.dll</HintPath>
+    <Reference Include="NPOI.OpenXml4Net, Version=2.2.1.0, Culture=neutral, PublicKeyToken=0df73ec7942b34e1, processorArchitecture=MSIL">
+      <HintPath>..\..\packages\NPOI.2.2.1\lib\net40\NPOI.OpenXml4Net.dll</HintPath>
     </Reference>
-    <Reference Include="NPOI.OpenXmlFormats, Version=2.3.0.0, Culture=neutral, PublicKeyToken=0df73ec7942b34e1, processorArchitecture=MSIL">
-      <HintPath>..\..\packages\NPOI.2.3.0\lib\net40\NPOI.OpenXmlFormats.dll</HintPath>
+    <Reference Include="NPOI.OpenXmlFormats, Version=2.2.1.0, Culture=neutral, PublicKeyToken=0df73ec7942b34e1, processorArchitecture=MSIL">
+      <HintPath>..\..\packages\NPOI.2.2.1\lib\net40\NPOI.OpenXmlFormats.dll</HintPath>
     </Reference>
     <Reference Include="RevitAPI, Version=17.0.0.0, Culture=neutral, processorArchitecture=AMD64">
       <SpecificVersion>False</SpecificVersion>
@@ -112,9 +112,6 @@
     <Compile Include="Utils\DataCheckRule.cs" />
   </ItemGroup>
   <ItemGroup>
-    <Content Include="DataCheckResource\垃圾数据检查结果输出-模版.xlsx">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </Content>
     <Content Include="DataCheckResource\模型检查结果输出格式-模版.xlsx">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </Content>

+ 1 - 1
Executer/DataCheck/ServiceDataCheck.csproj.user

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <PropertyGroup>
-    <ProjectView>ShowAllFiles</ProjectView>
+    <ProjectView>ProjectFiles</ProjectView>
   </PropertyGroup>
 </Project>

+ 4 - 0
Executer/DataCheck/TestCommand.cs

@@ -29,6 +29,10 @@ namespace ServiceRevitLib
                 factory.SetCheckItems("SagaCheck,UnitCheck,FamilyNameCheck,EquipPartLocationCheck,ColumnCheck,ElementRangeCheck,ConnectorCheck,SystemNameCheck,EquipInSpaceCheck,SystemReferEquipCheck,ParameterIntegrityCheck,PipeCheck");
                 factory.Check(doc);
                 result = Serialze(factory);
+                string fileName = DateTime.Now.ToString("yyyyMMddHHmmss");
+                string path = Path.Combine(@"D:\", $"DataCheck{fileName}.json");
+                File.WriteAllText(path, result);
+
             }
             catch (Exception e)
             {

+ 1 - 1
Executer/DataCheck/Utils/DataCheckRule.cs

@@ -20,7 +20,7 @@ namespace ServiceRevitLib.Utils
     /// </summary>
     class DataCheckRule
     {
-        public static string MCRPath = Path.Combine(MBIConst.MBIResourcePath, @"DataCheck\模型检查结果输出格式-模版.xlsx");
+        public static string MCRPath = Path.Combine(AppBaseInfo.DllRunPath, @"DataCheckResource\模型检查结果输出格式-模版.xlsx");
         /// <summary>
         /// 获取设备编码检查Cateogry 列表
         /// </summary>

+ 2 - 2
Executer/DataCheck/packages.config

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <packages>
   <package id="Newtonsoft.Json" version="11.0.1" targetFramework="net461" />
-  <package id="NPOI" version="2.3.0" targetFramework="net461" />
-  <package id="SharpZipLib" version="1.0.0" targetFramework="net461" />
+  <package id="NPOI" version="2.2.1" targetFramework="net461" />
+  <package id="SharpZipLib" version="0.86.0" targetFramework="net461" />
 </packages>

+ 0 - 12
Starter/Starter/App.config

@@ -9,18 +9,6 @@
         <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
         <bindingRedirect oldVersion="0.0.0.0-11.0.0.0" newVersion="11.0.0.0" />
       </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="NPOI" publicKeyToken="0df73ec7942b34e1" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-2.3.0.0" newVersion="2.3.0.0" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="NPOI.OOXML" publicKeyToken="0df73ec7942b34e1" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-2.3.0.0" newVersion="2.3.0.0" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="ICSharpCode.SharpZipLib" publicKeyToken="1b03e6acf1164f73" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-1.0.0.999" newVersion="1.0.0.999" />
-      </dependentAssembly>
     </assemblyBinding>
   </runtime>
 </configuration>

+ 1 - 1
Starter/Starter/Program.cs

@@ -37,9 +37,9 @@ namespace ExportStart
             if (string.IsNullOrWhiteSpace(command))
             {
                 command = "DataExport";
+                command = "DataCheck";
                 path = @"E:\导出测试\testR17.rvt";
                 path = @"E:\导出测试\延庆园-B1.rvt";
-                path = @"E:\导出测试\abc.rvt";
                 JObject jObject=new JObject();
                 jObject.Add("ResultFileName", @"C:\Users\SAGACLOUD\AppData\Local\RevitService\Result_e26be2fd-2097-462b-bdd0-a2a86b616928.txt");
                 param = jObject.ToString();