[Revit]Autodesk Revit 二次开发整理(资料、准备工作和环境搭建)

时间:2022-10-31 19:19:03

1 前言

Revit被Autodesk收购之后,整理和开放了一大部分API,供开发者实现自己的功能和程序,总体来说API的功能比较完善,毕竟市面上已经出现了各式各样的插件。

本人也是初学者,在Revit分类中分享一些自己记录的笔记内容。


2 准备工作

工欲善其事,必先利其器。

2.1 语言

首先,定下你自己想使用的编程语言,官方SDK中给出的语言示例包括C#VBC++三种,至于选择哪一种来开发,可以根据个人喜好和语言掌握情况。不过一般来说,大家都使用C#C#出自微软Anders Hejlsberg团队之手,设计优美,配合上宇宙第一IDE和 .NET Framwork,开发起来效率很高。同时对于有UI需求的开发者来说,使用Winform或者WPF也可以让你快速完成UI界面的设计。

当然,如若你觉得人生苦短,也可以使用Python进行开发,Github上有一个开源项目叫做pyRevit,这个插件为Revit提供了一个python脚本的运行环境和一些已有功能,你可以使用各路大神们用Python封装好的方法,实现你自己的业务。在此不多做介绍,有兴趣大家可以搜索相关资料学习。

2.2 SDK

选择好了适合你的语言,接下来需要去下载相关开发SDK,官方开发者中心有最新三年的SDK可以下载,如果你要下载再老的版本SDK,就需要你自己去网上搜索了。

我这里有一些老的SDK供大家选择下载:

SDK很重要,在此不禁让小学生水平的我吟诗一首,啊,SDK,你似那茫茫航洋中的灯塔,照亮我们前进的方向。个人理解,有了SDK你才知道你能做和不能做的界限,如果能做,也要根据SDK去决定该走什么路线、程序该怎么架构和设计等。

除了SDK,官方还提供了案例代码,可以从案例代码里面学习一些API的使用。

2.3 辅助工具

开发过程中使用一些特定工具,辅助提升你的开发效率还是很有必要的。

  1. RevitLookup

    RevitLookup可以辅助开发人员在Revit中查看Revit底层数据库中的元素对象、属性、关系等内容,更加直观和方便,免除你去翻SDK一个一个查了;
  2. AddInManager

    AddInManager是用来在开发过程中调试你的命令和程序的,如果不使用AddInManager,那你调试起来就只能一遍一遍的重复关闭Revit,安装插件,再打开revit,测试,修改这样一个流程了,那么不出几天,就会变成Revit二次开发:
graph LR
入门 --> 放弃

传送门:

安装完成,在Revit附加模块Tab页会出现如图所示工具:

[Revit]Autodesk Revit 二次开发整理(资料、准备工作和环境搭建)

2.4 IDE

如果你选择C#或者C++作为开发语言,那么宇宙第一IDE Visual Studio你值得拥有。当然,你也可以使用Visual Studio Code甚至Notepad。。。

如果你C盘空间还够,推荐大家下载使用Visual Studio Community 2015/2017,具体使用什么版本,还要根据你开发的Revit版本来决定,在安装VS的时候,注意勾选C#相关组件和高版本的 .Net Framwork开发工具,如果第一次没安装完全也可以在需要的时候运行安装程序修改安装配置。

[Revit]Autodesk Revit 二次开发整理(资料、准备工作和环境搭建)

如果你选择python,可以使用VSC或者PyCharm

2.5 资料

相关参考资料除了有SDK和官方给的参考代码案例外,还有国内外各类论坛里面的相关帖子。

比如叶雄进老师的博客,面市的相关书籍等。


3 开始第一个项目搭建

这里以VS为例。

3.1 新建工作项目

  1. 打开Visual Studio,点击文件 ---> 新建 ---> 项目;

    [Revit]Autodesk Revit 二次开发整理(资料、准备工作和环境搭建)
  2. 项目类型选择,Visual C# ---> 类库(.NET Framwork),根据要开发revit的插件的版本,选择 .Net framwork版本,自己起一个名称,选择一个存储位置,点击确定;

    [Revit]Autodesk Revit 二次开发整理(资料、准备工作和环境搭建)

    VS会默认给你创建如下模板:

    [Revit]Autodesk Revit 二次开发整理(资料、准备工作和环境搭建)

