Revit二次开发6、插件注册与.addin文件


[个人学习笔记整理,若有错误请各位同仁告知]

插件的注册

如果想在Revit中调用我们制作的插件,需要对插件进行注册。Revit通过后缀名为.addin的文件(XML格式)来实现注册。
Revit会在启动时自动搜索特定目录(addin目录)下的.addin文件并进行加载。

注册目录地址

注册目录(addin目录)在电脑中的存放位置,根据电脑使用情况和Revit版本不同而有所不同。
如果您希望该插件只有当前用户可用,需要将文件放入以下文件夹中:

  • %appdata%\Roaming\Autodesk\Revit\Addins\20xx\
    也就是
  • C:\Users\<user>\AppData\Roaming\Autodesk\Revit\Addins\20xx
  • %appdata%——当前用户appdata目录,win7~10版本的位置是C:\Users\<user>\AppData
  • 20xx——Revit版本

如果您希望所有用户都可以使用该插件,则将文件放入以下文件夹中:

  • C:\ProgramData\Autodesk\Revit\Addins\20xx\

通常ProgramData这个文件夹在windows之中是隐藏的,我们可以设置C盘显示隐藏文件夹,然后再进行访问。
当然,您也可以直接在windows文件管理器界面地址栏中C:\盘符后直接输入ProgramData然后回车就可以找到了,又或者,您也可以干脆将上面的“C:\ProgramData\Autodesk\Revit\Addins\”复制到地址栏中回车就可以了。
在这里插入图片描述
您可以先打开对应的文件目录去看一看自己的电脑都安装了哪些插件,它们的addin都在这里了。

addin文件格式

Revit 二次开发中,如果想通过API 来访问或扩展Revit,需要用户在自己的插件中实现特殊的接口,就是IExternalCommand、IExternalApplication、IExternalDBApplication。最为常用的就是IExternalCommand和IExternalApplication,这两个接口所对应的注册文件.addin略有区别。

1、IExternalCommand对应的注册文件为:

<?xml version="1.0" encoding="utf-8"?> 
<RevitAddIns> 
	<AddIn Type="Command"> 
		<Assembly>D:\HelloWorld\bin\Debug\HelloWorld.dll</Assembly> 
		<ClientId>49878934-0a7a-4e94-b669-b6c13bf7e4b0</ClientId>
		<FullClassName>HelloWorld.Class1</FullClassName> 
		<Text>HelloWorld</Text> 
		<VendorId>ADSK</VendorId>
		<VendorDescription>Autodesk, www.autodesk.com</VendorDescription>
	</AddIn> 
</RevitAddIns>

2、IExternalApplication对应的注册文件为:

<?xml version="1.0" encoding="utf-8"?>
<RevitAddIns>
	<AddIn Type="Application">
		<Name>External Tool</Name>
		<Assembly>D:\HelloWorld\bin\Debug\HelloWorld.dll</Assembly>
		<ClientId>5b6e8f40-086e-4558-a6fc-e0268984d9d1</ClientId>
		<FullClassName>HelloWorld.Ribbon</FullClassName>
		<VendorId>ADSK</VendorId>
		<VendorDescription>Autodesk, www.autodesk.com</VendorDescription>
	</AddIn>
</RevitAddIns>
  • AddIn Type="Command"表明该库是一个外部命令;AddIn Type="Application"表明是一个外部应用。
  • Assembly是编译生成的“HelloRevit.dll”文件的具体路径,需要改为本机路径
  • ClientId是一个全局的GUID值,每个外部命令或外部应用都应该包含一个自己的GUID值(不同命令不能ClientId重复)
  • FullClassName指类的名称(这里是Class1,请注意一定要将命名空间名称加上,例如HelloRevit,否则命令执行时会找不到对应的接口)
  • VendorId指明该命令的厂商,请自定义使用厂商的名称
  • IExternalApplication中多了Name标签

addin文件的编辑可以直用记事本等文本编辑器编辑,也可心接新建一个文本文件,并将文件名改为“HelloRevit.addin”(请确认文件名不是“HelloRevit.addin.txt”)。然后在该文件中输入以上内容,并保存。

