using Autodesk.Revit.UI;
|
using HStation.RevitDev.Model.ModelEnum;
|
using HStation.RevitDev.RevitDataExport.Common;
|
using HStation.RevitDev.RevitDataExport.Forms;
|
using System;
|
using System.IO;
|
using System.Reflection;
|
using System.Windows.Media.Imaging;
|
|
namespace HStation.RevitDev.RevitDataExport.Utility
|
{
|
public class Ribbon
|
{
|
UIControlledApplication m_uiControlledApp;
|
|
public Ribbon(UIControlledApplication app)
|
{
|
m_uiControlledApp = app;
|
m_uiControlledApp.CreateRibbonTab(GlobalResource.PluginName);
|
}
|
|
public RibbonPanel CreatePanel(string panelName)
|
{
|
RibbonPanel panel = m_uiControlledApp.CreateRibbonPanel(GlobalResource.PluginName, panelName);
|
return panel;
|
}
|
|
public void CreateButton_SystemAnalysis(RibbonPanel ribbonPanel, RevitType pump, string className)
|
{
|
if (!pump.IsRequired()) { return; }
|
|
string path = Assembly.GetExecutingAssembly().Location;
|
|
string name = pump.GetDescription();
|
PushButtonData pdata = new PushButtonData(name, name, path, className);
|
PushButton pBtn = ribbonPanel.AddItem(pdata) as PushButton;
|
|
string imagePath = Path.Combine(GlobalResource.ImageDirectory, $"{name}.png");
|
pBtn.LargeImage = new BitmapImage(new Uri(imagePath));//32 * 32
|
pBtn.ToolTip = name;
|
|
DockPaneUtil.RegistDockablePanel(m_uiControlledApp, pump);
|
}
|
|
public void CreateButton_PipeSystem(RibbonPanel ribbonPanel, RevitType pump, string className)
|
{
|
string path = Assembly.GetExecutingAssembly().Location;
|
string name = pump.GetDescription();
|
PushButtonData pdata = new PushButtonData(name, name, path, className);
|
PushButton pBtn = ribbonPanel.AddItem(pdata) as PushButton;
|
|
string imagePath = Path.Combine(GlobalResource.ImageDirectory, $"{name}.png");
|
pBtn.LargeImage = new BitmapImage(new Uri(imagePath));
|
pBtn.ToolTip = name;
|
|
DockPaneUtil.RegistDockablePanel(m_uiControlledApp, pump);
|
}
|
|
public void CreateRibbon_PipeSystemAnalysis()
|
{
|
//1.创建RibbonTab选项卡页
|
m_uiControlledApp.CreateRibbonTab("义维定制");
|
//2.在RibbonTab选项卡页中创建RibbonPanel面板
|
RibbonPanel panel1 = m_uiControlledApp.CreateRibbonPanel("义维定制", "管道系统链路检测");
|
|
//3.命令按钮
|
//3.1指定程序集的名称、所使用的类名、程序集路径
|
//程序集路径--最好写成相对位置
|
string Path1 = Assembly.GetExecutingAssembly().Location;
|
//程序集的名称、所使用的类名——"主程序集命名空间.主程序类名"
|
string Class1 = "HStation.RevitDev.RevitDataExport.Export";
|
//3.2定义PushButtonData命令按钮数据资料,绑定程序集
|
PushButtonData pdata = new PushButtonData("命令按钮", "系统详情", Path1, Class1);
|
//3.3将PushButton添加到面板中
|
PushButton push = panel1.AddItem(pdata) as PushButton;
|
//3.4为PushButton添加图标
|
//可把图片资源加载入项目中,方便把图片的路径写成相对路径,并进行修改属性(图片的生成操作,改位:嵌入的资源)
|
string imagePath = Path.Combine(GlobalResource.DataDirectory, "Image/analysis.png");
|
push.LargeImage = new BitmapImage(new Uri(imagePath));//32 * 32
|
//3.5设置命令按钮的默认提示信息
|
push.ToolTip = "Revit插件简介";
|
}
|
}
|
}
|