| | |
| | | /// <summary> |
| | | /// 水力点击事件(包含左键和右键) |
| | | /// </summary> |
| | | public event Action<Yw.Model.HydroParterInfo> HydroClickEvent; |
| | | public event Action<Yw.Model.HydroVisualInfo> HydroClickEvent; |
| | | /// <summary> |
| | | /// 水力点击事件(仅左键) |
| | | /// </summary> |
| | | public event Action<Yw.Model.HydroParterInfo> HydroMouseLeftClickEvent; |
| | | public event Action<Yw.Model.HydroVisualInfo> HydroMouseLeftClickEvent; |
| | | /// <summary> |
| | | /// 加载完成事件 |
| | | /// </summary> |
| | |
| | | { |
| | | return; |
| | | } |
| | | var allParterList = hydroInfo.GetAllParters(); |
| | | var allParterList = hydroInfo.GetAllVisuals(); |
| | | var parter = allParterList?.Find(x => x.Code == obj.ObjectId); |
| | | this.HydroClickEvent.Invoke(parter); |
| | | } |
| | |
| | | { |
| | | return; |
| | | } |
| | | var allParterList = hydroInfo.GetAllParters(); |
| | | var allParterList = hydroInfo.GetAllVisuals(); |
| | | var parter = allParterList?.Find(x => x.Code == obj.ObjectId); |
| | | this.HydroMouseLeftClickEvent.Invoke(parter); |
| | | } |
| | |
| | | /// <summary> |
| | | /// 显示构件 |
| | | /// </summary> |
| | | /// <param name="elementIds">构件id列表</param> |
| | | /// <returns></returns> |
| | | public async Task ShowComponents(List<string> elementIds) |
| | | { |
| | | if (_bimfaceInteropContainer == null) |
| | |
| | | /// <summary> |
| | | /// 隐藏构件 |
| | | /// </summary> |
| | | /// <param name="elementIds">构件id列表</param> |
| | | /// <returns></returns> |
| | | public async Task HideComponents(List<string> elementIds) |
| | | { |
| | | if (_bimfaceInteropContainer == null) |
| | |
| | | /// <summary> |
| | | /// 显示所有构件 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public async Task ShowAllComponents() |
| | | { |
| | | if (_bimfaceInteropContainer == null) |
| | |
| | | /// <summary> |
| | | /// 缩放至选择构件 |
| | | /// </summary> |
| | | public async Task ZoomAndSelectComponents(List<string> elementIds) |
| | | public async Task ZoomAndSelectComponent(string elementId) |
| | | { |
| | | if (_bimfaceInteropContainer == null) |
| | | if (string.IsNullOrEmpty(elementId)) |
| | | { |
| | | return; |
| | | } |
| | | await _bimfaceInteropContainer.ZoomAndSelectComponents(new List<string>() { elementId }); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 缩放至选择构件 |
| | | /// </summary> |
| | | public async Task ZoomAndSelectComponents(List<string> elementIds) |
| | | { |
| | | await _bimfaceInteropContainer.ZoomAndSelectComponents(elementIds); |
| | | } |
| | | |
| | |
| | | |
| | | #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> |
| | | public async Task OverrideComponentsColor(List<string> elementIds, string color, double transparency) |
| | | { |
| | | if (_bimfaceInteropContainer == null) |
| | | await _bimfaceInteropContainer?.OverrideComponentsColor(elementIds, color, transparency); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 设置强调构件 |
| | | /// </summary> |
| | | public async Task OverrideComponentsColor(string elementId, string color, double transparency) |
| | | { |
| | | if (string.IsNullOrEmpty(elementId)) |
| | | { |
| | | return; |
| | | } |
| | | await _bimfaceInteropContainer.OverrideComponentsColor(elementIds, color, transparency); |
| | | await _bimfaceInteropContainer.OverrideComponentsColor(new List<string>() { elementId }, color, transparency); |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | /// </summary> |
| | | public async Task RestoreComponentsColor(List<string> elementIds) |
| | | { |
| | | if (_bimfaceInteropContainer == null) |
| | | await _bimfaceInteropContainer?.RestoreComponentsColor(elementIds); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 恢复构件颜色 |
| | | /// </summary> |
| | | public async Task RestoreComponentsColor(string elementId) |
| | | { |
| | | if (string.IsNullOrEmpty(elementId)) |
| | | { |
| | | return; |
| | | } |
| | | await _bimfaceInteropContainer.RestoreComponentsColor(elementIds); |
| | | await _bimfaceInteropContainer?.RestoreComponentsColor(new List<string>() { elementId }); |
| | | } |
| | | |
| | | #endregion |
| | |
| | | await _bimfaceInteropContainer?.ClearLogicCalcuCustomLabels(); |
| | | return; |
| | | } |
| | | var obj = new List<CustomLabel>(); |
| | | var obj = new List<LogicCalcuCustomLabel>(); |
| | | var allParterList = hydroInfo.GetAllParters(); |
| | | allParterList?.ForEach(x => |
| | | { |
| | | if (x is Yw.Model.HydroPumpInfo pump) |
| | | { |
| | | var hz = pump.RatedHz * pump.SpeedRatio; |
| | | var hz = Math.Round(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); |
| | | var pumpCustomLabel = new CustomLabel(); |
| | | var pumpCustomLabel = new LogicCalcuCustomLabel(); |
| | | pumpCustomLabel.Id = pump.Code; |
| | | pumpCustomLabel.Data = new List<CustomLabelItem>() |
| | | pumpCustomLabel.Distance = 10000; |
| | | pumpCustomLabel.Data = new List<LogicCalcuCustomLabelItem>() |
| | | { |
| | | new CustomLabelItem(){ Name="状态",Value=HydroLinkStatusHelper.GetStatusName(pump.LinkStatus),Unit=string.Empty}, |
| | | 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"}, |
| | | new LogicCalcuCustomLabelItem(){ Name="状态",Value=HydroLinkStatusHelper.GetStatusName(pump.LinkStatus),Unit=string.Empty}, |
| | | new LogicCalcuCustomLabelItem(){ Name="频率",Value=hz.ToString(),Unit=string.Empty}, |
| | | new LogicCalcuCustomLabelItem(){ Name="流量",Value=Math.Round(calcuPump.Flow,1).ToString(),Unit="m³/h"}, |
| | | new LogicCalcuCustomLabelItem(){ Name="进口压力",Value=Math.Round(calcuPumpStart.Head,4).ToString(),Unit="m"}, |
| | | new LogicCalcuCustomLabelItem(){ Name="出口压力",Value=Math.Round(calcuPumpEnd.Head,4).ToString(),Unit="m"}, |
| | | }; |
| | | obj.Add(pumpCustomLabel); |
| | | } |
| | | else if (x is Yw.Model.HydroEmitterInfo emitter) |
| | | { |
| | | var calcuEmitter = calcuResult.NodeList.Find(x => x.Id == emitter.Code); |
| | | var emitterCustomLabel = new CustomLabel(); |
| | | var emitterCustomLabel = new LogicCalcuCustomLabel(); |
| | | emitterCustomLabel.Id = emitter.Code; |
| | | emitterCustomLabel.Data = new List<CustomLabelItem>() |
| | | emitterCustomLabel.Distance = 10000; |
| | | emitterCustomLabel.Data = new List<LogicCalcuCustomLabelItem>() |
| | | { |
| | | new CustomLabelItem(){ Name="流量",Value=Math.Round(calcuEmitter.Demand,1).ToString(),Unit="m³/h"}, |
| | | new CustomLabelItem(){ Name="压力",Value=Math.Round(calcuEmitter.Head,4).ToString(),Unit="m"} |
| | | new LogicCalcuCustomLabelItem(){ Name="流量",Value=Math.Round(calcuEmitter.Demand,1).ToString(),Unit="m³/h"}, |
| | | new LogicCalcuCustomLabelItem(){ Name="压力",Value=Math.Round(calcuEmitter.Head,4).ToString(),Unit="m"} |
| | | }; |
| | | obj.Add(emitterCustomLabel); |
| | | } |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 更新业务标注引线标签 |
| | | /// </summary> |
| | | public async Task UpdateLogicMarkLeadLabel(LogicMarkLeadLabel obj) |
| | | { |
| | | await _bimfaceInteropContainer?.UpdateLogicMarkLeadLabel(obj); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 更新业务标注引线标签 |
| | | /// </summary> |
| | | public async Task UpdateLogicMarkLeadLabels(List<LogicMarkLeadLabel> obj) |
| | | { |
| | | await _bimfaceInteropContainer?.UpdateLogicMarkLeadLabels(obj); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 清除业务标注引线标签 |
| | | /// </summary> |
| | | public async Task ClearLogicMarkLeadLabels() |
| | |
| | | |
| | | #endregion |
| | | |
| | | #region 业务 |
| | | #region 业务水流动画 |
| | | |
| | | /// <summary> |
| | | /// 加载水流动画 |
| | | /// </summary> |
| | | public async Task LoadFlowEffect(LogicFlowEffect obj) |
| | | { |
| | | await _bimfaceInteropContainer?.LoadFlowEffect(obj); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 加载水流动画 |
| | | /// </summary> |
| | | public async Task LoadFlowEffect(List<LogicFlowEffect> obj) |
| | | { |
| | | await _bimfaceInteropContainer?.LoadFlowEffectList(obj); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 更新水流动画 |
| | | /// </summary> |
| | | public async Task UpdateFlowEffect(LogicFlowEffect obj) |
| | | { |
| | | await _bimfaceInteropContainer?.UpdateFlowEffect(obj); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 更新水流动画 |
| | | /// </summary> |
| | | public async Task UpdateFlowEffectList(List<LogicFlowEffect> obj) |
| | | { |
| | | await _bimfaceInteropContainer?.UpdateFlowEffectList(obj); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 卸载水流动画 |
| | | /// </summary> |
| | | public async Task UnloadFlowEffect() |
| | | { |
| | | await _bimfaceInteropContainer?.UnloadFlowEffect(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 通过Id卸载水流动画 |
| | | /// </summary> |
| | | public async Task UnloadFlowEffectById(string Id) |
| | | { |
| | | await _bimfaceInteropContainer?.UnloadFlowEffectById(Id); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region 连接构件颜色 |
| | | |
| | |
| | | |
| | | #endregion |
| | | |
| | | #region 设置Open构件颜色 |
| | | |
| | | private const string _openComponentColor = "#2E8B57"; |
| | | private const double _openComponentTransparency = 0.8; |
| | | private List<string> _openComponentIds = null;//Open构件id列表 |
| | | #region 业务监测点 |
| | | |
| | | /// <summary> |
| | | /// 设置Open构件颜色 |
| | | /// 设置业务监测点 |
| | | /// </summary> |
| | | public async Task SetOpenComponentsColor(List<string> elementIds) |
| | | public async Task SetLogicMonitors(List<LogicMonitor> obj) |
| | | { |
| | | 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); |
| | | await _bimfaceInteropContainer?.SetLogicMonitors(obj); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 清除业务监测点 |
| | | /// </summary> |
| | | public async Task ClearLogicMonitors() |
| | | { |
| | | await _bimfaceInteropContainer?.ClearLogicMonitors(); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | |
| | | |
| | | |
| | | #endregion |
| | | |
| | | |
| | | |
| | | } |
| | | } |