lixiaojun
2025-04-09 9aa8106d88fc3070498493e2819922f7ac31746e
增加BIMFACE水流动画效果
已删除21个文件
已重命名14个文件
已复制1个文件
已修改31个文件
已添加7个文件
3668 ■■■■ 文件已修改
Desktop/HStation.Desktop.Xhs.Core/HStation.Desktop.Xhs.Core.csproj.user 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Desktop/HStation.Desktop.Xhs.Core/MainForm.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Desktop/HStation.Desktop.Xhs.Core/Properties/PublishProfiles/FolderProfile.pubxml.user 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Entry/HStation.Entry.Xhs.Core/HStation.Entry.Xhs.Core.csproj 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
HStation.Xhs.Core.sln 105 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Hydro/HStation.Hydro.Core/HStation.Hydro.Core.csproj 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Hydro/Yw.Hydro.Core/Yw.Hydro.Core.csproj 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Hydro.Core/00-core/HydroQ3dTransferHelper.cs 153 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Hydro.Core/00-core/HydroQ3dViewPage.Designer.cs 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Hydro.Core/00-core/HydroQ3dViewPage.cs 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Hydro.Core/00-core/HydroQ3dViewPage.resx 145 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Hydro.Core/01-l3d2/HydroL3d2TransferHelper.cs 94 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Hydro.Core/01-l3d2/HydroL3d2ViewPage.Designer.cs 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Hydro.Core/01-l3d2/HydroL3d2ViewPage.cs 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Hydro.Core/01-l3d2/HydroL3d2ViewPage.resx 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Hydro.Core/01-model/HydroModelMgrPage.Designer.cs 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Hydro.Core/01-model/HydroModelMgrPage.cs 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Hydro.Core/HStation.WinFrmUI.Hydro.Core.csproj 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Hydro.Core/HStation.WinFrmUI.Hydro.Core.csproj.user 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/03-mgr/XhsProjectMgrPage.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/04-l3d2/XhsProjectL3d2ViewPage.Designer.cs 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/04-l3d2/XhsProjectL3d2ViewPage.cs 33 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/04-l3d2/XhsProjectL3d2ViewPage.resx 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/04-q3d/XhsProjectQ3dViewPage.Designer.cs 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/04-q3d/XhsProjectQ3dViewPage.resx 145 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/00-core/01-flow-effect/ISimulationFlowEffectView.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/00-core/01-flow-effect/SimulationFlowEffectHelper.cs 324 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/00-core/04-monitor/01-monitor/SimulationMonitorHelper.cs 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/00-core/04-monitor/02-value/SimulationMonitorValueHelper.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/00-core/07-grading/SimulationGradingHelper.cs 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/01-property/SimulationPropertyCtrl.cs 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/02-bimface/SimulationBimfaceCtrl.cs 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/03-q3d/XhsProjectSimulationL3d2Ctrl.Designer.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/03-q3d/XhsProjectSimulationL3d2Ctrl.cs 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/03-q3d/XhsProjectSimulationL3d2Ctrl.resx 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/03-q3d/XhsProjectSimulationQ3dCtrl.cs 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.Designer.cs 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.cs 93 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.resx 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/HStation.WinFrmUI.Xhs.Core.csproj 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/HStation.WinFrmUI.Xhs.Core.csproj.user 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Bimface.Core/00-core/05-logic-flow-effect/LogicFlowEffect.cs 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Bimface.Core/01-interop/01-interop3d/BimfaceInterop3dContainer.cs 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Bimface.Core/bimface/js/LogicFlowEffect.js 141 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Core/06-document/DocumentPage.cs 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/00-core/02-transfer/HydroL2dTransferHelper.cs 241 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/00-core/02-transfer/HydroQ3dTransferHelper.cs 257 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/00-core/02-transfer/HydroW3dTransferHelper.cs 332 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/00-core/03-helper/HydroFlowDirectionHelper.cs 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/00-core/04-extensions/DictionaryExtensions.cs 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/00-core/04-extensions/HydroGradingVmoExtensiongs.cs 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/00-core/04-extensions/HydroModelInfoExtensions.cs 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/00-core/04-extensions/HydroMonitorValueExtensions.cs 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/00-core/04-extensions/HydroParterInfoExtensions.cs 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/00-core/05-svg/HydroMainSvgImageHelper.cs 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/00-core/05-svg/HydroMonitorSvgImageHelper.cs 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/00-core/06-function/HydroFunctionHelper.cs 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/02-model/HydroModelMgrPage.cs 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/04-viewmodel/02-visual/HydroVisualViewModel.cs 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/04-viewmodel/05-attribute/HydroFlowDirectionProAttribute.cs 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/04-viewmodel/06-converter/HydroFlowDirectionConverter.cs 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/05-property/HydroVisualPropertyCtrl.cs 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/99-view/01-q3d/HydroQ3dViewPage.Designer.cs 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/99-view/01-q3d/HydroQ3dViewPage.cs 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/99-view/01-q3d/HydroQ3dViewPage.resx 145 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/99-view/02-l2d/HydroL2dViewPage.Designer.cs 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/99-view/02-l2d/HydroL2dViewPage.cs 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/99-view/02-l2d/HydroL2dViewPage.resx 120 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/99-view/03-l3d/HydroL3dViewPage.Designer.cs 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/99-view/03-l3d/HydroL3dViewPage.cs 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/99-view/03-l3d/HydroL3dViewPage.resx 120 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/Yw.WinFrmUI.Hydro.Core.csproj 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/Yw.WinFrmUI.Hydro.Core.csproj.user 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/energy-analy/05-working/HydroEnergyAnalyWorkingListCtrl.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Desktop/HStation.Desktop.Xhs.Core/HStation.Desktop.Xhs.Core.csproj.user
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <_LastSelectedProfileId>D:\WorkData\git\HStation\XHS\Desktop\HStation.Desktop.Xhs.Core\Properties\PublishProfiles\FolderProfile.pubxml</_LastSelectedProfileId>
    <_LastSelectedProfileId>D:\WorkData\HStation\XHS\Desktop\HStation.Desktop.Xhs.Core\Properties\PublishProfiles\FolderProfile.pubxml</_LastSelectedProfileId>
  </PropertyGroup>
  <ItemGroup>
    <Compile Update="AutoUpdater\AutoUpdateConfirmDlg.cs">
Desktop/HStation.Desktop.Xhs.Core/MainForm.cs
@@ -1263,8 +1263,8 @@
                        };
                        if (!IsExistPage(guid, true))
                        {
                            var page = new HStation.WinFrmUI.HydroModelMgrPage();
                            CreatePage(page, guid);
                            //var page = new HStation.WinFrmUI.HydroModelMgrPage();
                            //CreatePage(page, guid);
                        }
                    }
                    break;
Desktop/HStation.Desktop.Xhs.Core/Properties/PublishProfiles/FolderProfile.pubxml.user
@@ -4,7 +4,7 @@
-->
<Project>
  <PropertyGroup>
    <History>True|2025-03-12T00:45:15.7015478Z;True|2025-03-11T22:15:02.8833947+08:00;True|2025-03-11T21:55:49.2273208+08:00;True|2025-03-11T18:27:12.8629670+08:00;True|2025-03-11T16:45:22.7703655+08:00;True|2025-03-02T15:44:29.0809925+08:00;True|2025-03-02T15:40:28.7846274+08:00;True|2025-03-02T15:39:46.2586998+08:00;True|2025-03-02T15:23:07.3152127+08:00;True|2025-03-02T15:22:53.8096029+08:00;True|2025-02-25T22:53:44.2646465+08:00;True|2025-02-15T17:09:50.6365222+08:00;True|2025-02-15T01:47:09.6027737+08:00;True|2025-02-10T13:32:35.7746635+08:00;True|2025-02-06T14:55:56.1351264+08:00;True|2025-01-25T12:27:20.2443551+08:00;True|2025-01-24T09:16:09.4525881+08:00;True|2025-01-23T14:29:01.1814366+08:00;True|2025-01-23T14:28:18.0513868+08:00;True|2025-01-23T13:53:07.5061161+08:00;True|2025-01-23T12:58:32.3093753+08:00;True|2025-01-23T12:58:02.8169460+08:00;True|2025-01-23T12:57:05.6740839+08:00;True|2025-01-23T11:07:51.4564403+08:00;True|2025-01-13T11:03:21.1732352+08:00;True|2024-10-21T12:02:00.7754536+08:00;False|2024-10-21T11:51:29.4414327+08:00;False|2024-10-21T11:50:51.8640100+08:00;False|2024-10-21T11:49:14.9169777+08:00;</History>
    <History>True|2025-04-06T04:08:35.7908283Z||;True|2025-03-12T08:45:15.7015478+08:00||;True|2025-03-11T22:15:02.8833947+08:00||;True|2025-03-11T21:55:49.2273208+08:00||;True|2025-03-11T18:27:12.8629670+08:00||;True|2025-03-11T16:45:22.7703655+08:00||;True|2025-03-02T15:44:29.0809925+08:00||;True|2025-03-02T15:40:28.7846274+08:00||;True|2025-03-02T15:39:46.2586998+08:00||;True|2025-03-02T15:23:07.3152127+08:00||;True|2025-03-02T15:22:53.8096029+08:00||;True|2025-02-25T22:53:44.2646465+08:00||;True|2025-02-15T17:09:50.6365222+08:00||;True|2025-02-15T01:47:09.6027737+08:00||;True|2025-02-10T13:32:35.7746635+08:00||;True|2025-02-06T14:55:56.1351264+08:00||;True|2025-01-25T12:27:20.2443551+08:00||;True|2025-01-24T09:16:09.4525881+08:00||;True|2025-01-23T14:29:01.1814366+08:00||;True|2025-01-23T14:28:18.0513868+08:00||;True|2025-01-23T13:53:07.5061161+08:00||;True|2025-01-23T12:58:32.3093753+08:00||;True|2025-01-23T12:58:02.8169460+08:00||;True|2025-01-23T12:57:05.6740839+08:00||;True|2025-01-23T11:07:51.4564403+08:00||;True|2025-01-13T11:03:21.1732352+08:00||;True|2024-10-21T12:02:00.7754536+08:00||;False|2024-10-21T11:51:29.4414327+08:00||;False|2024-10-21T11:50:51.8640100+08:00||;False|2024-10-21T11:49:14.9169777+08:00||;</History>
    <LastFailureDetails />
  </PropertyGroup>
</Project>
Entry/HStation.Entry.Xhs.Core/HStation.Entry.Xhs.Core.csproj
@@ -20,7 +20,7 @@
      <PackageReference Include="Yw.Application.Basic.Core" Version="3.3.3" />
      <PackageReference Include="Yw.Application.Bimface.Core" Version="3.2.0" />
      <PackageReference Include="Yw.Application.Dict.Core" Version="3.1.3" />
      <PackageReference Include="Yw.Application.Hydro.Core" Version="3.9.1" />
      <PackageReference Include="Yw.Application.Hydro.Core" Version="3.9.2" />
      <PackageReference Include="Yw.Application.Map.Core" Version="3.2.2" />
      <PackageReference Include="Yw.Application.Phart.Core" Version="3.3.1" />
      <PackageReference Include="Yw.Application.Unit.Core" Version="3.1.8" />
