From 158292021eb0b31e494b5fdc26a31c58af0bf01b Mon Sep 17 00:00:00 2001
From: lixiaojun <1287241240@qq.com>
Date: 星期四, 26 九月 2024 11:55:04 +0800
Subject: [PATCH] 匹配修改

---
 WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-simulation/06-simulation/01-autoMatching/02-AsstesFormCtrl/AssetsMatchingHelper.cs       |   18 +
 WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-simulation/02-bimface/XhsProjectSimulationBimfaceCtrl.cs                                 |   53 +++
 WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-simulation/06-simulation/01-autoMatching/03-FormViewModel/PumpFormViewModel.cs           |    4 
 WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-simulation/06-simulation/04-unmatching/00-core/XhsProjectSimulationUnMatchingListCtrl.cs |   69 ++--
 WinFrmUI/HStation.WinFrmUI.Xhs.Core/00-core/AssetsMatchingParasHelper.cs                                                        |   97 +++++++
 WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-simulation/06-simulation/01-AutoMatching/01-ViewModel/PumpMatchingViewModel.cs           |   53 ++-
 WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-simulation/06-simulation/XhsProjectSimulationCorePage.resx                               |   24 -
 WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-simulation/06-simulation/XhsProjectSimulationCorePage.cs                                 |  349 +++++++++++---------------
 WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-simulation/06-simulation/XhsProjectSimulationCorePage.Designer.cs                        |   60 ++--
 9 files changed, 401 insertions(+), 326 deletions(-)

diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/00-core/AssetsMatchingParasHelper.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/00-core/AssetsMatchingParasHelper.cs
new file mode 100644
index 0000000..cedf261
--- /dev/null
+++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/00-core/AssetsMatchingParasHelper.cs
@@ -0,0 +1,97 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace HStation.WinFrmUI
+{
+    /// <summary>
+    /// 璧勪骇鍖归厤鍙傛暟杈呭姪绫�
+    /// </summary>
+    public class AssetsMatchingParasHelper
+    {
+
+        //鍒涘缓璧勪骇鑷姩鍖归厤ViewModel
+        public static AssetsAutoMatchingViewModel Create(Yw.Model.HydroModelInfo hydroInfo)
+        {
+            var input = new AssetsAutoMatchingViewModel();
+            input.PumpMatchingModels = hydroInfo.Pumps?.Select(x => new PumpMatchingViewModel()
+            {
+                ID = x.ID,
+                Code = x.Code,
+                Name = x.Name,
+                DbId = x.DbId,
+                DbLocked = x.DbLocked,
+                ChartDbID = hydroInfo.Curves?.Find(t => t.Code == x.CurveQH)?.DbId,
+                ModelType = x.ModelType,
+                RatedP = x.RatedP,
+                RatedH = x.RatedH,
+                RatedN = x.RatedN,
+                RatedQ = x.RatedQ,
+            }).ToList();
+            input.ElbowsMatchingModels = hydroInfo.Elbows?.Select(x => new ElbowsMatchingViewModel()
+            {
+                ID = x.ID,
+                Name = x.Name,
+                Code = x.Code,
+                Dbid = x.DbId,
+                DbLocked = x.DbLocked,
+                ModelType = x.ModelType,
+                Caliber = x.Caliber,
+                Material = x.Material
+            }).ToList();
+            input.ThreeLinkMatchingModels = hydroInfo.Threelinks?.Select(x => new ThreeLinkMatchingViewModel()
+            {
+                ID = x.ID,
+                Name = x.Name,
+                Code = x.Code,
+                DbId = x.DbId,
+                DbLocked = x.DbLocked,
+                ModelType = x.ModelType,
+                Caliber = x.Caliber,
+                Material = x.Material
+            }).ToList();
+            input.FourLinkMatchingModels = hydroInfo.Fourlinks?.Select(x => new FourLinkMatchingViewModel()
+            {
+                ID = x.ID,
+                Name = x.Name,
+                Code = x.Code,
+                Dbid = x.DbId,
+                DbLocked = x.DbLocked,
+                ModelType = x.ModelType,
+                Caliber = x.Caliber,
+                Material = x.Material
+            }).ToList();
+            input.PipeLineMatchingModels = hydroInfo.Pipes?.Select(x => new PipeLineMatchingViewModel()
+            {
+                ID = x.ID,
+                Name = x.Name,
+                Code = x.Code,
+                DbId = x.DbId,
+                DbLocked = x.DbLocked,
+                ModelType = x.ModelType,
+                Caliber = x.Diameter,//杩欓噷鏄暟鍊�
+                Material = x.Material
+            }).ToList();
+            input.ValveMatchingModels = hydroInfo.Pipes?.Select(x => new ValveMatchingViewModel()
+            {
+                ID = x.ID,
+                Name = x.Name,
+                Code = x.Code,
+                DbId = x.DbId,
+                DbLocked = x.DbLocked,
+                ModelType = x.ModelType,
+                Caliber = x.Diameter,//杩欓噷鏄暟鍊�
+                Material = x.Material//鎬庝箞娌℃湁闃�闂ㄧ被鍨�
+            }).ToList();
+            return input;
+        }
+
+        //搴旂敤璧勪骇鑷姩鍖归厤ViewModel
+        public static void Apply(Yw.Model.HydroModelInfo hydroInfo, AssetsAutoMatchingViewModel output)
+        {
+
+        }
+    }
+}
diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-simulation/02-bimface/XhsProjectSimulationBimfaceCtrl.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-simulation/02-bimface/XhsProjectSimulationBimfaceCtrl.cs
index 9661642..1bb0450 100644
--- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-simulation/02-bimface/XhsProjectSimulationBimfaceCtrl.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-simulation/02-bimface/XhsProjectSimulationBimfaceCtrl.cs
@@ -10,29 +10,35 @@
         {
             InitializeComponent();
             this.bimfaceInterop3dContainer1.LoadCompletedEvent += BimfaceInterop3dContainer1_LoadCompletedEvent;
+            this.bimfaceInterop3dContainer1.LoadViewCompletedEvent += BimfaceInterop3dContainer1_LoadViewCompletedEvent;
             this.bimfaceInterop3dContainer1.ClickInEvent += BimfaceInterop3dContainer1_ClickInEvent;
+            this.bimfaceInterop3dContainer1.ClickOutEvent += BimfaceInterop3dContainer1_ClickOutEvent;
         }
 
         /// <summary>
-        /// 鐐瑰嚮缁勪欢浜嬩欢
+        /// 姘村姏鐐瑰嚮浜嬩欢
         /// </summary>
-        public event Action<string> ClickParterEvent;
-
+        public event Action<Yw.Model.HydroParterInfo> HydroClickEvent;
         /// <summary>
-        /// 鑾峰彇姘村姏淇℃伅浜嬩欢
+        /// 鍔犺浇瀹屾垚浜嬩欢
         /// </summary>
-        public event Func<Yw.Model.HydroModelInfo> GetHydroInfoEvent;
+        public event Action LoadCompletedEvent;
+
 
         private HStation.Vmo.XhsProjectVmo _project = null;
         private HStation.Vmo.XhsProjectSiteVmo _projectSite = null;
-
-
+        private Func<Yw.Model.HydroModelInfo> _hydroInfoFunc = null;
 
 
         /// <summary>
         /// 缁戝畾鏁版嵁
         /// </summary>
-        public async Task SetBindingData(HStation.Vmo.XhsProjectVmo project, HStation.Vmo.XhsProjectSiteVmo projectSite)
+        public async Task SetBindingData
+            (
+                HStation.Vmo.XhsProjectVmo project,
+                HStation.Vmo.XhsProjectSiteVmo projectSite,
+                Func<Yw.Model.HydroModelInfo> hydroInfoFunc
+            )
         {
             if (project == null)
             {
@@ -40,6 +46,7 @@
             }
             _project = project;
             _projectSite = projectSite;
+            _hydroInfoFunc = hydroInfoFunc;
             if (_projectSite == null)
             {
                 _projectSite = await BLLFactory<HStation.BLL.XhsProjectSite>.Instance.GetDefaultByProjectID(_project.ID);
@@ -77,15 +84,38 @@
             await this.bimfaceInterop3dContainer1.LoadView(viewToken);
         }
 
-        //鏋勪欢鐐瑰嚮
+        //椤甸潰瑙嗗浘鍔犺浇瀹屾垚鍚庤Е鍙�
+        private void BimfaceInterop3dContainer1_LoadViewCompletedEvent()
+        {
+            this.LoadCompletedEvent?.Invoke();
+        }
+
+        //鍐呴儴鐐瑰嚮
         private void BimfaceInterop3dContainer1_ClickInEvent(Yw.WinFrmUI.Bimface.ClickIn3dInfo obj)
         {
             if (obj == null)
             {
                 return;
             }
-            this.ClickParterEvent?.Invoke(obj.ObjectId);
+            if (HydroClickEvent != null)
+            {
+                var hydroInfo = _hydroInfoFunc?.Invoke();
+                if (hydroInfo == null)
+                {
+                    return;
+                }
+                var allParterList = hydroInfo.GetAllParters();
+                var parter = allParterList?.Find(x => x.Code == obj.ObjectId);
+                this.HydroClickEvent.Invoke(parter);
+            }
         }
+
+        //澶栭儴鐐瑰嚮
+        private void BimfaceInterop3dContainer1_ClickOutEvent(ClickOut3dInfo obj)
+        {
+            this.HydroClickEvent?.Invoke(null);
+        }
+
 
         #region 鏋勪欢鐨勬樉绀轰笌闅愯棌
 
@@ -278,7 +308,6 @@
 
         #region 涓氬姟
 
-
         #region 杩炴帴鏋勪欢棰滆壊
 
         private const string _linkComponentColor = "#008B00";
@@ -336,7 +365,7 @@
         /// </summary>
         public async Task ShowCalcuCustomLabels(CalcuResult calcuResult)
         {
-            var hydroInfo = GetHydroInfoEvent?.Invoke();
+            var hydroInfo = _hydroInfoFunc?.Invoke();
             if (hydroInfo == null)
             {
                 return;
diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-simulation/06-simulation/01-AutoMatching/01-ViewModel/PumpMatchingViewModel.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-simulation/06-simulation/01-AutoMatching/01-ViewModel/PumpMatchingViewModel.cs
index 5de2b81..b645b39 100644
--- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-simulation/06-simulation/01-AutoMatching/01-ViewModel/PumpMatchingViewModel.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-simulation/06-simulation/01-AutoMatching/01-ViewModel/PumpMatchingViewModel.cs
@@ -1,19 +1,16 @@
-锘縰sing HStation.WinFrmUI.Xhs;
-
-namespace HStation.WinFrmUI
+锘縩amespace HStation.WinFrmUI
 {
+    /// <summary>
+    /// 姘存车鍖归厤ViewModel
+    /// </summary>
     public class PumpMatchingViewModel
     {
+        /// <summary>
+        /// ID
+        /// </summary>
         [DisplayName("ID")]
         [Browsable(false)]
         public long ID { get; set; }
-
-        /// <summary>
-        /// 鍚嶇О
-        /// </summary>
-        [DisplayName("鍚嶇О")]
-        [Browsable(true)]
-        public string Name { get; set; }
 
         /// <summary>
         /// 缂栫爜
@@ -23,11 +20,32 @@
         public string Code { get; set; }
 
         /// <summary>
-        /// 鍨嬪彿鍚�
+        /// 鍚嶇О
         /// </summary>
-        [DisplayName("鍨嬪彿鍚�")]
+        [DisplayName("鍚嶇О")]
+        [Browsable(true)]
+        public string Name { get; set; }
+
+        /// <summary>
+        /// 鍨嬪彿
+        /// </summary>
+        [DisplayName("鍨嬪彿")]
         [Browsable(true)]
         public string ModelType { get; set; }
+
+        /// <summary>
+        /// DbId
+        /// </summary>
+        [DisplayName("DbId")]
+        [Browsable(false)]
+        public string DbId { get; set; }
+
+        /// <summary>
+        /// Db閿佸畾
+        /// </summary>
+        [DisplayName("閿佸畾")]
+        [Browsable(true)]
+        public bool DbLocked { get; set; }
 
         /// <summary>
         /// 棰濆畾鍔熺巼
@@ -57,16 +75,9 @@
         [Browsable(true)]
         public double? RatedN { get; set; }
 
-        /// <summary>
-        /// Db閿佸畾
-        /// </summary>
-        [DisplayName("鏄惁閿佸畾")]
-        [Browsable(true)]
-        public bool DbLocked { get; set; }
 
-        [DisplayName("鍖归厤鍓岲bID")]
-        [Browsable(false)]
-        public string DbID { get; set; }
+
+
 
         [DisplayName("ChartDbID")]
         [Browsable(false)]
diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-simulation/06-simulation/01-autoMatching/02-AsstesFormCtrl/AssetsMatchingHelper.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-simulation/06-simulation/01-autoMatching/02-AsstesFormCtrl/AssetsMatchingHelper.cs
index 631793a..9cf4037 100644
--- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-simulation/06-simulation/01-autoMatching/02-AsstesFormCtrl/AssetsMatchingHelper.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-simulation/06-simulation/01-autoMatching/02-AsstesFormCtrl/AssetsMatchingHelper.cs
@@ -1,6 +1,4 @@
-锘縰sing Microsoft.CodeAnalysis.CSharp.Syntax;
-
-namespace HStation.WinFrmUI
+锘縩amespace HStation.WinFrmUI
 {
     public class AssetsMatchingHelper
     {
@@ -620,5 +618,19 @@
             int commonCount = baseChars.Intersect(comparisonChars).Count();
             return commonCount;
         }
+
+        /// <summary>
+        /// 鑾峰彇涓や釜瀛楃涓茬殑鎵�鏈変氦闆�
+        /// </summary>
+        /// <param name="str1"></param>
+        /// <param name="str2"></param>
+        /// <returns></returns>
+        public static string GetIntersect(string str1, string str2)
+        {
+            if (str1 == null || str2 == null) return null;
+
+            return string.Join("", str1.Intersect(str2));
+        }
+
     }
 }
\ No newline at end of file
diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-simulation/06-simulation/01-autoMatching/03-FormViewModel/PumpFormViewModel.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-simulation/06-simulation/01-autoMatching/03-FormViewModel/PumpFormViewModel.cs
index 9e60fe8..286e24d 100644
--- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-simulation/06-simulation/01-autoMatching/03-FormViewModel/PumpFormViewModel.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-simulation/06-simulation/01-autoMatching/03-FormViewModel/PumpFormViewModel.cs
@@ -10,7 +10,7 @@
         public PumpFormViewModel(PumpMatchingViewModel rhs)
         {
             this.ID = rhs.ID;
-            this.DbID = rhs.DbID;
+            this.DbID = rhs.DbId;
             this.DbLocked = rhs.DbLocked;
             this.Name = rhs.Name;
             this.RatedH = rhs.RatedH;
@@ -24,7 +24,7 @@
             this.MatchingRatedN = rhs.MatchingRatedN;
             this.MatchingRatedP = rhs.MatchingRatedP;
             this.MatchingRatedQ = rhs.MatchingRatedQ;
-            if (rhs.DbID == null)
+            if (rhs.DbId == null)
             {
                 MatchingType = eMatchingType.Error;
             }
diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-simulation/06-simulation/04-unmatching/00-core/XhsProjectSimulationUnMatchingListCtrl.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-simulation/06-simulation/04-unmatching/00-core/XhsProjectSimulationUnMatchingListCtrl.cs
index c9dc244..fb21c4c 100644
--- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-simulation/06-simulation/04-unmatching/00-core/XhsProjectSimulationUnMatchingListCtrl.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-simulation/06-simulation/04-unmatching/00-core/XhsProjectSimulationUnMatchingListCtrl.cs
@@ -15,40 +15,6 @@
 
 
 
-        #region 浜嬩欢瑙﹀彂
-
-        private void XhsProjectSimulationPipeUnMatchingListCtrl1_HydroClickEvent(Yw.Model.HydroPipeInfo obj)
-        {
-            this.HydroClickEvent?.Invoke(obj);
-        }
-
-        private void XhsProjectSimulationFourlinkUnMatchingListCtrl1_HydroClickEvent(Yw.Model.HydroFourlinkInfo obj)
-        {
-            this.HydroClickEvent?.Invoke(obj);
-        }
-
-        private void XhsProjectSimulationThreelinkUnMatchingListCtrl1_HydroClickEvent(Yw.Model.HydroThreelinkInfo obj)
-        {
-            this.HydroClickEvent?.Invoke(obj);
-        }
-
-        private void XhsProjectSimulationElbowUnMatchingListCtrl1_HydroClickEvent(Yw.Model.HydroElbowInfo obj)
-        {
-            this.HydroClickEvent?.Invoke(obj);
-        }
-
-        private void XhsProjectSimulationValveUnMatchingListCtrl1_HydroClickEvent(Yw.Model.HydroValveInfo obj)
-        {
-            this.HydroClickEvent?.Invoke(obj);
-        }
-
-        private void XhsProjectSimulationPumpUnMatchingListCtrl1_HydroClickEvent(Yw.Model.HydroPumpInfo obj)
-        {
-            this.HydroClickEvent?.Invoke(obj);
-        }
-
-        #endregion
-
         /// <summary>
         /// 姘村姏鐐瑰嚮浜嬩欢
         /// </summary>
@@ -162,5 +128,40 @@
             parters = parters?.Where(x => string.IsNullOrEmpty(x.DbId)).ToList();
             this.ViewModelEvent?.Invoke(parters);
         }
+
+        #region 浜嬩欢瑙﹀彂
+
+        private void XhsProjectSimulationPipeUnMatchingListCtrl1_HydroClickEvent(Yw.Model.HydroPipeInfo obj)
+        {
+            this.HydroClickEvent?.Invoke(obj);
+        }
+
+        private void XhsProjectSimulationFourlinkUnMatchingListCtrl1_HydroClickEvent(Yw.Model.HydroFourlinkInfo obj)
+        {
+            this.HydroClickEvent?.Invoke(obj);
+        }
+
+        private void XhsProjectSimulationThreelinkUnMatchingListCtrl1_HydroClickEvent(Yw.Model.HydroThreelinkInfo obj)
+        {
+            this.HydroClickEvent?.Invoke(obj);
+        }
+
+        private void XhsProjectSimulationElbowUnMatchingListCtrl1_HydroClickEvent(Yw.Model.HydroElbowInfo obj)
+        {
+            this.HydroClickEvent?.Invoke(obj);
+        }
+
+        private void XhsProjectSimulationValveUnMatchingListCtrl1_HydroClickEvent(Yw.Model.HydroValveInfo obj)
+        {
+            this.HydroClickEvent?.Invoke(obj);
+        }
+
+        private void XhsProjectSimulationPumpUnMatchingListCtrl1_HydroClickEvent(Yw.Model.HydroPumpInfo obj)
+        {
+            this.HydroClickEvent?.Invoke(obj);
+        }
+
+        #endregion
+
     }
 }
diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-simulation/06-simulation/XhsProjectSimulationCorePage.Designer.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-simulation/06-simulation/XhsProjectSimulationCorePage.Designer.cs
index 58438e5..dfd4d74 100644
--- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-simulation/06-simulation/XhsProjectSimulationCorePage.Designer.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-simulation/06-simulation/XhsProjectSimulationCorePage.Designer.cs
@@ -37,14 +37,13 @@
             barBtnSave = new DevExpress.XtraBars.BarButtonItem();
             barBtnHydroParterList = new DevExpress.XtraBars.BarButtonItem();
             barBtnShowHide = new DevExpress.XtraBars.BarButtonItem();
-            barBtnAllAutoMatching = new DevExpress.XtraBars.BarButtonItem();
+            barBtnAutoMatching = new DevExpress.XtraBars.BarButtonItem();
             barBtnSingleMatching = new DevExpress.XtraBars.BarSubItem();
             barBtnPumpMatching = new DevExpress.XtraBars.BarButtonItem();
             barBtnValveMatching = new DevExpress.XtraBars.BarButtonItem();
             barBtnPipeMatching = new DevExpress.XtraBars.BarButtonItem();
             barBtn = new DevExpress.XtraBars.BarButtonItem();
             barBtnUnMatchingList = new DevExpress.XtraBars.BarButtonItem();
-            barBtnOpenView = new DevExpress.XtraBars.BarButtonItem();
             ribbonPage1 = new DevExpress.XtraBars.Ribbon.RibbonPage();
             ribbonPageGroup1 = new DevExpress.XtraBars.Ribbon.RibbonPageGroup();
             ribbonPageGroup2 = new DevExpress.XtraBars.Ribbon.RibbonPageGroup();
@@ -56,6 +55,7 @@
             pageQ3d = new DevExpress.XtraBars.Navigation.TabNavigationPage();
             xhsProjectSimulationQ3dCtrl1 = new XhsProjectSimulationQ3dCtrl();
             tabPageL3d = new DevExpress.XtraBars.Navigation.TabNavigationPage();
+            xhsProjectSimulationL3dCtrl1 = new XhsProjectSimulationL3dCtrl();
             dockManager1 = new DevExpress.XtraBars.Docking.DockManager(components);
             docPnlProperty = new DevExpress.XtraBars.Docking.DockPanel();
             dockPanel1_Container = new DevExpress.XtraBars.Docking.ControlContainer();
@@ -76,7 +76,7 @@
             controlContainer4 = new DevExpress.XtraBars.Docking.ControlContainer();
             xhsProjectSimulationUnMatchingListCtrl1 = new XhsProjectSimulationUnMatchingListCtrl();
             svgImg32 = new DevExpress.Utils.SvgImageCollection(components);
-            xhsProjectSimulationL3dCtrl1 = new XhsProjectSimulationL3dCtrl();
+            radialMenu1 = new DevExpress.XtraBars.Ribbon.RadialMenu(components);
             ((ISupportInitialize)ribbonControl1).BeginInit();
             ((ISupportInitialize)tabPane1).BeginInit();
             tabPane1.SuspendLayout();
@@ -97,13 +97,14 @@
             docPnlUnMatchingList.SuspendLayout();
             controlContainer4.SuspendLayout();
             ((ISupportInitialize)svgImg32).BeginInit();
+            ((ISupportInitialize)radialMenu1).BeginInit();
             SuspendLayout();
             // 
             // ribbonControl1
             // 
             ribbonControl1.ExpandCollapseItem.Id = 0;
             ribbonControl1.ItemPanelStyle = DevExpress.XtraBars.Ribbon.RibbonItemPanelStyle.Classic;
-            ribbonControl1.Items.AddRange(new DevExpress.XtraBars.BarItem[] { ribbonControl1.ExpandCollapseItem, barBtnHydroCheck, barBtnHydroCalcu, barBtnHydroExportInp, barBtnSave, barBtnHydroParterList, barBtnShowHide, barBtnAllAutoMatching, barBtnSingleMatching, barBtnPumpMatching, barBtnValveMatching, barBtnPipeMatching, barBtn, barBtnUnMatchingList, barBtnOpenView });
+            ribbonControl1.Items.AddRange(new DevExpress.XtraBars.BarItem[] { ribbonControl1.ExpandCollapseItem, barBtnHydroCheck, barBtnHydroCalcu, barBtnHydroExportInp, barBtnSave, barBtnHydroParterList, barBtnShowHide, barBtnAutoMatching, barBtnSingleMatching, barBtnPumpMatching, barBtnValveMatching, barBtnPipeMatching, barBtn, barBtnUnMatchingList });
             ribbonControl1.Location = new Point(0, 0);
             ribbonControl1.MaxItemId = 21;
             ribbonControl1.Name = "ribbonControl1";
@@ -162,13 +163,13 @@
             barBtnShowHide.Name = "barBtnShowHide";
             barBtnShowHide.ItemClick += barBtnShowHide_ItemClick;
             // 
-            // barBtnAllAutoMatching
+            // barBtnAutoMatching
             // 
-            barBtnAllAutoMatching.Caption = "鑷姩鍖归厤";
-            barBtnAllAutoMatching.Id = 10;
-            barBtnAllAutoMatching.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("barBtnAllAutoMatching.ImageOptions.SvgImage");
-            barBtnAllAutoMatching.Name = "barBtnAllAutoMatching";
-            barBtnAllAutoMatching.ItemClick += barBtnAllAutoMatching_ItemClick;
+            barBtnAutoMatching.Caption = "鑷姩鍖归厤";
+            barBtnAutoMatching.Id = 10;
+            barBtnAutoMatching.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("barBtnAutoMatching.ImageOptions.SvgImage");
+            barBtnAutoMatching.Name = "barBtnAutoMatching";
+            barBtnAutoMatching.ItemClick += barBtnAutoMatching_ItemClick;
             // 
             // barBtnSingleMatching
             // 
@@ -214,14 +215,6 @@
             barBtnUnMatchingList.Name = "barBtnUnMatchingList";
             barBtnUnMatchingList.ItemClick += barBtnUnMatchingList_ItemClick;
             // 
-            // barBtnOpenView
-            // 
-            barBtnOpenView.Caption = "Open";
-            barBtnOpenView.Id = 20;
-            barBtnOpenView.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("barBtnOpenView.ImageOptions.SvgImage");
-            barBtnOpenView.Name = "barBtnOpenView";
-            barBtnOpenView.ItemClick += barBtnOpenView_ItemClick;
-            // 
             // ribbonPage1
             // 
             ribbonPage1.Groups.AddRange(new DevExpress.XtraBars.Ribbon.RibbonPageGroup[] { ribbonPageGroup1, ribbonPageGroup2, ribbonPageGroup3 });
@@ -230,11 +223,10 @@
             // 
             // ribbonPageGroup1
             // 
-            ribbonPageGroup1.ItemLinks.Add(barBtnAllAutoMatching);
+            ribbonPageGroup1.ItemLinks.Add(barBtnAutoMatching);
+            ribbonPageGroup1.ItemLinks.Add(barBtnUnMatchingList);
             ribbonPageGroup1.ItemLinks.Add(barBtnSingleMatching);
             ribbonPageGroup1.ItemLinks.Add(barBtnShowHide);
-            ribbonPageGroup1.ItemLinks.Add(barBtnUnMatchingList);
-            ribbonPageGroup1.ItemLinks.Add(barBtnOpenView);
             ribbonPageGroup1.Name = "ribbonPageGroup1";
             ribbonPageGroup1.Text = "妯″瀷";
             // 
@@ -287,8 +279,8 @@
             xhsProjectSimulationBimfaceCtrl1.Name = "xhsProjectSimulationBimfaceCtrl1";
             xhsProjectSimulationBimfaceCtrl1.Size = new Size(886, 185);
             xhsProjectSimulationBimfaceCtrl1.TabIndex = 0;
-            xhsProjectSimulationBimfaceCtrl1.ClickParterEvent += xhsProjectSimulationBimfaceCtrl1_ClickParterEvent;
-            xhsProjectSimulationBimfaceCtrl1.GetHydroInfoEvent += xhsProjectSimulationBimfaceCtrl1_GetHydroInfoEvent;
+            xhsProjectSimulationBimfaceCtrl1.HydroClickEvent += xhsProjectSimulationBimfaceCtrl1_HydroClickEvent;
+            xhsProjectSimulationBimfaceCtrl1.LoadCompletedEvent += xhsProjectSimulationBimfaceCtrl1_LoadCompletedEvent;
             // 
             // pageQ3d
             // 
@@ -311,6 +303,14 @@
             tabPageL3d.Controls.Add(xhsProjectSimulationL3dCtrl1);
             tabPageL3d.Name = "tabPageL3d";
             tabPageL3d.Size = new Size(886, 185);
+            // 
+            // xhsProjectSimulationL3dCtrl1
+            // 
+            xhsProjectSimulationL3dCtrl1.Dock = DockStyle.Fill;
+            xhsProjectSimulationL3dCtrl1.Location = new Point(0, 0);
+            xhsProjectSimulationL3dCtrl1.Name = "xhsProjectSimulationL3dCtrl1";
+            xhsProjectSimulationL3dCtrl1.Size = new Size(886, 185);
+            xhsProjectSimulationL3dCtrl1.TabIndex = 0;
             // 
             // dockManager1
             // 
@@ -497,13 +497,10 @@
             svgImg32.ImageSize = new Size(32, 32);
             svgImg32.Add("calculatesheet", "image://svgimages/spreadsheet/calculatesheet.svg");
             // 
-            // xhsProjectSimulationL3dCtrl1
+            // radialMenu1
             // 
-            xhsProjectSimulationL3dCtrl1.Dock = DockStyle.Fill;
-            xhsProjectSimulationL3dCtrl1.Location = new Point(0, 0);
-            xhsProjectSimulationL3dCtrl1.Name = "xhsProjectSimulationL3dCtrl1";
-            xhsProjectSimulationL3dCtrl1.Size = new Size(886, 185);
-            xhsProjectSimulationL3dCtrl1.TabIndex = 0;
+            radialMenu1.Name = "radialMenu1";
+            radialMenu1.Ribbon = ribbonControl1;
             // 
             // XhsProjectSimulationCorePage
             // 
@@ -542,6 +539,7 @@
             docPnlUnMatchingList.ResumeLayout(false);
             controlContainer4.ResumeLayout(false);
             ((ISupportInitialize)svgImg32).EndInit();
+            ((ISupportInitialize)radialMenu1).EndInit();
             ResumeLayout(false);
             PerformLayout();
         }
@@ -560,7 +558,7 @@
         private DevExpress.XtraBars.BarButtonItem barBtnShowHide;
         private DevExpress.XtraBars.Ribbon.RibbonPageGroup ribbonPageGroup4;
         private DevExpress.XtraBars.Ribbon.RibbonPageGroup ribbonPageGroup3;
-        private DevExpress.XtraBars.BarButtonItem barBtnAllAutoMatching;
+        private DevExpress.XtraBars.BarButtonItem barBtnAutoMatching;
         private DevExpress.XtraBars.BarSubItem barBtnSingleMatching;
         private DevExpress.XtraBars.BarButtonItem barBtnPumpMatching;
         private DevExpress.XtraBars.BarButtonItem barBtnValveMatching;
@@ -593,7 +591,7 @@
         private DevExpress.XtraBars.Docking.ControlContainer controlContainer5;
         private Xhs.AssetsMainChoicePage assetsMainChoicePage1;
         private XhsProjectSimulationUnMatchingListCtrl xhsProjectSimulationUnMatchingListCtrl1;
-        private DevExpress.XtraBars.BarButtonItem barBtnOpenView;
         private XhsProjectSimulationL3dCtrl xhsProjectSimulationL3dCtrl1;
+        private DevExpress.XtraBars.Ribbon.RadialMenu radialMenu1;
     }
 }
diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-simulation/06-simulation/XhsProjectSimulationCorePage.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-simulation/06-simulation/XhsProjectSimulationCorePage.cs
index a783f69..7e2027b 100644
--- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-simulation/06-simulation/XhsProjectSimulationCorePage.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-simulation/06-simulation/XhsProjectSimulationCorePage.cs
@@ -26,7 +26,7 @@
         private HStation.Vmo.XhsProjectVmo _project = null;//椤圭洰
         private HStation.Vmo.XhsProjectSiteVmo _projectSite = null;//椤圭洰绔�
         private Yw.Model.HydroModelInfo _hydroInfo = null;//姘村姏淇℃伅
-        private List<string> _fastShowHideCodeList = null;//鏄鹃殣缂栫爜鍒楄〃
+
 
         private Yw.Model.HydroParterInfo _parter = null;
         private Yw.EPAnet.CheckResult _checkResult = null;
@@ -59,8 +59,6 @@
                     .GetDefaultByObjectTypeAndObjectIDOfPurpose(HStation.Xhs.DataType.XhsProjectSite, _projectSite.ID, HStation.Xhs.Purpose.Simulation);
                 _hydroInfo = await BLLFactory<Yw.BLL.HydroModelInfo>.Instance.GetByID(hydroRelation.ModelID);
             }
