lixiaojun
2024-08-26 ee2ce117fc26d2878e019ac78e562134024d60ab
增加bimface 显示隐藏功能
已修改10个文件
247 ■■■■■ 文件已修改
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-scheme/02-asset-mgr/XhsProjectAssetsBimfaceCtrl.cs 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-scheme/02-asset-mgr/XhsSchemeAssetMgrPage.Designer.cs 71 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-scheme/02-asset-mgr/XhsSchemeAssetMgrPage.cs 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Bimface.Core/00-core/BimfaceHelper.cs 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Bimface.Core/01-interop/01-interop3d/BimfaceInterop3dContainer.cs 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Bimface.Core/01-interop/01-interop3d/IBimfaceInterop3dContainer.cs 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Bimface.Core/Yw.WinFrmUI.Bimface.Core.csproj 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Bimface.Core/bimface/html/Interop3d.html 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Bimface.Core/bimface/js/ComponentsVisible.js 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Q3d.Core/Map/Drawer.Draw.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-scheme/02-asset-mgr/XhsProjectAssetsBimfaceCtrl.cs
@@ -63,5 +63,20 @@
            this.ClickParterEvent?.Invoke(obj.ObjectId);
        }
        public async Task HideComponents(List<string> elementIds)
        {
            await this.bimfaceInterop3dContainer1.HideComponents(elementIds);
        }
        public async Task ShowComponents(List<string> elementIds)
        {
            await this.bimfaceInterop3dContainer1.ShowComponents(elementIds);
        }
        public async Task ShowAllComponents()
        {
            await this.bimfaceInterop3dContainer1.ShowAllComponents();
        }
    }
}
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-scheme/02-asset-mgr/XhsSchemeAssetMgrPage.Designer.cs
@@ -33,14 +33,18 @@
            ribbonControl1 = new DevExpress.XtraBars.Ribbon.RibbonControl();
            barBtnCheck = new DevExpress.XtraBars.BarButtonItem();
            barBtnCalcu = new DevExpress.XtraBars.BarButtonItem();
            barButtonItem1 = new DevExpress.XtraBars.BarButtonItem();
            barButtonItem2 = new DevExpress.XtraBars.BarButtonItem();
            barButtonItem3 = new DevExpress.XtraBars.BarButtonItem();
            barButtonItem4 = new DevExpress.XtraBars.BarButtonItem();
            ribbonPage1 = new DevExpress.XtraBars.Ribbon.RibbonPage();
            ribbonPageGroup1 = new DevExpress.XtraBars.Ribbon.RibbonPageGroup();
            ribbonPageGroup2 = new DevExpress.XtraBars.Ribbon.RibbonPageGroup();
            xhsProjectAssetsBimfaceCtrl1 = new XhsProjectAssetsBimfaceCtrl();
            dockPanel1 = new DevExpress.XtraBars.Docking.DockPanel();
            dockPanel1_Container = new DevExpress.XtraBars.Docking.ControlContainer();
            xhsProjectAssetsPropertyCtrl1 = new XhsProjectAssetsPropertyCtrl();
            dockManager1 = new DevExpress.XtraBars.Docking.DockManager(components);
            barButtonItem1 = new DevExpress.XtraBars.BarButtonItem();
            ((ISupportInitialize)ribbonControl1).BeginInit();
            xhsProjectAssetsBimfaceCtrl1.SuspendLayout();
            dockPanel1.SuspendLayout();
