Ribbon界面标准代码

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;
        }
    }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值