HStation.Xhs.Core.sln
@@ -63,8 +63,6 @@
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Yw.BIMFace.SDK.Core", "Component\Yw.BIMFace.SDK.Core\Yw.BIMFace.SDK.Core.csproj", "{D6D805ED-C848-4403-97AB-E86715B9E2DB}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Yw.WinFrmUI.Hydro.Q3d.Core", "WinFrmUI\Yw.WinFrmUI.Hydro.Q3d.Core\Yw.WinFrmUI.Hydro.Q3d.Core.csproj", "{454B8C89-EFF0-42E2-B569-C211F0168F5D}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HStation.WinFrmUI.Assets.Core", "WinFrmUI\HStation.WinFrmUI.Assets.Core\HStation.WinFrmUI.Assets.Core.csproj", "{2AC76D6E-7035-4FD0-84EA-E00BA7D9876B}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HStation.BLL.Assets.Core", "BLL\HStation.BLL.Assets.Core\HStation.BLL.Assets.Core.csproj", "{EC0D8314-B4AB-4FA6-A490-C34E5773C8AA}"
@@ -105,19 +103,13 @@
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HStation.Vmo.Xhs.Core", "Vmo\HStation.Vmo.Xhs.Core\HStation.Vmo.Xhs.Core.csproj", "{2F469712-C0AB-405C-BCA3-410612141D49}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Yw.WinFrmUI.Hydro.L2d.Core", "WinFrmUI\Yw.WinFrmUI.Hydro.L2d.Core\Yw.WinFrmUI.Hydro.L2d.Core.csproj", "{AE2775AE-3C2D-49CB-BD3C-2FF5D4AE5B53}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HStation.WinFrmUI.Auth.Core", "WinFrmUI\HStation.WinFrmUI.Auth.Core\HStation.WinFrmUI.Auth.Core.csproj", "{62B68CCE-1FDA-42EB-8BBC-2053EB0E04CA}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HStation.Application.Assets.Core", "Application\HStation.Application.Assets.Core\HStation.Application.Assets.Core.csproj", "{6BC4873C-FB0D-46F1-ADCD-C1FD96B29A5D}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HStation.WinFrmUI.Dict.Core", "WinFrmUI\HStation.WinFrmUI.Dict.Core\HStation.WinFrmUI.Dict.Core.csproj", "{0D096C38-89A7-4C18-A62D-74A70693DC9F}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Yw.WinFrmUI.Hydro.L3d.Core", "WinFrmUI\Yw.WinFrmUI.Hydro.L3d.Core\Yw.WinFrmUI.Hydro.L3d.Core.csproj", "{1201C5C6-8762-4168-B6D6-C658B6D654E7}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Yw.WinFrmUI.Unit.Core", "WinFrmUI\Yw.WinFrmUI.Unit.Core\Yw.WinFrmUI.Unit.Core.csproj", "{2274B96A-C41A-42B5-A4E7-1C0706DF5D48}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Yw.Vmo.Division.Core", "Vmo\Yw.Vmo.Division.Core\Yw.Vmo.Division.Core.csproj", "{D6AC90F8-0DF0-4AC2-B17A-6A02DB467347}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Yw.Service.Division.Core", "Service\Yw.Service.Division.Core\Yw.Service.Division.Core.csproj", "{893B060A-8576-497A-B573-53680A271E6F}"
EndProject
@@ -140,8 +132,6 @@
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Hstation.Dto.Core", "Dto\Hstation.Dto.Core\Hstation.Dto.Core.csproj", "{C0C9D757-5AA3-4590-9161-C4CE2700F822}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HStation.WinFrmUI.Basic.Core", "WinFrmUI\HStation.WinFrmUI.Basic.Core\HStation.WinFrmUI.Basic.Core.csproj", "{2A30EB54-38CA-44D4-BB11-3C2658568346}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Yw.WinFrmUI.Hydro.W3d.Core", "WinFrmUI\Yw.WinFrmUI.Hydro.W3d.Core\Yw.WinFrmUI.Hydro.W3d.Core.csproj", "{F0829321-2C4D-40F8-A729-47FA9428DC66}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HStation.ReportFile.SDK.Core", "Component\HStation.ReportFile.SDK.Core\HStation.ReportFile.SDK.Core.csproj", "{4C71B0A5-2F2A-4AE3-86BF-556E7F8EF97B}"
EndProject
@@ -526,24 +516,6 @@
        {D6D805ED-C848-4403-97AB-E86715B9E2DB}.Release|x64.Build.0 = Release|Any CPU
        {D6D805ED-C848-4403-97AB-E86715B9E2DB}.Release|x86.ActiveCfg = Release|Any CPU
        {D6D805ED-C848-4403-97AB-E86715B9E2DB}.Release|x86.Build.0 = Release|Any CPU
        {454B8C89-EFF0-42E2-B569-C211F0168F5D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {454B8C89-EFF0-42E2-B569-C211F0168F5D}.Debug|Any CPU.Build.0 = Debug|Any CPU
        {454B8C89-EFF0-42E2-B569-C211F0168F5D}.Debug|x64.ActiveCfg = Debug|Any CPU
        {454B8C89-EFF0-42E2-B569-C211F0168F5D}.Debug|x64.Build.0 = Debug|Any CPU
        {454B8C89-EFF0-42E2-B569-C211F0168F5D}.Debug|x86.ActiveCfg = Debug|Any CPU
        {454B8C89-EFF0-42E2-B569-C211F0168F5D}.Debug|x86.Build.0 = Debug|Any CPU
        {454B8C89-EFF0-42E2-B569-C211F0168F5D}.dll_test|Any CPU.ActiveCfg = Debug|Any CPU
        {454B8C89-EFF0-42E2-B569-C211F0168F5D}.dll_test|Any CPU.Build.0 = Debug|Any CPU
        {454B8C89-EFF0-42E2-B569-C211F0168F5D}.dll_test|x64.ActiveCfg = Debug|Any CPU
        {454B8C89-EFF0-42E2-B569-C211F0168F5D}.dll_test|x64.Build.0 = Debug|Any CPU
        {454B8C89-EFF0-42E2-B569-C211F0168F5D}.dll_test|x86.ActiveCfg = Debug|Any CPU
        {454B8C89-EFF0-42E2-B569-C211F0168F5D}.dll_test|x86.Build.0 = Debug|Any CPU
        {454B8C89-EFF0-42E2-B569-C211F0168F5D}.Release|Any CPU.ActiveCfg = Release|Any CPU
        {454B8C89-EFF0-42E2-B569-C211F0168F5D}.Release|Any CPU.Build.0 = Release|Any CPU
        {454B8C89-EFF0-42E2-B569-C211F0168F5D}.Release|x64.ActiveCfg = Release|Any CPU
        {454B8C89-EFF0-42E2-B569-C211F0168F5D}.Release|x64.Build.0 = Release|Any CPU
        {454B8C89-EFF0-42E2-B569-C211F0168F5D}.Release|x86.ActiveCfg = Release|Any CPU
        {454B8C89-EFF0-42E2-B569-C211F0168F5D}.Release|x86.Build.0 = Release|Any CPU
        {2AC76D6E-7035-4FD0-84EA-E00BA7D9876B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {2AC76D6E-7035-4FD0-84EA-E00BA7D9876B}.Debug|Any CPU.Build.0 = Debug|Any CPU
        {2AC76D6E-7035-4FD0-84EA-E00BA7D9876B}.Debug|x64.ActiveCfg = Debug|Any CPU
@@ -886,24 +858,6 @@
        {2F469712-C0AB-405C-BCA3-410612141D49}.Release|x64.Build.0 = Release|Any CPU
        {2F469712-C0AB-405C-BCA3-410612141D49}.Release|x86.ActiveCfg = Release|Any CPU
        {2F469712-C0AB-405C-BCA3-410612141D49}.Release|x86.Build.0 = Release|Any CPU
        {AE2775AE-3C2D-49CB-BD3C-2FF5D4AE5B53}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {AE2775AE-3C2D-49CB-BD3C-2FF5D4AE5B53}.Debug|Any CPU.Build.0 = Debug|Any CPU
        {AE2775AE-3C2D-49CB-BD3C-2FF5D4AE5B53}.Debug|x64.ActiveCfg = Debug|Any CPU
        {AE2775AE-3C2D-49CB-BD3C-2FF5D4AE5B53}.Debug|x64.Build.0 = Debug|Any CPU
        {AE2775AE-3C2D-49CB-BD3C-2FF5D4AE5B53}.Debug|x86.ActiveCfg = Debug|Any CPU
        {AE2775AE-3C2D-49CB-BD3C-2FF5D4AE5B53}.Debug|x86.Build.0 = Debug|Any CPU
        {AE2775AE-3C2D-49CB-BD3C-2FF5D4AE5B53}.dll_test|Any CPU.ActiveCfg = Debug|Any CPU
        {AE2775AE-3C2D-49CB-BD3C-2FF5D4AE5B53}.dll_test|Any CPU.Build.0 = Debug|Any CPU
        {AE2775AE-3C2D-49CB-BD3C-2FF5D4AE5B53}.dll_test|x64.ActiveCfg = Debug|Any CPU
        {AE2775AE-3C2D-49CB-BD3C-2FF5D4AE5B53}.dll_test|x64.Build.0 = Debug|Any CPU
        {AE2775AE-3C2D-49CB-BD3C-2FF5D4AE5B53}.dll_test|x86.ActiveCfg = Debug|Any CPU
        {AE2775AE-3C2D-49CB-BD3C-2FF5D4AE5B53}.dll_test|x86.Build.0 = Debug|Any CPU
        {AE2775AE-3C2D-49CB-BD3C-2FF5D4AE5B53}.Release|Any CPU.ActiveCfg = Release|Any CPU
        {AE2775AE-3C2D-49CB-BD3C-2FF5D4AE5B53}.Release|Any CPU.Build.0 = Release|Any CPU
        {AE2775AE-3C2D-49CB-BD3C-2FF5D4AE5B53}.Release|x64.ActiveCfg = Release|Any CPU
        {AE2775AE-3C2D-49CB-BD3C-2FF5D4AE5B53}.Release|x64.Build.0 = Release|Any CPU
        {AE2775AE-3C2D-49CB-BD3C-2FF5D4AE5B53}.Release|x86.ActiveCfg = Release|Any CPU
        {AE2775AE-3C2D-49CB-BD3C-2FF5D4AE5B53}.Release|x86.Build.0 = Release|Any CPU
        {62B68CCE-1FDA-42EB-8BBC-2053EB0E04CA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {62B68CCE-1FDA-42EB-8BBC-2053EB0E04CA}.Debug|Any CPU.Build.0 = Debug|Any CPU
        {62B68CCE-1FDA-42EB-8BBC-2053EB0E04CA}.Debug|x64.ActiveCfg = Debug|Any CPU
@@ -958,24 +912,6 @@
        {0D096C38-89A7-4C18-A62D-74A70693DC9F}.Release|x64.Build.0 = Release|Any CPU
        {0D096C38-89A7-4C18-A62D-74A70693DC9F}.Release|x86.ActiveCfg = Release|Any CPU
        {0D096C38-89A7-4C18-A62D-74A70693DC9F}.Release|x86.Build.0 = Release|Any CPU
        {1201C5C6-8762-4168-B6D6-C658B6D654E7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {1201C5C6-8762-4168-B6D6-C658B6D654E7}.Debug|Any CPU.Build.0 = Debug|Any CPU
        {1201C5C6-8762-4168-B6D6-C658B6D654E7}.Debug|x64.ActiveCfg = Debug|Any CPU
        {1201C5C6-8762-4168-B6D6-C658B6D654E7}.Debug|x64.Build.0 = Debug|Any CPU
        {1201C5C6-8762-4168-B6D6-C658B6D654E7}.Debug|x86.ActiveCfg = Debug|Any CPU
        {1201C5C6-8762-4168-B6D6-C658B6D654E7}.Debug|x86.Build.0 = Debug|Any CPU
        {1201C5C6-8762-4168-B6D6-C658B6D654E7}.dll_test|Any CPU.ActiveCfg = Debug|Any CPU
        {1201C5C6-8762-4168-B6D6-C658B6D654E7}.dll_test|Any CPU.Build.0 = Debug|Any CPU
        {1201C5C6-8762-4168-B6D6-C658B6D654E7}.dll_test|x64.ActiveCfg = Debug|Any CPU
        {1201C5C6-8762-4168-B6D6-C658B6D654E7}.dll_test|x64.Build.0 = Debug|Any CPU
        {1201C5C6-8762-4168-B6D6-C658B6D654E7}.dll_test|x86.ActiveCfg = Debug|Any CPU
        {1201C5C6-8762-4168-B6D6-C658B6D654E7}.dll_test|x86.Build.0 = Debug|Any CPU
        {1201C5C6-8762-4168-B6D6-C658B6D654E7}.Release|Any CPU.ActiveCfg = Release|Any CPU
        {1201C5C6-8762-4168-B6D6-C658B6D654E7}.Release|Any CPU.Build.0 = Release|Any CPU
        {1201C5C6-8762-4168-B6D6-C658B6D654E7}.Release|x64.ActiveCfg = Release|Any CPU
        {1201C5C6-8762-4168-B6D6-C658B6D654E7}.Release|x64.Build.0 = Release|Any CPU
        {1201C5C6-8762-4168-B6D6-C658B6D654E7}.Release|x86.ActiveCfg = Release|Any CPU
        {1201C5C6-8762-4168-B6D6-C658B6D654E7}.Release|x86.Build.0 = Release|Any CPU
        {2274B96A-C41A-42B5-A4E7-1C0706DF5D48}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {2274B96A-C41A-42B5-A4E7-1C0706DF5D48}.Debug|Any CPU.Build.0 = Debug|Any CPU
        {2274B96A-C41A-42B5-A4E7-1C0706DF5D48}.Debug|x64.ActiveCfg = Debug|Any CPU
@@ -994,24 +930,6 @@
        {2274B96A-C41A-42B5-A4E7-1C0706DF5D48}.Release|x64.Build.0 = Release|Any CPU
        {2274B96A-C41A-42B5-A4E7-1C0706DF5D48}.Release|x86.ActiveCfg = Release|Any CPU
        {2274B96A-C41A-42B5-A4E7-1C0706DF5D48}.Release|x86.Build.0 = Release|Any CPU
        {D6AC90F8-0DF0-4AC2-B17A-6A02DB467347}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {D6AC90F8-0DF0-4AC2-B17A-6A02DB467347}.Debug|Any CPU.Build.0 = Debug|Any CPU
        {D6AC90F8-0DF0-4AC2-B17A-6A02DB467347}.Debug|x64.ActiveCfg = Debug|Any CPU
        {D6AC90F8-0DF0-4AC2-B17A-6A02DB467347}.Debug|x64.Build.0 = Debug|Any CPU
        {D6AC90F8-0DF0-4AC2-B17A-6A02DB467347}.Debug|x86.ActiveCfg = Debug|Any CPU
        {D6AC90F8-0DF0-4AC2-B17A-6A02DB467347}.Debug|x86.Build.0 = Debug|Any CPU
        {D6AC90F8-0DF0-4AC2-B17A-6A02DB467347}.dll_test|Any CPU.ActiveCfg = Debug|Any CPU
        {D6AC90F8-0DF0-4AC2-B17A-6A02DB467347}.dll_test|Any CPU.Build.0 = Debug|Any CPU
        {D6AC90F8-0DF0-4AC2-B17A-6A02DB467347}.dll_test|x64.ActiveCfg = Debug|Any CPU
        {D6AC90F8-0DF0-4AC2-B17A-6A02DB467347}.dll_test|x64.Build.0 = Debug|Any CPU
        {D6AC90F8-0DF0-4AC2-B17A-6A02DB467347}.dll_test|x86.ActiveCfg = Debug|Any CPU
        {D6AC90F8-0DF0-4AC2-B17A-6A02DB467347}.dll_test|x86.Build.0 = Debug|Any CPU
        {D6AC90F8-0DF0-4AC2-B17A-6A02DB467347}.Release|Any CPU.ActiveCfg = Release|Any CPU
        {D6AC90F8-0DF0-4AC2-B17A-6A02DB467347}.Release|Any CPU.Build.0 = Release|Any CPU
        {D6AC90F8-0DF0-4AC2-B17A-6A02DB467347}.Release|x64.ActiveCfg = Release|Any CPU
        {D6AC90F8-0DF0-4AC2-B17A-6A02DB467347}.Release|x64.Build.0 = Release|Any CPU
        {D6AC90F8-0DF0-4AC2-B17A-6A02DB467347}.Release|x86.ActiveCfg = Release|Any CPU
        {D6AC90F8-0DF0-4AC2-B17A-6A02DB467347}.Release|x86.Build.0 = Release|Any CPU
        {893B060A-8576-497A-B573-53680A271E6F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {893B060A-8576-497A-B573-53680A271E6F}.Debug|Any CPU.Build.0 = Debug|Any CPU
        {893B060A-8576-497A-B573-53680A271E6F}.Debug|x64.ActiveCfg = Debug|Any CPU
@@ -1210,24 +1128,6 @@
        {2A30EB54-38CA-44D4-BB11-3C2658568346}.Release|x64.Build.0 = Release|Any CPU
        {2A30EB54-38CA-44D4-BB11-3C2658568346}.Release|x86.ActiveCfg = Release|Any CPU
        {2A30EB54-38CA-44D4-BB11-3C2658568346}.Release|x86.Build.0 = Release|Any CPU
        {F0829321-2C4D-40F8-A729-47FA9428DC66}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {F0829321-2C4D-40F8-A729-47FA9428DC66}.Debug|Any CPU.Build.0 = Debug|Any CPU
        {F0829321-2C4D-40F8-A729-47FA9428DC66}.Debug|x64.ActiveCfg = Debug|Any CPU
        {F0829321-2C4D-40F8-A729-47FA9428DC66}.Debug|x64.Build.0 = Debug|Any CPU
        {F0829321-2C4D-40F8-A729-47FA9428DC66}.Debug|x86.ActiveCfg = Debug|Any CPU
        {F0829321-2C4D-40F8-A729-47FA9428DC66}.Debug|x86.Build.0 = Debug|Any CPU
        {F0829321-2C4D-40F8-A729-47FA9428DC66}.dll_test|Any CPU.ActiveCfg = Debug|Any CPU
        {F0829321-2C4D-40F8-A729-47FA9428DC66}.dll_test|Any CPU.Build.0 = Debug|Any CPU
        {F0829321-2C4D-40F8-A729-47FA9428DC66}.dll_test|x64.ActiveCfg = Debug|Any CPU
        {F0829321-2C4D-40F8-A729-47FA9428DC66}.dll_test|x64.Build.0 = Debug|Any CPU
        {F0829321-2C4D-40F8-A729-47FA9428DC66}.dll_test|x86.ActiveCfg = Debug|Any CPU
        {F0829321-2C4D-40F8-A729-47FA9428DC66}.dll_test|x86.Build.0 = Debug|Any CPU
        {F0829321-2C4D-40F8-A729-47FA9428DC66}.Release|Any CPU.ActiveCfg = Release|Any CPU
        {F0829321-2C4D-40F8-A729-47FA9428DC66}.Release|Any CPU.Build.0 = Release|Any CPU
        {F0829321-2C4D-40F8-A729-47FA9428DC66}.Release|x64.ActiveCfg = Release|Any CPU
        {F0829321-2C4D-40F8-A729-47FA9428DC66}.Release|x64.Build.0 = Release|Any CPU
        {F0829321-2C4D-40F8-A729-47FA9428DC66}.Release|x86.ActiveCfg = Release|Any CPU
        {F0829321-2C4D-40F8-A729-47FA9428DC66}.Release|x86.Build.0 = Release|Any CPU
        {4C71B0A5-2F2A-4AE3-86BF-556E7F8EF97B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {4C71B0A5-2F2A-4AE3-86BF-556E7F8EF97B}.Debug|Any CPU.Build.0 = Debug|Any CPU
        {4C71B0A5-2F2A-4AE3-86BF-556E7F8EF97B}.Debug|x64.ActiveCfg = Debug|Any CPU
@@ -1307,7 +1207,6 @@
        {784A568F-A01F-45FC-AACB-B80F87EA3ABA} = {276C57AF-5A9C-4A50-A79E-A5098D322FE9}
        {4724474E-66CD-4237-B3A0-085125AD2D8F} = {276C57AF-5A9C-4A50-A79E-A5098D322FE9}
        {D6D805ED-C848-4403-97AB-E86715B9E2DB} = {0469F9DE-F12C-4B83-A871-A77A82DCB4C8}
        {454B8C89-EFF0-42E2-B569-C211F0168F5D} = {46F06FE7-18FB-4F0E-9AB1-A9A0A3E5C81A}
        {2AC76D6E-7035-4FD0-84EA-E00BA7D9876B} = {AB800C2A-5367-42B8-B3FF-0E7F4640E9B3}
        {EC0D8314-B4AB-4FA6-A490-C34E5773C8AA} = {4D3764D7-19DE-4C77-8F75-0EFB19D64B3F}
        {A9253100-6A3B-47E8-AACC-289C9756336B} = {929B3BD5-B817-4EAF-ADA4-3DFBD1580DA6}
@@ -1327,13 +1226,10 @@
        {0A0F9D7E-87C9-4276-823D-495355A01E8C} = {9F4F9ECE-9C4C-4796-91A1-69805F823EA5}
        {DBC6DC37-8BA8-4CFC-A98C-E6D34EE2E5D7} = {AB800C2A-5367-42B8-B3FF-0E7F4640E9B3}
        {2F469712-C0AB-405C-BCA3-410612141D49} = {E956660D-6E09-417B-9A3C-27888AF69266}
        {AE2775AE-3C2D-49CB-BD3C-2FF5D4AE5B53} = {46F06FE7-18FB-4F0E-9AB1-A9A0A3E5C81A}
        {62B68CCE-1FDA-42EB-8BBC-2053EB0E04CA} = {AB800C2A-5367-42B8-B3FF-0E7F4640E9B3}
        {6BC4873C-FB0D-46F1-ADCD-C1FD96B29A5D} = {276C57AF-5A9C-4A50-A79E-A5098D322FE9}
        {0D096C38-89A7-4C18-A62D-74A70693DC9F} = {AB800C2A-5367-42B8-B3FF-0E7F4640E9B3}
        {1201C5C6-8762-4168-B6D6-C658B6D654E7} = {46F06FE7-18FB-4F0E-9AB1-A9A0A3E5C81A}
        {2274B96A-C41A-42B5-A4E7-1C0706DF5D48} = {46F06FE7-18FB-4F0E-9AB1-A9A0A3E5C81A}
        {D6AC90F8-0DF0-4AC2-B17A-6A02DB467347} = {E956660D-6E09-417B-9A3C-27888AF69266}
        {893B060A-8576-497A-B573-53680A271E6F} = {CF8E0A6C-9342-430D-BD10-6E1B5DE18571}
        {9667FA40-7268-40D9-AC96-E267D199A280} = {CF8E0A6C-9342-430D-BD10-6E1B5DE18571}
        {DDC3FA3E-3B50-4ED5-9CE7-C308FC9203BD} = {CF8E0A6C-9342-430D-BD10-6E1B5DE18571}
@@ -1345,7 +1241,6 @@
        {0DBE9BD3-457E-472C-BB93-86D754B2A348} = {4D3764D7-19DE-4C77-8F75-0EFB19D64B3F}
        {C0C9D757-5AA3-4590-9161-C4CE2700F822} = {929B3BD5-B817-4EAF-ADA4-3DFBD1580DA6}
        {2A30EB54-38CA-44D4-BB11-3C2658568346} = {AB800C2A-5367-42B8-B3FF-0E7F4640E9B3}
        {F0829321-2C4D-40F8-A729-47FA9428DC66} = {46F06FE7-18FB-4F0E-9AB1-A9A0A3E5C81A}
        {4C71B0A5-2F2A-4AE3-86BF-556E7F8EF97B} = {0469F9DE-F12C-4B83-A871-A77A82DCB4C8}
        {21D4EA4C-3A6A-4B65-9FD8-11A34768872C} = {0469F9DE-F12C-4B83-A871-A77A82DCB4C8}
        {36AD458B-32A8-4FF9-8548-8FD2CD7ADABF} = {276C57AF-5A9C-4A50-A79E-A5098D322FE9}
Hydro/HStation.Hydro.Core/HStation.Hydro.Core.csproj
@@ -7,7 +7,7 @@
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="Yw.Service.Hydro.Core" Version="5.1.8" />
    <PackageReference Include="Yw.Service.Hydro.Core" Version="5.1.9" />
  </ItemGroup>
  <ItemGroup>
Hydro/Yw.Hydro.Core/Yw.Hydro.Core.csproj
@@ -9,7 +9,7 @@
  <ItemGroup>
    <PackageReference Include="Yw.Epanet.Calcu.Core" Version="1.0.8" />
    <PackageReference Include="Yw.Geometry.Core" Version="3.3.2" />
    <PackageReference Include="Yw.Service.Hydro.Core" Version="5.1.8" />
    <PackageReference Include="Yw.Service.Hydro.Core" Version="5.1.9" />
  </ItemGroup>
</Project>
WinFrmUI/HStation.WinFrmUI.Hydro.Core/00-core/HydroQ3dTransferHelper.cs
ÎļþÒÑɾ³ý
WinFrmUI/HStation.WinFrmUI.Hydro.Core/00-core/HydroQ3dViewPage.Designer.cs
ÎļþÒÑɾ³ý
WinFrmUI/HStation.WinFrmUI.Hydro.Core/00-core/HydroQ3dViewPage.cs
ÎļþÒÑɾ³ý
WinFrmUI/HStation.WinFrmUI.Hydro.Core/00-core/HydroQ3dViewPage.resx
ÎļþÒÑɾ³ý
WinFrmUI/HStation.WinFrmUI.Hydro.Core/01-l3d2/HydroL3d2TransferHelper.cs
ÎļþÃû´Ó WinFrmUI/Yw.WinFrmUI.Hydro.Core/00-core/02-transfer/HydroL3dTransferHelper.cs ÐÞ¸Ä
@@ -1,30 +1,30 @@
using Yw.WinFrmUI.HydroL3d;
using Yw.WpfUI.Hydro;
namespace Yw.WinFrmUI
namespace HStation.WinFrmUI
{
    /// <summary>
    /// 
    /// </summary>
    public static class HydroL3dTransferHelper
    public static class HydroL3d2TransferHelper
    {
        /// <summary>
        /// 
        /// </summary>
        public static Network ToL3dNetworkViewModel(this Yw.Model.HydroModelInfo rhs)
        public static NetworkL3d ToL3d2NetworkViewModel(this Yw.Model.HydroModelInfo rhs)
        {
            if (rhs == null)
            {
                return default;
            }
            var vm = new Network();
            var vm = new NetworkL3d();
            if (rhs.Junctions != null && rhs.Junctions.Count > 0)
            {
                foreach (var junction in rhs.Junctions)
                {
                    var junctionViewModel = new Junction();
                    var junctionViewModel = new JunctionL3d();
                    junctionViewModel.Id = junction.Code;
                    junctionViewModel.Name = junction.Name;
                    junctionViewModel.Position = new Point3d(junction.Position3d.X, junction.Position3d.Y, junction.Position3d.Z);
                    junctionViewModel.Position = new PointL3d(junction.Position3d.X, junction.Position3d.Y, junction.Position3d.Z);
                    vm.Append(junctionViewModel, out _);
                }
            }
@@ -32,10 +32,10 @@
            {
                foreach (var nozzle in rhs.Nozzles)
                {
                    var nozzleViewModel = new Junction();
                    var nozzleViewModel = new JunctionL3d();
                    nozzleViewModel.Id = nozzle.Code;
                    nozzleViewModel.Name = nozzle.Name;
                    nozzleViewModel.Position = new Point3d(nozzle.Position3d.X, nozzle.Position3d.Y, nozzle.Position3d.Z);
                    nozzleViewModel.Position = new PointL3d(nozzle.Position3d.X, nozzle.Position3d.Y, nozzle.Position3d.Z);
                    vm.Append(nozzleViewModel, out _);
                }
            }
@@ -43,10 +43,10 @@
            {
                foreach (var hydrant in rhs.Hydrants)
                {
                    var hydrantViewModel = new Junction();
                    var hydrantViewModel = new JunctionL3d();
                    hydrantViewModel.Id = hydrant.Code;
                    hydrantViewModel.Name = hydrant.Name;
                    hydrantViewModel.Position = new Point3d(hydrant.Position3d.X, hydrant.Position3d.Y, hydrant.Position3d.Z);
                    hydrantViewModel.Position = new PointL3d(hydrant.Position3d.X, hydrant.Position3d.Y, hydrant.Position3d.Z);
                    vm.Append(hydrantViewModel, out _);
                }
            }
@@ -54,10 +54,10 @@
            {
                foreach (var elbow in rhs.Elbows)
                {
                    var elbowViewModel = new Junction();
                    var elbowViewModel = new JunctionL3d();
                    elbowViewModel.Id = elbow.Code;
                    elbowViewModel.Name = elbow.Name;
                    elbowViewModel.Position = new Point3d(elbow.Position3d.X, elbow.Position3d.Y, elbow.Position3d.Z);
                    elbowViewModel.Position = new PointL3d(elbow.Position3d.X, elbow.Position3d.Y, elbow.Position3d.Z);
                    vm.Append(elbowViewModel, out _);
                }
            }
@@ -65,10 +65,10 @@
            {
                foreach (var threelink in rhs.Threelinks)
                {
                    var threelinkViewModel = new Junction();
                    var threelinkViewModel = new JunctionL3d();
                    threelinkViewModel.Id = threelink.Code;
                    threelinkViewModel.Name = threelink.Name;
                    threelinkViewModel.Position = new Point3d(threelink.Position3d.X, threelink.Position3d.Y, threelink.Position3d.Z);
                    threelinkViewModel.Position = new PointL3d(threelink.Position3d.X, threelink.Position3d.Y, threelink.Position3d.Z);
                    vm.Append(threelinkViewModel, out _);
                }
            }
@@ -76,10 +76,10 @@
            {
                foreach (var fourlink in rhs.Fourlinks)
                {
                    var fourlinkViewModel = new Junction();
                    var fourlinkViewModel = new JunctionL3d();
                    fourlinkViewModel.Id = fourlink.Code;
                    fourlinkViewModel.Name = fourlink.Name;
                    fourlinkViewModel.Position = new Point3d(fourlink.Position3d.X, fourlink.Position3d.Y, fourlink.Position3d.Z);
                    fourlinkViewModel.Position = new PointL3d(fourlink.Position3d.X, fourlink.Position3d.Y, fourlink.Position3d.Z);
                    vm.Append(fourlinkViewModel, out _);
                }
            }
@@ -87,10 +87,10 @@
            {
                foreach (var meter in rhs.Meters)
                {
                    var meterViewModel = new Junction();
                    var meterViewModel = new JunctionL3d();
                    meterViewModel.Id = meter.Code;
                    meterViewModel.Name = meter.Name;
                    meterViewModel.Position = new Point3d(meter.Position3d.X, meter.Position3d.Y, meter.Position3d.Z);
                    meterViewModel.Position = new PointL3d(meter.Position3d.X, meter.Position3d.Y, meter.Position3d.Z);
                    vm.Append(meterViewModel, out _);
                }
            }
@@ -98,10 +98,10 @@
            {
                foreach (var flowmeter in rhs.Flowmeters)
                {
                    var flowmeterViewModel = new Junction();
                    var flowmeterViewModel = new JunctionL3d();
                    flowmeterViewModel.Id = flowmeter.Code;
                    flowmeterViewModel.Name = flowmeter.Name;
                    flowmeterViewModel.Position = new Point3d(flowmeter.Position3d.X, flowmeter.Position3d.Y, flowmeter.Position3d.Z);
                    flowmeterViewModel.Position = new PointL3d(flowmeter.Position3d.X, flowmeter.Position3d.Y, flowmeter.Position3d.Z);
                    vm.Append(flowmeterViewModel, out _);
                }
            }
@@ -109,10 +109,10 @@
            {
                foreach (var pressmeter in rhs.Pressmeters)
                {
                    var pressmeterViewModel = new Junction();
                    var pressmeterViewModel = new JunctionL3d();
                    pressmeterViewModel.Id = pressmeter.Code;
                    pressmeterViewModel.Name = pressmeter.Name;
                    pressmeterViewModel.Position = new Point3d(pressmeter.Position3d.X, pressmeter.Position3d.Y, pressmeter.Position3d.Z);
                    pressmeterViewModel.Position = new PointL3d(pressmeter.Position3d.X, pressmeter.Position3d.Y, pressmeter.Position3d.Z);
                    vm.Append(pressmeterViewModel, out _);
                }
            }
@@ -120,10 +120,10 @@
            {
                foreach (var blunthead in rhs.Bluntheads)
                {
                    var bluntheadViewModel = new Junction();
                    var bluntheadViewModel = new JunctionL3d();
                    bluntheadViewModel.Id = blunthead.Code;
                    bluntheadViewModel.Name = blunthead.Name;
                    bluntheadViewModel.Position = new Point3d(blunthead.Position3d.X, blunthead.Position3d.Y, blunthead.Position3d.Z);
                    bluntheadViewModel.Position = new PointL3d(blunthead.Position3d.X, blunthead.Position3d.Y, blunthead.Position3d.Z);
                    vm.Append(bluntheadViewModel, out _);
                }
            }
@@ -132,10 +132,10 @@
            {
                foreach (var reservoir in rhs.Reservoirs)
                {
                    var reservoirViewModel = new Reservoir();
                    var reservoirViewModel = new ReservoirL3d();
                    reservoirViewModel.Id = reservoir.Code;
                    reservoirViewModel.Name = reservoir.Name;
                    reservoirViewModel.Position = new Point3d(reservoir.Position3d.X, reservoir.Position3d.Y, reservoir.Position3d.Z);
                    reservoirViewModel.Position = new PointL3d(reservoir.Position3d.X, reservoir.Position3d.Y, reservoir.Position3d.Z);
                    vm.Append(reservoirViewModel, out _);
                }
            }
@@ -143,10 +143,10 @@
            {
                foreach (var tank in rhs.Tanks)
                {
                    var tankViewModel = new Tank();
                    var tankViewModel = new TankL3d();
                    tankViewModel.Id = tank.Code;
                    tankViewModel.Name = tank.Name;
                    tankViewModel.Position = new Point3d(tank.Position3d.X, tank.Position3d.Y, tank.Position3d.Z);
                    tankViewModel.Position = new PointL3d(tank.Position3d.X, tank.Position3d.Y, tank.Position3d.Z);
                    vm.Append(tankViewModel, out _);
                }
            }
@@ -154,10 +154,10 @@
            {
                foreach (var waterbox in rhs.Waterboxs)
                {
                    var waterboxViewModel = new Tank();
                    var waterboxViewModel = new TankL3d();
                    waterboxViewModel.Id = waterbox.Code;
                    waterboxViewModel.Name = waterbox.Name;
                    waterboxViewModel.Position = new Point3d(waterbox.Position3d.X, waterbox.Position3d.Y, waterbox.Position3d.Z);
                    waterboxViewModel.Position = new PointL3d(waterbox.Position3d.X, waterbox.Position3d.Y, waterbox.Position3d.Z);
                    vm.Append(waterboxViewModel, out _);
                }
            }
@@ -168,11 +168,11 @@
                {
                    var startNode = rhs.GetAllNodes().Find(x => x.Code == pipe.StartCode);
                    var endNode = rhs.GetAllNodes().Find(x => x.Code == pipe.EndCode);
                    var pipeViewModel = new Pipe();
                    var pipeViewModel = new PipeL3d();
                    pipeViewModel.Id = pipe.Code;
                    pipeViewModel.Name = pipe.Name;
                    pipeViewModel.StartPosition = new Point3d(startNode.Position3d.X, startNode.Position3d.Y, startNode.Position3d.Z);
                    pipeViewModel.EndPosition = new Point3d(endNode.Position3d.X, endNode.Position3d.Y, endNode.Position3d.Z);
                    pipeViewModel.StartPosition = new PointL3d(startNode.Position3d.X, startNode.Position3d.Y, startNode.Position3d.Z);
                    pipeViewModel.EndPosition = new PointL3d(endNode.Position3d.X, endNode.Position3d.Y, endNode.Position3d.Z);
                    vm.Append(pipeViewModel, out _);
                }
            }
@@ -182,11 +182,11 @@
                {
                    var startNode = rhs.GetAllNodes().Find(x => x.Code == translation.StartCode);
                    var endNode = rhs.GetAllNodes().Find(x => x.Code == translation.EndCode);
                    var pipeViewModel = new Pipe();
                    var pipeViewModel = new PipeL3d();
                    pipeViewModel.Id = translation.Code;
                    pipeViewModel.Name = translation.Name;
                    pipeViewModel.StartPosition = new Point3d(startNode.Position3d.X, startNode.Position3d.Y, startNode.Position3d.Z);
                    pipeViewModel.EndPosition = new Point3d(endNode.Position3d.X, endNode.Position3d.Y, endNode.Position3d.Z);
                    pipeViewModel.StartPosition = new PointL3d(startNode.Position3d.X, startNode.Position3d.Y, startNode.Position3d.Z);
                    pipeViewModel.EndPosition = new PointL3d(endNode.Position3d.X, endNode.Position3d.Y, endNode.Position3d.Z);
                    vm.Append(pipeViewModel, out _);
                }
            }
@@ -196,11 +196,11 @@
                {
                    var startNode = rhs.GetAllNodes().Find(x => x.Code == exchanger.StartCode);
                    var endNode = rhs.GetAllNodes().Find(x => x.Code == exchanger.EndCode);
                    var pipeViewModel = new Pipe();
                    var pipeViewModel = new ValveL3d();
                    pipeViewModel.Id = exchanger.Code;
                    pipeViewModel.Name = exchanger.Name;
                    pipeViewModel.StartPosition = new Point3d(startNode.Position3d.X, startNode.Position3d.Y, startNode.Position3d.Z);
                    pipeViewModel.EndPosition = new Point3d(endNode.Position3d.X, endNode.Position3d.Y, endNode.Position3d.Z);
                    pipeViewModel.StartPosition = new PointL3d(startNode.Position3d.X, startNode.Position3d.Y, startNode.Position3d.Z);
                    pipeViewModel.EndPosition = new PointL3d(endNode.Position3d.X, endNode.Position3d.Y, endNode.Position3d.Z);
                    vm.Append(pipeViewModel, out _);
                }
            }
@@ -211,12 +211,12 @@
                {
                    var startNode = rhs.GetAllNodes().Find(x => x.Code == pump.StartCode);
                    var endNode = rhs.GetAllNodes().Find(x => x.Code == pump.EndCode);
                    var pipeViewModel = new Pipe();
                    var pipeViewModel = new PumpL3d();
                    pipeViewModel.Id = pump.Code;
                    pipeViewModel.Name = pump.Name;
                    pipeViewModel.StartPosition = new Point3d(startNode.Position3d.X, startNode.Position3d.Y, startNode.Position3d.Z);
                    pipeViewModel.EndPosition = new Point3d(endNode.Position3d.X, endNode.Position3d.Y, endNode.Position3d.Z);
                    vm.Append(pipeViewModel, out _);
                    pipeViewModel.StartPosition = new PointL3d(startNode.Position3d.X, startNode.Position3d.Y, startNode.Position3d.Z);
                    pipeViewModel.EndPosition = new PointL3d(endNode.Position3d.X, endNode.Position3d.Y, endNode.Position3d.Z);
                    vm.Append(pipeViewModel, msg: out _);
                }
            }
            if (rhs.Valves != null && rhs.Valves.Count > 0)
@@ -225,11 +225,11 @@
                {
                    var startNode = rhs.GetAllNodes().Find(x => x.Code == valve.StartCode);
                    var endNode = rhs.GetAllNodes().Find(x => x.Code == valve.EndCode);
                    var pipeViewModel = new Pipe();
                    var pipeViewModel = new ValveL3d();
                    pipeViewModel.Id = valve.Code;
                    pipeViewModel.Name = valve.Name;
                    pipeViewModel.StartPosition = new Point3d(startNode.Position3d.X, startNode.Position3d.Y, startNode.Position3d.Z);
                    pipeViewModel.EndPosition = new Point3d(endNode.Position3d.X, endNode.Position3d.Y, endNode.Position3d.Z);
                    pipeViewModel.StartPosition = new PointL3d(startNode.Position3d.X, startNode.Position3d.Y, startNode.Position3d.Z);
                    pipeViewModel.EndPosition = new PointL3d(endNode.Position3d.X, endNode.Position3d.Y, endNode.Position3d.Z);
                    vm.Append(pipeViewModel, out _);
                }
            }
WinFrmUI/HStation.WinFrmUI.Hydro.Core/01-l3d2/HydroL3d2ViewPage.Designer.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,61 @@
using Yw.WinFrmUI.Hydro;
namespace HStation.WinFrmUI
{
    partial class HydroL3d2ViewPage
    {
        /// <summary>
        /// å¿…需的设计器变量。
        /// </summary>
        private System.ComponentModel.IContainer components = null;
        /// <summary>
        /// æ¸…理所有正在使用的资源。
        /// </summary>
        /// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }
        #region ç»„件设计器生成的代码
        /// <summary>
        /// è®¾è®¡å™¨æ”¯æŒæ‰€éœ€çš„æ–¹æ³• - ä¸è¦ä¿®æ”¹
        /// ä½¿ç”¨ä»£ç ç¼–辑器修改此方法的内容。
        /// </summary>
        private void InitializeComponent()
        {
            viewerL3d21 = new ViewerL3d2();
            SuspendLayout();
            //
            // viewerL3d21
            //
            viewerL3d21.BackColor = Color.White;
            viewerL3d21.Dock = DockStyle.Fill;
            viewerL3d21.Location = new Point(0, 0);
            viewerL3d21.Name = "viewerL3d21";
            viewerL3d21.Size = new Size(888, 529);
            viewerL3d21.TabIndex = 0;
            //
            // HydroL3d2ViewPage
            //
            Appearance.BackColor = SystemColors.Control;
            Appearance.Options.UseBackColor = true;
            AutoScaleDimensions = new SizeF(7F, 14F);
            AutoScaleMode = AutoScaleMode.Font;
            Controls.Add(viewerL3d21);
            Name = "HydroL3d2ViewPage";
            Size = new Size(888, 529);
            ResumeLayout(false);
        }
        #endregion
        private ViewerL3d2 viewerL3d21;
    }
}
WinFrmUI/HStation.WinFrmUI.Hydro.Core/01-l3d2/HydroL3d2ViewPage.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,40 @@
namespace HStation.WinFrmUI
{
    public partial class HydroL3d2ViewPage : Yw.WinFrmUI.DocumentPage
    {
        public HydroL3d2ViewPage()
        {
            InitializeComponent();
            this.PageTitle.Caption = "水力模型";
        }
        private Yw.Model.HydroModelInfo _hydro = null;//水力信息
        /// <summary>
        /// ç»‘定数据
        /// </summary>
        public void SetBindingData(Yw.Model.HydroModelInfo hydro)
        {
            this.PageTitle.Caption = $"{hydro.Name}\r\n水力模型";
            _hydro = hydro;
        }
        /// <summary>
        /// åˆå§‹åŒ–数据源
        /// </summary>
        public override void InitialDataSource()
        {
            base.InitialDataSource();
            if (_hydro == null)
            {
                return;
            }
            var nw = HydroL3d2TransferHelper.ToL3d2NetworkViewModel(_hydro);
            this.viewerL3d21.Initial(nw);
        }
    }
}
WinFrmUI/HStation.WinFrmUI.Hydro.Core/01-l3d2/HydroL3d2ViewPage.resx
WinFrmUI/HStation.WinFrmUI.Hydro.Core/01-model/HydroModelMgrPage.Designer.cs
ÎļþÒÑɾ³ý
WinFrmUI/HStation.WinFrmUI.Hydro.Core/01-model/HydroModelMgrPage.cs
ÎļþÒÑɾ³ý
WinFrmUI/HStation.WinFrmUI.Hydro.Core/HStation.WinFrmUI.Hydro.Core.csproj
@@ -8,11 +8,17 @@
  </PropertyGroup>
  <ItemGroup>
    <ProjectReference Include="..\..\Hydro\HStation.Hydro.Core\HStation.Hydro.Core.csproj" />
    <ProjectReference Include="..\HStation.WinFrmUI.Bimface.Core\HStation.WinFrmUI.Bimface.Core.csproj" />
    <ProjectReference Include="..\HStation.WinFrmUI.Core\HStation.WinFrmUI.Core.csproj" />
    <PackageReference Include="Yw.WinFrmUI.Hydro.L3d2.Core" Version="1.0.2" />
  </ItemGroup>
  <ItemGroup>
    <ProjectReference Include="..\Yw.WinFrmUI.Hydro.Core\Yw.WinFrmUI.Hydro.Core.csproj" />
    <ProjectReference Include="..\Yw.WinFrmUI.Hydro.Q3d.Core\Yw.WinFrmUI.Hydro.Q3d.Core.csproj" />
  </ItemGroup>
  <ItemGroup>
    <Compile Update="01-l3d2\HydroL3d2ViewPage.cs">
      <SubType>UserControl</SubType>
    </Compile>
  </ItemGroup>
</Project>
WinFrmUI/HStation.WinFrmUI.Hydro.Core/HStation.WinFrmUI.Hydro.Core.csproj.user
@@ -1,11 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <ItemGroup>
    <Compile Update="00-core\HydroQ3dViewPage.cs">
      <SubType>UserControl</SubType>
    </Compile>
    <Compile Update="01-model\HydroModelMgrPage.cs">
      <SubType>UserControl</SubType>
    </Compile>
  </ItemGroup>
  <ItemGroup />
</Project>
WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/03-mgr/XhsProjectMgrPage.cs
@@ -397,7 +397,7 @@
            if (!IsExistPage(guid, true))
            {
                var page = new XhsProjectQ3dViewPage();
                var page = new XhsProjectL3d2ViewPage();
                page.SetBindingData(vm.Project);
                CreatePage(page, guid);
            }
WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/04-l3d2/XhsProjectL3d2ViewPage.Designer.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,57 @@
namespace HStation.WinFrmUI
{
    partial class XhsProjectL3d2ViewPage
    {
        /// <summary>
        /// å¿…需的设计器变量。
        /// </summary>
        private System.ComponentModel.IContainer components = null;
        /// <summary>
        /// æ¸…理所有正在使用的资源。
        /// </summary>
        /// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }
        #region ç»„件设计器生成的代码
        /// <summary>
        /// è®¾è®¡å™¨æ”¯æŒæ‰€éœ€çš„æ–¹æ³• - ä¸è¦ä¿®æ”¹
        /// ä½¿ç”¨ä»£ç ç¼–辑器修改此方法的内容。
        /// </summary>
        private void InitializeComponent()
        {
            viewerL3d21 = new Yw.WinFrmUI.Hydro.ViewerL3d2();
            SuspendLayout();
            //
            // viewerL3d21
            //
            viewerL3d21.BackColor = Color.White;
            viewerL3d21.Dock = DockStyle.Fill;
            viewerL3d21.Location = new Point(0, 0);
            viewerL3d21.Name = "viewerL3d21";
            viewerL3d21.Size = new Size(656, 442);
            viewerL3d21.TabIndex = 0;
            //
            // XhsProjectL3d2ViewPage
            //
            AutoScaleDimensions = new SizeF(7F, 17F);
            AutoScaleMode = AutoScaleMode.Font;
            Controls.Add(viewerL3d21);
            Name = "XhsProjectL3d2ViewPage";
            Size = new Size(656, 442);
            ResumeLayout(false);
        }
        #endregion
        private Yw.WinFrmUI.Hydro.ViewerL3d2 viewerL3d21;
    }
}
WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/04-l3d2/XhsProjectL3d2ViewPage.cs
ÎļþÃû´Ó WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/04-q3d/XhsProjectQ3dViewPage.cs ÐÞ¸Ä
@@ -1,8 +1,8 @@
namespace HStation.WinFrmUI
{
    public partial class XhsProjectQ3dViewPage : DocumentPage
    public partial class XhsProjectL3d2ViewPage : DocumentPage
    {
        public XhsProjectQ3dViewPage()
        public XhsProjectL3d2ViewPage()
        {
            InitializeComponent();
            this.PageTitle.Caption = "水力视图";
@@ -62,13 +62,9 @@
            InitialData();
        }
        //初始化数据
        private async void InitialData()
        {
            var drawer = GetDrawer();
            this.Controls.Clear();
            this.Controls.Add(drawer);
            if (_project == null)
            {
                return;
@@ -83,31 +79,14 @@
            {
                return;
            }
            var hydroInfo = await BLLFactory<Yw.BLL.HydroModelInfo>.Instance.GetByID(relation.ModelID);
            if (hydroInfo == null)
            var hydro = await BLLFactory<Yw.BLL.HydroModelInfo>.Instance.GetByID(relation.ModelID);
            if (hydro == null)
            {
                return;
            }
            var network = hydroInfo.ToNetworkViewModel();
            drawer.SetData(network);
            var nw = hydro.ToL3d2NetworkViewModel();
            this.viewerL3d21.Initial(nw);
        }
        #region ç»˜åˆ¶å®¹å™¨
        //获取绘制器
        private Yw.WinFrmUI.Q3d.Drawer GetDrawer()
        {
            if (_drawer == null)
            {
                _drawer = new Yw.WinFrmUI.Q3d.Drawer();
                _drawer.Dock = DockStyle.Fill;
            }
            return _drawer;
        }
        //Q3d绘制器
        private Yw.WinFrmUI.Q3d.Drawer _drawer = null;
        #endregion
    }
WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/04-l3d2/XhsProjectL3d2ViewPage.resx
copy from WinFrmUI/HStation.WinFrmUI.Hydro.Core/01-model/HydroModelMgrPage.resx copy to WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/04-l3d2/XhsProjectL3d2ViewPage.resx
WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/04-q3d/XhsProjectQ3dViewPage.Designer.cs
ÎļþÒÑɾ³ý
WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/04-q3d/XhsProjectQ3dViewPage.resx
ÎļþÒÑɾ³ý
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/00-core/01-flow-effect/ISimulationFlowEffectView.cs
@@ -10,7 +10,7 @@
        /// <summary>
        /// åŠ è½½æ°´æµåŠ¨ç”»
        /// </summary>
        Task LoadFlowEffect(List<LogicFlowEffect> items);
        Task LoadFlowEffect(List<LogicFlowEffect> data);
        /// <summary>
        /// å¸è½½æ°´æµåŠ¨ç”»
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/00-core/01-flow-effect/SimulationFlowEffectHelper.cs
@@ -11,15 +11,41 @@
        /// <summary>
        /// 
        /// </summary>
        public SimulationFlowEffectHelper(SimulationVisualListHelper visualListHelper, ISimulationFlowEffectView view)
        public SimulationFlowEffectHelper
            (
                SimulationVisualListHelper visualListHelper,
                SimulationCalcuResultHelper calcuResultHelper,
                ISimulationFlowEffectView view
            )
        {
            _visualListHelper = visualListHelper;
            _calcuResultHelper = calcuResultHelper;
            _calcuResultHelper.InitialEvent += InitialData;
            _views = new List<ISimulationFlowEffectView>() { view };
            InitialData();
        }
        private SimulationVisualListHelper _visualListHelper = null;//可见列表辅助类
        private List<ISimulationFlowEffectView> _views = null;//视图列表
        private HydroCalcuResult _calcuResult = null;//计算结果
        /// <summary>
        ///
        /// </summary>
        public SimulationFlowEffectHelper
            (
                SimulationVisualListHelper visualListHelper,
                SimulationCalcuResultHelper calcuResultHelper,
                List<ISimulationFlowEffectView> views
            )
        {
            _visualListHelper = visualListHelper;
            _calcuResultHelper = calcuResultHelper;
            _calcuResultHelper.InitialEvent += InitialData;
            _views = views;
            InitialData();
        }
        private readonly SimulationVisualListHelper _visualListHelper = null;//可见列表辅助类
        private readonly SimulationCalcuResultHelper _calcuResultHelper = null;//计算结果辅助类
        private readonly List<ISimulationFlowEffectView> _views = null;//视图列表
        private readonly Dictionary<string, LogicFlowEffect> _cache = new();//缓存
        /// <summary>
        /// å¯è§æ€§
@@ -31,42 +57,24 @@
        }
        private bool _visible = false;
        /// <summary>
        /// é¡¹åˆ—表
        /// </summary>
        public List<LogicFlowEffect> Items
        {
            get { return _items; }
            private set { _items = value; }
        }
        private List<LogicFlowEffect> _items = null;
        /// <summary>
        /// åˆå§‹åŒ–数据
        /// </summary>
        public void InitialData(HydroCalcuResult calcuResult)
        //初始化数据
        private void InitialData()
        {
            _calcuResult = calcuResult;
            var allCalcuResultVisualDict = calcuResult?.GetVisualDict();
            _visualListHelper.HydroInfo.Pipes?.ForEach(x => InitialItem(x, allCalcuResultVisualDict));
        }
        //初始化项
        private void InitialItem(HydroVisualInfo visual, Dictionary<string, HydroCalcuVisualResult> allCalcuResultVisualDict)
        {
            var item = CreateItem(visual, allCalcuResultVisualDict);
            if (item != null)
            var allCalcuVisualResultDict = _calcuResultHelper.GetVisualDict();
            _cache.Clear();
            _visualListHelper.GetVisualList()?.ForEach(x =>
            {
                if (this.Items == null)
                var item = CreateItem(x, allCalcuVisualResultDict);
                if (item != null)
                {
                    this.Items = new List<LogicFlowEffect>();
                    _cache[x.Code] = item;
                }
                this.Items.Add(item);
            }
            });
        }
        //创建项
        private LogicFlowEffect CreateItem(HydroVisualInfo visual, Dictionary<string, HydroCalcuVisualResult> allCalcuResultVisualDict = null)
        private LogicFlowEffect CreateItem(HydroVisualInfo visual, Dictionary<string, HydroCalcuVisualResult> allCalcuVisualResultDict = null)
        {
            if (visual == null)
            {
@@ -82,39 +90,213 @@
                        item.Id = pipe.Code;
                        item.Rotation = 90;
                        item.SpeedX = 0.1;
                        //if (pipe.FlowDirectionX == Yw.Hydro.FlowDirection.None)
                        //{
                        //    item.SpeedX = 0;
                        //}
                        //else if (pipe.FlowDirectionX == Yw.Hydro.FlowDirection.Positive)
                        //{
                        //    item.SpeedX = 0.1;
                        //}
                        //else
                        //{
                        //    item.SpeedX = -0.1;
                        //}
                        if (pipe.FlowDirectionX == Yw.Hydro.FlowDirection.None)
                        {
                            item.SpeedX = 0;
                        }
                        else if (pipe.FlowDirectionX == Yw.Hydro.FlowDirection.Positive)
                        {
                            item.SpeedX = 0.1;
                        }
                        else
                        {
                            item.SpeedX = -0.1;
                        }
                        //if (pipe.FlowDirectionY == Yw.Hydro.FlowDirection.None)
                        //{
                        //    item.SpeedY = 0;
                        //}
                        //else if (pipe.FlowDirectionY == Yw.Hydro.FlowDirection.Positive)
                        //{
                        //    item.SpeedY = 0.1;
                        //}
                        //else
                        //{
                        //    item.SpeedY = -0.1;
                        //}
                        if (pipe.FlowDirectionY == Yw.Hydro.FlowDirection.None)
                        {
                            item.SpeedY = 0;
                        }
                        else if (pipe.FlowDirectionY == Yw.Hydro.FlowDirection.Positive)
                        {
                            item.SpeedY = 0.1;
                        }
                        else
                        {
                            item.SpeedY = -0.1;
                        }
                        var calcuLinkResult = allCalcuResultVisualDict?.GetValue(pipe.Code) as HydroCalcuLinkResult;
                        var calcuLinkResult = allCalcuVisualResultDict?.GetValue(pipe.Code) as HydroCalcuLinkResult;
                        if (calcuLinkResult != null)
                        {
                            if (calcuLinkResult.CalcuVelocity < 0)
                            {
                                item.SpeedX = -item.SpeedX;
                            }
                        }
                    }
                    break;
                case Yw.Hydro.ParterCatalog.Translation:
                    {
                        HydroTranslationInfo translation = visual as HydroTranslationInfo;
                        item = new LogicFlowEffect();
                        item.Id = translation.Code;
                        item.Rotation = 90;
                        item.SpeedX = 0.1;
                        if (translation.FlowDirectionX == Yw.Hydro.FlowDirection.None)
                        {
                            item.SpeedX = 0;
                        }
                        else if (translation.FlowDirectionX == Yw.Hydro.FlowDirection.Positive)
                        {
                            item.SpeedX = 0.1;
                        }
                        else
                        {
                            item.SpeedX = -0.1;
                        }
                        if (translation.FlowDirectionY == Yw.Hydro.FlowDirection.None)
                        {
                            item.SpeedY = 0;
                        }
                        else if (translation.FlowDirectionY == Yw.Hydro.FlowDirection.Positive)
                        {
                            item.SpeedY = 0.1;
                        }
                        else
                        {
                            item.SpeedY = -0.1;
                        }
                        var calcuLinkResult = allCalcuVisualResultDict?.GetValue(translation.Code) as HydroCalcuLinkResult;
                        if (calcuLinkResult != null)
                        {
                            if (calcuLinkResult.CalcuVelocity < 0)
                            {
                                item.SpeedX = -item.SpeedX;
                            }
                        }
                    }
                    break;
                case Yw.Hydro.ParterCatalog.Blunthead:
                    {
                        HydroBluntheadInfo blunthead = visual as HydroBluntheadInfo;
                        item = new LogicFlowEffect();
                        item.Id = blunthead.Code;
                        item.Rotation = 90;
                        item.SpeedX = 0.1;
                        if (blunthead.FlowDirectionX == Yw.Hydro.FlowDirection.None)
                        {
                            item.SpeedX = 0;
                        }
                        else if (blunthead.FlowDirectionX == Yw.Hydro.FlowDirection.Positive)
                        {
                            item.SpeedX = 0.1;
                        }
                        else
                        {
                            item.SpeedX = -0.1;
                        }
                        if (blunthead.FlowDirectionY == Yw.Hydro.FlowDirection.None)
                        {
                            item.SpeedY = 0;
                        }
                        else if (blunthead.FlowDirectionY == Yw.Hydro.FlowDirection.Positive)
                        {
                            item.SpeedY = 0.1;
                        }
                        else
                        {
                            item.SpeedY = -0.1;
                        }
                    }
                    break;
                case Yw.Hydro.ParterCatalog.Elbow:
                    {
                        HydroElbowInfo elbow = visual as HydroElbowInfo;
                        item = new LogicFlowEffect();
                        item.Id = elbow.Code;
                        item.Rotation = 90;
                        item.SpeedX = 0.1;
                        if (elbow.FlowDirectionX == Yw.Hydro.FlowDirection.None)
                        {
                            item.SpeedX = 0;
                        }
                        else if (elbow.FlowDirectionX == Yw.Hydro.FlowDirection.Positive)
                        {
                            item.SpeedX = 0.1;
                        }
                        else
                        {
                            item.SpeedX = -0.1;
                        }
                        if (elbow.FlowDirectionY == Yw.Hydro.FlowDirection.None)
                        {
                            item.SpeedY = 0;
                        }
                        else if (elbow.FlowDirectionY == Yw.Hydro.FlowDirection.Positive)
                        {
                            item.SpeedY = 0.1;
                        }
                        else
                        {
                            item.SpeedY = -0.1;
                        }
                    }
                    break;
                case Yw.Hydro.ParterCatalog.Threelink:
                    {
                        HydroThreelinkInfo threelink = visual as HydroThreelinkInfo;
                        item = new LogicFlowEffect();
                        item.Id = threelink.Code;
                        item.Rotation = 90;
                        item.SpeedX = 0.1;
                        if (threelink.FlowDirectionX == Yw.Hydro.FlowDirection.None)
                        {
                            item.SpeedX = 0;
                        }
                        else if (threelink.FlowDirectionX == Yw.Hydro.FlowDirection.Positive)
                        {
                            item.SpeedX = 0.1;
                        }
                        else
                        {
                            item.SpeedX = -0.1;
                        }
                        if (threelink.FlowDirectionY == Yw.Hydro.FlowDirection.None)
                        {
                            item.SpeedY = 0;
                        }
                        else if (threelink.FlowDirectionY == Yw.Hydro.FlowDirection.Positive)
                        {
                            item.SpeedY = 0.1;
                        }
                        else
                        {
                            item.SpeedY = -0.1;
                        }
                    }
                    break;
                case Yw.Hydro.ParterCatalog.Fourlink:
                    {
                        HydroFourlinkInfo fourlink = visual as HydroFourlinkInfo;
                        item = new LogicFlowEffect();
                        item.Id = fourlink.Code;
                        item.Rotation = 90;
                        item.SpeedX = 0.1;
                        if (fourlink.FlowDirectionX == Yw.Hydro.FlowDirection.None)
                        {
                            item.SpeedX = 0;
                        }
                        else if (fourlink.FlowDirectionX == Yw.Hydro.FlowDirection.Positive)
                        {
                            item.SpeedX = 0.1;
                        }
                        else
                        {
                            item.SpeedX = -0.1;
                        }
                        if (fourlink.FlowDirectionY == Yw.Hydro.FlowDirection.None)
                        {
                            item.SpeedY = 0;
                        }
                        else if (fourlink.FlowDirectionY == Yw.Hydro.FlowDirection.Positive)
                        {
                            item.SpeedY = 0.1;
                        }
                        else
                        {
                            item.SpeedY = -0.1;
                        }
                    }
                    break;
@@ -130,7 +312,7 @@
        {
            if (this.Visible)
            {
                _views?.ForEach(async x => await x.LoadFlowEffect(this.Items));
                _views?.ForEach(async x => await x.LoadFlowEffect(_cache.Values.ToList()));
            }
            else
            {
@@ -147,30 +329,12 @@
            {
                return;
            }
            var oldItem = this.Items?.Find(x => x.Id == visual.Code);
            if (oldItem != null)
            {
                if (this.Items != null)
                {
                    this.Items.Remove(oldItem);
                }
                this.Items?.Remove(oldItem);
            }
            var allCalcuResultVisualDict = _calcuResult?.GetVisualDict();
            var newItem = CreateItem(visual, allCalcuResultVisualDict);
            if (newItem != null)
            {
                if (this.Items != null)
                {
                    this.Items.Add(newItem);
                }
            }
            var allCalcuVisualResultDict = _calcuResultHelper?.GetVisualDict();
            var item = CreateItem(visual, allCalcuVisualResultDict);
            _cache[visual.Code] = item;
            if (this.Visible)
            {
                if (newItem != null)
                {
                    _views?.ForEach(async x => await x.UpdateFlowEffect(newItem));
                }
                _views?.ForEach(async x => await x.UpdateFlowEffect(item));
            }
        }
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/00-core/04-monitor/01-monitor/SimulationMonitorHelper.cs
@@ -1,6 +1,4 @@
using Yw.Hydro;
using Yw.Vmo;
using static Yw.WinFrmUI.Q3d.EpanetEnum;
using Yw.Vmo;
namespace HStation.WinFrmUI
{
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/00-core/04-monitor/02-value/SimulationMonitorValueHelper.cs
@@ -1,5 +1,4 @@
using Yw.Hydro;
using static Yw.WinFrmUI.Q3d.EpanetEnum;

namespace HStation.WinFrmUI
{
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/00-core/07-grading/SimulationGradingHelper.cs
@@ -11,7 +11,12 @@
        /// <summary>
        /// 
        /// </summary>
        public SimulationGradingHelper(SimulationVisualListHelper visualListHelper, SimulationCalcuResultHelper calcuResultHelper, ISimulationGradingView view)
        public SimulationGradingHelper
            (
                SimulationVisualListHelper visualListHelper,
                SimulationCalcuResultHelper calcuResultHelper,
                ISimulationGradingView view
            )
        {
            _visualListHelper = visualListHelper;
            _calcuResultHelper = calcuResultHelper;
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/01-property/SimulationPropertyCtrl.cs
@@ -18,7 +18,10 @@
            this.hydroVisualPropertyCtrl1.PropertyValueChangedEvent += HydroVisualPropertyCtrl1_PropertyValueChangedEvent;
            this.hydroVisualPropertyCtrl1.MarkPropertyValueChangedEvent += HydroVisualPropertyCtrl1_MarkPropertyValueChangedEvent;
            this.hydroVisualPropertyCtrl1.GradingPropertyValueChangedEvent += HydroPVisualPropertyCtrl1_GradingPropertyValueChangedEvent;
            this.hydroVisualPropertyCtrl1.FlowDirectionPropertyValueChangedEvent+=HydroVisualPropertyCtrl1_FlowDirectionPropertyValueChangedEvent;
        }
        #region äº‹ä»¶é›†åˆ
@@ -26,28 +29,28 @@
        /// æž„件查看事件
        /// </summary>
        public event Action<HydroVisualInfo> HydroViewEvent;
        /// <summary>
        /// å¼ºè°ƒè¿žæŽ¥ç»„件事件
        /// ç¬¬ä¸€ä¸ªå‚数为组件
        /// ç¬¬äºŒä¸ªå‚数为连接节点Code
        /// </summary>
        public event Action<HydroLinkInfo, string> BlinkLinkNodeEvent;
        /// <summary>
        /// å±žæ€§å€¼æ”¹å˜äº‹ä»¶
        /// </summary>
        public event Action<HydroVisualInfo> PropertyValueChangedEvent;
        /// <summary>
        /// æ ‡æ³¨å±žæ€§å€¼æ”¹å˜äº‹ä»¶
        /// </summary>
        public event Action<HydroVisualInfo> MarkPropertyValueChangedEvent;
        /// <summary>
        /// åˆ†çº§å±žæ€§å€¼æ”¹å˜äº‹ä»¶
        /// </summary>
        public event Action<HydroVisualInfo> GradingPropertyValueChangedEvent;
        /// <summary>
        /// æµå‘属性值改变事件
        /// </summary>
        public event Action<HydroVisualInfo> FlowDirectionPropertyValueChangedEvent;
        private HydroChangeHelper _changeHelper = null;//改变辅助类
        private HydroPropStatusHelper _propStatusHelper = null;//属性状态辅助类
@@ -585,6 +588,11 @@
            this.GradingPropertyValueChangedEvent?.Invoke(vm?.Vmo);
        }
        //流向属性发生改变
        private void HydroVisualPropertyCtrl1_FlowDirectionPropertyValueChangedEvent(HydroVisualViewModel obj)
        {
            this.FlowDirectionPropertyValueChangedEvent?.Invoke(obj?.Vmo);
        }
        #endregion
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/02-bimface/SimulationBimfaceCtrl.cs
@@ -441,14 +441,6 @@
        /// <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);
@@ -463,27 +455,11 @@
        }
        /// <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
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/03-q3d/XhsProjectSimulationL3d2Ctrl.Designer.cs
ÎļþÃû´Ó WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/03-q3d/XhsProjectSimulationQ3dCtrl.Designer.cs ÐÞ¸Ä
@@ -1,6 +1,6 @@
namespace HStation.WinFrmUI
{
    partial class XhsProjectSimulationQ3dCtrl
    partial class XhsProjectSimulationL3d2Ctrl
    {
        /// <summary> 
        /// Required designer variable.
@@ -28,7 +28,7 @@
        /// </summary>
        private void InitializeComponent()
        {
            ComponentResourceManager resources = new ComponentResourceManager(typeof(XhsProjectSimulationQ3dCtrl));
            ComponentResourceManager resources = new ComponentResourceManager(typeof(XhsProjectSimulationL3d2Ctrl));
            SuspendLayout();
            // 
            // XhsProjectHydroQ3dCtrl
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/03-q3d/XhsProjectSimulationL3d2Ctrl.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,66 @@
namespace HStation.WinFrmUI
{
    public partial class XhsProjectSimulationL3d2Ctrl : DevExpress.XtraEditors.XtraUserControl
    {
        public XhsProjectSimulationL3d2Ctrl()
        {
            InitializeComponent();
        }
        /// <summary>
        /// é€‰æ‹©ç»„件改变事件
        /// </summary>
        public event Action<List<string>> SelectedPartersChangedEvent;
        //获取水力信息方法
        private Func<Yw.Model.HydroModelInfo> _hydroInfoFunc = null;
        //获取展示器
        private Yw.WinFrmUI.Hydro.ViewerL3d2 GetViewer()
        {
            if (_viewer == null)
            {
                _viewer = new Yw.WinFrmUI.Hydro.ViewerL3d2();
                _viewer.Dock = DockStyle.Fill;
                _viewer.SelectionChangedEvent += (visuals) =>
                {
                    var codes = visuals?.Select(x => x.Id).Distinct().ToList();
                    this.SelectedPartersChangedEvent?.Invoke(codes);
                };
            }
            return _viewer;
        }
        //Q3d绘制器
        private Yw.WinFrmUI.Hydro.ViewerL3d2 _viewer = null;
        /// <summary>
        /// åˆå§‹åŒ–数据
        /// </summary>
        public void InitialData(Func<Yw.Model.HydroModelInfo> hydroInfoFunc)
        {
            _hydroInfoFunc = hydroInfoFunc;
            var viewer = GetViewer();
            this.Controls.Clear();
            this.Controls.Add(viewer);
            LoadData();
        }
        //加载数据
        private void LoadData()
        {
            var hydroInfo = _hydroInfoFunc?.Invoke();
            if (hydroInfo == null)
            {
                return;
            }
            var network =HStation.WinFrmUI.HydroL3d2TransferHelper.ToL3d2NetworkViewModel(hydroInfo);
            var viewer = GetViewer();
            viewer.Initial(network);
        }
    }
}
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/03-q3d/XhsProjectSimulationL3d2Ctrl.resx
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/03-q3d/XhsProjectSimulationQ3dCtrl.cs
ÎļþÒÑɾ³ý
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.Designer.cs
@@ -111,6 +111,7 @@
            controlContainerBottom = new DevExpress.XtraBars.Docking.ControlContainer();
            svgImg32 = new DevExpress.Utils.SvgImageCollection(components);
            rmSet = new DevExpress.XtraBars.Ribbon.RadialMenu(components);
            barCkFlowEffect = new DevExpress.XtraBars.BarCheckItem();
            ((ISupportInitialize)ribbonControl1).BeginInit();
            ((ISupportInitialize)repositoryItemImageComboBox1).BeginInit();
            ((ISupportInitialize)repositoryItemRadioGroup1).BeginInit();
@@ -127,9 +128,9 @@
            // 
            ribbonControl1.ExpandCollapseItem.Id = 0;
            ribbonControl1.ItemPanelStyle = DevExpress.XtraBars.Ribbon.RibbonItemPanelStyle.Classic;
            ribbonControl1.Items.AddRange(new DevExpress.XtraBars.BarItem[] { ribbonControl1.ExpandCollapseItem, barBtnCheck, barBtnCalcu, barBtnExportInp, barBtnSave, barBtnVisualList, barBtnSetList, barBtnSetPumpList, barBtnSetValveList, barBtnSetPipeList, barBtnSetElbowsList, barBtnSetThreelinkList, barBtnSetFourlinkList, barBtnSetTranslationList, barBtnSetExchangerList, barBtnSetJunctionList, barBtnPumpAnaly, barBtnSearch, barBtnSetGradingList, barBtnApplyGradingList, barBtnRefresh, barBtnSetMark, barBtnSetReservoirList, barBtnSetTankList, barBtnSetWaterboxList, barBtnSetBluntheadList, barBtnSetNozzleList, barBtnSetHydrantList, barBtnSetMeterList, barBtnSetCompressorList, barBtnSetFlowmeterList, barBtnSetPressmeterList, barCkMonitorVisible, barCkMark, barCkGrading, barCkCalcu, barBtnWorkingLossCurve, barBtnWorkingLossStatistics, barBtnEnergyAnaly, barBtnWorkingAnaly, barBtnPumpParallel, barBtnAccuracy, barBtnSetVisualVisible, barCkDecorator, barBtnAddWorking, barBtnPumpCurve, barBtnEditScheme, barBtnDeleteScheme, barBtnExportWord, barBtnWorkingMonitorAnaly, barBtnSetCoolingList, barBtnSetMonitorList, barBtnSetMonitorValueList, barBtnMgrWorking, barToggleSwitchPress, barBtnEvaluation });
            ribbonControl1.Items.AddRange(new DevExpress.XtraBars.BarItem[] { ribbonControl1.ExpandCollapseItem, barBtnCheck, barBtnCalcu, barBtnExportInp, barBtnSave, barBtnVisualList, barBtnSetList, barBtnSetPumpList, barBtnSetValveList, barBtnSetPipeList, barBtnSetElbowsList, barBtnSetThreelinkList, barBtnSetFourlinkList, barBtnSetTranslationList, barBtnSetExchangerList, barBtnSetJunctionList, barBtnPumpAnaly, barBtnSearch, barBtnSetGradingList, barBtnApplyGradingList, barBtnRefresh, barBtnSetMark, barBtnSetReservoirList, barBtnSetTankList, barBtnSetWaterboxList, barBtnSetBluntheadList, barBtnSetNozzleList, barBtnSetHydrantList, barBtnSetMeterList, barBtnSetCompressorList, barBtnSetFlowmeterList, barBtnSetPressmeterList, barCkMonitorVisible, barCkMark, barCkGrading, barCkCalcu, barBtnWorkingLossCurve, barBtnWorkingLossStatistics, barBtnEnergyAnaly, barBtnWorkingAnaly, barBtnPumpParallel, barBtnAccuracy, barBtnSetVisualVisible, barCkDecorator, barBtnAddWorking, barBtnPumpCurve, barBtnEditScheme, barBtnDeleteScheme, barBtnExportWord, barBtnWorkingMonitorAnaly, barBtnSetCoolingList, barBtnSetMonitorList, barBtnSetMonitorValueList, barBtnMgrWorking, barToggleSwitchPress, barBtnEvaluation, barCkFlowEffect });
            ribbonControl1.Location = new Point(0, 0);
            ribbonControl1.MaxItemId = 97;
            ribbonControl1.MaxItemId = 98;
            ribbonControl1.Name = "ribbonControl1";
            ribbonControl1.Pages.AddRange(new DevExpress.XtraBars.Ribbon.RibbonPage[] { ribbonPage1 });
            ribbonControl1.RepositoryItems.AddRange(new DevExpress.XtraEditors.Repository.RepositoryItem[] { repositoryItemImageComboBox1, repositoryItemRadioGroup1 });
@@ -615,6 +616,7 @@
            ribbonPageGroup6.ItemLinks.Add(barBtnSetMark);
            ribbonPageGroup6.ItemLinks.Add(barCkMark);
            ribbonPageGroup6.ItemLinks.Add(barCkCalcu);
            ribbonPageGroup6.ItemLinks.Add(barCkFlowEffect);
            ribbonPageGroup6.Name = "ribbonPageGroup6";
            ribbonPageGroup6.Text = "标注";
            // 
@@ -798,6 +800,14 @@
            rmSet.Ribbon = ribbonControl1;
            rmSet.BeforePopup += rmSet_BeforePopup;
            // 
            // barCkFlowEffect
            //
            barCkFlowEffect.Caption = "流向";
            barCkFlowEffect.CheckBoxVisibility = DevExpress.XtraBars.CheckBoxVisibility.BeforeText;
            barCkFlowEffect.Id = 97;
            barCkFlowEffect.Name = "barCkFlowEffect";
            barCkFlowEffect.CheckedChanged += barCkFlowEffect_CheckedChanged;
            //
            // XhsProjectSimulationCorePage
            // 
            Appearance.BackColor = SystemColors.Control;
@@ -906,5 +916,6 @@
        private DevExpress.XtraEditors.Repository.RepositoryItemRadioGroup repositoryItemRadioGroup1;
        private DevExpress.XtraBars.BarToggleSwitchItem barToggleSwitchPress;
        private DevExpress.XtraBars.BarButtonItem barBtnEvaluation;
        private DevExpress.XtraBars.BarCheckItem barCkFlowEffect;
    }
}
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.cs
@@ -6,6 +6,7 @@
using Yw.Hydro;
using Yw.Model;
using Yw.Vmo;
using Yw.WinFrmUI.Bimface;
namespace HStation.WinFrmUI
{
@@ -115,7 +116,7 @@
        {
            base.InitialDataSource();
            ShowBimfaceCtrl();
            ShowQ3dCtrl();
            ShowL3d2Ctrl();
            ShowPropertyCtrl();
            InitialSvgImages();
        }
@@ -365,42 +366,42 @@
        #endregion BIM控件
        #region Q3d控件
        #region L3d2控件
        //Q3d æŽ§ä»¶
        private XhsProjectSimulationQ3dCtrl _q3dCtrl = null;
        //L3d2控件
        private XhsProjectSimulationL3d2Ctrl _l3d2ctrl = null;
        //获取 Q3d æŽ§ä»¶
        private XhsProjectSimulationQ3dCtrl GetQ3dCtrl()
        //获取L3d2控件
        private XhsProjectSimulationL3d2Ctrl GetL3d2Ctrl()
        {
            if (_hydroInfo == null)
            {
                return default;
            }
            if (_q3dCtrl == null)
            if (_l3d2ctrl == null)
            {
                _q3dCtrl = new XhsProjectSimulationQ3dCtrl();
                _q3dCtrl.Dock = DockStyle.Fill;
                _q3dCtrl.InitialData(() => _hydroInfo);
                _q3dCtrl.SelectedPartersChangedEvent += (codes) =>
                _l3d2ctrl = new XhsProjectSimulationL3d2Ctrl();
                _l3d2ctrl.Dock = DockStyle.Fill;
                _l3d2ctrl.InitialData(hydroInfoFunc: () => _hydroInfo);
                _l3d2ctrl.SelectedPartersChangedEvent += (codes) =>
                {
                    var visualListHelper = GetVisualListHelper();
                    var visuals = visualListHelper.GetVisualList(codes);
                    SelectVisual(visuals?.LastOrDefault(), eSimulationVisualSource.Q3d);
                };
            }
            return _q3dCtrl;
            return _l3d2ctrl;
        }
        //显示 Q3d æŽ§ä»¶
        private void ShowQ3dCtrl()
        //显示L3d2控件
        private void ShowL3d2Ctrl()
        {
            var q3dCtrl = GetQ3dCtrl();
            var l3d2Ctrl = GetL3d2Ctrl();
            this.tabPageQ3d.Controls.Clear();
            this.tabPageQ3d.Controls.Add(q3dCtrl);
            this.tabPageQ3d.Controls.Add(l3d2Ctrl);
        }
        #endregion Q3d控件
        #endregion
        #region å±žæ€§æŽ§ä»¶
@@ -488,6 +489,13 @@
                    var gradingHelper = await GetGradingHelper();
                    gradingHelper.Set(visual);
                };
                _propertyCtrl.FlowDirectionPropertyValueChangedEvent += async (visual) =>
                {
                    //流向属性发生改变
                    //判断当前是否有流向展示,若有则更新流向,最好是更新单个流向
                    var flowDirectionHelper = await GetFlowEffectHelper();
                    flowDirectionHelper.Set(visual);
                };
            }
            return _propertyCtrl;
        }
@@ -512,7 +520,7 @@
        }
        //显示属性控件
        private async void ShowPropertyCtrl()
        private async Task ShowPropertyCtrl()
        {
            if (IsPropertyCtrlVisible)
            {
@@ -527,9 +535,9 @@
        }
        //设置属性控件
        private void SetPropertyCtrl(HydroVisualInfo visual)
        private async void SetPropertyCtrl(HydroVisualInfo visual)
        {
            ShowPropertyCtrl();
            await ShowPropertyCtrl();
            var visualVmListHelper = GetVisualVmListHelper();
            var vm = visualVmListHelper.GetVisual(visual);
            _propertyCtrl.SelectedObject = vm;
@@ -542,7 +550,7 @@
            _propertyCtrl?.UpdateRows();
        }
        #endregion å±žæ€§æŽ§ä»¶
        #endregion
        #region é€‰æ‹©æž„ä»¶
@@ -1761,7 +1769,42 @@
            markHelper.Set();
        }
        #endregion æ¨¡åž‹æ ‡æ³¨
        #endregion
        #region æ°´æµåŠ¨ç”»
        //水力动画辅助类
        private SimulationFlowEffectHelper _flowEffectHelper = null;
        //获取水流动画辅助类
        private async Task<SimulationFlowEffectHelper> GetFlowEffectHelper()
        {
            if (_flowEffectHelper == null)
            {
                var visualListHelper = GetVisualListHelper();
                var calcuResultHelper = GetCalcuResultHelper();
                var bimfaceCtrl = await GetBimfaceCtrl();
                _flowEffectHelper = new SimulationFlowEffectHelper(visualListHelper, calcuResultHelper, bimfaceCtrl);
            }
            return _flowEffectHelper;
        }
        //水流动画是否可见
        private async void barCkFlowEffect_CheckedChanged(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            if (this.barCkFlowEffect.Checked)
            {
                this.barCkGrading.Checked = false;
            }
            var flowEffectHelper = await GetFlowEffectHelper();
            flowEffectHelper.Visible = this.barCkFlowEffect.Checked;
            flowEffectHelper.Set();
        }
        #endregion
        #region é¢œè‰²åˆ†çº§
@@ -1838,6 +1881,10 @@
        //颜色分级展示
        private async void barCkGrading_CheckedChanged(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            if (this.barCkGrading.Checked)
            {
                this.barCkFlowEffect.Checked = false;
            }
            var gradingHelper = await GetGradingHelper();
            gradingHelper.Visible = this.barCkGrading.Checked;
            gradingHelper.Set();
@@ -3466,5 +3513,7 @@
        }
        #endregion æ–¹æ¡ˆç®¡ç†
    }
}
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.resx
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
  <!--
    Microsoft ResX Schema
    Microsoft ResX Schema
    Version 2.0
@@ -48,7 +48,7 @@
    value   : The object must be serialized with
            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
            : and then encoded with base64 encoding.
    mimetype: application/x-microsoft.net.object.soap.base64
    value   : The object must be serialized with
            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
WinFrmUI/HStation.WinFrmUI.Xhs.Core/HStation.WinFrmUI.Xhs.Core.csproj
@@ -182,10 +182,12 @@
        <Compile Update="02-project\01-import\04-completed\02-bimface\XhsProjectResultBimfaceCtrl.cs" />
        <Compile Update="02-project\01-import\04-completed\03-hydro\XhsProjectResultHydroCtrl.cs" />
        <Compile Update="02-project\01-import\04-completed\01-info\XhsProjectResultInfoCtrl.cs" />
        <Compile Update="02-project\04-q3d\XhsProjectQ3dViewPage.cs" />
        <Compile Update="02-project\05-add\AddXhsProjectDlg.cs" />
        <Compile Update="02-project\08-view\ViewXhsProjectDlg.cs" />
        <Compile Update="02-project\06-edit\EditXhsProjectDlg.cs" />
        <Compile Update="03-simulation\03-q3d\XhsProjectSimulationL3d2Ctrl.cs">
          <SubType>UserControl</SubType>
        </Compile>
        <Compile Update="03-simulation\04-scheme\02-change\00-core\CreateXhsSchemeBimfaceCtrl.cs">
          <SubType>UserControl</SubType>
        </Compile>
@@ -370,7 +372,6 @@
        <Compile Update="03-simulation\01-info\XhsProjectSimulationProjectInfoCtrl.cs" />
        <Compile Update="03-simulation\01-info\XhsProjectSimulationBimfaceInfoCtrl.cs" />
        <Compile Update="03-simulation\01-info\XhsProjectSimulationInfoPage.cs" />
        <Compile Update="03-simulation\03-q3d\XhsProjectSimulationQ3dCtrl.cs" />
        <Compile Update="03-simulation\11-pump\05-edit\SimulationPumpCurveEditDlg.cs">
          <SubType>Form</SubType>
        </Compile>
WinFrmUI/HStation.WinFrmUI.Xhs.Core/HStation.WinFrmUI.Xhs.Core.csproj.user
@@ -58,7 +58,7 @@
    <Compile Update="02-project\03-mgr\XhsProjectMgrPage.cs">
      <SubType>UserControl</SubType>
    </Compile>
    <Compile Update="02-project\04-q3d\XhsProjectQ3dViewPage.cs">
    <Compile Update="02-project\04-l3d2\XhsProjectL3d2ViewPage.cs">
      <SubType>UserControl</SubType>
    </Compile>
    <Compile Update="02-project\05-add\AddXhsProjectDlg.cs">
@@ -89,9 +89,6 @@
      <SubType>UserControl</SubType>
    </Compile>
    <Compile Update="03-simulation\02-bimface\SimulationBimfaceCtrl.cs">
      <SubType>UserControl</SubType>
    </Compile>
    <Compile Update="03-simulation\03-q3d\XhsProjectSimulationQ3dCtrl.cs">
      <SubType>UserControl</SubType>
    </Compile>
    <Compile Update="03-simulation\04-scheme\00-core\CreateXhsSchemeDlg.cs">
WinFrmUI/Yw.WinFrmUI.Bimface.Core/00-core/05-logic-flow-effect/LogicFlowEffect.cs
WinFrmUI/Yw.WinFrmUI.Bimface.Core/01-interop/01-interop3d/BimfaceInterop3dContainer.cs
@@ -503,6 +503,10 @@
            {
                return;
            }
            if (obj == null)
            {
                return;
            }
            await this.webViewControl1.EvaluateScriptAsync("loadFlowEffect", obj);
        }
@@ -515,7 +519,12 @@
            {
                return;
            }
            await this.webViewControl1.EvaluateScriptAsync("loadFlowEffectList", obj);
            var list = obj?.Where(x => x != null).ToList();
            if (list == null || list.Count < 1)
            {
                return;
            }
            await this.webViewControl1.EvaluateScriptAsync("loadFlowEffectList", list);
        }
        /// <summary>
