Revit二次开发--Hello World

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Revit二次开发--Hello World相关的知识,希望对你有一定的参考价值。

部署完开发环境,就要进行每次学习新的技能,必写的Hello World。

1、打开VS开发环境,新建一个项目类库RevitDemo。

2、修改Class1名称为Command。

3、在引用中添加RevitAPI,RevitAPIUI的dll,注意将这两个dll的复制本地改为flase,否则将复制大量的dll到运行目录。

4、写下以下代码,保存,因为我的Revit为2017,.net框架运行版本需设置为4.5.2.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Autodesk.Revit;
using Autodesk.Revit.DB;
using Autodesk.Revit.UI;
using Autodesk.Revit.Attributes;

namespace RevitDemo
{
    [Transaction(TransactionMode.Manual)]
    public class Command : IExternalCommand
    {
        public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
        {
            try
            {
                TaskDialog.Show("Hello", "Hello World.");
            }
            catch (Exception e)
            {
                message = e.Message;
                return Result.Failed;
            }
            return Result.Succeeded;
        }
    }
}

5、选择【项目】→【属性】→【调试】→【启动外部程序】,找到Revit安装目录,选择Revit.exe,例如:我的是C:\Program Files\Autodesk\Revit 2017\Revit.exe,点击保存

6、完成以上步骤后,便可以启动项目了,为了看到效果我们还需要做其他操作

7、到找到文件夹【C:\Users\linbi\AppData\Roaming\Autodesk\Revit\Addins\2017】(我使用的是Win10系统,其他系统自行对应) 
新建一个记事本【Hello World.addin】文件,内容如下:

<?xml version="1.0" encoding="utf-8"?>
<RevitAddIns>
  <AddIn Type="Command">
    <Assembly>RevitDemo.dll</Assembly>
    <ClientId>85063e45-e4b5-4621-b142-bce195e0bacc</ClientId>
    <FullClassName>RevitDemo.Command</FullClassName>
    <Text>RevitDemoCommand</Text>
    <VisibilityMode>AlwaysVisible</VisibilityMode>
    <LanguageType>Unknown</LanguageType>
    <VendorId>cnsb</VendorId>
    <VendorDescription>cnsb, www.cnsb.top</VendorDescription>
  </AddIn>
</RevitAddIns>
Assembly填写你刚才编写的dll的全路径

ClientId 为生成一个新的GUID
FullClassName为启动的类名,为完整的命名空间+类名
Text插件名称
VendorId 为开发者名称

8、完成以上所有步骤后,打开Revit应用程序,【附加模块】→【外部工具】→,就可以看见你的Hello World插件了。

以上是关于Revit二次开发--Hello World的主要内容,如果未能解决你的问题,请参考以下文章

在Revit二次开发里,如何在代码实现获得Revit里 所有的族的类别?

Revit API二次开发入门,完整学习流程,附源码

revit 二次开发之读取参数

Revit二次开发_外部事件

revit文件发生不可恢复的错误(二次开发)

Revit二次开发的解决方式