Revit二次开发之添加选项卡和按钮

  我们日常在revit开发中经常会用到按钮,可以通过revitAPI提供的接口创建按钮,今天我简单介绍一下两种按钮,一种是单命令按钮,另一种是含下拉菜单的按钮,包括创建他们的方法。

实现方法

1.实现思路

  创建按钮的思路大体为:1、编写好自己的命令文件(一般就是继承IExteralCommand接口);2、创建一个继承IExternalApplication接口的文件;3、编辑Addin文档,并将其放入C:\ProgramData\Autodesk\Revit\Addins\2020\路径下。

2.添加必要的引用

using Autodesk.Revit.UI; using Autodesk.Revit.DB; using System.Windows.Media.Imaging; using Autodesk.Revit.Attributes; 

3.示例代码

namespace HelloRevit { 	[Transaction(TransactionMode.Manual)] 	public class CsAddPanel:IExternalApplication 	{ 		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(Helloworld1, 按钮1, @E:\practice\Retrieve\CreateModelLine\bin\Debug\CreateModelLine.dll, CreateModelLine.Class1); 			PushButton pushButton1 = sb1.AddPushButton(p1); 			PushButtonData p2 = new PushButtonData(Helloworld2, 按钮2, @E:\practice\Retrieve\ClassLibrary4\bin\Debug\ClassLibrary4.dll, ClassLibrary4.Class1); 			PushButton pushButton2 = sb1.AddPushButton(p2); 			//2、在选项卡栏添加一个普通按钮 			PushButtonData p3 = new PushButtonData(Helloworld3, 按钮3, @E:\practice\Retrieve\Retrieve\bin\Debug\Retrieve.dll, Retrieve.Document_Selection); 			PushButton pushButton3 = ribbonPanel.AddItem(p3) as PushButton; 			//3、先准备一张图片,后面给按钮加图片。(这里要引用PresentationCore程序集,再引用system.windows.media.imaging) 			Uri uriImage = new Uri(@E:\practice\HelloRevit\HelloRevit\bin\Debug\1.jpg); 			BitmapImage largeImage = new BitmapImage(uriImage); 			//3.1、将图片赋值给按钮。PushButton有两个属性,当按钮是堆叠时,显示的是Image;当按钮是下拉或单个的时候显示的是LargeImage。 			pushButton1.LargeImage = largeImage; 			pushButton2.LargeImage = largeImage; 			pushButton3.LargeImage = largeImage; 			return Result.Succeeded; 		} 		public Result OnShutdown(UIControlledApplication application) 		{ 			return Result.Succeeded; 		} 	} } 

注意:PushButtonData()内四个参数,第三个参数为外部命令文件所在。

4.编辑Addin文件

<?xml version=1.0 encoding=utf-8?> <RevitAddIns>   <AddIn Type=Application>     <Name>CreateButton</Name>     <Assembly>D:\practice\HelloRevit\HelloRevit\bin\Debug\HelloRevit.dll</Assembly>     <AddInId>6cdba932-c058-4ec1-b038-33ed590c41d3</AddInId>     <FullClassName>HelloRevit.CsAddPanel</FullClassName>     <VendorId>ADSK</VendorId>   </AddIn> </RevitAddIns> 

注意将Addin文件放入上面所提位置,FullClassName就是该文件命名空间下的类(本文例子的命名空间为HelloRevit,类名为CsAddPanel)

5.Ribbon菜单插件介绍

  其他按钮创建方法与上面分享方法类似,希望对大家有所帮助。