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

article/2025/9/28 16:47:50

添加菜单和按钮

  • Ribbon
  • 实例

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

http://chatgpt.dhexx.cn/article/hIFw9m0q.shtml

相关文章

【Revit二次开发】楼板、天花板、屋顶和洞口

介绍代码 介绍 Creates a slab within the project with the given horizontal profile using the default floor style. public Floor NewSlab(CurveArray profile,Level level,Line slopedArrow,double slope,bool isStructural )在Revit二次开发中,楼板、天花板…

Revit二次开发——选集

选集 选集用户选集过滤的用户选集 选集 选择图元后运行外部命令获取选择的内容 Revit API中定义了单选、多选、框选等方式的用户选集,用户可以十分方便的使用鼠标和键盘完成这三种方式的图元选择。Revit API根据三种用户选集各自的特点,封装了多种实现…

Revit二次开发——族的基础

族 族族编辑族实例 族 Revit将族分为系统族、内建族、标准构件族。 系统族:系统族是在 Autodesk Revit 中预定义的族,包含基本建筑构件,例如墙、窗和门。例如:基本墙系统族包含定义内墙、外墙、基础墙、常规墙和隔断墙样式的墙类…

Revit二次开发-CurveLoop的闭合处理

在Revit二次开发中,生成solid体块的时候,截面一般使用的CurveLoop这个数据结构。 笔者在使用CurveLoop的使用,给它Append某个几何的时候,老出异常捕获: XXXXXX. 英文不打了,就是不连续的意思。 查阅api发…

【Revit二次开发】族

族 族族实例族文档Revit API中族文档相关类族参数和族类型 族 Revit将族分为系统族、内建族、标准构件族。 Autodesk revit中的所有图元都是基于族的。 系统族:系统族是在 Autodesk Revit 中预定义的族,包含基本建筑构件,例如墙、窗和门。例…

Revit二次开发放样融合CreateSweptBlendGeometry

生成solid的放样融合接口为CreateSweptBlendGeometry&#xff0c;参数描述如下&#xff1a; 1&#xff09;Curve pathCurve&#xff1a;路径只要一个线 2&#xff09; IList<double> pathParams&#xff1a;数组大小和截面数组一样&#xff0c;作用是定位截面数组每个截…

Revit二次开发入门

Revit二次开发入门 订购并安装Autodesk Revit安装Visual Studio安装Revit AddIn-Manager 安装步骤&#xff1a; 找到安装Revit解压后的文件夹&#xff0c;找到\Utilities\SDK目录&#xff0c;并运行RevitSDK.exe&#xff1b; 指定安装目录&#xff08;安装步骤实际上只是把一个…

Revit二次开发01-开发环境的配置(Revit2018+Visual Studio 2015)

1.软件简介 1.1 Revit 2018 SDK Revit SDK包含RevitAPI的帮助文档以及带源码的案例&#xff0c;Revit SDK需要与Revit的版本保持一致。Revit SDK中的Add-In Manager是Revit的官方插件&#xff0c;用来加载revit的插件&#xff0c;RevitAPI.chm是RevitAPI的帮助文档。 1.2 Revi…

Revit二次开发有几种方式?做Revit二次开发的必看!

Revit二次开发有三种方式&#xff1a;外部命令&#xff08;IExternalCommand&#xff09;、外部应用(IExternalApplication)和宏(Macro)。下面将简要说明外部应用、宏的开发过程&#xff0c;并着重说明外部命令的开发过程。 1.宏&#xff08;Macro&#xff09; 宏是基于RevitAP…

Revit二次开发案例一(第1讲)

这期起&#xff0c;将为大家带来二次开发的小案例讲解&#xff0c;通过借助Revit建模与二次开发&#xff0c;帮助大家快速提高开发水平&#xff0c;快快参加吧&#xff01;&#xff01;&#xff01; 族实例是通过族类型创建的&#xff0c;而创建族实例是Revit二次开发尤其重要…

【REVIT二次开发教程】01-“你好,Revit”

