From 8654386c716d8478fb8f9f62ce8cbdfb11a6155e Mon Sep 17 00:00:00 2001
From: lvxing <18271674504@163.com>
Date: 星期四, 01 八月 2024 14:14:23 +0800
Subject: [PATCH] fix_nullreference

---
 HStation.RevitDev/RevitDataExport/Plugin/Command.cs |  242 ++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 222 insertions(+), 20 deletions(-)

diff --git a/HStation.RevitDev/RevitDataExport/Plugin/Command.cs b/HStation.RevitDev/RevitDataExport/Plugin/Command.cs
index 0435baf..738f383 100644
--- a/HStation.RevitDev/RevitDataExport/Plugin/Command.cs
+++ b/HStation.RevitDev/RevitDataExport/Plugin/Command.cs
@@ -1,12 +1,13 @@
 锘縰sing Autodesk.Revit.Attributes;
 using Autodesk.Revit.DB;
 using Autodesk.Revit.UI;
+using HStation.Model;
+using HStation.RevitDev.Model.ModelEnum;
 using HStation.RevitDev.RevitDataExport.Forms;
-using Spire.AI.Api;
+using HStation.RevitDev.RevitDataExport.Utility;
 using System;
 using System.Diagnostics;
-using System.Drawing.Drawing2D;
-using System.Windows.Controls;
+using System.IO;
 using System.Windows.Forms;
 
 namespace HStation.RevitDev.RevitDataExport
@@ -22,35 +23,236 @@
             //瀹炰緥WPF绐椾綋
             var revitHandle = Process.GetCurrentProcess().MainWindowHandle;
             form.Show(new WindowHandle(revitHandle));
-
-            //娴嬭瘯浠g爜
-            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;
         }
     }
 
+    /// <summary>
+    /// 瀵煎嚭妯″瀷
+    /// </summary>
     [Transaction(TransactionMode.Manual)]
-    public class PumpSystemAnalysis : IExternalCommand
+    public class ExportModels : 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();
+            var doc = commandData.Application.ActiveUIDocument.Document;
+
+            CacheUtil.SaveCache(commandData.Application.ActiveUIDocument.Document);
+            TaskDialog.Show("鎻愮ず", "瀵煎嚭瀹屾垚锛�");
             return Result.Succeeded;
         }
     }
 