-            this.xhsProjectSimulationQ3dCtrl1.SetBindingData(_hydroInfo);
-            this.xhsProjectSimulationL3dCtrl1.SetBindingData(_hydroInfo);
         }
 
         /// <summary>
@@ -74,7 +72,9 @@
                 return;
             }
             this.PageTitle.Caption = $"{_project.Name}\r\n姘村姏妯℃嫙";
-            await this.xhsProjectSimulationBimfaceCtrl1.SetBindingData(_project, _projectSite);
+            await this.xhsProjectSimulationBimfaceCtrl1.SetBindingData(_project, _projectSite, () => _hydroInfo);
+            this.xhsProjectSimulationQ3dCtrl1.SetBindingData(_hydroInfo);
+            this.xhsProjectSimulationL3dCtrl1.SetBindingData(_hydroInfo);
         }
 
         //灞炴�ч潰鏉胯幏鍙栨按鍔涗俊鎭簨浠�
@@ -83,28 +83,7 @@
             return _hydroInfo;
         }
 
-        //涓�閿樉闅�
-        private async void barBtnShowHide_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
-        {
-            if (_hydroInfo == null)
-            {
-                return;
-            }
-            if (_hydroInfo.Decorators == null || _hydroInfo.Decorators.Count < 1)
-            {
-                return;
-            }
-            if (_fastShowHideCodeList == null)
-            {
-                _fastShowHideCodeList = _hydroInfo.Decorators.Select(x => x.Code).ToList();
-                await this.xhsProjectSimulationBimfaceCtrl1.HideComponents(_fastShowHideCodeList);
-            }
-            else
-            {
-                await this.xhsProjectSimulationBimfaceCtrl1.ShowComponents(_fastShowHideCodeList);
-                _fastShowHideCodeList = null;
-            }
-        }
+
 
 
 
