zhangyk-c
2024-07-20 1605747327d5e0244ee5935fef1dbe3e0c9516ff
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
using Autodesk.Revit.Attributes;
using Autodesk.Revit.DB;
using Autodesk.Revit.UI;
using HStation.RevitDev.Model.Enum;
using HStation.RevitDev.RevitDataExport.Common;
using HStation.RevitDev.RevitDataExport.Utility;
using System;
 
namespace HStation.RevitDev.RevitDataExport.Plugin
{
    [Transaction(TransactionMode.Manual)]
    public class Application : IExternalApplication
    {
        UIControlledApplication m_application;
 
        public Result OnShutdown(UIControlledApplication application)
        {
            return Result.Succeeded;
        }
 
        public Result OnStartup(UIControlledApplication application)
        {
            m_application = application;
            Ribbon ribbon = new Ribbon(application);
            RibbonPanel ribbonPanel = ribbon.CreateRibbon();
            ribbonPanel.AddSeparator();
            GlobalResource.CurrentRevitVersion = application.ControlledApplication.VersionNumber;
 
            CreateBottons(ribbon, ribbonPanel);
 
            ribbonPanel.AddSeparator();
            RegistEvent();
            return Result.Succeeded;
        }
 
        private static void CreateBottons(Ribbon ribbon, RibbonPanel ribbonPanel)
        {
            string className1 = "HStation.RevitDev.RevitDataExport.PumpSystem";
            ribbon.CreateButton_SystemAnalysis(ribbonPanel, RevitFamilyType.RFT_Pump, className1);
 
            string className2 = "HStation.RevitDev.RevitDataExport.ValveSystem";
            ribbon.CreateButton_SystemAnalysis(ribbonPanel, RevitFamilyType.RFT_Valve, className2);
 
            string className3 = "HStation.RevitDev.RevitDataExport.PipeSystem";
            ribbon.CreateButton_PipeSystem(ribbonPanel, RevitFamilyType.RFT_Pipe, className3);
 
            string className4 = "HStation.RevitDev.RevitDataExport.HeatExchangerSystem";
            ribbon.CreateButton_SystemAnalysis(ribbonPanel, RevitFamilyType.RFT_HeatExchanger, className4);
 
            string className5 = "HStation.RevitDev.RevitDataExport.BlockerSystem";
            ribbon.CreateButton_SystemAnalysis(ribbonPanel, RevitFamilyType.RFT_Blocker, className5);
 
            string className6 = "HStation.RevitDev.RevitDataExport.ShowerSystem";
            ribbon.CreateButton_SystemAnalysis(ribbonPanel, RevitFamilyType.RFT_Shower, className6);
 
            string className7 = "HStation.RevitDev.RevitDataExport.ThreeJointSystem";
            ribbon.CreateButton_SystemAnalysis(ribbonPanel, RevitFamilyType.RFT_ThreeJoint, className7);
 
            string className8 = "HStation.RevitDev.RevitDataExport.FourJointSystem";
            ribbon.CreateButton_SystemAnalysis(ribbonPanel, RevitFamilyType.RFT_FourJoint, className8);
 
            string className9 = "HStation.RevitDev.RevitDataExport.WaterMeterSystem";
            ribbon.CreateButton_SystemAnalysis(ribbonPanel, RevitFamilyType.RFT_WaterMeter, className9);
 
            string className10 = "HStation.RevitDev.RevitDataExport.WaterPoolSystem";
            ribbon.CreateButton_SystemAnalysis(ribbonPanel, RevitFamilyType.RFT_WaterPool, className10);
 
            string className11 = "HStation.RevitDev.RevitDataExport.WaterBoxSystem";
            ribbon.CreateButton_SystemAnalysis(ribbonPanel, RevitFamilyType.RFT_WaterBox, className11);
 
            string className12 = "HStation.RevitDev.RevitDataExport.ElbowSystem";
            ribbon.CreateButton_SystemAnalysis(ribbonPanel, RevitFamilyType.RFT_Elbow, className12);
 
            string className13 = "HStation.RevitDev.RevitDataExport.FireHydrantSystem";
            ribbon.CreateButton_SystemAnalysis(ribbonPanel, RevitFamilyType.RFT_FireHydrant, className13);
        }
 
        private void RegistEvent()
        {
            m_application.ControlledApplication.DocumentOpened += ControlledApplication_DocumentOpened;
            m_application.ControlledApplication.DocumentOpening += ControlledApplication_DocumentOpening;
            m_application.ControlledApplication.DocumentCreated += ControlledApplication_DocumentCreated;
            m_application.ControlledApplication.DocumentCreating += ControlledApplication_DocumentCreating;
        }
 
        private void ControlledApplication_DocumentOpening(object sender, Autodesk.Revit.DB.Events.DocumentOpeningEventArgs e)
        {
            DockPaneUtil.HideAllDockablePane(m_application);
        }
 
        private void ControlledApplication_DocumentCreated(object sender, Autodesk.Revit.DB.Events.DocumentCreatedEventArgs e)
        {
            DockPaneUtil.HideAllDockablePane(m_application);
        }
 
        private void ControlledApplication_DocumentOpened(object sender, Autodesk.Revit.DB.Events.DocumentOpenedEventArgs e)
        {
            DockPaneUtil.HideAllDockablePane(m_application);
        }
 
        private void ControlledApplication_DocumentCreating(object sender, Autodesk.Revit.DB.Events.DocumentCreatingEventArgs e)
        {
            DockPaneUtil.HideAllDockablePane(m_application);
        }
    }
}