using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Media.Imaging;
using Autodesk.Revit.UI;
using Autodesk.Revit.Attributes;
using System.IO;
namespace RibbonRevit
{
[Transaction(TransactionMode.Manual)]
public class Class1 : IExternalApplication
{
public Result OnStartup(UIControlledApplication application)
{
//程序目录,以目录“C:\RevitRibbon”其中@用于转移字符
string addinPath = @"C:\RevitRibbon";
//程序集路径
string dllPth = addinPath+ @"";
//按钮图标目录
string iconPath = @"C:\RevitRibbon\icon";
//插件选项卡名
string tabName = "插件名";
//面板底部文字提示
string panelName = "面板名";
//创建插件选项卡
application.CreateRibbonTab(tabName);
//添加顺序RibbonPanel(面板)——>SplitButton(按钮族)——>PushButton(按钮)
//新建面板
RibbonPanel panel = application.CreateRibbonPanel(tabName, panelName);
//实例一:按钮组
SplitButtonData splitButtonData = new SplitButtonData("wallSplit", "墙");
//添加到面板
SplitButton splitButton = panel.AddItem(splitButtonData) as SplitButton;
//按钮数据,注意“Rbn.com1”是执行按钮事件的响应类名
string tips1 = "用于在建筑模型中创建非结构墙";
PushButtonData pD1 = CreatePushButton("wall", "墙", @"C:\Users\LILEI\source\repos\HelloRevit\HelloRevit\bin\x64\Debug\HelloRevit.dll", "HelloRevit.Class1", iconPath,"1.png",tips1,"11.png");
splitButton.AddPushButton(pD1);
//按钮组添加第二个按钮
string tips2 = "用于在建筑模型中创建承重墙或剪力墙";
PushButtonData pD2 = CreatePushButton("SW", "墙:结构", @"C:\Users\LILEI\source\repos\HelloRevit\HelloRevit\bin\x64\Debug\HelloRevit.dll", "HelloRevit.Class1", iconPath, "2.png", tips2, "22.png");
splitButton.AddPushButton(pD2);
//示例2:下拉按钮,用于显示下拉命令的选项
PulldownButtonData pbData = new PulldownButtonData("Pulldown", "门");
PulldownButton pdBtn = panel.AddItem(pbData) as PulldownButton;
Uri uriLargeImage = new Uri(Path.Combine(iconPath, "3.png"), UriKind.Absolute);
pdBtn.LargeImage = new BitmapImage(uriLargeImage);
//添加命令按钮
PushButtonData pD3;
pD3 = CreatePushButton("Door", "门", dllPth, "Rbn.com3", iconPath, "3.png", "", "");
pdBtn.AddPushButton(pD3);
//示例3:命令按钮
RibbonPanel pane2 = application.CreateRibbonPanel(tabName, "按钮示例");
PushButtonData pD4;
pD4 = CreatePushButton("t1", "示例", dllPth, "Rbn.com3", iconPath, "4.png", "", "");
PushButtonData pD5;
pD5 = CreatePushButton("t2", "示例", dllPth, "Rbn.com3", iconPath, "5.png", "", "");
PushButtonData pD6;
pD6 = CreatePushButton("t3", "示例", dllPth, "Rbn.com3", iconPath, "5.png", "", "");
PushButtonData pD7;
pD7 = CreatePushButton("t4", "示例", dllPth, "Rbn.com3", iconPath, "5.png", "", "");
PushButtonData pD8;
pD8 = CreatePushButton("t5", "示例", dllPth, "Rbn.com3", iconPath, "5.png", "", "");
PushButtonData pD9;
pD9 = CreatePushButton("t6", "示例", dllPth, "Rbn.com3", iconPath, "5.png", "", "");
//每列一个按钮
pane2.AddItem(pD4);
//每列二个按钮
pane2.AddStackedItems(pD5, pD6);
//每列三个按钮
pane2.AddStackedItems(pD7, pD8, pD9);
//添加分隔符
pane2.AddSeparator();
//示例4:下拉组合框
ComboBoxData cbData = new ComboBoxData("下拉组合框");
ComboBoxMemberData cbMemberData;
cbMemberData = new ComboBoxMemberData("combox1", "下拉选项1");
ComboBox cBox = pane2.AddItem(cbData) as ComboBox;
cBox.AddItem(cbMemberData);
return Result.Succeeded;
}
public Result OnShutdown(UIControlledApplication application)
{
return Result.Succeeded;
}
public PushButtonData CreatePushButton(string name, string txt, string dll, string com, string iconPath, string iconName, string tips, string iconTips)
{
//新建按钮,绑定命令
PushButtonData pbData = new PushButtonData(name, txt, dll, com);
//小图标
Uri uri1 = new Uri(Path.Combine(iconPath, iconName), UriKind.Absolute);
pbData.Image = new BitmapImage(uri1);
//大图标
Uri uri2 = new Uri(Path.Combine(iconPath, iconName), UriKind.Absolute);
pbData.LargeImage = new BitmapImage(uri2);
//提示文字
pbData.ToolTip = tips;
if (iconTips != "")
{
Uri uri3 = new Uri(Path.Combine(iconPath, iconTips), UriKind.Absolute);
pbData.ToolTipImage = new BitmapImage(uri3);
}
return pbData;
}
}
}
Ribbon界面标准代码
最新推荐文章于 2022-12-23 16:30:24 发布