【Revit二次开发】添加菜单和按钮

添加菜单和按钮

Ribbon菜单的创建以及各种不同的button

Ribbon

这个类是PushButton和PulldownButton的基类。

在这里插入图片描述
按钮放在panel内,panel放在tab页内

在Revit API中,可以使用ExternalApplication类和ExternalCommand类来创建自定义菜单和按钮。下面是一个简单的示例,演示如何在Revit中创建一个自定义菜单和按钮:

首先,创建一个C#类库项目,并添加对RevitAPI和RevitAPIUI的引用。

在项目中创建一个类,该类需要继承ExternalApplication类,如下所示:

using Autodesk.Revit.UI;
using Autodesk.Revit.Attributes;
using Autodesk.Revit.DB;

[Transaction(TransactionMode.Manual)]
public class MyApplication : IExternalApplication
{
    public Result OnStartup(UIControlledApplication application)
    {
        // 在这里创建自定义菜单和按钮
        return Result.Succeeded;
    }

    public Result OnShutdown(UIControlledApplication application)
    {
        return Result.Succeeded;
    }
}

在OnStartup方法中添加以下代码,创建自定义菜单和按钮:

// 创建一个自定义菜单
RibbonPanel ribbonPanel = application.CreateRibbonPanel("My Tools");

// 添加一个按钮
PushButtonData buttonData = new PushButtonData("My Button", "My Button", Assembly.GetExecutingAssembly().Location, "MyNamespace.MyCommand");
PushButton button = ribbonPanel.AddItem(buttonData) as PushButton;
button.ToolTip = "This is my button.";

这段代码将在“Add-Ins”选项卡下创建一个名为“My Tools”的自定义菜单,然后添加一个名为“My Button”的按钮,并将它的工具提示设置为“This is my button.”。

创建一个类,该类需要继承ExternalCommand类,作为按钮的命令处理程序,如下所示:

using Autodesk.Revit.UI;
using Autodesk.Revit.Attributes;
using Autodesk.Revit.DB;

[Transaction(TransactionMode.Manual)]
public class MyCommand : IExternalCommand
{
    public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
    {
        // 在这里添加按钮的执行代码
        return Result.Succeeded;
    }
}

在这个示例中,MyCommand类是一个简单的命令处理程序,它可以执行一些操作。

编译项目并将生成的DLL文件放置在Revit的插件目录中。启动Revit,应该可以在“Add-Ins”选项卡下看到My Tools菜单和My Button按钮。
这只是一个简单的示例,可以根据自己的需要创建更复杂的菜单和按钮,以及实现更复杂的操作。

实例

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Media.Imaging;

using Autodesk.Revit.UI;
using Autodesk.Revit.DB;

namespace HelloRevit
{
   public class CsAddpanel : Autodesk.Revit.UI.IExternalApplication
   {
      public Autodesk.Revit.UI.Result OnStartup(UIControlledApplication application)
      {
         //添加一个新的Ribbon面板
         RibbonPanel ribbonPanel = application.CreateRibbonPanel("NewRibbonPanel");

         //在新的Ribbon面板上添加一个按钮
         //点击这个按钮,前一个例子“HelloRevit”这个插件将被运行。
         PushButton pushButton = ribbonPanel.AddItem(new PushButtonData("HelloRevit",
             "HelloRevit", @"C:\Projects\HelloRevit\HelloRevit.dll", "HelloRevit.Class1")) as PushButton;

         // 给按钮添加一个图片
         Uri uriImage = new Uri(@"C:\Projects\HelloRevit\logo.png");
         BitmapImage largeImage = new BitmapImage(uriImage);
         pushButton.LargeImage = largeImage;

         return Result.Succeeded;
      }

      public Result OnShutdown(UIControlledApplication application)
      {
         return Result.Succeeded;
      }
   }
}
  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

孤影墨客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值