@@ -180,98 +159,7 @@
 
 
 
-        //鑷姩鍖归厤
-        private void barBtnAllAutoMatching_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
-        {
-            if (_hydroInfo == null)
-            {
-                return;
-            }
-            var input = new AssetsAutoMatchingViewModel();
-            input.PumpMatchingModels = _hydroInfo.Pumps?.Select(x => new PumpMatchingViewModel()
-            {
-                ID = x.ID,
-                Code = x.Code,
-                Name = x.Name,
-                DbID = x.DbId,
-                DbLocked = x.DbLocked,
-                ChartDbID = _hydroInfo.Curves?.Find(t => t.Code == x.CurveQH)?.DbId,
-                ModelType = x.ModelType,
-                RatedP = x.RatedP,
-                RatedH = x.RatedH,
-                RatedN = x.RatedN,
-                RatedQ = x.RatedQ,
-            }).ToList();
-            input.ElbowsMatchingModels = _hydroInfo.Elbows?.Select(x => new ElbowsMatchingViewModel()
-            {
-                ID = x.ID,
-                Name = x.Name,
-                Code = x.Code,
-                Dbid = x.DbId,
-                DbLocked = x.DbLocked,
-                ModelType = x.ModelType,
-                Caliber = x.Caliber,
-                Material = x.Material
-            }).ToList();
-            input.ThreeLinkMatchingModels = _hydroInfo.Threelinks?.Select(x => new ThreeLinkMatchingViewModel()
-            {
-                ID = x.ID,
-                Name = x.Name,
-                Code = x.Code,
-                DbId = x.DbId,
-                DbLocked = x.DbLocked,
-                ModelType = x.ModelType,
-                Caliber = x.Caliber,
-                Material = x.Material
-            }).ToList();
-            input.FourLinkMatchingModels = _hydroInfo.Fourlinks?.Select(x => new FourLinkMatchingViewModel()
-            {
-                ID = x.ID,
-                Name = x.Name,
-                Code = x.Code,
-                Dbid = x.DbId,
-                DbLocked = x.DbLocked,
-                ModelType = x.ModelType,
-                Caliber = x.Caliber,
-                Material = x.Material
-            }).ToList();
-            input.PipeLineMatchingModels = _hydroInfo.Pipes?.Select(x => new PipeLineMatchingViewModel()
-            {
-                ID = x.ID,
-                Name = x.Name,
-                Code = x.Code,
-                DbId = x.DbId,
-                DbLocked = x.DbLocked,
-                ModelType = x.ModelType,
-                Caliber = x.Diameter,//杩欓噷鏄暟鍊�
-                Material = x.Material
-            }).ToList();
 
-            input.ValveMatchingModels = _hydroInfo.Pipes?.Select(x => new ValveMatchingViewModel()
-            {
-                ID = x.ID,
-                Name = x.Name,
-                Code = x.Code,
-                DbId = x.DbId,
-                DbLocked = x.DbLocked,
-                ModelType = x.ModelType,
-                Caliber = x.Diameter,//杩欓噷鏄暟鍊�
-                Material = x.Material//鎬庝箞娌℃湁闃�闂ㄧ被鍨�
-            }).ToList();
-            this.docPnlHydroCheck.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden;
-            this.docPnlHydroCalcu.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden;
-            this.docPnlHydroParterList.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden;
-            this.docPnlUnMatchingList.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden;
-            this.hydroParterListCtrl1.SetBindingData(_hydroInfo);
-            this.docPnlHydroParterList.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden;
-            this.docPnlMatchingList.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Visible;
-            this.docPnlMatchingList.Height = 350;
-            this.assetsMainChoicePage1.SetBindingData(input);
-            this.assetsMainChoicePage1.RelaodEvent += (rhs) =>
-                 {
-                     return false;
-                 };
-        }
 
 
 
