前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Revit二次开发之创建插件面板(第十五期)

Revit二次开发之创建插件面板(第十五期)

作者头像
一席青衣卧龙城
发布2022-04-21 12:21:13
1.3K0
发布2022-04-21 12:21:13
举报
文章被收录于专栏:Revit二次开发

帅气的小编来更新文章啦(以后简称帅编)

这期来给各位讲解如何创建面板,至于为什么要创建面板,当然是为了装逼。。。。。。不对不对。。。是为了让用户方便使用你的插件。

创建面板和平时撸代码不一样在于接口不同,我们要用到 IExternalApplication这个外部接口,而之前一直用的模板的接口是IExternalCommand。区别如下:

1.平时用的接口

2.面板要用的接口

Revit通过addin文件来识别和加载实现 IExternalApplication的外部插件, IExternalApplication提供两个重载OnShutdown、OnStartup来实现Revit关闭和开启时加载功能。


因为我要上代码了:

代码语言:javascript
复制
using System.Data;
using System.Windows;
using System.Windows.Media.Imaging;
using Autodesk.Revit;
using Autodesk.Revit.UI;
using Autodesk.Revit.UI.Selection;
using Autodesk.Revit.DB;
using Autodesk.Revit.DB.Architecture;
using Autodesk.Revit.DB.Mechanical;
using Autodesk.Revit.DB.Plumbing;
using Autodesk.Revit.DB.Electrical;
using Autodesk.Revit.ApplicationServices;
using System.Data.SqlClient;
using Autodesk.Revit.Creation;
using Autodesk.Revit.DB.Structure;
using Autodesk.Revit.Attributes;
namespace zpx123
{
    [Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.Manual)]
    [Autodesk.Revit.Attributes.Regeneration(Autodesk.Revit.Attributes.RegenerationOption.Manual)]
    [Autodesk.Revit.Attributes.Journaling(Autodesk.Revit.Attributes.JournalingMode.NoCommandData)]
    class ribbon : IExternalApplication
    {
        static string AddInPath = typeof(ribbon).Assembly.Location;//自动寻找dll文件
        public Result OnShutdown(UIControlledApplication application)//关闭Revit
        {
            return Result.Succeeded;
        }
        public Result OnStartup(UIControlledApplication application)//启动Revit
        {   
            application.CreateRibbonTab("帅德卜耀布曜德翔の工具");
            RibbonPanel panel = application.CreateRibbonPanel("帅德卜耀布曜德翔の工具", "查找工具");//增加一个新的面板
            //在面板上增加一个按钮(按钮执行的内容为zpx123.Classzpx类里的内容)
            PushButtonData Recher = new PushButtonData("寻找装置", "寻找电气装置", AddInPath, "zpx123.Classzpx");
            //按钮提示
            Recher.ToolTip = "输入名称和高度自动选中同一类型的构件";
            //加载图片
            Recher.LargeImage = new BitmapImage(new Uri(AddInPath.Replace("zpx123.dll", "shiyan.png")));
            panel.AddItem(Recher);
 return Result.Succeeded;
        }
    }
}

黄色部分请当做模板!!

那要怎么调试我们的代码呢,答案是不能。这里需要我们制作成addin文件才可以的哦。告诉大家一个快速制作addin的办法。

1.还是选择外部工具

2.点击切换到Applications

3.找到dll文件加载

4.点击save

5.选择第二个.addin file(这里截不到图就不截了)

6.在保存目录下会有addin文件

7.使用记事本打开和command有关的全都删掉,只保留图中内容即可

8.保存addin文件,将其放在如下图路径的文件夹下


打开revit来试试效果吧!

  1. 在菜单栏上会有面板名称

帅编这里插件有点多,所以不能完全显示

2.会有如下按钮及图片

3.鼠标经过按钮的提示

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-08-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 精讲Revit二次开发 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档