@@ -524,6 +533,10 @@
        public async Task UpdateFlowEffect(LogicFlowEffect obj)
        {
            if (!_isViewInitialized)
            {
                return;
            }
            if (obj == null)
            {
                return;
            }
@@ -539,7 +552,12 @@
            {
                return;
            }
            await this.webViewControl1.EvaluateScriptAsync("updateFlowEffectList", obj);
            var list = obj?.Where(x => x != null).ToList();
            if (list == null || list.Count < 1)
            {
                return;
            }
            await this.webViewControl1.EvaluateScriptAsync("updateFlowEffectList", list);
        }
        /// <summary>
WinFrmUI/Yw.WinFrmUI.Bimface.Core/bimface/js/LogicFlowEffect.js
@@ -1,18 +1,8 @@

let _flowAnimationContainer;//水流动画容器
let _flowImgSrc = "https://static.bimface.com/attach/34d0d3aeb2e348aea5f3203b760ca667_flow5.png";//水流材质图片
let _flowImgSrc = "https://static.bimface.com/attach/34d0d3aeb2e348aea5f3203b760ca667_flow5.png";//水流材质图片
let _flowImgLocal = _base64_flow_effect.FlowEffect;//本地水流材质图片,测试没有通过
let _flowEffectList = new Set();//水流动画列表
let _flowMaterialContainer;//水流材质容器
//加载水流动画
function loadFlowEffect(item) {
    unloadFlowEffect();
    let flowMaterial = createFlowMaterial(item);
    let flowEffect = createFlowEffect(flowMaterial, item);
    flowEffect.play();
    renderFlowEffect();
}
//加载水流动画列表
function loadFlowEffectList(data) {
@@ -23,7 +13,28 @@
            createFlowEffect(flowMaterial, x);
        });
        playFlowEffect();
        renderFlowEffect();
    }
}
//加载水流动画
function loadFlowEffect(item) {
    unloadFlowEffect();
    let flowMaterial = createFlowMaterial(item);
    var flowEffect = createFlowEffect(flowMaterial, x);
    flowEffect.play();
}
//更新水流动画列表
function updateFlowEffectList(data) {
    if (data != null && data.length > 0) {
        if (_flowEffectList.size > 0) {
            let flowEffectId = getFlowEffectId(item.id);
            _flowEffectList.forEach(x => {
                if (x.getId() == flowEffectId) {
                    x.setSpeed([item.speedx, item.speedy]);
                }
            });
        }
    }
}
@@ -39,12 +50,19 @@
    }
}
//更新水流动画列表
function updateFlowEffectList(data) {
    if (data != null && data.length > 0) {
        data.forEach(x => {
            updateFlowEffect(x);
        });
//卸载水流动画
function unloadFlowEffect() {
    if (_flowEffectList.size > 0) {
        _flowEffectList.forEach(x => x.stop());
        _flowEffectList.clear();
        if (_flowMaterialContainer != null) {
            let allMaterialList = _flowMaterialContainer.getAllMaterials();
            if (allMaterialList != null && allMaterialList.length > 0) {
                allMaterialList.forEach(x => {
                    x.clearOverrideComponentsMaterial();
                });
            }
        }
    }
}
@@ -59,57 +77,17 @@
            }
        });
        if (flowEffect != null) {
            flowEffect.stop();
            _flowEffectList.delete(flowEffect);
            let flowMaterialId = getFlowMaterialId(id);
            initialFlowAnimationContainer();
            let flowMaterial = _flowAnimationContainer.getMaterialById(flowMaterialId)
            if (flowMaterial != null) {
                flowMaterial.clearOverrideComponentsMaterial();
                _flowAnimationContainer.removeMaterialById(flowMaterialId)
            if (_flowMaterialContainer != null) {
                let flowMaterialId = getFlowMaterialId(id);
                let flowMaterial = _flowMaterialContainer.getMaterialById(flowMaterialId)
                if (flowMaterial != null) {
                    flowMaterial.clearOverrideComponentsMaterial();
                }
            }
        }
    }
}
//卸载水流动画
function unloadFlowEffect() {
    if (_flowEffectList.size > 0) {
        _flowEffectList.clear();
        initialFlowAnimationContainer();
        let allMaterialList = _flowAnimationContainer.getAllMaterials();
        if (allMaterialList != null && allMaterialList.length > 0) {
            allMaterialList.forEach(x => {
                x.clearOverrideComponentsMaterial();
            });
        }
        _flowAnimationContainer.clear();
    }
}
//初始化水流动画容器
function initialFlowAnimationContainer() {
    if (_flowAnimationContainer == null) {
        // æž„造水流材质容器
        _flowAnimationContainer = new Glodon.Bimface.Plugins.Material.MaterialContainer();
    }
}
//创建水流材质
function createFlowMaterial(item) {
    initialFlowAnimationContainer();
    // æž„造材质配置
    let flowMaterialConfig = new Glodon.Bimface.Plugins.Material.MaterialConfig();
    flowMaterialConfig.viewer = _viewer;
    flowMaterialConfig.src = _flowImgLocal;
    flowMaterialConfig.rotation = item.rotation;
    flowMaterialConfig.offset = [0, 0];
    flowMaterialConfig.scale = [0.1524, 0.1524];
    flowMaterialConfig.id = getFlowMaterialId(item.id);
    // æž„造材质对象
    let flowMaterial = new Glodon.Bimface.Plugins.Material.Material(flowMaterialConfig);
    _flowAnimationContainer.addMaterial(flowMaterial);
    flowMaterial.overrideComponentsMaterialById([item.id]);//数组
    return flowMaterial;
}
//创建水流动画
@@ -126,6 +104,37 @@
    return flowEffect;
}
//创建水流材质
function createFlowMaterial(item) {
    //初始化水流材质容器
    initialFlowMaterialContainer();
    var flowMaterialId = getFlowMaterialId(item.id);
    let flowMaterial = _flowMaterialContainer.getMaterialById(flowMaterialId);
    if (flowMaterial == null) {
        // æž„造材质配置
        let flowMaterialConfig = new Glodon.Bimface.Plugins.Material.MaterialConfig();
        flowMaterialConfig.viewer = _viewer;
        flowMaterialConfig.src = _flowImgLocal;
        flowMaterialConfig.rotation = item.rotation;
        flowMaterialConfig.offset = [0, 0];
        flowMaterialConfig.scale = [0.1524, 0.1524];
        flowMaterialConfig.id = flowMaterialId;
        // æž„造材质对象
        flowMaterial = new Glodon.Bimface.Plugins.Material.Material(flowMaterialConfig);
        _flowMaterialContainer.addMaterial(flowMaterial);
    }
    flowMaterial.overrideComponentsMaterialById([item.id]);//数组
    return flowMaterial;
}
//初始化水流材质容器
function initialFlowMaterialContainer() {
    if (_flowMaterialContainer == null) {
        // æž„造水流材质容器
        _flowMaterialContainer = new Glodon.Bimface.Plugins.Material.MaterialContainer();
    }
}
//获取水流动画id
function getFlowEffectId(id) {
    return "flow-effect-" + id;
WinFrmUI/Yw.WinFrmUI.Core/06-document/DocumentPage.cs
@@ -117,11 +117,6 @@
        public event Action<PageGuid> ClosePageEvent;
        /// <summary>
        /// é‡ç½®æ‰€æœ‰Page事件
        /// </summary>
        public event Action ResetAllPagesEvent;
        /// <summary>
        /// å…³é—­page
        /// </summary>
        /// <param name="sguid"></param>
@@ -159,16 +154,12 @@
        /// </summary>
        public PageAuthHaveTree AuthTree { get; set; }
        protected void ResetAllPages()
        {
            this.ResetAllPagesEvent?.Invoke();
        }
        /// <summary>
        /// åˆ·æ–°æ•°æ®
        /// </summary>
        public virtual void RefreshData()
        {
        }
        /// <summary>
@@ -199,6 +190,7 @@
        /// </summary>
        public virtual void RegistEvents()
        {
        }
        /// <summary>
@@ -206,6 +198,7 @@
        /// </summary>
        public virtual void UnRegistEvents()
        {
        }
    }
}
WinFrmUI/Yw.WinFrmUI.Hydro.Core/00-core/02-transfer/HydroL2dTransferHelper.cs
ÎļþÒÑɾ³ý
WinFrmUI/Yw.WinFrmUI.Hydro.Core/00-core/02-transfer/HydroQ3dTransferHelper.cs
ÎļþÒÑɾ³ý
WinFrmUI/Yw.WinFrmUI.Hydro.Core/00-core/02-transfer/HydroW3dTransferHelper.cs
ÎļþÒÑɾ³ý
WinFrmUI/Yw.WinFrmUI.Hydro.Core/00-core/03-helper/HydroFlowDirectionHelper.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,41 @@
namespace Yw.WinFrmUI
{
    /// <summary>
    /// æ°´æµæµå‘辅助类
    /// </summary>
    public class HydroFlowDirectionHelper
    {
        //字典
        private static readonly Dictionary<int, string> _dict = new Dictionary<int, string>()
        {
            { Yw.Hydro.FlowDirection.None,"无"},
            { Yw.Hydro.FlowDirection.Positive,"æ­£"},
            { Yw.Hydro.FlowDirection.Negative,"反"}
        };
        /// <summary>
        /// èŽ·å–åç§°
        /// </summary>
        public static string GetName(int code)
        {
            if (_dict.ContainsKey(code))
            {
                return _dict[code];
            }
            return string.Empty;
        }
        /// <summary>
        /// èŽ·å–ç¼–ç 
        /// </summary>
        public static int GetCode(string name)
        {
            if (_dict.ContainsValue(name))
            {
                return _dict.First(x => x.Value == name).Key;
            }
            return Yw.Hydro.FlowDirection.None;
        }
    }
}
WinFrmUI/Yw.WinFrmUI.Hydro.Core/00-core/04-extensions/DictionaryExtensions.cs
WinFrmUI/Yw.WinFrmUI.Hydro.Core/00-core/04-extensions/HydroGradingVmoExtensiongs.cs
WinFrmUI/Yw.WinFrmUI.Hydro.Core/00-core/04-extensions/HydroModelInfoExtensions.cs
WinFrmUI/Yw.WinFrmUI.Hydro.Core/00-core/04-extensions/HydroMonitorValueExtensions.cs
WinFrmUI/Yw.WinFrmUI.Hydro.Core/00-core/04-extensions/HydroParterInfoExtensions.cs
WinFrmUI/Yw.WinFrmUI.Hydro.Core/00-core/05-svg/HydroMainSvgImageHelper.cs
WinFrmUI/Yw.WinFrmUI.Hydro.Core/00-core/05-svg/HydroMonitorSvgImageHelper.cs
WinFrmUI/Yw.WinFrmUI.Hydro.Core/00-core/06-function/HydroFunctionHelper.cs
WinFrmUI/Yw.WinFrmUI.Hydro.Core/02-model/HydroModelMgrPage.cs
@@ -89,9 +89,9 @@
            };
            if (!IsExistPage(guid, true))
            {
                var page = new HydroQ3dViewPage();
                page.SetBindingData(info);
                CreatePage(page, guid);
                //var page = new HydroQ3dViewPage();
                //page.SetBindingData(info);
                //CreatePage(page, guid);
            }
        }