@@ -52,15 +56,15 @@
            // 
            ribbonControl1.ExpandCollapseItem.Id = 0;
            ribbonControl1.ItemPanelStyle = DevExpress.XtraBars.Ribbon.RibbonItemPanelStyle.Classic;
            ribbonControl1.Items.AddRange(new DevExpress.XtraBars.BarItem[] { ribbonControl1.ExpandCollapseItem, barBtnCheck, barBtnCalcu, barButtonItem1 });
            ribbonControl1.Items.AddRange(new DevExpress.XtraBars.BarItem[] { ribbonControl1.ExpandCollapseItem, barBtnCheck, barBtnCalcu, barButtonItem1, barButtonItem2, barButtonItem3, barButtonItem4 });
            ribbonControl1.Location = new Point(0, 0);
            ribbonControl1.MaxItemId = 4;
            ribbonControl1.MaxItemId = 7;
            ribbonControl1.Name = "ribbonControl1";
            ribbonControl1.Pages.AddRange(new DevExpress.XtraBars.Ribbon.RibbonPage[] { ribbonPage1 });
            ribbonControl1.ShowApplicationButton = DevExpress.Utils.DefaultBoolean.False;
            ribbonControl1.ShowExpandCollapseButton = DevExpress.Utils.DefaultBoolean.False;
            ribbonControl1.ShowPageHeadersMode = DevExpress.XtraBars.Ribbon.ShowPageHeadersMode.ShowOnMultiplePages;
            ribbonControl1.Size = new Size(1030, 101);
            ribbonControl1.Size = new Size(1030, 128);
            ribbonControl1.ToolbarLocation = DevExpress.XtraBars.Ribbon.RibbonQuickAccessToolbarLocation.Hidden;
            // 
            // barBtnCheck
@@ -79,9 +83,37 @@
            barBtnCalcu.Name = "barBtnCalcu";
            barBtnCalcu.ItemClick += barBtnCalcu_ItemClick;
            // 
            // barButtonItem1
            //
            barButtonItem1.Caption = "选择型号";
            barButtonItem1.Id = 3;
            barButtonItem1.Name = "barButtonItem1";
            barButtonItem1.ItemClick += barButtonItem1_ItemClick;
            //
            // barButtonItem2
            //
            barButtonItem2.Caption = "barButtonItem2";
            barButtonItem2.Id = 4;
            barButtonItem2.Name = "barButtonItem2";
            barButtonItem2.ItemClick += barButtonItem2_ItemClick;
            //
            // barButtonItem3
            //
            barButtonItem3.Caption = "barButtonItem3";
            barButtonItem3.Id = 5;
            barButtonItem3.Name = "barButtonItem3";
            barButtonItem3.ItemClick += barButtonItem3_ItemClick;
            //
            // barButtonItem4
            //
            barButtonItem4.Caption = "barButtonItem4";
            barButtonItem4.Id = 6;
            barButtonItem4.Name = "barButtonItem4";
            barButtonItem4.ItemClick += barButtonItem4_ItemClick;
            //
            // ribbonPage1
            // 
            ribbonPage1.Groups.AddRange(new DevExpress.XtraBars.Ribbon.RibbonPageGroup[] { ribbonPageGroup1 });
            ribbonPage1.Groups.AddRange(new DevExpress.XtraBars.Ribbon.RibbonPageGroup[] { ribbonPageGroup1, ribbonPageGroup2 });
            ribbonPage1.Name = "ribbonPage1";
            ribbonPage1.Text = "ribbonPage1";
            // 
@@ -93,13 +125,21 @@
            ribbonPageGroup1.Name = "ribbonPageGroup1";
            ribbonPageGroup1.Text = "模型";
            // 
            // ribbonPageGroup2
            //
            ribbonPageGroup2.ItemLinks.Add(barButtonItem2);
            ribbonPageGroup2.ItemLinks.Add(barButtonItem3);
            ribbonPageGroup2.ItemLinks.Add(barButtonItem4);
            ribbonPageGroup2.Name = "ribbonPageGroup2";
            ribbonPageGroup2.Text = "ribbonPageGroup2";
            //
            // xhsProjectAssetsBimfaceCtrl1
            // 
            xhsProjectAssetsBimfaceCtrl1.Controls.Add(dockPanel1);
            xhsProjectAssetsBimfaceCtrl1.Dock = DockStyle.Fill;
            xhsProjectAssetsBimfaceCtrl1.Location = new Point(0, 101);
            xhsProjectAssetsBimfaceCtrl1.Location = new Point(0, 128);
            xhsProjectAssetsBimfaceCtrl1.Name = "xhsProjectAssetsBimfaceCtrl1";
            xhsProjectAssetsBimfaceCtrl1.Size = new Size(1030, 623);
            xhsProjectAssetsBimfaceCtrl1.Size = new Size(1030, 596);
            xhsProjectAssetsBimfaceCtrl1.TabIndex = 1;
            // 
            // dockPanel1