+    /// <summary>
+    /// 姘存车
+    /// </summary>
+    [Transaction(TransactionMode.Manual)]
+    public class PumpSystem : IExternalCommand
+    {
+        RevitType m_type = RevitType.RFT_Pump;
+        public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
+        {
+            DocumentUtil.RegistDocumentEvent(commandData.Application.Application);
+            DockablePaneUtils.ShowDockablePanel(commandData, m_type);
+            return Result.Succeeded;
+        }
+    }
+
+    /// <summary>
+    /// 绠¢亾
+    /// </summary>
+    [Transaction(TransactionMode.Manual)]
+    public class PipeSystem : IExternalCommand
+    {
+        RevitType m_type = RevitType.RFT_Pipe;
+        public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
+        {
+            Common.GlobalResource.CurrentAddinId = commandData.Application.ActiveAddInId;
+            DocumentUtil.RegistDocumentEvent(commandData.Application.Application);
+            DockablePaneUtils.ShowDockablePanel(commandData, m_type);
+            return Result.Succeeded;
+        }
+    }
+
+    /// <summary>
+    /// 闃�闂�
+    /// </summary>
+    [Transaction(TransactionMode.Manual)]
+    public class ValveSystem : IExternalCommand
+    {
+        RevitType m_type = RevitType.RFT_Valve;
+        public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
+        {
+            DocumentUtil.RegistDocumentEvent(commandData.Application.Application);
+            DockablePaneUtils.ShowDockablePanel(commandData, m_type);
+            return Result.Succeeded;
+        }
+    }
+
+    /// <summary>
+    /// 鎹㈢儹姘�
+    /// </summary>
+    [Transaction(TransactionMode.Manual)]
+    public class HeatExchangerSystem : IExternalCommand
+    {
+        RevitType m_type = RevitType.RFT_HeatExchanger;
+        public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
+        {
+            DocumentUtil.RegistDocumentEvent(commandData.Application.Application);
+            DockablePaneUtils.ShowDockablePanel(commandData, m_type);
+            return Result.Succeeded;
+        }
+    }
+
+    /// <summary>
+    /// 闂峰ご
+    /// </summary>
+    [Transaction(TransactionMode.Manual)]
+    public class BlockerSystem : IExternalCommand
+    {
+        RevitType m_type = RevitType.RFT_Blocker;
+        public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
+        {
+            DocumentUtil.RegistDocumentEvent(commandData.Application.Application);
+            DockablePaneUtils.ShowDockablePanel(commandData, m_type);
+            return Result.Succeeded;
+        }
+    }
+
+    /// <summary>
+    /// 鍠锋穻澶�
+    /// </summary>
+    [Transaction(TransactionMode.Manual)]
+    public class ShowerSystem : IExternalCommand
+    {
+        RevitType m_type = RevitType.RFT_Shower;
+        public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
+        {
+            DocumentUtil.RegistDocumentEvent(commandData.Application.Application);
+            DockablePaneUtils.ShowDockablePanel(commandData, m_type);
+            return Result.Succeeded;
+        }
+    }
+
+    /// <summary>
+    /// 涓夐��
+    /// </summary>
+    [Transaction(TransactionMode.Manual)]
+    public class ThreeJointSystem : IExternalCommand
+    {
+        RevitType m_type = RevitType.RFT_ThreeJoint;
+        public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
+        {
+            DocumentUtil.RegistDocumentEvent(commandData.Application.Application);
+            DockablePaneUtils.ShowDockablePanel(commandData, m_type);
+            return Result.Succeeded;
+        }
+    }
+
+    /// <summary>
+    /// 鍥涢��
+    /// </summary>
+    [Transaction(TransactionMode.Manual)]
+    public class FourJointSystem : IExternalCommand
+    {
+        RevitType m_type = RevitType.RFT_FourJoint;
+        public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
+        {
+            DocumentUtil.RegistDocumentEvent(commandData.Application.Application);
+            DockablePaneUtils.ShowDockablePanel(commandData, m_type);
+            return Result.Succeeded;
+        }
+    }
+
+    /// <summary>
+    /// 姘磋〃
+    /// </summary>
+    [Transaction(TransactionMode.Manual)]
+    public class WaterMeterSystem : IExternalCommand
+    {
+        RevitType m_type = RevitType.RFT_WaterMeter;
+        public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
+        {
+            DocumentUtil.RegistDocumentEvent(commandData.Application.Application);
+            DockablePaneUtils.ShowDockablePanel(commandData, m_type);
+            return Result.Succeeded;
+        }
+    }
+
+    /// <summary>
+    /// 姘村簱
+    /// </summary>
+    [Transaction(TransactionMode.Manual)]
+    public class WaterPoolSystem : IExternalCommand
+    {
+        RevitType m_type = RevitType.RFT_WaterPool;
+        public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
+        {
+            DocumentUtil.RegistDocumentEvent(commandData.Application.Application);
+            DockablePaneUtils.ShowDockablePanel(commandData, m_type);
+            return Result.Succeeded;
+        }
+    }
+
+    /// <summary>
+    /// 姘寸
+    /// </summary>
+    [Transaction(TransactionMode.Manual)]
+    public class WaterBoxSystem : IExternalCommand
+    {
+        RevitType m_type = RevitType.RFT_WaterBox;
+        public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
+        {
+            DocumentUtil.RegistDocumentEvent(commandData.Application.Application);
+            DockablePaneUtils.ShowDockablePanel(commandData, m_type);
+            return Result.Succeeded;
+        }
+    }
+
+    /// <summary>
+    /// 寮ご
+    /// </summary>
+    [Transaction(TransactionMode.Manual)]
+    public class ElbowSystem : IExternalCommand
+    {
+        RevitType m_type = RevitType.RFT_Elbow;
+        public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
+        {
+            DocumentUtil.RegistDocumentEvent(commandData.Application.Application);
+            DockablePaneUtils.ShowDockablePanel(commandData, m_type);
+            return Result.Succeeded;
+        }
+    }
+
+    /// <summary>
+    /// 寮ご
+    /// </summary>
+    [Transaction(TransactionMode.Manual)]
+    public class FireHydrantSystem : IExternalCommand
+    {
+        RevitType m_type = RevitType.RFT_FireHydrant;
+        public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
+        {
+            DocumentUtil.RegistDocumentEvent(commandData.Application.Application);
+            DockablePaneUtils.ShowDockablePanel(commandData, m_type);
+            return Result.Succeeded;
+        }
+    }
+
+    /// <summary>
+    /// 鍙樺緞
+    /// </summary>
+    [Transaction(TransactionMode.Manual)]
+    public class ReducingSystem : IExternalCommand
+    {
+        RevitType m_type = RevitType.RFT_Reducing;
+        public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
+        {
+            DocumentUtil.RegistDocumentEvent(commandData.Application.Application);
+            DockablePaneUtils.ShowDockablePanel(commandData, m_type);
+            return Result.Succeeded;
+        }
+    }
 
     public class WindowHandle : IWin32Window
     {

--
Gitblit v1.9.3