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

原文链接

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页会出现如图所示工具:
附加模块tab页

2.4 IDE

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

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

勾选工作负载

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

2.5 资料

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

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


3 开始第一个项目搭建

这里以VS为例。

3.1 新建工作项目

  1. 打开Visual Studio,点击文件 ---> 新建 ---> 项目;
    image
  2. 项目类型选择,Visual C# ---> 类库(.NET Framwork),根据要开发revit的插件的版本,选择 .Net framwork版本,自己起一个名称,选择一个存储位置,点击确定;
    image

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

3.2 添加项目引用

  1. 添加Revit API引用,从Revit安装目录中找到RevitAPIUI.dllRevitAPI.dll,这是两个最常用的动态链接库; 在项目解决方案浏览器中右键引用一项,选择添加引用,浏览找到上述两个dll文件,确定;
    image

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

可以选择性的执行,将这两个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目录。

image

注:

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

暂时就先写这么多吧。


4 结语

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

如有错误,恳请指正。

<center style="box-sizing: border-box; outline: 0px; margin: 0px; padding: 0px; overflow-wrap: break-word;">Murphy.L</center>


<center style="box-sizing: border-box; outline: 0px; margin: 0px; padding: 0px; overflow-wrap: break-word;">Perhaps, we’ve just forgotten that we are still pioneers.</center>

转载于:https://www.cnblogs.com/Murphy-L/p/11252944.html

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,445评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,889评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,047评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,760评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,745评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,638评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,011评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,669评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,923评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,655评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,740评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,406评论 4 320
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,995评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,961评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,023评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,483评论 2 342

推荐阅读更多精彩内容