using Autodesk.Revit.Attributes; using Autodesk.Revit.DB; using Autodesk.Revit.UI; using HStation.RevitDev.RevitDataExport.Common; using HStation.RevitDev.RevitDataExport.Utility; using System; using System.IO; using System.Reflection; using System.Windows.Media.Imaging; 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, Enum.YWFamilyType.YWFT_Pump, className1); string className2 = "HStation.RevitDev.RevitDataExport.ValveSystem"; ribbon.CreateButton_SystemAnalysis(ribbonPanel, Enum.YWFamilyType.YWFT_Valve, className2); string className3 = "HStation.RevitDev.RevitDataExport.PipeSystem"; ribbon.CreateButton_PipeSystem(ribbonPanel, Enum.YWFamilyType.YWFT_Pipe, className3); string className4 = "HStation.RevitDev.RevitDataExport.HeatExchangerSystem"; ribbon.CreateButton_SystemAnalysis(ribbonPanel, Enum.YWFamilyType.YWFT_Heat_Exchanger, className4); string className5 = "HStation.RevitDev.RevitDataExport.BlockerSystem"; ribbon.CreateButton_SystemAnalysis(ribbonPanel, Enum.YWFamilyType.YWFT_Blocker, className5); string className6 = "HStation.RevitDev.RevitDataExport.ShowerSystem"; ribbon.CreateButton_SystemAnalysis(ribbonPanel, Enum.YWFamilyType.YWFT_Shower, className6); string className7 = "HStation.RevitDev.RevitDataExport.ThreeJointSystem"; ribbon.CreateButton_SystemAnalysis(ribbonPanel, Enum.YWFamilyType.YWFT_Three_Joint, className7); string className8 = "HStation.RevitDev.RevitDataExport.FourJointSystem"; ribbon.CreateButton_SystemAnalysis(ribbonPanel, Enum.YWFamilyType.YWFT_Four_Joint, className8); string className9 = "HStation.RevitDev.RevitDataExport.WaterMeterSystem"; ribbon.CreateButton_SystemAnalysis(ribbonPanel, Enum.YWFamilyType.YWFT_Water_Meter, className9); string className10 = "HStation.RevitDev.RevitDataExport.WaterPoolSystem"; ribbon.CreateButton_SystemAnalysis(ribbonPanel, Enum.YWFamilyType.YWFT_Water_Pool, className10); string className11 = "HStation.RevitDev.RevitDataExport.WaterBoxSystem"; ribbon.CreateButton_SystemAnalysis(ribbonPanel, Enum.YWFamilyType.YWFT_Water_Box, className11); string className12 = "HStation.RevitDev.RevitDataExport.ElbowSystem"; ribbon.CreateButton_SystemAnalysis(ribbonPanel, Enum.YWFamilyType.YWFT_Elbow, className12); string className13 = "HStation.RevitDev.RevitDataExport.FireHydrantSystem"; ribbon.CreateButton_SystemAnalysis(ribbonPanel, Enum.YWFamilyType.YWFT_Fire_Hydrant, 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); } } }