@@ -286,25 +174,152 @@
 
         #region Bimface
 
-        //鑾峰彇姘村姏淇℃伅
-        private Yw.Model.HydroModelInfo xhsProjectSimulationBimfaceCtrl1_GetHydroInfoEvent()
-        {
-            return _hydroInfo;
-        }
-
-        //bimface 鏋勪欢鐐瑰嚮
-        private void xhsProjectSimulationBimfaceCtrl1_ClickParterEvent(string objectId)
+        //bimface 鍔犺浇瀹屾垚浜嬩欢
+        private async void xhsProjectSimulationBimfaceCtrl1_LoadCompletedEvent()
         {
             if (_hydroInfo == null)
             {
                 return;
             }
-            var allParterList = _hydroInfo.GetAllParters();
-            _parter = allParterList.Find(x => x.Code == objectId);
+            var elementIds = new List<string>();
+            var pumps = _hydroInfo.Pumps?.Where(x => x.LinkStatus == Yw.Hydro.PumpStatus.Open).ToList();
+            pumps?.ForEach(x => elementIds.Add(x.Code));
+            var valves = _hydroInfo.Valves?.Where(x => x.LinkStatus == Yw.Hydro.ValveStatus.Open).ToList();
+            valves?.ForEach(x => elementIds.Add(x.Code));
+            await this.xhsProjectSimulationBimfaceCtrl1.SetOpenComponentsColor(elementIds);
+        }
+
+        //bimface 姘村姏鐐瑰嚮浜嬩欢
+        private void xhsProjectSimulationBimfaceCtrl1_HydroClickEvent(Yw.Model.HydroParterInfo obj)
+        {
+            if (_hydroInfo == null)
+            {
+                return;
+            }
+            _parter = obj;
             ShowProperty();
             SetBimfaceLinkColor();
         }
 