@@ -277,9 +277,9 @@
            };
            if (!IsExistPage(guid, true))
            {
                var page = new HydroL2dViewPage();
                page.SetBindingData(info);
                CreatePage(page, guid);
                //var page = new HydroL2dViewPage();
                //page.SetBindingData(info);
                //CreatePage(page, guid);
            }
        }
    }
WinFrmUI/Yw.WinFrmUI.Hydro.Core/04-viewmodel/02-visual/HydroVisualViewModel.cs
@@ -15,8 +15,34 @@
        /// </summary>
        public HydroVisualViewModel(Yw.Model.HydroVisualInfo rhs, Yw.Model.HydroModelInfo hydroInfo) : base(rhs, hydroInfo)
        {
            this.FlowDirectionX = HydroFlowDirectionHelper.GetName(rhs.FlowDirectionX);
            this.FlowDirectionY = HydroFlowDirectionHelper.GetName(rhs.FlowDirectionY);
            this.Vmo = rhs;
        }
        /// <summary>
        /// X流向
        /// </summary>
        [Category("流向")]
        [DisplayName("X流向")]
        [HydroFlowDirectionPro]
        [PropertyOrder(101)]
        [Browsable(true)]
        [TypeConverter(typeof(HydroFlowDirectionConverter))]
        public virtual string FlowDirectionX { get; set; }
        /// <summary>
        /// Y流向
        /// </summary>
        [Category("流向")]
        [DisplayName("Y流向")]
        [HydroFlowDirectionPro]
        [PropertyOrder(102)]
        [Browsable(true)]
        [TypeConverter(typeof(HydroFlowDirectionConverter))]
        public virtual string FlowDirectionY { get; set; }
        /// <summary>
        /// vmo
@@ -28,6 +54,25 @@
            set { _vmo = value; }
        }
        /// <summary>
        /// æ›´æ–°å±žæ€§
        /// </summary>
        public override void UpdateProperty()
        {
            base.UpdateProperty();
            this.FlowDirectionX = HydroFlowDirectionHelper.GetName(this.Vmo.FlowDirectionX);
            this.FlowDirectionY = HydroFlowDirectionHelper.GetName(this.Vmo.FlowDirectionY);
        }
        /// <summary>
        /// æ›´æ–° Vmo å±žæ€§
        /// </summary>
        public override void UpdateVmoProperty()
        {
            base.UpdateVmoProperty();
            this.Vmo.FlowDirectionX = HydroFlowDirectionHelper.GetCode(this.FlowDirectionX);
            this.Vmo.FlowDirectionY = HydroFlowDirectionHelper.GetCode(this.FlowDirectionY);
        }
        /// <summary>
        /// æ›´æ–°è®¡ç®—属性
WinFrmUI/Yw.WinFrmUI.Hydro.Core/04-viewmodel/05-attribute/HydroFlowDirectionProAttribute.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
namespace Yw.WinFrmUI
{
    /// <summary>
    /// ç”¨äºŽæ ‡è¯†æ°´åŠ›æµå‘å±žæ€§ç‰¹æ€§
    /// </summary>
    [AttributeUsage(AttributeTargets.Property, AllowMultiple = false, Inherited = true)]
    public class HydroFlowDirectionProAttribute : Attribute
    {
        /// <summary>
        ///
        /// </summary>
        public HydroFlowDirectionProAttribute() { }
    }
}
WinFrmUI/Yw.WinFrmUI.Hydro.Core/04-viewmodel/06-converter/HydroFlowDirectionConverter.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,39 @@
namespace Yw.WinFrmUI
{
    /// <summary>
    /// æ°´åŠ›æµå‘è½¬æ¢å™¨
    /// </summary>
    public class HydroFlowDirectionConverter : StringConverter
    {
        /// <summary>
        ///
        /// </summary>
        public override bool GetStandardValuesSupported(ITypeDescriptorContext context)
        {
            return true;
        }
        /// <summary>
        ///
        /// </summary>
        public override StandardValuesCollection GetStandardValues(ITypeDescriptorContext context)
        {
            var list = new List<string>
            {
               HydroFlowDirectionHelper.GetName(Yw.Hydro.FlowDirection.None),
               HydroFlowDirectionHelper.GetName(Yw.Hydro.FlowDirection.Positive),
               HydroFlowDirectionHelper.GetName(Yw.Hydro.FlowDirection.Negative)
            };
            return new StandardValuesCollection(list);
        }
        /// <summary>
        /// ä¸å…è®¸æ‰‹åŠ¨è¾“å…¥
        /// </summary>
        public override bool GetStandardValuesExclusive(ITypeDescriptorContext context)
        {
            return true;
        }
    }
}
WinFrmUI/Yw.WinFrmUI.Hydro.Core/05-property/HydroVisualPropertyCtrl.cs
@@ -41,6 +41,10 @@
        /// åˆ†çº§å±žæ€§å€¼æ”¹å˜äº‹ä»¶
        /// </summary>
        public event Action<HydroVisualViewModel> GradingPropertyValueChangedEvent;
        /// <summary>
        /// æµå‘属性值改变事件
        /// </summary>
        public event Action<HydroVisualViewModel> FlowDirectionPropertyValueChangedEvent;
        /// <summary>