@@ -110,7 +150,7 @@
            dockPanel1.Location = new Point(780, 0);
            dockPanel1.Name = "dockPanel1";
            dockPanel1.OriginalSize = new Size(250, 200);
            dockPanel1.Size = new Size(250, 623);
            dockPanel1.Size = new Size(250, 596);
            dockPanel1.Text = "属性";
            // 
            // dockPanel1_Container
@@ -118,7 +158,7 @@
            dockPanel1_Container.Controls.Add(xhsProjectAssetsPropertyCtrl1);
            dockPanel1_Container.Location = new Point(4, 26);
            dockPanel1_Container.Name = "dockPanel1_Container";
            dockPanel1_Container.Size = new Size(243, 594);
            dockPanel1_Container.Size = new Size(243, 567);
            dockPanel1_Container.TabIndex = 0;
            // 
            // xhsProjectAssetsPropertyCtrl1
@@ -126,7 +166,7 @@
            xhsProjectAssetsPropertyCtrl1.Dock = DockStyle.Fill;
            xhsProjectAssetsPropertyCtrl1.Location = new Point(0, 0);
            xhsProjectAssetsPropertyCtrl1.Name = "xhsProjectAssetsPropertyCtrl1";
            xhsProjectAssetsPropertyCtrl1.Size = new Size(243, 594);
            xhsProjectAssetsPropertyCtrl1.Size = new Size(243, 567);
            xhsProjectAssetsPropertyCtrl1.TabIndex = 0;
            // 
            // dockManager1
@@ -134,13 +174,6 @@
            dockManager1.Form = xhsProjectAssetsBimfaceCtrl1;
            dockManager1.RootPanels.AddRange(new DevExpress.XtraBars.Docking.DockPanel[] { dockPanel1 });
            dockManager1.TopZIndexControls.AddRange(new string[] { "DevExpress.XtraBars.BarDockControl", "DevExpress.XtraBars.StandaloneBarDockControl", "System.Windows.Forms.MenuStrip", "System.Windows.Forms.StatusStrip", "System.Windows.Forms.StatusBar", "DevExpress.XtraBars.Ribbon.RibbonStatusBar", "DevExpress.XtraBars.Ribbon.RibbonControl", "DevExpress.XtraBars.Navigation.OfficeNavigationBar", "DevExpress.XtraBars.Navigation.TileNavPane", "DevExpress.XtraBars.TabFormControl", "DevExpress.XtraBars.FluentDesignSystem.FluentDesignFormControl", "DevExpress.XtraBars.ToolbarForm.ToolbarFormControl" });
            //
            // barButtonItem1
            //
            barButtonItem1.Caption = "选择型号";
            barButtonItem1.Id = 3;
            barButtonItem1.Name = "barButtonItem1";
            barButtonItem1.ItemClick += barButtonItem1_ItemClick;
            // 
            // XhsSchemeAssetMgrPage
            // 
