From a990956c484b788bde0f7eae0202d8303d76a106 Mon Sep 17 00:00:00 2001 From: lixiaojun <1287241240@qq.com> Date: 星期一, 26 八月 2024 14:14:28 +0800 Subject: [PATCH] bimface增加半透明与取消半透明功能 --- WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-scheme/03-hydraulic-simulation/XhsSchemeHydraulicSimulationPage.cs | 182 +++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 180 insertions(+), 2 deletions(-) diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-scheme/03-hydraulic-simulation/XhsSchemeHydraulicSimulationPage.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-scheme/03-hydraulic-simulation/XhsSchemeHydraulicSimulationPage.cs index 26e6491..f13d4c3 100644 --- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-scheme/03-hydraulic-simulation/XhsSchemeHydraulicSimulationPage.cs +++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-scheme/03-hydraulic-simulation/XhsSchemeHydraulicSimulationPage.cs @@ -1,12 +1,47 @@ -锘縩amespace HStation.WinFrmUI +锘縰sing DevExpress.Xpo.Helpers; +using DevExpress.XtraEditors; +using Yw.DAL.Basic; +using Yw.EPAnet; +using Yw.WinFrmUI.Q3d; + +namespace HStation.WinFrmUI { public partial class XhsSchemeHydraulicSimulationPage : DocumentPage { public XhsSchemeHydraulicSimulationPage() { - InitializeComponent(); + InitializeComponent(); + this.xhsProjectHydroQ3dCtrl1.ClickParterEvent += XhsProjectHydroQ3dCtrl1_ClickParterEvent; + } + + + private long _projectId; + private Yw.Model.HydroModelInfo _hydro = null; + private Yw.Model.HydroParterInfo _parter = null; + private List<CalcuParter> _allCalcuParterList = null; + + + /// <summary> + /// + /// </summary> + public async Task SetBindingData(long projectId) + { + _projectId = projectId; + var projectSite = await new HStation.BLL.XhsProjectSiteStd().GetDefaultByProjectID(projectId); + if (projectSite == null) + { + return; + } + var hydroRelation = await new Yw.BLL.HydroModelRelation().GetDefaultByObjectTypeAndObjectIDOfPurpose(HStation.Xhs.DataType.XhsProjectSite, projectSite.ID, HStation.Xhs.Purpose.Simulation); + if (hydroRelation == null) + { + return; + } + _hydro = await new Yw.BLL.HydroModelInfo().GetByID(hydroRelation.ModelID); + this.xhsProjectSimulationPropertyCtrl1.SetBindingData(_hydro); + } /// <summary> /// 鍒濆鍖栨暟鎹� @@ -14,6 +49,149 @@ public override void InitialDataSource() { base.InitialDataSource(); + this.xhsProjectHydroQ3dCtrl1.SetBindingData(_hydro); + + } + + //bimface 鏋勪欢鐐瑰嚮 + private void XhsProjectHydroQ3dCtrl1_ClickParterEvent(string objectId) + { + if (_hydro == null) + { + _parter = null; + return; + } + var allParterList = _hydro.GetAllParters(); + _parter = allParterList.Find(x => x.Code == objectId); + this.xhsProjectSimulationPropertyCtrl1.SelectParter(_parter, allParterList); + if (_parter != null) + { + if (_allCalcuParterList != null && _allCalcuParterList.Count > 0) + { + var calcuParter = _allCalcuParterList.Find(x => x.Id == _parter.Code); + if (calcuParter != null) + { + IHydroCalcuProperty calcuProperty = null; + if (calcuParter is CalcuNode calcuNode) + { + var calcuNodeProperty = new Yw.WinFrmUI.HydroCalcuNodeProperty(); + calcuNodeProperty.ID = _parter.ID; + calcuNodeProperty.CalcuPress = calcuNode.Press; + calcuNodeProperty.CalcuDemand = calcuNode.Demand; + calcuNodeProperty.CalcuHead = calcuNode.Head; + calcuProperty = calcuNodeProperty; + } + else if (calcuParter is CalcuLink calcuLink) + { + var calcuLinkProperty = new Yw.WinFrmUI.HydroCalcuLinkProperty(); + calcuLinkProperty.ID = _parter.ID; + calcuLinkProperty.CalcuHeadLoss = calcuLink.Headloss; + calcuLinkProperty.CalcuFlow = calcuLink.Flow; + calcuLinkProperty.CalcuVelocity = calcuLink.Velocity; + calcuProperty = calcuLinkProperty; + } + + if (calcuProperty != null) + { + this.xhsProjectSimulationPropertyCtrl1.UpdateCalcuProperty(calcuProperty); + } + } + } + } + + } + + private void barBtnCheck_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + { + if (_hydro == null) + { + return; + } + var netWork = Yw.Hydro.ParseHelper.ToNetwork(_hydro); + var result = netWork.Check(); + XtraMessageBox.Show(JsonHelper.Object2FormatJson(result)); + } + + private void barBtnCalcu_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + { + if (_hydro == null) + { + return; + } + var netWork = Yw.Hydro.ParseHelper.ToNetwork(_hydro); + var result = netWork.Calcu(); + if (!result.Succeed) + { + XtraMessageBox.Show(JsonHelper.Object2FormatJson(result)); + return; + } + _allCalcuParterList = result.GetParterList(); + TipFormHelper.ShowSucceed("璁$畻鎴愬姛"); + if (_parter != null) + { + var calcuParter = _allCalcuParterList.Find(x => x.Id == _parter.Code); + if (calcuParter != null) + { + IHydroCalcuProperty calcuProperty = null; + if (calcuParter is CalcuNode calcuNode) + { + var calcuNodeProperty = new Yw.WinFrmUI.HydroCalcuNodeProperty(); + calcuNodeProperty.ID = _parter.ID; + calcuNodeProperty.CalcuPress = calcuNode.Press; + calcuNodeProperty.CalcuDemand = calcuNode.Demand; + calcuNodeProperty.CalcuHead = calcuNode.Head; + calcuProperty = calcuNodeProperty; + } + else if (calcuParter is CalcuLink calcuLink) + { + var calcuLinkProperty = new Yw.WinFrmUI.HydroCalcuLinkProperty(); + calcuLinkProperty.ID = _parter.ID; + calcuLinkProperty.CalcuHeadLoss = calcuLink.Headloss; + calcuLinkProperty.CalcuFlow = calcuLink.Flow; + calcuLinkProperty.CalcuVelocity = calcuLink.Velocity; + calcuProperty = calcuLinkProperty; + } + + if (calcuProperty != null) + { + this.xhsProjectSimulationPropertyCtrl1.UpdateCalcuProperty(calcuProperty); + } + } + } + } + + private void barBtnParter_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + { + var dlg = new HydroParterListDlg(); + dlg.SetBindingData(_hydro); + dlg.Show(); + } + + private void barBtnInp_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + { + var fileName = Yw.WinFrmUI.FileDialogHelper.SaveInp("瀵煎嚭Inp鏂囦欢"); + if (string.IsNullOrEmpty(fileName)) + { + return; + } + var netWork = Yw.Hydro.ParseHelper.ToNetwork(_hydro); + var result = netWork.ToInpString(); + File.WriteAllText(fileName, result); + TipFormHelper.ShowSucceed("瀵煎嚭鎴愬姛"); + } + + private async void barBtnSave_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + { + if (_hydro == null) + { + return; + } + var bll = new Yw.BLL.HydroModelInfo(); + var result = await bll.Save(_hydro); + if (result > 0) + { + Yw.WinFrmUI.TipFormHelper.ShowSucceed("淇濆瓨鎴愬姛"); + } } } } -- Gitblit v1.9.3