@@ -657,7 +661,7 @@
            if (descriptor != null)
            {
                //真实属性名称
                var realPropAttri = (HydroRealProAttribute)descriptor.Attributes[typeof(HydroRealProAttribute)];
                HydroRealProAttribute realPropAttri = (HydroRealProAttribute)descriptor.Attributes[typeof(HydroRealProAttribute)];
                if (realPropAttri != null)
                {
                    realFieldName = realPropAttri.RealPropName;
@@ -675,6 +679,12 @@
                    this.GradingPropertyValueChangedEvent?.Invoke(vm);
                }
                var hydroFlowDirectionAttri = descriptor.Attributes[typeof(HydroFlowDirectionProAttribute)];
                if (hydroFlowDirectionAttri != null)
                {
                    this.FlowDirectionPropertyValueChangedEvent?.Invoke(vm);
                }
                this.propertyGridControl1.UpdateRows();
            }
            _changeHelper?.Append(vm.Vmo, eChangeType.Update);
WinFrmUI/Yw.WinFrmUI.Hydro.Core/99-view/01-q3d/HydroQ3dViewPage.Designer.cs
ÎļþÒÑɾ³ý
WinFrmUI/Yw.WinFrmUI.Hydro.Core/99-view/01-q3d/HydroQ3dViewPage.cs
ÎļþÒÑɾ³ý
WinFrmUI/Yw.WinFrmUI.Hydro.Core/99-view/01-q3d/HydroQ3dViewPage.resx
ÎļþÒÑɾ³ý
WinFrmUI/Yw.WinFrmUI.Hydro.Core/99-view/02-l2d/HydroL2dViewPage.Designer.cs
ÎļþÒÑɾ³ý
WinFrmUI/Yw.WinFrmUI.Hydro.Core/99-view/02-l2d/HydroL2dViewPage.cs
ÎļþÒÑɾ³ý
WinFrmUI/Yw.WinFrmUI.Hydro.Core/99-view/02-l2d/HydroL2dViewPage.resx
ÎļþÒÑɾ³ý
WinFrmUI/Yw.WinFrmUI.Hydro.Core/99-view/03-l3d/HydroL3dViewPage.Designer.cs
ÎļþÒÑɾ³ý
WinFrmUI/Yw.WinFrmUI.Hydro.Core/99-view/03-l3d/HydroL3dViewPage.cs
ÎļþÒÑɾ³ý
WinFrmUI/Yw.WinFrmUI.Hydro.Core/99-view/03-l3d/HydroL3dViewPage.resx
ÎļþÒÑɾ³ý
WinFrmUI/Yw.WinFrmUI.Hydro.Core/Yw.WinFrmUI.Hydro.Core.csproj
@@ -53,17 +53,14 @@
    <ItemGroup>
        <PackageReference Include="DevExpress.Win.Design" Version="23.2.4" />
        <PackageReference Include="Yw.BLL.Basic.Core" Version="3.3.7" />
        <PackageReference Include="Yw.BLL.Hydro.Core" Version="5.0.3" />
        <PackageReference Include="Yw.BLL.Hydro.Core" Version="5.0.5" />
        <PackageReference Include="Yw.Pump.Core" Version="3.2.4" />
        <PackageReference Include="Yw.WinFrmUI.Hydro.L3d2.Core" Version="1.0.2" />
    </ItemGroup>
    <ItemGroup>
        <ProjectReference Include="..\..\Hydro\Yw.Hydro.Core\Yw.Hydro.Core.csproj" />
        <ProjectReference Include="..\Yw.WinFrmUI.Core\Yw.WinFrmUI.Core.csproj" />
        <ProjectReference Include="..\Yw.WinFrmUI.Hydro.L2d.Core\Yw.WinFrmUI.Hydro.L2d.Core.csproj" />
        <ProjectReference Include="..\Yw.WinFrmUI.Hydro.L3d.Core\Yw.WinFrmUI.Hydro.L3d.Core.csproj" />
        <ProjectReference Include="..\Yw.WinFrmUI.Hydro.Q3d.Core\Yw.WinFrmUI.Hydro.Q3d.Core.csproj" />
        <ProjectReference Include="..\Yw.WinFrmUI.Hydro.W3d.Core\Yw.WinFrmUI.Hydro.W3d.Core.csproj" />
        <ProjectReference Include="..\Yw.WinFrmUI.Phart.Core\Yw.WinFrmUI.Phart.Core.csproj" />
    </ItemGroup>
