xulisong 6 سال پیش
والد
کامیت
dc1586199c

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

@@ -115,6 +115,8 @@
     <Compile Include="SpaceRelation\SpaceComputerHandler.cs" />
     <Compile Include="SpaceRelation\SpaceComputerManager.cs" />
     <Compile Include="SystemRelation\Common\SystemCalcUtil.cs" />
+    <Compile Include="SystemRelation\FloorSystemItems.cs" />
+    <Compile Include="SystemRelation\SystemComputerContext.cs" />
   </ItemGroup>
   <ItemGroup>
     <ProjectReference Include="..\SAGA.GplotDrawData\SAGA.GplotDrawData.csproj">

+ 10 - 2
MBI/SAGA.GplotRelationComputerManage/SystemRelation/Common/SystemCalcUtil.cs

@@ -20,10 +20,18 @@ namespace SAGA.GplotRelationComputerManage.SystemRelation.Common
     /// </summary>
     public class SystemCalcUtil
     {
+        /// <summary>
+        /// 判断元素是否是开始元素
+        /// </summary>
+        /// <param name="element"></param>
+        /// <returns></returns>
         public bool IsStart(Element element)
         {
-           // if(element is Mepcu)
-            return element.GetParameterString(BuiltInParameter.ALL_MODEL_INSTANCE_COMMENTS) == "start";
+           if (element is FamilyInstance)
+           {
+               return element.GetFamily()?.Name == "流向指示符";
+           }
+           return element.GetParameterString(BuiltInParameter.ALL_MODEL_INSTANCE_COMMENTS) == "start";
         }
     }
 }

+ 48 - 0
MBI/SAGA.GplotRelationComputerManage/SystemRelation/FloorSystemItems.cs

@@ -0,0 +1,48 @@
+/*-------------------------------------------------------------------------
+ * 功能描述:FloorSystemItems
+ * 作者:xulisong
+ * 创建时间: 2019/1/4 17:50:04
+ * 版本号:v1.0
+ *  -------------------------------------------------------------------------*/
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Autodesk.Revit.DB;
+
+namespace SAGA.GplotRelationComputerManage
+{
+    public class FloorSystemItems
+    {
+        #region 构造函数
+        /// <summary>
+        /// 初始化解析类
+        /// </summary>
+        /// <param name="doc"></param>
+        public FloorSystemItems(Document doc)
+        {
+            Document = doc;
+            InitData();
+        }
+        #endregion
+        #region 属性相关
+        /// <summary>
+        /// 关联模型信息
+        /// </summary>
+        public Document Document { get; private set; }
+        private void InitData()
+        { }
+        #endregion
+
+        #region 数据解析方法
+        public void ParsePipe()
+        { }
+
+        public void ParseDuct()
+        { }
+        #endregion
+
+    }
+}

+ 55 - 0
MBI/SAGA.GplotRelationComputerManage/SystemRelation/SystemComputerContext.cs

@@ -0,0 +1,55 @@
+/*-------------------------------------------------------------------------
+ * 功能描述:SystemComputerContext
+ * 作者:xulisong
+ * 创建时间: 2019/1/4 17:52:22
+ * 版本号:v1.0
+ *  -------------------------------------------------------------------------*/
+
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using SAGA.RevitUtils.Extends;
+
+namespace SAGA.GplotRelationComputerManage
+{
+    public class SystemComputerContext
+    {
+        public SystemComputerContext()
+        {
+            FloorItems = new Dictionary<string, FloorSystemItems>();
+        }
+        #region 空间计算缓存信息
+        /// <summary>
+        /// 楼层系统数据缓存
+        /// </summary>
+        public Dictionary<string, FloorSystemItems> FloorItems { get; private set; }
+
+        /// <summary>
+        /// 获取指定路径项目的楼层信息
+        /// </summary>
+        /// <param name="path"></param>
+        /// <returns></returns>
+        public FloorSystemItems GetFloorItems(string path)
+        {
+            var floorId = Path.GetFileNameWithoutExtension(path);
+            if (FloorItems.TryGetValue(floorId, out FloorSystemItems floor))
+            {
+                return floor;
+            }
+
+            if (File.Exists(path))
+            {
+                var uiApp = ExternalDataWrapper.Current.UiApp.Application;
+                var doc = uiApp.OpenDocumentFile(path);
+                floor = new FloorSystemItems(doc);
+                FloorItems[floorId] = floor;
+            }
+            return floor;
+        }
+
+        #endregion
+    }
+}