using Autodesk.Revit.Attributes; using Autodesk.Revit.DB; using Autodesk.Revit.UI; using HStation.RevitDev.RevitDataExport.Forms; using Spire.AI.Api; using System; using System.Diagnostics; using System.Drawing.Drawing2D; using System.Windows.Controls; using System.Windows.Forms; namespace HStation.RevitDev.RevitDataExport { [Transaction(TransactionMode.Manual)] public class Export : IExternalCommand { public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements) { var form = new Form_SystemSelect(commandData); //var revitHandle = Autodesk.Windows.ComponentManager.ApplicationWindow; //实例WPF窗体 var revitHandle = Process.GetCurrentProcess().MainWindowHandle; form.Show(new WindowHandle(revitHandle)); //测试代码 UIApplication uiapp = commandData.Application; Guid guid = new Guid(Common.GlobalResource.Guid_FamilyPanel); DockablePaneId paneId = new DockablePaneId(guid); DockablePane pane = uiapp.GetDockablePane(paneId); pane.Hide(); return Result.Succeeded; } } [Transaction(TransactionMode.Manual)] public class PumpSystemAnalysis : IExternalCommand { public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements) { TaskDialog.Show("提示","泵系统分析命令调用成功!"); UIApplication uiapp = commandData.Application; Wpf_FamilyPanel page = new Wpf_FamilyPanel(); Guid guid = Guid.Empty; guid = new Guid(Common.GlobalResource.Guid_FamilyPanel); DockablePaneId paneId = new DockablePaneId(guid); DockablePane pane = uiapp.GetDockablePane(paneId); pane.Show(); return Result.Succeeded; } } public class WindowHandle : IWin32Window { private IntPtr _handle; public WindowHandle(IntPtr h) { Debug.Assert(IntPtr.Zero != h, "expected non-null window handle"); _handle = h; } public IntPtr Handle => _handle; } }