Revit 二次开发——Ribbon的使用
如果想自定义在菜单栏创建按钮,例如像【附加模块】这样的按钮,这时就会用到Ribbon。
代码示例:
首先创建一个按钮弹出提示信息:
namespace UIButtonDemo
{
[Transaction(TransactionMode.Manual)]
class HelloRevitDemo : IExternalCommand
{
public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
{
//获取当前文档
Document doc = commandData.Application.ActiveUIDocument.Document;
//显示信息
TaskDialog.Show("Demo", "你好,Revit");
return Result.Succeeded;
}
}
}
然后再编写UI:
namespace UIButtonDemo
{
[Transaction(TransactionMode.Manual)]
public class UIDemo : IExternalApplication
{
public Result OnShutdown(UIControlledApplication application)
{
return Result.Succeeded;
}
public Result OnStartup(UIControlledApplication application)
{
//1.创建一个RibbonTab
application.CreateRibbonTab("UITab");
//2.在新创建的RibbonTab中创建UIPanel
RibbonPanel rp = application.CreateRibbonPanel("UITab", "UIPanel");
//3.指定程序集的名称以及所用的类名
string asseablelyPath = @" F:\revit二次开发\UIButtonDemo\UIButtonDemo\bin\Debug\UIButtonDemo.dll";
string classNameHelloRevit = "UIButtonDemo.HelloRevitDemo";
//4.创建pushButton
PushButtonData pbd = new PushButtonData("InnerName", "HelloRevit", asseablelyPath, classNameHelloRevit);
//4-1将pushButton添加到面板中
PushButton pushButton = rp.AddItem(pbd) as PushButton;
//4-2给按钮添加图片(大图标一般是32px,小图标是16)
string imgPath = @"F:\revit二次开发\UIButtonDemo\UIButtonDemo\logo1.png";
pushButton.LargeImage = new BitmapImage(new Uri(imgPath));
//4-3给按钮提供个默认信息
pushButton.ToolTip = "HelloRevit";
//4-4再添加一个按钮
string classNameHelloWord = "UIButtonDemo.HelloWordDemo";
//4.创建pushButton
PushButtonData pbdSecond = new PushButtonData("InnerNameSecond", "HelloWord", asseablelyPath, classNameHelloWord);
//4-1将pushButton添加到面板中
PushButton pushButtonSecond = rp.AddItem(pbdSecond) as PushButton;
//4-2给按钮添加图片(大图标一般是32px,小图标是16)
string imgPathSecond = @"F:\revit二次开发\UIButtonDemo\UIButtonDemo\logo2.png";
pushButtonSecond.LargeImage = new BitmapImage(new Uri(imgPathSecond));
//4-3给按钮提供个默认信息
pushButtonSecond.ToolTip = "HelloWord";
return Result.Succeeded;
}
}
}
我这里的UI编写中添加了两个按钮,只需要将上面的代码再多创建一个,然后就可以启动生成了。
启动生成之后,在【附加模块】下的外部工具中,将Loaded Commands下的进行移除,选择Loaded Applications,最后点击save下的第一个。
然后就会在C:\ProgramData\Autodesk\Revit\Addins\2014目录下生成.addin文件,我的revit是2018的,所以将addin文件放到2018中。
最后会弹出让你重新载入,选择之后就能正常完成了。
完成效果图: