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);
|
}
|
}
|
}
|