因为在程序中反复需要用到revit的模型,可是revit模型的操作对于开发来说,局限性很大,因此做一些插件进行自动化管理。
本文先根据教程,做一个HelloWorld程序,为了方便,本文安装的revit版本是版,visual studio使用的是vs。
1、安装revit及其sdk
revit的安装不复述,但是装完后还需要安装其sdk。
revit解压缩后,找到解压路径下的“\Utilities\SDK\RevitSDK.exe”运行,指定sdk解压路径。
下载AddInManager配置文件,可以网络搜索,或者使用作者分享的文件链接: /download/xuwuxiu/9898218
然后,在revit解压目录下搜索“AddInManager”,可以得到如下文件:
此步骤网络上很多教程都说revit的sdk目录下自带AddInManager,但是作者没找到,并且因此废了不少时间,最终以此方法得到这些文件。
复制其中的AddInManager.dll的目录路径,然后使用记事本打开下载下来的Autodesk.AddInManager.addin及Autodesk.AddInManager-Automatic.addin,如图,将原来的AddInManager.dll的路径替换为本机AddInManager.dll的路径。
接下来,将Autodesk.AddInManager.addin及Autodesk.AddInManager-Automatic.addin复制到目录C:\ProgramData\Application Data\Autodesk\Revit\Addins\
过程中可能会遇到“documentsandsettings拒绝访问”等问题,解决办法可以参照/article/1e5468f92afe08484961b793.html
打开revit,在附加模块-外部工具即可看到如图菜单。
2、创建项目
1)打开VS,点击【新建项目】→【Visual C#】→【类库】,然后输入程序名称,如:Hello World。
2)点击【项目】→【添加引用】→【浏览】,在Revit安装目录下找到【RevitAPI.dll】和【RevitAPIUI.dll】并添加。
3)此步骤并非必须。
在【解决方案资源管理器】中,右键【RevitAPI】和【RevitAPIUI】,点击【属性】,将属性【复制本地】改False。
4)编写代码
添加using及对应代码,代码如下:
using Autodesk.Revit;using Autodesk.Revit.DB;using Autodesk.Revit.UI;using Autodesk.Revit.Attributes;namespace helloworld{[Transaction(TransactionMode.Manual)]public class Command : IExternalCommand{public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements){try{TaskDialog.Show("Hello", "First Revit Program.");}catch (Exception e){message = e.Message;return Result.Failed;}return Result.Succeeded;}}}
5)选择【项目】→【属性】→【调试】→【启动外部程序】,找到Revit安装目录,选择Revit.exe,点击保存。然后点击启动生成,在Debug目录下会生成HelloWorld.dll
3、部署插件
1)打开目录“C:\Users\你的用户名\AppData\Roaming\Autodesk\Revit\Addins\”,创建一个addin文件,如HelloWorld.addin,用记事本打开编辑,添加如下内容:
<?xml version="1.0" encoding="utf-8"?><RevitAddIns><AddIn Type="Command"><VendorId>miror</VendorId><Text>Hello Revit</Text><Description>Hello World to Revit.</Description><FullClassName>mand</FullClassName><Assembly>E:\1hololens\projects\revit\helloworld\helloworld\bin\Debug\helloworld.dll</Assembly><AddInId>2A7F31C5-8FDE-417F-8FE7-CF38768A5D69</AddInId></AddIn></RevitAddIns>
其中,各个字段的意义如下:
【VendorId】,开发商Id,可以自己随意取名。
【Text】,Revit中插件的名称。
【Description】,插件的描述信息。(可不写这项)
【FullClassName】,类名。注意:得填写完整的【命名空间.类名】,如本例的命名空间为helloworld,类名为command。
【Assembly】,需要加载的程序集的完整路径,调试的时候,可以填写debug目录下的dll路径。
【AddIn】,在VS的【工具】→【创建GUID】,选择注册表格式,可以取得,点击复制,粘贴到字段为“{2A7F31C5-8FDE-417F-8FE7-CF38768A5D69}”,删除前后括弧即可。
2)重启revit,可以看到你的第一个插件了。