3.2 添加项目引用

  1. 添加Revit API引用,从Revit安装目录中找到RevitAPIUI.dllRevitAPI.dll,这是两个最常用的动态链接库;

    在项目解决方案浏览器中右键引用一项,选择添加引用,浏览找到上述两个dll文件,确定;

    [Revit]Autodesk Revit 二次开发整理(资料、准备工作和环境搭建)

确定之后,引用一项就会变成如图所示:

[Revit]Autodesk Revit 二次开发整理(资料、准备工作和环境搭建)

可以选择性的执行,将这两个dll的复制本地属性改为False,改为False,生成项目的时候这两个dll文件就不会复制到生成目录中,根据个人喜好设置~

  1. 引用Revit命名空间。

    Class1.cs文件最上面添加对Revit最常用命名空间的引用:
using Autodesk.Revit.DB;
using Autodesk.Revit.UI;

至此,一个revit最简单的插件环境已经搭建完毕。

接下来,就可以针对具体业务写业务代码了。

3.3 修改项目属性

项目默认的平台目标是Any CPU,写完代码直接生成会弹出MSB3270警告,如下:

1>------ 已启动全部重新生成: 项目: FirstRevitPlugin, 配置: Debug Any CPU ------
1>E:\Visual Studio 2017\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets(1987,5): warning MSB3270: 所生成项目的处理器架构“MSIL”与引用“RevitAPI”的处理器架构“AMD64”不匹配。这种不匹配可能会导致运行时失败。请考虑通过配置管理器更改您的项目的目标处理器架构,以使您的项目与引用间的处理器架构保持一致,或者为引用关联一个与您的项目的目标处理器架构相符的处理器架构。
1>E:\Visual Studio 2017\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets(1987,5): warning MSB3270: 所生成项目的处理器架构“MSIL”与引用“RevitAPIUI”的处理器架构“AMD64”不匹配。这种不匹配可能会导致运行时失败。请考虑通过配置管理器更改您的项目的目标处理器架构,以使您的项目与引用间的处理器架构保持一致,或者为引用关联一个与您的项目的目标处理器架构相符的处理器架构。

需要在解决方案管理器中,右键项目名称--->属性--->生成,将平台目标改为x64

再次生成就不会弹出该警告。

生成的dll文件会在该项目文件夹下的bin--->debug目录或者bin--->release目录。

[Revit]Autodesk Revit 二次开发整理(资料、准备工作和环境搭建)

注:

  1. 以上,除了必备的生产工具外,不必全部准备,可以从简单业务入门,带着任务去学习。
  2. 现在好像资源分数由系统决定了,之前都是设置0分或者1分,现在自己不可以设定资源分数了~
  3. 不能下载的可以找其它资源下载。

暂时就先写这么多吧。


4 结语

万事开头难,当时刚开始学习写插件码代码的时候也是会踩到各种各样的坑,但好在网上有各种各样的解决方案(比心 ❤️),善用互联网上的优质资源,可以帮助大家快速熟悉整个开发过程,并解决你大部分的问题。

如有错误,恳请指正。

Murphy.L


Perhaps, we’ve just forgotten that we are still pioneers.

[Revit]Autodesk Revit 二次开发整理(资料、准备工作和环境搭建)的更多相关文章

  1. 【ARM-Linux开发】在win下开发的eclipse+yougatoo+jlink环境搭建

    在win下开发的eclipse+yougatoo+jlink环境搭建 一 工具的安装 第一步:安装gcc编译工具 yagarto-bu-2.21_gcc-4.6.2-c-C++_nl-1.19.0_g ...

  2. arcgis api for flex 开发入门(一)环境搭建

    http://www.cnblogs.com/wenjl520/archive/2009/06/02/1494514.html arcgis api for flex 开发入门(一)环境搭建arcgi ...

  3. Android开发使用控件入门--环境搭建

    Android开发使用控件入门--环境搭建 软件名称(,梦,,想.CAD  ,控件) 1. 环境搭建: 3 1.1. 安装Eclipse 3 1.2. 下载JDK 3 1.3. 下载Android S ...

  4. 跨平台开发之阿里Weex框架环境搭建(一)

    转载自:http://www.cnblogs.com/fozero/p/5995122.html 一.介绍 Weex是阿里今年6月份推出的跨平台解决方案,6月底正式开源.官网 https://alib ...

  5. windows phone 8 开发系列(一)环境搭建

    一:前奏说明 本人一名普通的neter,对新玩意有点小兴趣,之前wp7出来的时候,折腾学习过点wp7开发,后来也没怎么用到(主要对微软抛弃wp7的行为比较不爽),现在wp8已经出来一段时间了,市场上也 ...

  6. JavaEE开发之基于Eclipse的环境搭建以及Maven Web App的创建

    本篇博客就完整的来聊一下如何在Eclipse中创建的Maven Project.本篇博客是JavaEE开发的开篇,也是基础.本篇博客的内容干货还是比较多的,而且比较实用,并且都是采用目前最新版本的工具 ...

  7. PHP移动互联网开发笔记(1)——环境搭建及配置

    开篇说明:记得我上大二的时候第一次听到PHP,当时只知道这是一个开发网站的语言,并没有深入学习,在学了Java Web开发和Android开发之后我对互联网的发展方向有了一个我自己的认识,现在我们不能 ...

  8. 《ArcGIS Runtime SDK for .Net开发笔记》--介绍与环境搭建

    一. ArcGIS Runtime SDK for .NET介绍 ArcGIS Runtime SDK for .net是一款针对windows平台的开发包.能够在开发出在windows phone, ...

  9. 驱动开发 - WDK 调试及 SVN 环境搭建

    由于从公司辞职了,所以以前在公司里搭建的驱动开发环境也就 Game Over 了, 同样由于那环境是很久以前搭建的,自己也有很多记不清楚的地方了, 而且其中还是有很多需要注意的地方的,所以在这里顺便做 ...

随机推荐

  1. app微信支付(一) - 微信支付基本业务流程解析

    想必微信支付是现在很多朋友离不开的一个功能,不论是扫描支付还是公众号支付或者app端支付,基本的思路都是一样的,之前做过支付宝支付以及中国移动支付接口,这几天花时间讲讲微信支付吧 先看一下微信支付的时 ...

  2. Linux:Ubuntu 14.04 Server 离线安装Jjava8(及在线安装)

    (离线安装)首先,通过winscp上传本地下载好的jdk-8u102-linux-x64.gz (离线安装)将jdk-8u102-linux-x64.gz解压到到/usr/lib/jvm下,并把文件夹 ...

  3. win7+ubuntu双系统中卸载ubuntu方法

    双系统中,如果要卸载ubuntu是不能够直接卸载的,需要使用一些特殊的方法.下面就为大家详细的介绍介绍. Step1 MBR引导区修复: 进入win7,下载个软件MbrFix,放在C:\windows ...

  4. TypeScript学习笔记(六):泛型

    认识泛型 TypeScript也实现了类型于C#和Java的泛型以实现类型的参数化,我们先看一个需求: function identity(arg: any): any { return arg; } ...

  5. oracle_面试题01

    完成下列操作,写出相应的SQL语句 创建表空间neuspace,数据文件命名为neudata.dbf,存放在d:\data目录下,文件大小为200MB,设为自动增长,增量5MB,文件最大为500MB. ...

  6. BNU Online Judge-34973-Liserious战队

    题目链接 http://www.bnuoj.com/bnuoj/problem_show.php?pid=34973 题目不难,很容易,不过不仔细看题可能你一直做不出,注意<<一共分为1~ ...

  7. &lbrack;原创&rsqb;MinHook测试与分析&lpar;x64下 E9&comma;EB&comma;CALL指令测试,且逆推测试微软热补丁&rpar;

    依稀记得第一次接触Hook的概念是在周伟民先生的书中-><<多任务下的数据结构与算法>>,当时觉得Hook很奇妙,有机会要学习到,正好近段日子找来了MiniHook,就一 ...

  8. 微信小程序部署问题总结

    1.微信小程序免费SSL证书Https 申请(阿里云申请) 进入阿里云控制台后,选择CA证书服务 选择购买证书 但是阿里云的免费SSL证书藏得比较深,得这样操作才能显示出免费证书 点击Symantec ...

  9. SDL中 so库的使用

    用到的项目:Tocy-Android-SDLv2 JAVA层:只有一个 SDLActivity.java 路径\Android-SDLv2\src\org\libsdl\app 项目简单分析: 默认在 ...

  10. LINQ的基础使用方法

    //新建一个项目 //项目下新建一个App_Code文件夹 //在文件夹内添加一个LINQ TO SQL,这个操作就相当于创建了一个实体类 //连接数据库后把表拖入到服务器资源管理器中 //创建数据访 ...