本教程全程采用VS2022&#xff0c;Revit2022。 1.新建项目 打开VS2022&#xff0c;创建新项目&#xff0c;选择项目类型为C#&#xff0c;Windows&#xff0c;然后点击下一步。 2.添加引用 选择右上角【解决方案管理器】中的【依赖项】&#xff0c;右键点击&#xff0c;选择【…

运放的差分放大电路

该放大器的传递函数为&#xff1a;    若R1 R3 且R2 R4&#xff0c;则公式 1 简化为&#xff1a; 应用电路&#xff1a; 电路一&#xff1a; 用运放做电流采样&#xff0c;再用单片机AD采集处理。 注&#xff1a; 1、Rp10、Rp11、Cp8、Cp9&#xff0c;是对输入做的RC…

模电(十四)差分放大电路

目录 差分放大电路 双端输入双端输出 Q点分析 抑制共模信号 放大差模信号 双端输入单端输出 Q点分析 差模信号分析 共模信号分析 单端输入双端输出 单端输入单端输出 四种接法比较 具有恒流源的差分放大电路 差分放大电路的改进 差分放大电路 采用引入支流负反馈&a…

差分放大电路基础

该放大器的传递函数为&#xff1a; 若R1 R3 且R2 R4&#xff0c;则公式 1 简化为&#xff1a; 应用电路&#xff1a; 电路一&#xff1a; 用运放做电流采样&#xff0c;再用单片机AD采集处理。 注&#xff1a; 1、Rp10、Rp11、Cp8、Cp9&#xff0c;是对输入做的RC滤波&…

6.深入浅出:差分放大电路——参考《模拟电子技术基础》清华大学华成英主讲

如果你想理解差分电路共模信号和差模信号&#xff0c;共模放大倍数&#xff0c;差模放大倍数&#xff0c;共模抑制比等&#xff0c;本文或许能给你比较系统的认知&#xff0c;主要包括&#xff1a; 什么是零点漂移&#xff1f; 引入差分电路 两个共射极放大电路对称布置&…

差分放大电路的构成(零点漂移、差分放大电路是怎么构成的、共模信号、差模信号)

差分放大电路的构成 直接耦合放大电路 零点漂移现象 输入短接&#xff0c;输入为零的时候&#xff0c;输出不是一条直线&#xff0c;就是交流量不是零。 一、产生原因 温漂&#xff0c;温度变化使静态工作点发生变化&#xff0c;产生零点漂移 二、抑制温漂的方法 加射极电阻…

干货 | 教你轻松掌握差分放大电路,看完这篇不踩坑

要想掌握差分放大电路&#xff0c;首先就要知道什么是差分放大电路以及它的作用。 差分放大电路是模拟集成运算放大器输入级所采用的的电路形式&#xff0c;差分放大电路是由对称的两个基本放大电路&#xff0c;通过射极公共电阻耦合构成的&#xff0c;对称的意思就是说两个三极…

全差分运算放大器浅析

全差分放大器(Fully-Differential)是一种应用在将单端信号转换为差分信号&#xff0c;或者将差分信号转换为差分信号的芯片。 全差分放大器的配置特点&#xff0c;就是全对称匹配。即两侧输入阻抗配置完全一致&#xff08;阻抗包括源内阻&#xff09;&#xff0c;反馈配置完全…

运算放大器——4种基本运放电路(同相放大、反相放大、加法器、差分放大电路)实际设计中需要考虑的实际问题

运算放大器——4种基本运放电路(同相放大、反相放大、加法器、差分放大电路)在实际设计中需要考虑的实际问题 前言 第一篇博客就从运放入手吧&#xff0c;话不多说。正文开始&#xff1a;想必大家对运放电路都熟悉的再不能熟悉了。可是这里为什么又再拿出来写呢&#xff1f;肯…

高压电压采样之差分放大电路

在高压电压采样方案研究一文中提到&#xff0c;可以使用差分放大电路进行高压电压采样。如下图&#xff1a;   该方案有缺陷&#xff0c;如下。整车车身与12V电池负极连接到一起&#xff0c;同属于低压电路&#xff0c;我们可以称之为大地。没有绝对的绝缘体&#xff0c;电池…