using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Media.Imaging; using Autodesk.Revit.Attributes; using Autodesk.Revit.DB; using Autodesk.Revit.UI;
namespace Ribbon { public classClass1 : IExternalApplication { public Result OnShutdown(UIControlledApplication application) { return Result.Succeeded; }
public Result OnStartup(UIControlledApplication application) { //新建一个选项卡,并在该选项卡总新建一个命令栏(命令栏可以放多个命令按钮) application.CreateRibbonTab("NewTab"); RibbonPanel ribbonPanel = application.CreateRibbonPanel("NewTab","TabBar");
//1、建立一个可下拉的命令栏 //1.1、新建一个可下拉按钮 SplitButtonData sbd1 = new SplitButtonData("Name", "Text"); SplitButton sb1 = ribbonPanel.AddItem(sbd1) as SplitButton; //1.2、在该按钮是添加两个命令按钮(软件中按钮的名称由命令名称文本定义) PushButtonData p1 = new PushButtonData("命令名称1", "Text1", @"C:\Users\Jhon\Desktop\StudyRevit\HelloRevit\HelloRevit\bin\Debug\HelloRevit.dll", "HelloRevit.Class1"); PushButton pushButton1= sb1.AddPushButton(p1); PushButtonData p2 = new PushButtonData("命令名称2", "Text2", @"C:\Users\Jhon\Desktop\StudyRevit\HelloRevit\HelloRevit\bin\Debug\HelloRevit.dll", "HelloRevit.Class1"); PushButton pushButton2 = sb1.AddPushButton(p2); //2、在选项卡栏添加一个普通按钮 PushButtonData p3 = new PushButtonData("命令名称3", "Text3", @"C:\Users\Jhon\Desktop\StudyRevit\HelloRevit\HelloRevit\bin\Debug\HelloRevit.dll", "HelloRevit.Class1"); PushButton pushButton3= ribbonPanel.AddItem(p3) as PushButton; //3、先准备一张图片,后面给按钮加图片。(这里要引用PresentationCore程序集,再引用system.windows.media.imaging) Uri uriImage = new Uri(@"C:\Users\Jhon\Desktop\StudyRevit\Ribbon\timg.jpg"); BitmapImage largeImage = new BitmapImage(uriImage); //3.1、将图片赋值给按钮。PushButton有两个属性,当按钮是堆叠时,显示的是Image;当按钮是下拉或单个的时候显示的是LargeImage。 pushButton1.LargeImage = largeImage; pushButton2.LargeImage = largeImage; pushButton3.LargeImage = largeImage;