| | |
| | | using Yw.WinFrmUI.Bimface; |
| | | using DevExpress.Xpo.Helpers; |
| | | using Yw.WinFrmUI.Bimface; |
| | | |
| | | namespace HStation.WinFrmUI |
| | | { |
| | |
| | | |
| | | #region 强调构件 |
| | | |
| | | private const string _blinkColor = "#32D3A6";//强调构件颜色 |
| | | private const double _blinkTransparency = 0.8d; //强调构件透明度 |
| | | |
| | | /// <summary> |
| | | /// 设置强调构件 |
| | | /// </summary> |
| | | public async Task SetBlinkComponents(List<string> elementIds, string color, double transparency) |
| | | { |
| | | if (_bimfaceInteropContainer == null) |
| | | { |
| | | return; |
| | | } |
| | | await _bimfaceInteropContainer.SetBlinkComponents(elementIds, color, transparency); |
| | | await _bimfaceInteropContainer?.SetBlinkComponents(elementIds, color, transparency); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 设置强调构件 |
| | | /// </summary> |
| | | public async Task SetBlinkComponents(List<string> elementIds) |
| | | { |
| | | await _bimfaceInteropContainer?.SetBlinkComponents(elementIds, _blinkColor, _blinkTransparency); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 清除强调构件 |
| | | /// </summary> |
| | | public async Task SetBlinkComponents() |
| | | public async Task ClearBlinkComponents() |
| | | { |
| | | if (_bimfaceInteropContainer == null) |
| | | { |
| | | return; |
| | | } |
| | | await _bimfaceInteropContainer.ClearBlinkComponents(); |
| | | await _bimfaceInteropContainer?.ClearBlinkComponents(); |
| | | } |
| | | |
| | | #endregion |
| | |
| | | /// <summary> |
| | | /// 恢复构件颜色 |
| | | /// </summary> |
| | | public async Task SetBlinkComponents(List<string> elementIds) |
| | | public async Task RestoreComponentsColor(List<string> elementIds) |
| | | { |
| | | if (_bimfaceInteropContainer == null) |
| | | { |
| | |
| | | |
| | | #endregion |
| | | |
| | | #region 自定义标签 |
| | | #region 业务计算自定义标签 |
| | | |
| | | /// <summary> |
| | | /// 设置自定义标签 |
| | | /// 显示业务计算自定义标签 |
| | | /// </summary> |
| | | public async Task SetCustomLabels(List<CustomLabel> obj) |
| | | { |
| | | if (_bimfaceInteropContainer == null) |
| | | { |
| | | return; |
| | | } |
| | | await _bimfaceInteropContainer.SetCustomLabels(obj); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 清除自定义标签 |
| | | /// </summary> |
| | | public async Task ClearCustomLabels() |
| | | { |
| | | if (_bimfaceInteropContainer == null) |
| | | { |
| | | return; |
| | | } |
| | | await _bimfaceInteropContainer.ClearCustomLabels(); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region 业务 |
| | | |
| | | #region 连接构件颜色 |
| | | |
| | | private const string _linkComponentColor = "#008B00"; |
| | | private const double _linkComponentTransparency = 0.8; |
| | | private List<string> _linkComponentIds = null;//连接构件id列表 |
| | | |
| | | /// <summary> |
| | | /// 设置连接构件颜色 |
| | | /// </summary> |
| | | public async Task SetLinkComponentsColor(List<string> elementIds) |
| | | { |
| | | if (_linkComponentIds != null && _linkComponentIds.Count > 0) |
| | | { |
| | | await _bimfaceInteropContainer.RestoreComponentsColor(_linkComponentIds); |
| | | } |
| | | _linkComponentIds = elementIds; |
| | | if (elementIds == null || elementIds.Count < 1) |
| | | { |
| | | return; |
| | | } |
| | | if (_bimfaceInteropContainer == null) |
| | | { |
| | | return; |
| | | } |
| | | await _bimfaceInteropContainer.OverrideComponentsColor(elementIds, _linkComponentColor, _linkComponentTransparency); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region 设置Open构件颜色 |
| | | |
| | | private const string _openComponentColor = "#2E8B57"; |
| | | private const double _openComponentTransparency = 0.8; |
| | | private List<string> _openComponentIds = null;//Open构件id列表 |
| | | |
| | | /// <summary> |
| | | /// 设置Open构件颜色 |
| | | /// </summary> |
| | | public async Task SetOpenComponentsColor(List<string> elementIds) |
| | | { |
| | | if (_openComponentIds != null && _openComponentIds.Count > 0) |
| | | { |
| | | await _bimfaceInteropContainer.RestoreComponentsColor(_openComponentIds); |
| | | } |
| | | _openComponentIds = elementIds; |
| | | if (elementIds == null || elementIds.Count < 1) |
| | | { |
| | | return; |
| | | } |
| | | if (_bimfaceInteropContainer == null) |
| | | { |
| | | return; |
| | | } |
| | | await _bimfaceInteropContainer.OverrideComponentsColor(elementIds, _openComponentColor, _openComponentTransparency); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region 自定义标签 |
| | | |
| | | /// <summary> |
| | | /// 显示计算自定义标签 |
| | | /// </summary> |
| | | public async Task ShowCalcuCustomLabels(CalcuResult calcuResult) |
| | | public async Task SetLogicCalcuCustomLabels(CalcuResult calcuResult) |
| | | { |
| | | var hydroInfo = _hydroInfoFunc?.Invoke(); |
| | | if (hydroInfo == null) |
| | |
| | | } |
| | | if (!calcuResult.Succeed) |
| | | { |
| | | await _bimfaceInteropContainer.ClearCustomLabels(); |
| | | await _bimfaceInteropContainer?.ClearLogicCalcuCustomLabels(); |
| | | return; |
| | | } |
| | | var obj = new List<CustomLabel>(); |
| | |
| | | { |
| | | if (x is Yw.Model.HydroPumpInfo pump) |
| | | { |
| | | double? speed = pump.RatedN; |
| | | if (speed.HasValue) |
| | | { |
| | | if (pump.SpeedRatio.HasValue) |
| | | { |
| | | speed = speed.Value * pump.SpeedRatio.Value; |
| | | } |
| | | } |
| | | var hz = pump.RatedHz * pump.SpeedRatio; |
| | | var calcuPump = calcuResult.LinkList.Find(x => x.Id == pump.Code); |
| | | var calcuPumpStart = calcuResult.NodeList.Find(x => x.Id == pump.StartCode); |
| | | var calcuPumpEnd = calcuResult.NodeList.Find(x => x.Id == pump.EndCode); |
| | |
| | | pumpCustomLabel.Data = new List<CustomLabelItem>() |
| | | { |
| | | new CustomLabelItem(){ Name="状态",Value=HydroLinkStatusHelper.GetStatusName(pump.LinkStatus),Unit=string.Empty}, |
| | | new CustomLabelItem(){ Name="转速",Value=speed?.ToString(),Unit="r/min"}, |
| | | new CustomLabelItem(){ Name="频率",Value=hz.ToString(),Unit=string.Empty}, |
| | | new CustomLabelItem(){ Name="流量",Value=Math.Round(calcuPump.Flow,1).ToString(),Unit="m³/h"}, |
| | | new CustomLabelItem(){ Name="进口压力",Value=Math.Round(calcuPumpStart.Head,4).ToString(),Unit="m"}, |
| | | new CustomLabelItem(){ Name="出口压力",Value=Math.Round(calcuPumpEnd.Head,4).ToString(),Unit="m"}, |
| | |
| | | obj.Add(emitterCustomLabel); |
| | | } |
| | | }); |
| | | if (_bimfaceInteropContainer == null) |
| | | { |
| | | return; |
| | | } |
| | | await _bimfaceInteropContainer.SetCustomLabels(obj); |
| | | await _bimfaceInteropContainer?.SetLogicCalcuCustomLabels(obj); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 清除业务计算自定义标签 |
| | | /// </summary> |
| | | public async Task ClearLogicCalcuCustomLabels() |
| | | { |
| | | await _bimfaceInteropContainer?.ClearLogicCalcuCustomLabels(); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region 业务标注引线标签 |
| | | |
| | | /// <summary> |
| | | /// 设置业务标注引线标签 |
| | | /// </summary> |
| | | public async Task SetLogicMarkLeadLabels(List<LogicMarkLeadLabel> obj) |
| | | { |
| | | await _bimfaceInteropContainer?.SetLogicMarkLeadLabels(obj); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 清除业务标注引线标签 |
| | | /// </summary> |
| | | public async Task ClearLogicMarkLeadLabels() |
| | | { |
| | | await _bimfaceInteropContainer?.ClearLogicMarkLeadLabels(); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region 连接构件颜色 |
| | | |
| | | private const string _linkComponentColor = "#008B00";//连接构件颜色 |
| | | private const string _linkStartComponentColor = "#094EF7";//连接开始构件颜色 |
| | | private const string _linkEndComponentColor = "#ECBF08";//连接结束构件颜色 |
| | | private const double _linkComponentTransparency = 0.8; |
| | | private List<string> _linkComponentIds = null;//连接构件id列表 |
| | | |
| | | /// <summary> |
| | | /// 设置连接构件颜色 |
| | | /// </summary> |
| | | public async Task SetLinkComponentsColor(List<string> elementIds) |
| | | { |
| | | await RestoreLinkComponentsColor(); |
| | | _linkComponentIds = elementIds; |
| | | if (_linkComponentIds == null || _linkComponentIds.Count < 1) |
| | | { |
| | | return; |
| | | } |
| | | await _bimfaceInteropContainer?.OverrideComponentsColor(_linkComponentIds, _linkComponentColor, _linkComponentTransparency); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 恢复连接构件颜色 |
| | | /// </summary> |
| | | public async Task RestoreLinkComponentsColor() |
| | | { |
| | | if (_linkComponentIds == null || _linkComponentIds.Count < 1) |
| | | { |
| | | return; |
| | | } |
| | | await _bimfaceInteropContainer?.RestoreComponentsColor(_linkComponentIds); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 设置连接开始构件颜色 |
| | | /// </summary> |
| | | public async Task SetLinkStartComponentsColor(List<string> elementIds) |
| | | { |
| | | if (elementIds == null || elementIds.Count < 1) |
| | | { |
| | | return; |
| | | } |
| | | if (_linkComponentIds == null) |
| | | { |
| | | _linkComponentIds = new List<string>(); |
| | | } |
| | | _linkComponentIds.AddRange(elementIds); |
| | | await _bimfaceInteropContainer?.OverrideComponentsColor(elementIds, _linkStartComponentColor, _linkComponentTransparency); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 设置连接结束构件颜色 |
| | | /// </summary> |
| | | public async Task SetLinkEndComponentsColor(List<string> elementIds) |
| | | { |
| | | if (elementIds == null || elementIds.Count < 1) |
| | | { |
| | | return; |
| | | } |
| | | if (_linkComponentIds == null) |
| | | { |
| | | _linkComponentIds = new List<string>(); |
| | | } |
| | | _linkComponentIds.AddRange(elementIds); |
| | | await _bimfaceInteropContainer?.OverrideComponentsColor(elementIds, _linkEndComponentColor, _linkComponentTransparency); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | |