明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1198|回复: 1

revit api Hello World

[复制链接]
发表于 2021-7-22 15:58 | 显示全部楼层 |阅读模式
本帖最后由 luowy 于 2021-7-22 16:21 编辑

安装
1.    Revit 2018
2.    Visual Studio 2017(用于代码编写)
3.    Revit SDK 2018 (用于代码测试)
4.    AddinManager
5.    Revit Lookup
6.    ILSpy 4.0.1
Revit 2018
这个直接在Autodesk上就可以找到,找到直接安装就好了,这里不赘述,太旧的版本就不必装了。
Visual Studio 2017
在VS社区可以找到,点击这里下载。
注意各种.NET框架的安装,另外也要安装 .Net Core。根据官方某英文页面的说法,Revit 2018对应 .NET Framework 4.7。

                              
Revit SDK 2018
下载地址这里。最好和Revit 2018安装在同一路径,方便查找。
配置AddinManager
SDK安装后包含了REVIT SDK文件和AddInManager,插件用来允许外部二次开发代码。
在windows7以上环境中需打开显示隐藏文件才能进行看到下面的目录C:\ProgramData\Autodesk\Revit\Addins\2018
复制SDK文件下的Add-In Manager目录下的AddInManager.dll和Autodesk.AddInManager.addin文件到上面的目录中,更改Autodesk.AddInManager.addin文件中的标签中的东西,里面的路径为SDK的实际安装路径,然后保存。
  1. <blockquote><?xml version="1.0" encoding="utf-8"?>
复制代码
更改后打开Revit 2018即可在附加模块看到安装的插件。

Revit Lookup

下载地址

选择Download ZIP,下载后解压在Revit SDK安装路径下,点击进入文件夹找到RevitLookup文件(为sln格式),使用VS打开。
打开后重新添加以下引用(这几个引用未重新引用之前会带有黄色标记),在Revit安装路径下可以找到这些dll。之后进行生成,这样会在D:\REVIT 2018 SDK\RevitLookup-2018.0.0.7\CS\bin\Debug文件夹中生成RevitLookup.dll编译文件。
进入 D:\REVIT 2018 SDK\RevitLookup-2018.0.0.7\CS路径下找到RevitLookup.addin文件,对文件进行编辑修改,将里面的第4行修改为(即上述编译生成的RevitLookup.dll所在的路径):

  1. <blockquote><?xml version="1.0" encoding="utf-8" standalone="no"?>
复制代码
将其拷贝到下列目录中: C:\ProgramData\Autodesk\Revit\Addins\2018,这便完成了RevitLookup的安装。如果Revit 2018 正在运行,则需要关闭后重启才能在附加模块看到Lookup。
ILSpy 4.0.1
下载地址在这里。,需要自己编译。
测试
1、启动Visual Studio,新建项目,在“模板”里选择“Visual C#”→“类库(.Net Framework)”,在下方的名称栏填上Hello Revit。
2、添加引用,在引用管理器中选择“浏览”,在Revit安装目录下找到RevitAPI.dll和RevitAPIUI.dll,把这两个文件分别添加到项目中。然后记得把上述两个引用的“复制到本地”属性改为False,否则你编译会生成一大堆没什么用的东西。因为我们做的是插件,不可能脱离Revit程序本身来运行的。
3、把默认生成的“using……”代码块只留下
using System;
在后面加上
using Autodesk.Revit.DB;
using Autodesk.Revit.UI;
using Autodesk.Revit.Attributes;
4、在默认生成的public class Class1{}前面加上
[Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.Manual)]
5、把默认生成的public class Class1{}改成
public class Class1: IExternalCommand{}
6、在public class Class1: IExternalCommand{}内部添加
public Result Execute(ExternalCommandData commandData, ref string message,ElementSet elements) { }
7、在public Result Execute(ExternalCommandData commandData,ref string message, ElementSet elements) { }内部添加
TaskDialog.Show(“Demo”, “Hello Revit!”);
return Result.Succeeded;
8、完成的代码应该是这个样子:
  1. <blockquote>using System; using Autodesk.Revit.DB;

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
 楼主| 发表于 2021-7-22 16:24 | 显示全部楼层
本帖最后由 luowy 于 2021-7-22 16:30 编辑

这论坛编辑功能真没人性化啊。【接上】
8、完成的代码应该是这个样子:using System; using Autodesk.Revit.DB;
using Autodesk.Revit.UI;
using Autodesk.Revit.Attributes;
namespace HelloRevit
{
    [Transaction(TransactionMode.Manual)]
    public class Class1 : IExternalCommand
    {
        public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
        {
            TaskDialog.Show("Revit", "Hello Revit!");
            return Autodesk.Revit.UI.Result.Succeeded;
        }
    }
}

9、保存全部文件。在项目属性里把“生成”→“目标平台”由Any CPU改成x64(省略这步的话编译时会出现警告)。检查无误后生成类库,并记下输出窗口中的文件位置。
10、添加一个文本文件,输入以下内容:
<?xml version ="1.0" encoding ="utf-8" standalone ="no"?>
<RevitAddIns>
  <AddIn Type="Command">
    <Assembly>{类库的路径(含文件名)}</Assembly>
    <AddInId>{Guid}</AddInId>
    <FullClassName>HelloWorld.Class1</FullClassName>
    <Text>HelloWorld</Text>
    <VendorId>NAME</VendorId>
  </AddIn>
</RevitAddIns>



注意第4行和第5行都要根据实际情况填写。第4行就是上一步记下的文件位置,第5行可以在AssemblyInfo.cs文件里找到,直接用数字字母替代{guid}。
11、把这个文本文件重命名为“HelloRevit.addin”,复制到Revit插件目录下。Win7/8的位置是%programdata%\Autodesk\Revit\addins\201*,其中“%programdata%”一般是“C:\ProgramData”(系统装在C盘),“201*”是Revit的版本。
12、启动Revit,在“附加模块”→“外部工具”的下拉箭头处找到“HelloRevit”,执行后,可以看到弹出对话框,成功。





您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-4-26 15:33 , Processed in 1.082171 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表