| | |
| | | global using Yw.EPAnet; |
| | | using DevExpress.XtraMap.Drawing; |
| | | using NetTaste; |
| | | using Org.BouncyCastle.Crypto.Engines; |
| | | |
| | | namespace HStation.WinFrmUI |
| | | { |
| | |
| | | //bimface控件 |
| | | private XhsProjectSimulationBimfaceCtrl _bimfaceCtrl = null; |
| | | |
| | | |
| | | |
| | | //设置Bimface连接颜色 |
| | | private async void SetBimfaceLinkColor() |
| | | { |
| | |
| | | { |
| | | return; |
| | | } |
| | | var elementIds = new List<string>(); |
| | | if (_parter != null) |
| | | { |
| | | if (_parter is Yw.Model.HydroLinkInfo linker) |
| | | if (_parter is Yw.Model.HydroLinkInfo link) |
| | | { |
| | | var allParterList = _hydroInfo.GetAllParters(); |
| | | var allLinkerList = _hydroInfo.GetAllLinks(); |
| | | var startParter = allParterList?.Find(x => x.Code == linker.StartCode); |
| | | await _bimfaceCtrl?.RestoreLinkComponentsColor(); |
| | | |
| | | var allVisualList = _hydroInfo.GetAllVisuals(); |
| | | var allLinkList = _hydroInfo.GetAllLinks(); |
| | | var startParter = allVisualList?.Find(x => x.Code == link.StartCode); |
| | | if (startParter != null) |
| | | { |
| | | var startElementIds = new List<string>(); |
| | | if (startParter.GetType() == typeof(Yw.Model.HydroJunctionInfo)) |
| | | { |
| | | var startLinkList = allLinkerList?.Where(x => x.StartCode == startParter.Code || x.EndCode == startParter.Code).ToList(); |
| | | if (startLinkList != null) |
| | | var startLinkList = allLinkList?.Where(x => x.StartCode == startParter.Code || x.EndCode == startParter.Code && x.Code != _parter.Code).ToList(); |
| | | if (startLinkList != null && startLinkList.Count > 0) |
| | | { |
| | | elementIds.AddRange(startLinkList.Select(x => x.Code).Where(x => x != _parter.Code)); |
| | | startElementIds.AddRange(startLinkList.Select(x => x.Code)); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | elementIds.Add(linker.StartCode); |
| | | startElementIds.Add(startParter.Code); |
| | | } |
| | | if (startElementIds.Count > 0) |
| | | { |
| | | await _bimfaceCtrl?.SetLinkStartComponentsColor(startElementIds); |
| | | } |
| | | } |
| | | var endParter = allParterList?.Find(x => x.Code == linker.EndCode); |
| | | var endParter = allVisualList?.Find(x => x.Code == link.EndCode); |
| | | if (endParter != null) |
| | | { |
| | | var endElementIds = new List<string>(); |
| | | if (endParter.GetType() == typeof(Yw.Model.HydroJunctionInfo)) |
| | | { |
| | | var endLinkList = allLinkerList?.Where(x => x.StartCode == endParter.Code || x.EndCode == endParter.Code).ToList(); |
| | | if (endLinkList != null) |
| | | var endLinkList = allLinkList?.Where(x => x.StartCode == endParter.Code || x.EndCode == endParter.Code && x.Code != _parter.Code).ToList(); |
| | | if (endLinkList != null && endLinkList.Count > 0) |
| | | { |
| | | elementIds.AddRange(endLinkList.Select(x => x.Code).Where(x => x != _parter.Code)); |
| | | endElementIds.AddRange(endLinkList.Select(x => x.Code)); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | elementIds.Add(linker.EndCode); |
| | | endElementIds.Add(endParter.Code); |
| | | } |
| | | if (endElementIds.Count > 0) |
| | | { |
| | | await _bimfaceCtrl?.SetLinkEndComponentsColor(endElementIds); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | await _bimfaceCtrl?.SetLinkComponentsColor(elementIds); |
| | | } |
| | | |
| | | #endregion |