+        //璁剧疆Bimface杩炴帴棰滆壊
+        private async void SetBimfaceLinkColor()
+        {
+            if (_hydroInfo == null)
+            {
+                return;
+            }
+            List<string> elementIds = null;
+            if (_parter != null)
+            {
+                if (_parter is Yw.Model.HydroLinkInfo linker)
+                {
+                    elementIds = new List<string>() { linker.StartCode, linker.EndCode };
+                }
+            }
+            await this.xhsProjectSimulationBimfaceCtrl1.SetLinkComponentsColor(elementIds);
+        }
+
+        #endregion
+
+        #region 鑷姩鍖归厤
+
+        //鑷姩鍖归厤
+        private void barBtnAutoMatching_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
+        {
+            if (_hydroInfo == null)
+            {
+                return;
+            }
+            this.docPnlHydroCheck.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden;
+            this.docPnlHydroCalcu.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden;
+            this.docPnlHydroParterList.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden;
+            this.docPnlMatchingList.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden;
+            this.docPnlUnMatchingList.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden;
+
+            var input = AssetsMatchingParasHelper.Create(_hydroInfo);
+            this.assetsMainChoicePage1.SetBindingData(input);
+            this.assetsMainChoicePage1.RelaodEvent += (output) =>
+            {
+
+                AssetsMatchingParasHelper.Apply(_hydroInfo, output);
+                return true;
+            };
+            this.docPnlMatchingList.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Visible;
+            this.docPnlMatchingList.Height = 350;
+        }
+
+
+        #endregion
+
+        #region 鏈尮閰嶅垪琛�
+
+        //鏈尮閰嶅垪琛�
+        private void barBtnUnMatchingList_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
+        {
+            if (_hydroInfo == null)
+            {
+                return;
+            }
+            this.docPnlHydroCheck.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden;
+            this.docPnlHydroCalcu.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden;
+            this.docPnlHydroParterList.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden;
+            this.docPnlMatchingList.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden;
+            this.docPnlUnMatchingList.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden;
+
+            this.xhsProjectSimulationUnMatchingListCtrl1.SetBindingData(_hydroInfo);
+            this.docPnlUnMatchingList.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Visible;
+            this.docPnlUnMatchingList.Height = 350;
+        }
+
+        //鏈尮閰嶅垪琛ㄧ偣鍑讳簨浠�
+        private async void xhsProjectSimulationUnMatchingListCtrl1_HydroClickEvent(Yw.Model.HydroParterInfo parter)
+        {
+            var allParterList = _hydroInfo.GetAllParters();
+            _parter = allParterList.Find(x => x.ID == parter.ID);
+            var elementIds = new List<string>() { _parter.Code };
+            await this.xhsProjectSimulationBimfaceCtrl1.ZoomAndSelectComponents(elementIds);
+            ShowProperty();
+        }
+
+        //鏈尮閰嶅垪琛ㄦ煡鐪嬫ā鍨�
+        private async void xhsProjectSimulationUnMatchingListCtrl1_ViewModelEvent(List<Yw.Model.HydroParterInfo> parters)
+        {
+            var codes = parters?.Select(x => x.Code).Distinct().ToList();
+            await this.xhsProjectSimulationBimfaceCtrl1.ZoomAndSelectComponents(codes);
+            _parter = null;
+            ShowProperty();
+        }
+
+
+        #endregion
+
+        #region 涓�閿樉闅�
+
+        //鏄鹃殣缂栫爜鍒楄〃
+        private List<string> _fastShowHideCodeList = null;
+
+        //瑙﹀彂涓�閿樉闅�
+        private async void barBtnShowHide_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
+        {
+            if (_hydroInfo == null)
+            {
+                return;
+            }
+            if (_hydroInfo.Decorators == null || _hydroInfo.Decorators.Count < 1)
+            {
+                return;
+            }
+            if (_fastShowHideCodeList == null)
+            {
+                _fastShowHideCodeList = _hydroInfo.Decorators.Select(x => x.Code).ToList();
+                await this.xhsProjectSimulationBimfaceCtrl1.HideComponents(_fastShowHideCodeList);
+            }
+            else
+            {
+                await this.xhsProjectSimulationBimfaceCtrl1.ShowComponents(_fastShowHideCodeList);
+                _fastShowHideCodeList = null;
+            }
+        }
 
         #endregion
 