@@ -201,7 +198,7 @@
            <SubType>UserControl</SubType>
        </Compile>
        <Compile Update="10-working\10-mgr\HydroWorkingMgrDlg.cs">
          <SubType>Form</SubType>
            <SubType>Form</SubType>
        </Compile>
        <Compile Update="11-search\HydroVisualSearchListCtrl.cs">
            <SubType>UserControl</SubType>
@@ -219,10 +216,10 @@
            <SubType>Form</SubType>
        </Compile>
        <Compile Update="12-monitor\04-set\SetHydroMonitorListDlg.cs">
          <SubType>Form</SubType>
            <SubType>Form</SubType>
        </Compile>
        <Compile Update="12-monitor\04-set\SetHydroMonitorListCtrl.cs">
          <SubType>UserControl</SubType>
            <SubType>UserControl</SubType>
        </Compile>
        <Compile Update="15-visible\SetHydroVisualVisibleDlg.cs">
            <SubType>Form</SubType>
@@ -255,22 +252,16 @@
            <SubType>Form</SubType>
        </Compile>
        <Compile Update="21-curve\HydroValveCurveViewDlg.cs">
          <SubType>Form</SubType>
            <SubType>Form</SubType>
        </Compile>
        <Compile Update="21-curve\HydroCurveViewDlg.cs">
            <SubType>Form</SubType>
        </Compile>
        <Compile Update="22-evaluation\01-catalog\SelectHydroEvaluationCatalogCtrl.cs">
          <SubType>UserControl</SubType>
            <SubType>UserControl</SubType>
        </Compile>
        <Compile Update="22-evaluation\02-list\SetHydroEvaluationModelCtrl.cs" />
        <Compile Update="22-evaluation\SetHydroEvaluationModelDlg.cs" />
        <Compile Update="99-view\02-l2d\HydroL2dViewPage.cs">
            <SubType>UserControl</SubType>
        </Compile>
        <Compile Update="99-view\03-l3d\HydroL3dViewPage.cs">
            <SubType>UserControl</SubType>
        </Compile>
        <Compile Update="08-grading\04-tree\SelectHydroGradingPropTreeCtrl.cs">
            <SubType>UserControl</SubType>
        </Compile>
