ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Revit二次开发之添加选项卡和按钮

2022-04-19 18:34:49  阅读:357  来源: 互联网

标签:bin 选项卡 Retrieve PushButtonData 按钮 二次开发 new HelloRevit Revit


  我们日常在revit开发中经常会用到按钮,可以通过revitAPI提供的接口创建按钮,今天我简单介绍一下两种按钮,一种是单命令按钮,另一种是含下拉菜单的按钮,包括创建他们的方法。

实现方法

1.实现思路

  创建按钮的思路大体为:1、编写好自己的命令文件(一般就是继承IExteralCommand接口);2、创建一个继承IExternalApplication接口的文件;3、编辑Addin文档,并将其放入C:\ProgramData\Autodesk\Revit\Addins\2020\路径下。

2.添加必要的引用

using Autodesk.Revit.UI;
using Autodesk.Revit.DB;
using System.Windows.Media.Imaging;
using Autodesk.Revit.Attributes;

3.示例代码

namespace HelloRevit
{
	[Transaction(TransactionMode.Manual)]
	public class CsAddPanel:IExternalApplication
	{
		public Result OnStartup(UIControlledApplication application)
		{
			//新建一个选项卡,并在该选项卡总新建一个命令栏(命令栏可以放多个命令按钮)
			application.CreateRibbonTab("NewTab");
			RibbonPanel ribbonPanel = application.CreateRibbonPanel("NewTab", "TabBar");
			//1、建立一个可下拉的命令栏
			//1.1、新建一个可下拉按钮
			SplitButtonData sbd1 = new SplitButtonData("Name", "Text");
			SplitButton sb1 = ribbonPanel.AddItem(sbd1) as SplitButton;
			//1.2、在该按钮添加两个按钮
			PushButtonData p1 = new PushButtonData("Helloworld1", "按钮1", @"E:\practice\Retrieve\CreateModelLine\bin\Debug\CreateModelLine.dll", "CreateModelLine.Class1");
			PushButton pushButton1 = sb1.AddPushButton(p1);
			PushButtonData p2 = new PushButtonData("Helloworld2", "按钮2", @"E:\practice\Retrieve\ClassLibrary4\bin\Debug\ClassLibrary4.dll", "ClassLibrary4.Class1");
			PushButton pushButton2 = sb1.AddPushButton(p2);
			//2、在选项卡栏添加一个普通按钮
			PushButtonData p3 = new PushButtonData("Helloworld3", "按钮3", @"E:\practice\Retrieve\Retrieve\bin\Debug\Retrieve.dll", "Retrieve.Document_Selection");
			PushButton pushButton3 = ribbonPanel.AddItem(p3) as PushButton;
			//3、先准备一张图片,后面给按钮加图片。(这里要引用PresentationCore程序集,再引用system.windows.media.imaging)
			Uri uriImage = new Uri(@"E:\practice\HelloRevit\HelloRevit\bin\Debug\1.jpg");
			BitmapImage largeImage = new BitmapImage(uriImage);
			//3.1、将图片赋值给按钮。PushButton有两个属性,当按钮是堆叠时,显示的是Image;当按钮是下拉或单个的时候显示的是LargeImage。
			pushButton1.LargeImage = largeImage;
			pushButton2.LargeImage = largeImage;
			pushButton3.LargeImage = largeImage;
			return Result.Succeeded;
		}
		public Result OnShutdown(UIControlledApplication application)
		{
			return Result.Succeeded;
		}
	}
}

注意:PushButtonData()内四个参数,第三个参数为外部命令文件所在。

4.编辑Addin文件

<?xml version="1.0" encoding="utf-8"?>
<RevitAddIns>
  <AddIn Type="Application">
    <Name>CreateButton</Name>
    <Assembly>D:\practice\HelloRevit\HelloRevit\bin\Debug\HelloRevit.dll</Assembly>
    <AddInId>6cdba932-c058-4ec1-b038-33ed590c41d3</AddInId>
    <FullClassName>HelloRevit.CsAddPanel</FullClassName>
    <VendorId>ADSK</VendorId>
  </AddIn>
</RevitAddIns>

注意将Addin文件放入上面所提位置,FullClassName就是该文件命名空间下的类(本文例子的命名空间为HelloRevit,类名为CsAddPanel)

5.Ribbon菜单插件介绍

  其他按钮创建方法与上面分享方法类似,希望对大家有所帮助。

标签:bin,选项卡,Retrieve,PushButtonData,按钮,二次开发,new,HelloRevit,Revit
来源: https://www.cnblogs.com/letmebaby/p/16166190.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有