@@ -174,5 +207,9 @@
        private DevExpress.XtraBars.BarButtonItem barBtnCheck;
        private DevExpress.XtraBars.BarButtonItem barBtnCalcu;
        private DevExpress.XtraBars.BarButtonItem barButtonItem1;
        private DevExpress.XtraBars.BarButtonItem barButtonItem2;
        private DevExpress.XtraBars.Ribbon.RibbonPageGroup ribbonPageGroup2;
        private DevExpress.XtraBars.BarButtonItem barButtonItem3;
        private DevExpress.XtraBars.BarButtonItem barButtonItem4;
    }
}
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-scheme/02-asset-mgr/XhsSchemeAssetMgrPage.cs
@@ -84,5 +84,33 @@
            dlg.SetBindingData();
            dlg.ShowDialog();
        }
        private async void barButtonItem2_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            if (_hydro == null)
            {
                return;
            }
            var pumps = _hydro.Pumps;
            var ids = pumps.Select(x => x.Code).Distinct().ToList();
            await this.xhsProjectAssetsBimfaceCtrl1.HideComponents(ids);
        }
        private async void barButtonItem3_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            if (_hydro == null)
            {
                return;
            }
            var pumps = _hydro.Pumps;
            var ids = pumps.Select(x => x.Code).Distinct().ToList();
            await this.xhsProjectAssetsBimfaceCtrl1.ShowComponents(ids);
        }
        private async void barButtonItem4_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            await this.xhsProjectAssetsBimfaceCtrl1.ShowAllComponents();
        }
    }
}
WinFrmUI/Yw.WinFrmUI.Bimface.Core/00-core/BimfaceHelper.cs
@@ -5,6 +5,8 @@
    /// </summary>
    public class BimfaceHelper
    {
        #region 文件Token
        /// <summary>
        /// 获取ViewToken
        /// </summary>
@@ -16,6 +18,10 @@
            var bimfaceClient = Yw.BIMFaceClient.Instance(ConfigHelper.AppKey, ConfigHelper.AppSecret);
            return await bimfaceClient.GetViewToken(bimfaceId, modelIdType);
        }
        #endregion
        #region 上传文件
        /// <summary>
        /// 上传文件
@@ -33,6 +39,10 @@
            var bimfaceId = await bimfaceClient.UploadFileExByPolicy(fullFilePath, fileName);
            return bimfaceId;
        }
        #endregion
        #region 文件转换
        /// <summary>
        /// 转换rvt文件
@@ -118,6 +128,10 @@
            }
        }
        #endregion
        #region 文件删除
        /// <summary>
        /// 删除
        /// </summary>
@@ -142,5 +156,29 @@
            return await bimfaceClient.Delete(bimfaceId, modelIdType);
        }
        #endregion
        #region 文件获取
        /// <summary>
        /// 获取文件构件id列表
        /// </summary>
        public static async Task<List<string>> GetFileComponentIds(string bimfaceId)
        {
            var bimfaceClient = Yw.BIMFaceClient.Instance(ConfigHelper.AppKey, ConfigHelper.AppSecret);
            return await bimfaceClient.GetFileComponentIds(bimfaceId);
        }
        /// <summary>
        /// 获取文件构件id列表
        /// </summary>
        public static async Task<List<string>> GetFileComponentIds(long bimfaceId)
        {
            return await GetFileComponentIds(bimfaceId.ToString());
        }
        #endregion
    }
}
WinFrmUI/Yw.WinFrmUI.Bimface.Core/01-interop/01-interop3d/BimfaceInterop3dContainer.cs
@@ -1,4 +1,7 @@