@@ -351,47 +366,7 @@
 
         #endregion
 
-        #region 鏈尮閰嶅垪琛�
 
-        //鏈尮閰嶅垪琛�
-        private void barBtnUnMatchingList_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
-        {
-            if (_hydroInfo == null)
-            {
-                return;
-            }
-            this.docPnlHydroCheck.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden;
-            this.docPnlHydroCalcu.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden;
-            this.docPnlHydroParterList.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden;
-            this.docPnlUnMatchingList.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden;
-            this.docPnlMatchingList.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden;
-
-            this.xhsProjectSimulationUnMatchingListCtrl1.SetBindingData(_hydroInfo);
-            this.docPnlUnMatchingList.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Visible;
-            this.docPnlUnMatchingList.Height = 350;
-        }
-
-        //鏈尮閰嶅垪琛ㄧ偣鍑讳簨浠�
-        private async void xhsProjectSimulationUnMatchingListCtrl1_HydroClickEvent(Yw.Model.HydroParterInfo parter)
-        {
-            var allParterList = _hydroInfo.GetAllParters();
-            _parter = allParterList.Find(x => x.ID == parter.ID);
-            var elementIds = new List<string>() { _parter.Code };
-            await this.xhsProjectSimulationBimfaceCtrl1.ZoomAndSelectComponents(elementIds);
-            ShowProperty();
-        }
-
-        //鏈尮閰嶅垪琛ㄦ煡鐪嬫ā鍨�
-        private async void xhsProjectSimulationUnMatchingListCtrl1_ViewModelEvent(List<Yw.Model.HydroParterInfo> parters)
-        {
-            var codes = parters?.Select(x => x.Code).Distinct().ToList();
-            await this.xhsProjectSimulationBimfaceCtrl1.ZoomAndSelectComponents(codes);
-            _parter = null;
-            ShowProperty();
-        }
-
-
-        #endregion
 
         #region 淇濆瓨姘村姏淇℃伅
 
@@ -414,11 +389,6 @@
 
 
         #endregion
-
-        private void barBtnOpenView_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
-        {
-            SetBimfaceOpenColor();
-        }
 
         #region 涓氬姟鏂规硶
 
@@ -472,43 +442,16 @@
             }
         }
 
-        //璁剧疆Bimface杩炴帴棰滆壊
-        private async void SetBimfaceLinkColor()
-        {
-            if (_hydroInfo == null)
-            {
-                return;
-            }
-            List<string> elementIds = null;
-            if (_parter != null)
-            {
-                if (_parter is Yw.Model.HydroLinkInfo linker)
-                {
-                    elementIds = new List<string>() { linker.StartCode, linker.EndCode };
-                }
-            }
-            await this.xhsProjectSimulationBimfaceCtrl1.SetLinkComponentsColor(elementIds);
-        }
 
-        //璁剧疆Bimface Open 棰滆壊
-        private async void SetBimfaceOpenColor()
-        {
-            if (_hydroInfo == null)
-            {
-                return;
-            }
 
-            var elementIds = new List<string>();
-            var pumps = _hydroInfo.Pumps?.Where(x => x.LinkStatus == Yw.Hydro.PumpStatus.Open).ToList();
-            pumps?.ForEach(x => elementIds.Add(x.Code));
-            var valves = _hydroInfo.Valves?.Where(x => x.LinkStatus == Yw.Hydro.ValveStatus.Open).ToList();
-            valves?.ForEach(x => elementIds.Add(x.Code));
-            await this.xhsProjectSimulationBimfaceCtrl1.SetOpenComponentsColor(elementIds);
-        }
+
 
         #endregion
 
 
 
+
+
+
     }
 }
\ No newline at end of file
diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-simulation/06-simulation/XhsProjectSimulationCorePage.resx b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-simulation/06-simulation/XhsProjectSimulationCorePage.resx
index 1280f9b..e15645f 100644
--- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-simulation/06-simulation/XhsProjectSimulationCorePage.resx
+++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-simulation/06-simulation/XhsProjectSimulationCorePage.resx
@@ -262,7 +262,7 @@
         MC45LTItMnMwLjktMiwyLTJTMjYsMjIuOSwyNiwyNHoiIGNsYXNzPSJCbGFjayIgLz4NCjwvc3ZnPgs=
 </value>
   </data>
-  <data name="barBtnAllAutoMatching.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
+  <data name="barBtnAutoMatching.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
     <value>
         AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40
         LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
@@ -427,29 +427,13 @@
         L3N2Zz4L
 </value>
   </data>
-  <data name="barBtnOpenView.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
-    <value>
-        AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40
-        LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
-        dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAKMCAAAC77u/
-        PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
-        IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
-        MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
-        Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
-        MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsYWNre2ZpbGw6IzcyNzI3Mjt9Cgku
-        WWVsbG93e2ZpbGw6I0ZGQjExNTt9CgkuQmx1ZXtmaWxsOiMxMTc3RDc7fQoJLkdyZWVue2ZpbGw6IzAz
-        OUMyMzt9CgkuUmVke2ZpbGw6I0QxMUMxQzt9CgkuV2hpdGV7ZmlsbDojRkZGRkZGO30KCS5zdDB7b3Bh
-        Y2l0eTowLjc1O30KCS5zdDF7b3BhY2l0eTowLjU7fQoJLnN0MntvcGFjaXR5OjAuMjU7fQo8L3N0eWxl
-        Pg0KICA8ZyBpZD0iQ2hlY2tCb3giPg0KICAgIDxwYXRoIGQ9Ik0yNyw0SDVDNC41LDQsNCw0LjUsNCw1
-        djIyYzAsMC41LDAuNSwxLDEsMWgyMmMwLjUsMCwxLTAuNSwxLTFWNUMyOCw0LjUsMjcuNSw0LDI3LDR6
-        IE0xNCwyMmwtNi02bDItMmw0LDQgICBsOC04bDIsMkwxNCwyMnoiIGNsYXNzPSJHcmVlbiIgLz4NCiAg
-        PC9nPg0KPC9zdmc+Cw==
-</value>
-  </data>
   <metadata name="dockManager1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
     <value>179, 21</value>
   </metadata>
   <metadata name="svgImg32.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
     <value>45, 22</value>
   </metadata>
+  <metadata name="radialMenu1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>323, 21</value>
+  </metadata>
 </root>
\ No newline at end of file

--
Gitblit v1.9.3