@@ -374,76 +365,76 @@
            <SubType>Form</SubType>
        </Compile>
        <Compile Update="accuracy\04-control\HydroAccuracyPressCtrl.cs">
          <SubType>UserControl</SubType>
            <SubType>UserControl</SubType>
        </Compile>
        <Compile Update="accuracy\04-control\HydroAccuracyScaleCtrl.cs">
          <SubType>UserControl</SubType>
            <SubType>UserControl</SubType>
        </Compile>
        <Compile Update="accuracy\04-control\HydroAccuracyFlowCtrl.cs">
          <SubType>UserControl</SubType>
            <SubType>UserControl</SubType>
        </Compile>
        <Compile Update="accuracy\04-control\HydroAccuracyListCtrl.cs">
          <SubType>UserControl</SubType>
            <SubType>UserControl</SubType>
        </Compile>
        <Compile Update="accuracy\04-control\HydroAccuracyCtrl.cs">
          <SubType>UserControl</SubType>
            <SubType>UserControl</SubType>
        </Compile>
        <Compile Update="accuracy\05-dlg\HydroAccuracyDlg.cs">
          <SubType>Form</SubType>
            <SubType>Form</SubType>
        </Compile>
        <Compile Update="accuracy\06-working\HydroAccuracyWorkingDlg.cs">
          <SubType>Form</SubType>
            <SubType>Form</SubType>
        </Compile>
        <Compile Update="energy-analy\03-control\HydroEnergyAnalyTotalCtrl.cs">
          <SubType>UserControl</SubType>
            <SubType>UserControl</SubType>
        </Compile>
        <Compile Update="energy-analy\03-control\HydroEnergyAnalyListCtrl.cs">
          <SubType>UserControl</SubType>
            <SubType>UserControl</SubType>
        </Compile>
        <Compile Update="energy-analy\04-dlg\HydroEnergyAnalyListDlg.cs">
          <SubType>Form</SubType>
            <SubType>Form</SubType>
        </Compile>
        <Compile Update="energy-analy\05-working\HydroEnergyAnalyWorkingListCtrl.cs">
          <SubType>UserControl</SubType>
            <SubType>UserControl</SubType>
        </Compile>
        <Compile Update="energy-analy\05-working\HydroEnergyAnalyWorkingListDlg.cs">
          <SubType>Form</SubType>
            <SubType>Form</SubType>
        </Compile>
        <Compile Update="loss-curve\07-control\HydroLossCurveCtrl.cs">
          <SubType>UserControl</SubType>
            <SubType>UserControl</SubType>
        </Compile>
        <Compile Update="loss-curve\07-control\HydroLossCurveInteropCtrl.cs">
          <SubType>UserControl</SubType>
            <SubType>UserControl</SubType>
        </Compile>
        <Compile Update="loss-curve\08-dlg\HydroLossCurveDlg.cs">
          <SubType>Form</SubType>
            <SubType>Form</SubType>
        </Compile>
        <Compile Update="loss-curve\09-working\HydroLossCurveMultiWorkingDlg.cs">
          <SubType>Form</SubType>
            <SubType>Form</SubType>
        </Compile>
        <Compile Update="loss-curve\09-working\HydroLossCurveWorkingDlg.cs">
          <SubType>Form</SubType>
            <SubType>Form</SubType>
        </Compile>
        <Compile Update="loss-statistics\06-control\HydroLossStatisticsCategoryCtrl.cs">
          <SubType>UserControl</SubType>
            <SubType>UserControl</SubType>
        </Compile>
        <Compile Update="loss-statistics\06-control\HydroLossStatisticsCatalogCtrl.cs">
          <SubType>UserControl</SubType>
            <SubType>UserControl</SubType>
        </Compile>
        <Compile Update="loss-statistics\06-control\HydroLossStatisticsInputCtrl.cs">
          <SubType>UserControl</SubType>
            <SubType>UserControl</SubType>
        </Compile>
        <Compile Update="loss-statistics\06-control\HydroLossStatisticsCtrl.cs">
          <SubType>UserControl</SubType>
            <SubType>UserControl</SubType>
        </Compile>
        <Compile Update="loss-statistics\07-dlg\HydroLossStatisticsDlg.cs">
          <SubType>Form</SubType>
            <SubType>Form</SubType>
        </Compile>
        <Compile Update="loss-statistics\08-working\HydroLossStatisticsWorkingDlg.cs">
          <SubType>Form</SubType>
            <SubType>Form</SubType>
        </Compile>
        <Compile Update="monitor-analy\02-control\HydroMonitorAnalyListCtrl.cs">
          <SubType>UserControl</SubType>
            <SubType>UserControl</SubType>
        </Compile>
        <Compile Update="Properties\Resources.Designer.cs">
            <DesignTime>True</DesignTime>
@@ -451,10 +442,10 @@
            <DependentUpon>Resources.resx</DependentUpon>
        </Compile>
        <Compile Update="pump-analy\02-working\HydroPumpAnalyWorkingCheckedListCtrl.cs">
          <SubType>UserControl</SubType>
            <SubType>UserControl</SubType>
        </Compile>
        <Compile Update="pump-analy\02-working\HydroPumpAnalyWorkingPumpListCtrl.cs">
          <SubType>UserControl</SubType>
            <SubType>UserControl</SubType>
        </Compile>
    </ItemGroup>
@@ -466,7 +457,7 @@
    </ItemGroup>
    <ItemGroup>
      <Folder Include="19-pump\07-group\" />
        <Folder Include="19-pump\07-group\" />
    </ItemGroup>
</Project>
WinFrmUI/Yw.WinFrmUI.Hydro.Core/Yw.WinFrmUI.Hydro.Core.csproj.user
@@ -73,9 +73,6 @@
    <Compile Update="22-evaluation\SetHydroEvaluationModelDlg.cs">
      <SubType>Form</SubType>
    </Compile>
    <Compile Update="99-view\01-q3d\HydroQ3dViewPage.cs">
      <SubType>UserControl</SubType>
    </Compile>
    <Compile Update="07-mark\02-view\SetHydroMarkDlg.cs">
      <SubType>Form</SubType>
    </Compile>
WinFrmUI/Yw.WinFrmUI.Hydro.Core/energy-analy/05-working/HydroEnergyAnalyWorkingListCtrl.cs
@@ -15,7 +15,6 @@
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
using Yw.WinFrmUI.Q3d;
namespace Yw.WinFrmUI
{