using DevExpress.XtraDiagram.Base;
namespace Yw.WinFrmUI
{
    public partial class BimfaceInterop3dContainer : UserControl, IBimfaceInterop3dContainer
@@ -131,5 +134,55 @@
        }
        #region 构件显隐
        /// <summary>
        /// 显示构件
        /// </summary>
        /// <param name="ids">构件id列表</param>
        public async Task ShowComponents(List<string> ids)
        {
            if (ids == null || ids.Count < 1)
            {
                return;
            }
            if (!_isViewInitialized)
            {
                return;
            }
            await this.webViewControl1.EvaluateScriptAsync("showComponents", ids);
        }
        /// <summary>
        /// 隐藏构件
        /// </summary>
        /// <param name="ids">构件id列表</param>
        public async Task HideComponents(List<string> ids)
        {
            if (ids == null || ids.Count < 1)
            {
                return;
            }
            if (!_isViewInitialized)
            {
                return;
            }
            await this.webViewControl1.EvaluateScriptAsync("hideComponents", ids);
        }
        /// <summary>
        /// 显示所有构件
        /// </summary>
        public async Task ShowAllComponents()
        {
            if (!_isViewInitialized)
            {
                return;
            }
            await this.webViewControl1.EvaluateScriptAsync("showAllComponents()");
        }
        #endregion
    }
}
WinFrmUI/Yw.WinFrmUI.Bimface.Core/01-interop/01-interop3d/IBimfaceInterop3dContainer.cs
@@ -11,5 +11,31 @@
        BimfaceInterop3dCallBackObj CallBackObj { get; }
        #region 构件的显示与隐藏
        /// <summary>
        /// 显示构件
        /// </summary>
        /// <param name="ids">构件id 列表</param>
        /// <returns></returns>
        Task ShowComponents(List<string> ids);
        /// <summary>
        /// 隐藏构件
        /// </summary>
        /// <param name="ids">构件id 列表<</param>
        /// <returns></returns>
        Task HideComponents(List<string> ids);
        /// <summary>
        /// 显示所有构件
        /// 所有的构件都可以通过这个方法恢复
        /// </summary>
        /// <returns></returns>
        Task ShowAllComponents();
        #endregion
    }
}
WinFrmUI/Yw.WinFrmUI.Bimface.Core/Yw.WinFrmUI.Bimface.Core.csproj
@@ -88,13 +88,13 @@
  <ItemGroup>
    <PackageReference Include="DevExpress.Win.Design" Version="23.2.4" />
    <PackageReference Include="Yw.BIMFace.SDK.Core" Version="3.0.5" />
    <PackageReference Include="Yw.BLL.Bimface.Core" Version="3.0.6" />
    <PackageReference Include="Yw.WebBrower.Core" Version="3.0.2" />
    <PackageReference Include="Yw.WebView2.WinFrmUI.Core" Version="3.0.1" />
  </ItemGroup>
  <ItemGroup>
    <ProjectReference Include="..\..\Component\Yw.BIMFace.SDK.Core\Yw.BIMFace.SDK.Core.csproj" />
    <ProjectReference Include="..\Yw.WinFrmUI.Core\Yw.WinFrmUI.Core.csproj" />
  </ItemGroup>
WinFrmUI/Yw.WinFrmUI.Bimface.Core/bimface/html/Interop3d.html
@@ -105,6 +105,8 @@
    </script>
</body>
</html>
@@ -112,7 +114,7 @@
<script src="js/CameraStatus.js"></script>
<script src="js/ComponentsColor.js"></script>
<script src="js/ComponentsTranslucent.js"></script>
<script src="js/ComponentsVisible.js"></script>
<script src="../js/ComponentsVisible.js"></script>
<script src="js/ContextMenu.js"></script>
<script src="js/GetComponents.js"></script>
<script src="js/Layer.js"></script>
WinFrmUI/Yw.WinFrmUI.Bimface.Core/bimface/js/ComponentsVisible.js
@@ -1,11 +1,13 @@
//显示构件
function showComponents(ids) {
    alert(ids);
    _viewer.showComponents(ids);
    _viewer.render();
}
//隐藏构件
function hideComponents(ids) {
    alert(ids);
    _viewer.hideComponents(ids);
    _viewer.render();
}
@@ -14,4 +16,6 @@
function showAllComponents() {
    _viewer.showAllComponents();
    _viewer.render();
}
}
WinFrmUI/Yw.WinFrmUI.Hydro.Q3d.Core/Map/Drawer.Draw.cs
@@ -228,7 +228,7 @@
            float minElve = float.MinValue;
            float maxElve = float.MaxValue;
            r = r * Link_multiply;
@@ -736,7 +736,7 @@
        #region 基础坐标转换方法
        /// <summary>
        /// 将屏幕坐标转换为世界坐标。输入屏幕坐标 (x,y),返回世界坐标 (wx, wy)。
        /// 将屏幕坐标转换为世界坐标。 (x,y),返回输入屏幕坐标世界坐标 (wx, wy)。
        /// </summary>
        /// <param name="screenPos"></param>
        /// <returns></returns>