* 参考Revit 官方 help 写的,设置为原创而不是翻译,是因为内容虽然大致相同,但是风格迥异。
Revit API 的二次开发的环境通常是C#或者VB,原因是Autodesk一直是和微软的脚步一致的。下面是以C#为例。
1.新建一个Class Library的project。
2. 增加引用,又击添加引用,然后找到你自己的Revit安装目录,把RevitAPI.dll和RevitAPIUI.dll添加进来,记住最后不要勾选把dll复制到本地的选项,否则就会浪费不少空间。
3. 添加如下代码:
using System;
using Autodesk.Revit.UI;
using Autodesk.Revit.DB;
namespace HelloWorld
{
[Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.Manual)]
public class Class1 : IExternalCommand
{
public Autodesk.Revit.UI.Result Execute(ExternalCommandData revit,
ref string message, ElementSet elements)
{
TaskDialog.Show("Revit", "Hello World");
return Autodesk.Revit.UI.Result.Succeeded;
}
}
}
我相信大家最初写程序都是通过照葫芦画瓢的方式来的,这里也一样。从上面我们可以看到Revit为API开发者提供了一套框架,而这套框架的入口就是接口IExternalCommnad的Execute函数。用户所要做的就是创建自己的一个新类,这里是Class1,实现接口的这个方法即可。
4.让Revit可以找到这个DLL。
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<RevitAddIns>
<AddIn Type="Command">
<Assembly>D:\Sample\HelloWorld\bin\Debug\HelloWorld.dll</Assembly>
<AddInId>239BD853-36E4-461f-9171-C5ACEDA4E721</AddInId>
<FullClassName>HelloWorld.Class1</FullClassName>
<Text>HelloWorld</Text>
<VendorId>NAME</VendorId>
<VendorDescription>Your Company Info</VendorDescription>
</AddIn>
</RevitAddIns>
这是一个后缀为.addin的文件,在XP里面我们把它存在C:\Documents and Settings\All Users\Application Data\Autodesk\Revit\Addins\2014\,在Vista和Win7则存在C:\ProgramData\Autodesk\Revit\Addins\2014\。
5.调试
在项目的Debug菜单下,把外部程序的位置设上。C:\Program Files\Autodesk\Revit Architecture 2014\Program\Revit.exe
你可以打开Revit,把程序attach上去,并且在程序上设置好断点。比如就设置在,
TaskDialog.Show("Revit", "Hello World");
进入Revit,打开Add-Ins面板,点击:
你就会发现,断点被执行到了。在程序中点击继续,即可看到:
至此,Revit API 开发的基本流程就走完了。