Просмотр исходного кода

mxg:模型检查,构件范围检查,修正取拉伸体的定位点方法

mengxiangge 6 лет назад
Родитель
Сommit
2cb1648451

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


+ 15 - 5
MBI/SAGA.MBI/Extend/ElementExtend.cs

@@ -102,14 +102,13 @@ namespace SAGA.MBI.Tools
             var id = elem.Id.ToString();
             return CommonTool.GetCloudBIMId(docName, id);
         }
-
         /// <summary>
-        /// 获取MBI存储的位置信息
+        /// 获取MBI的定位点
         /// </summary>
+        /// <param name="element"></param>
         /// <returns></returns>
-        public static string GetLocationPointMBI(this Element element)
+        public static XYZ GetLocationPointMBIXYZ(this Element element)
         {
-            string str = ",,";
             //定位点不可靠,未来可能会更改为Box的中心点
             XYZ bimXyz = element.GetLocationPoint();
             if (element is FamilyInstance fi)
@@ -120,6 +119,17 @@ namespace SAGA.MBI.Tools
                     bimXyz = fi.GetBoxCenter();
                 }
             }
+
+            return bimXyz;
+        }
+        /// <summary>
+        /// 获取MBI存储的位置信息
+        /// </summary>
+        /// <returns></returns>
+        public static string GetLocationPointMBI(this Element element)
+        {
+            string str = ",,";
+            XYZ bimXyz = element.GetLocationPointMBIXYZ();
             if (bimXyz != null)
             {
                 str = bimXyz.FromApi().ToString(null);
@@ -178,7 +188,7 @@ namespace SAGA.MBI.Tools
             //没有Space属性,取定位点,判断定位点所在空间
             if (space == null)
             {
-                var origin = fi.GetLocationPointMBI().ToXyz().ConvertToApi();
+                var origin = fi.GetLocationPointMBIXYZ();
                 space = spaces.FirstOrDefault(t => t.IsValidObject && t.IsPointInSpace(origin));
             }
             //还没有找到空间,取Box中心点,判断点所在空间

+ 2 - 2
MBI/SAGA.MBI/SAGA.MBI.csproj

@@ -309,8 +309,8 @@
     <Compile Include="ToolsData\ModeCheck\EquipmentInSpaceCheckResult.cs" />
     <Compile Include="ToolsData\ModeCheck\FloorMissCheck.cs" />
     <Compile Include="ToolsData\ModeCheck\FloorMissCheckResult.cs" />
-    <Compile Include="ToolsData\ModeCheck\DataCheckProcessAspect.cs" />
-    <Compile Include="ToolsData\ModeCheck\DataCheckProgressBarClient.cs" />
+    <Compile Include="ToolsData\CheckBase\CheckProcessAspect.cs" />
+    <Compile Include="ToolsData\CheckBase\CheckProgressBarClient.cs" />
     <Compile Include="ToolsData\ModeCheck\SagaPositionCheck.cs" />
     <Compile Include="ToolsData\ModeCheck\FloorSequenceCheck.cs" />
     <Compile Include="ToolsData\ModeCheck\SagaPositionCheckCheckResult.cs" />

+ 13 - 18
MBI/SAGA.MBI/ToolCommand.cs

@@ -68,6 +68,11 @@ namespace SAGA.MBI
             }
             return Result.Succeeded;
         }
+
+        public override bool IsCommandAvailable(UIApplication applicationData, CategorySet selectedCategories)
+        {
+            return true;
+        }
     }
     /// <summary>
     /// 报告设备所在空间
@@ -117,16 +122,6 @@ namespace SAGA.MBI
             }
             return Result.Succeeded;
         }
-
-
-        /// <summary>
-        /// Onlys show the dialog when a document is open, as Dockable dialogs are only available
-        /// when a document is open.
-        /// </summary>
-        public bool IsCommandAvailable(UIApplication applicationData, CategorySet selectedCategories)
-        {
-            return false;
-        }
     }
 
     /// <summary>
