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页会出现如图所示工具:

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,点击文件 ---> 新建 ---> 项目;

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



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

3.2 添加项目引用

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

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

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

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

注:

  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. 全量导入数据 导致solr内存溢出 崩溃问题解决

    在 data-config.xml 文件中 增加一个参数即可: batchSize="-1"    

  2. OSGEarth环境搭建

    1.下载OsgEaarth2.8源码 https://codeload.github.com/gwaldron/osgearth/legacy.zip/osgearth-2.8 2.下载perl 编译 ...

  3. myeclipse2018的下载安装教程

    首先注意事项!!!!!!! 在安装破解前是不可以打开软件的 jdk版本不能是10版本,1.8或1.9都可以 附上MyEclipse2018的百度云下载链接: 链接:https://pan.baidu. ...

  4. mvc中Scripts.Render的用法

    第一次接触新的东西,都会很陌生,但是时间久了就熟悉了变简单了. 视图文件中使用Scripts.Render()输出脚本包,Styles.Render()输出样式包 上面两张图是我所做项目里的,放上面会 ...

  5. WebFlux 集成 Thymeleaf 、 Mongodb 实践 - Spring Boot(六)

    这是泥瓦匠的第105篇原创 文章工程: JDK 1.8 Maven 3.5.2 Spring Boot 2.1.3.RELEASE 工程名:springboot-webflux-5-thymeleaf ...

  6. vs 编译说明

    静态编译/MT,/MTD 是指使用libc和msvc相关的静态库(lib).   动态编译,/MD,/MDd是指用相应的DLL版本编译.   其中字母含义  d:debug    m:multi-th ...

  7. redis宕机如何解决?如果是项目上线的宕机呢?

    我们先来了解一下  bridge网络模式 他会创建一个docker0桥,看完这个我们就会知道redis哨兵机制的端口了. 之后继续研究redis宕机的解决办法! 宕机: 服务器停止服务 如果只有一台r ...

  8. BZOJ 2460:元素(贪心+线性基)

    题目链接 题意 中文题意 思路 线性基学习 题目要求选价值最大的并且这些数异或后不为0,可以考虑线性基的性质:线性基的任意一个非空集合XOR之和不会为0.那么就可以贪心地对价值从大到小排序,加入线性基 ...

  9. Azkaban Condition Flow (条件工作流) 使用简介

    本文上接<Azkaban Flow 2.0 使用简介>,对Azkaban Condition Flow (条件工作流) 做简单介绍 目录 目录 条件工作流 介绍 作用 使用方式 支持的运算 ...

  10. Java学习笔记之---API的应用

    Java学习笔记之---API的应用 (一)Object类 java.lang.Object 类 Object 是类层次结构的根类.每个类都使用 Object 作为超类.所有对象(包括数组)都实现这个 ...