addin工具AddinManager

addin文件虽然可以手动编辑,但因为在addin文件中若有错误时,Revit可能只是加载不成功而没有错误提示,并且,addin文件中每个插件命令的GUID又不方便直接查看,所以,手动编辑addin相对比较麻烦。目前,大家基本上都使用官方提供的addin管理插件AddInManager。
AddInManager是Autodesk的官方插件,是一款用来加载Revit的插件,使得Revit不用重启就可以修改插件代码并再次加载和运行。以后可以整理一个专篇来说说AddinManager,在此仅说明生成addin文件的操作吧。

AddinManager下载与安装

下载
既然是官方提供的管理插件,建议直接从官方下载。这个插件被官方放置在Revit开发工具包SDK中,其下载地址如下:
https://www.autodesk.com/developer-network/platform-technologies/revit
进入网页,在下方的Tools下有目前主要几个Revit版本对应的SDK下载连接。
在这里插入图片描述
下载对应版本的Revit SDK文件安装之后,安装目录下包含了以下内容:
在这里插入图片描述
安装
在SDK的安装目录Add-In Manager目录下找到Autodesk.AddInManager.addin文件和AddInManager.dll文件,这两个文件就是我们需要的文件。
将这两个文件一起复制到本篇第二部分所说的注册目录下(个人习惯是放在C:\ProgramData\Autodesk\Revit\Addins\20xx\下。
打开其中的Autodesk.AddInManager.addin文件(若没有其它工具也可以直接用记事本打开即可),其内容如下图:
在这里插入图片描述
将其中的“[TARGETDIR]”删除(代表直接在当前目录下,如果您AddInManager.dll文件的目录与当前Autodesk.AddInManager.addin所在的目录不同,也可以修改为实际目录路径)
启动Revit(若有提示请确认加载),在“附加模块”菜单下的“外部工具”按键下拉中将会出现“Add-in xxx”命令,如下图所示,说明安装成功。
在这里插入图片描述
其它方法
当然,如果您愿意,也可以从我的百度网盘链接里直接下载我们需要的addin文件(里面有2016~2020版本的addin文件):
链接: https://pan.baidu.com/s/18ZKmjxf8_d7LwfEg5RDOOw 提取码: n7ts
每个版本只有AddInManager.addin和AddInManager.dll文件,下载后,同样放在对应的位置即可(其中的“[TARGETDIR]”已删除)。

使用AddinManager生成addin文件

上述安装完成后,我们使用它来生成addin文件。
我们主要上面三个命令使用的是第一种模式,第二种类似于重复上一次命令,第三种使用情况较少。

  • 点击“Add-in Manager(Manual Mode)”启动对话框:
    在这里插入图片描述
  • 打开窗口以后点击“Load”按钮来加载程序文件,
    在这里插入图片描述
  • 在上方Loaded Commands中选中我们需要生成addin文件的命令(可只选一部分需要的,默认全选,所以勾掉不需要的)
  • 点击下方Save按钮右侧的下拉箭头,选择“Save checked items to Local .addin file”,也是就在当前文件位置生成addin文件(点击一次若不成功?那就再来一次!)。
  • 在我们需要加载的dll文件旁边就会生成一个addin文件了。
    在这里插入图片描述
  • 其中,addin文件的内容与我们的dll内容就一致了。
    在这里插入图片描述
  • 现在,将dll文件和对应的addin文件一起复制到addin的注册目录里就可以了。
  • 如果您的Revit是打开的,Revit界面就会弹出加载提示了:
    在这里插入图片描述
  • 确认加载后,在在“附加模块”菜单下的“外部工具”按键下拉中将会出现“Add-in xxx”命令下方就会出现我们自己的插件命令了,点击就可以运行并进行测试了。
    在这里插入图片描述

.
说明:
【1】以上有部分理论内容来自欧特克(中国)软件研发有限公司主编的《Autodesk REVIT二次开发基础教程》(同济大学出版社出版)。
【2】本人在对笔记的整理过程中加入了部分个人的理解与解释,希望对各位如我一样的初学者有所帮助。

  • 5
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值