@@ -134,7 +129,7 @@ namespace SAGA.MBI
     /// </summary>
     [Transaction(TransactionMode.Manual)]
     [Regeneration(RegenerationOption.Manual)]
-    public class AddEquipLocationCommand : ExternalCommand, IExternalCommandAvailability
+    public class AddEquipLocationCommand : ExternalCommand
     {
         public override Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
         {
@@ -166,7 +161,7 @@ namespace SAGA.MBI
         /// Onlys show the dialog when a document is open, as Dockable dialogs are only available
         /// when a document is open.
         /// </summary>
-        public bool IsCommandAvailable(UIApplication applicationData, CategorySet selectedCategories)
+        public override bool IsCommandAvailable(UIApplication applicationData, CategorySet selectedCategories)
         {
             return true;
         }
@@ -176,7 +171,7 @@ namespace SAGA.MBI
     /// </summary>
     [Transaction(TransactionMode.Manual)]
     [Regeneration(RegenerationOption.Manual)]
-    public class CheckEquipinFloorCommand : ExternalCommand, IExternalCommandAvailability
+    public class CheckEquipinFloorCommand : ExternalCommand
     {
         public override Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
         {
@@ -199,7 +194,7 @@ namespace SAGA.MBI
         /// Onlys show the dialog when a document is open, as Dockable dialogs are only available
         /// when a document is open.
         /// </summary>
-        public bool IsCommandAvailable(UIApplication applicationData, CategorySet selectedCategories)
+        public override bool IsCommandAvailable(UIApplication applicationData, CategorySet selectedCategories)
         {
             return true;
         }
@@ -209,7 +204,7 @@ namespace SAGA.MBI
     /// </summary>
     [Transaction(TransactionMode.Manual)]
     [Regeneration(RegenerationOption.Manual)]
-    public class UpdateEquipinSpaceCommand : ExternalCommand, IExternalCommandAvailability
+    public class UpdateEquipinSpaceCommand : ExternalCommand
     {
         public override Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
         {
@@ -241,7 +236,7 @@ namespace SAGA.MBI
         /// Onlys show the dialog when a document is open, as Dockable dialogs are only available
         /// when a document is open.
         /// </summary>
-        public bool IsCommandAvailable(UIApplication applicationData, CategorySet selectedCategories)
+        public override bool IsCommandAvailable(UIApplication applicationData, CategorySet selectedCategories)
         {
             return true;
         }
@@ -302,7 +297,7 @@ namespace SAGA.MBI
             }
             catch (Exception e)
             {
-                DataCheckProgressBarClient.Stop();
+                CheckProgressBarClient.Stop();
                 MessageShow.Show(e);
                 return Result.Cancelled;
             }
@@ -340,7 +335,7 @@ namespace SAGA.MBI
             }
             catch (Exception e)
             {
-                DataCheckProgressBarClient.Stop();
+                CheckProgressBarClient.Stop();
                 MessageShow.Show(e);
                 return Result.Cancelled;
             }

+ 3 - 3
MBI/SAGA.MBI/ToolsData/CheckBase/CheckOperation.cs

@@ -94,11 +94,11 @@ namespace SAGA.MBI.ToolsData.CheckBase
         /// <param name="context"></param>
         public static void Execute(List<ICheckBase> list, CheckContext context)
         {
-            DataCheckProgressBarClient.Start("正在进行数据检查", list.Count(t => t.RIsChecked), false);
+            CheckProgressBarClient.Start("正在进行数据检查", list.Count(t => t.RIsChecked), false);
             //检查
             list.ForEach(t => t.Check2(context));
 
-            DataCheckProgressBarClient.UpdateBigTip("正在进行数据保存");
+            CheckProgressBarClient.UpdateBigTip("正在进行数据保存");
             //重置workbook准备保存结果
             DCRExport.ClearWorkbook();
             //保存
@@ -107,7 +107,7 @@ namespace SAGA.MBI.ToolsData.CheckBase
             DCRExport.Save(context.SavePath, DCRExport.GetWorkbook());
             //关闭所有窗体
             DocumentQueue.CloseAll();
-            DataCheckProgressBarClient.UpdateBigTip("结束");
+            CheckProgressBarClient.UpdateBigTip("结束");
         }
         /// <summary>
         /// 获取保存模版的地址

+ 7 - 8
MBI/SAGA.MBI/ToolsData/ModeCheck/DataCheckProcessAspect.cs

@@ -5,11 +5,10 @@
  * ==============================================================================*/
 
 using System;
-using System.Threading;
 using ArxOne.MrAdvice.Advice;
-using SAGA.MBI.ToolsData.CheckBase;
+using SAGA.MBI.ToolsData.ModeCheck;
 
-namespace SAGA.MBI.ToolsData.ModeCheck
+namespace SAGA.MBI.ToolsData.CheckBase
 {
     [Serializable]
     public class DataCheckProcessAspect :Attribute,IMethodAdvice //, OnMethodBoundaryAspect
@@ -30,10 +29,10 @@ namespace SAGA.MBI.ToolsData.ModeCheck
             var icheck = context.Target as ICheckBase;
             if (icheck == null) return;
             string name = icheck?.Name;
-            DataCheckProgressBarClient.Increase(name);
+            CheckProgressBarClient.Increase(name);
             startTime = DateTime.Now;
-            DataCheckProgressBarClient.UpdataLog($"{name}:");
-            DataCheckProgressBarClient.UpdataLog($"\t开始时间:{DateTime.Now}");
+            CheckProgressBarClient.UpdataLog($"{name}:");
+            CheckProgressBarClient.UpdataLog($"\t开始时间:{DateTime.Now}");
             //Thread.Sleep(500);
         }
 
@@ -44,8 +43,8 @@ namespace SAGA.MBI.ToolsData.ModeCheck
             var icheck = context.Target as ICheckBase;
             if (icheck == null) return;
             var duringTime = (DateTime.Now - startTime);
-            DataCheckProgressBarClient.UpdataLog($"\t结束时间:{DateTime.Now}");
-            DataCheckProgressBarClient.UpdataLog(string.Format("\t耗时:{0}{1}{2}{3}"
+            CheckProgressBarClient.UpdataLog($"\t结束时间:{DateTime.Now}");
+            CheckProgressBarClient.UpdataLog(string.Format("\t耗时:{0}{1}{2}{3}"
                 , duringTime.Hours == 0 ? "" : $"{duringTime.Hours}小时"
                 , duringTime.Minutes == 0 ? "" : $"{duringTime.Minutes}分钟"
                 , duringTime.Seconds == 0 ? "" : $"{duringTime.Seconds}秒"

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

@@ -4,12 +4,12 @@
  * 创建日期:2018/11/13 15:38:49
  * ==============================================================================*/
  
-namespace SAGA.MBI.ToolsData.ModeCheck
+namespace SAGA.MBI.ToolsData.CheckBase
 {
     /// <summary>
     /// ProgressBarClient
     /// </summary>
-    class DataCheckProgressBarClient
+    class CheckProgressBarClient
     {
         private static int MaxValue { get; set; }
 

+ 1 - 1
MBI/SAGA.MBI/ToolsData/ModeCheck/ElementRangeCheck.cs

@@ -207,7 +207,7 @@ namespace SAGA.MBI.ToolsData.ModeCheck
                     else if (fi.IsEquipment() || fi.IsEquipmentPart() || fi.IsBeacon())
                     {
                         result.RType = GetRType(fi);
-                        zb = fi.GetLocationPoint().Z;
+                        zb = fi.GetLocationPointMBIXYZ().Z;
                         rb = zb.IsBetween(hb, ht);
                         result.IsRight = rb;
                         result.RMessage = result.IsRight ? "" : "构件范围不满足要求;请检查构件位置";