From 03da721341232b6054d5d25f94a3bd1014771805 Mon Sep 17 00:00:00 2001 From: lixiaojun <1287241240@qq.com> Date: 星期一, 23 九月 2024 13:19:01 +0800 Subject: [PATCH] 增加bimface 定位 --- WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-simulation/02-bimface/XhsProjectSimulationBimfaceCtrl.cs | 33 ++++++++++ WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-simulation/06-simulation/XhsProjectSimulationCorePage.cs | 42 ++++++++----- WinFrmUI/Yw.WinFrmUI.Bimface.Core/01-interop/01-interop3d/IBimfaceInterop3dContainer.cs | 30 +++++++++ WinFrmUI/Yw.WinFrmUI.Bimface.Core/01-interop/01-interop3d/BimfaceInterop3dContainer.cs | 60 ++++++++++++++++++-- 4 files changed, 140 insertions(+), 25 deletions(-) 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 e913b65..c200425 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 @@ -1,4 +1,7 @@ -锘縩amespace HStation.WinFrmUI +锘縰sing DevExpress.Office.Utils; +using DevExpress.Xpo.Helpers; + +namespace HStation.WinFrmUI { public partial class XhsProjectSimulationBimfaceCtrl : DevExpress.XtraEditors.XtraUserControl { @@ -175,5 +178,33 @@ #endregion + #region 缂╂斁 + + /// <summary> + /// 缂╂斁鑷虫瀯浠� + /// </summary> + public async Task ZoomToComponent(string elementId) + { + await this.bimfaceInterop3dContainer1.ZoomToComponent(elementId); + } + + /// <summary> + /// 缂╂斁鑷抽�夋嫨鏋勪欢 + /// </summary> + public async Task ZoomToSelectedComponents() + { + await this.bimfaceInterop3dContainer1.ZoomToSelectedComponents(); + } + + /// <summary> + /// 缂╂斁鑷抽�夋嫨鏋勪欢 + /// </summary> + public async Task ZoomAndSelectComponents(List<string> elementIds) + { + await this.bimfaceInterop3dContainer1.ZoomAndSelectComponents(elementIds); + } + + #endregion + } } 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 8767e14..e717e38 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 @@ -190,22 +190,7 @@ TipFormHelper.ShowSucceed("瀵煎嚭鎴愬姛"); } - //鏈尮閰嶅垪琛� - 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.xhsProjectSimulationUnMatchingListCtrl1.SetBindingData(_hydroInfo); - this.docPnlUnMatchingList.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Visible; - this.docPnlUnMatchingList.Height = 350; - } //bimface 鏋勪欢鐐瑰嚮 private void xhsProjectSimulationBimfaceCtrl1_ClickParterEvent(string objectId) @@ -408,12 +393,33 @@ ShowProperty(); } + #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); - await this.xhsProjectSimulationBimfaceCtrl1.SetSelectedComponents(new List<string>() { _parter.Code }); + var elementIds = new List<string>() { _parter.Code }; + await this.xhsProjectSimulationBimfaceCtrl1.ZoomAndSelectComponents(elementIds); ShowProperty(); } @@ -421,11 +427,13 @@ private async void XhsProjectSimulationUnMatchingListCtrl1_ViewModelEvent(List<Yw.Model.HydroParterInfo> parters) { var codes = parters?.Select(x => x.Code).Distinct().ToList(); - await this.xhsProjectSimulationBimfaceCtrl1.AddSelectedComponents(codes); + await this.xhsProjectSimulationBimfaceCtrl1.ZoomAndSelectComponents(codes); _parter = null; ShowProperty(); } + #endregion + } } \ No newline at end of file diff --git a/WinFrmUI/Yw.WinFrmUI.Bimface.Core/01-interop/01-interop3d/BimfaceInterop3dContainer.cs b/WinFrmUI/Yw.WinFrmUI.Bimface.Core/01-interop/01-interop3d/BimfaceInterop3dContainer.cs index cac57ce..796376b 100644 --- a/WinFrmUI/Yw.WinFrmUI.Bimface.Core/01-interop/01-interop3d/BimfaceInterop3dContainer.cs +++ b/WinFrmUI/Yw.WinFrmUI.Bimface.Core/01-interop/01-interop3d/BimfaceInterop3dContainer.cs @@ -1,9 +1,4 @@ -锘� - -using DevExpress.CodeParser; -using DevExpress.XtraDiagram.Base; - -namespace Yw.WinFrmUI +锘縩amespace Yw.WinFrmUI { public partial class BimfaceInterop3dContainer : UserControl, IBimfaceInterop3dContainer { @@ -291,6 +286,59 @@ await this.webViewControl1.EvaluateScriptAsync("clearSelectedComponents()"); } + + #endregion + + #region 缂╂斁 + + /// <summary> + /// 缂╂斁鑷冲寘鍥寸洅 + /// </summary> + public async Task ZoomToBoundingBox(BoundingBox boundingbox) + { + if (!_isViewInitialized) + { + return; + } + await this.webViewControl1.EvaluateScriptAsync("zoomToBoundingBox", boundingbox); + } + + /// <summary> + /// 缂╂斁鑷虫瀯浠� + /// </summary> + public async Task ZoomToComponent(string id) + { + if (!_isViewInitialized) + { + return; + } + await this.webViewControl1.EvaluateScriptAsync("zoomToComponent", id); + } + + /// <summary> + /// 缂╂斁鑷抽�夋嫨鐨勬瀯浠� + /// </summary> + public async Task ZoomToSelectedComponents() + { + if (!_isViewInitialized) + { + return; + } + await this.webViewControl1.EvaluateScriptAsync("zoomToSelectedComponents()"); + } + + /// <summary> + /// 缂╂斁骞堕�夋嫨鏋勪欢 + /// </summary> + public async Task ZoomAndSelectComponents(List<string> ids) + { + if (!_isViewInitialized) + { + return; + } + await this.webViewControl1.EvaluateScriptAsync("zoomAndSelectComponents", ids); + } + #endregion } } diff --git a/WinFrmUI/Yw.WinFrmUI.Bimface.Core/01-interop/01-interop3d/IBimfaceInterop3dContainer.cs b/WinFrmUI/Yw.WinFrmUI.Bimface.Core/01-interop/01-interop3d/IBimfaceInterop3dContainer.cs index 59f7fbf..ea83489 100644 --- a/WinFrmUI/Yw.WinFrmUI.Bimface.Core/01-interop/01-interop3d/IBimfaceInterop3dContainer.cs +++ b/WinFrmUI/Yw.WinFrmUI.Bimface.Core/01-interop/01-interop3d/IBimfaceInterop3dContainer.cs @@ -1,4 +1,8 @@ -锘縩amespace Yw.WinFrmUI +锘縰sing DevExpress.Xpo.Helpers; +using DevExpress.XtraDiagram.Base; +using Yw.WinFrmUI.Bimface; + +namespace Yw.WinFrmUI { /// <summary> /// @@ -89,5 +93,29 @@ #endregion + #region 缂╂斁 + + /// <summary> + /// 缂╂斁鍒板寘鍥寸洅 + /// </summary> + Task ZoomToBoundingBox(BoundingBox boundingbox); + + /// <summary> + /// 缂╂斁鍒板崟涓瀯浠� + /// </summary> + Task ZoomToComponent(string id); + + /// <summary> + /// 缂╂斁鍒伴�変腑鏋勪欢 + /// </summary> + Task ZoomToSelectedComponents(); + + /// <summary> + /// 缂╂斁骞堕�変腑澶氫釜鏋勪欢 + /// </summary> + Task ZoomAndSelectComponents(List<string> ids); + + #endregion + } } -- Gitblit v1.9.3