Revit二次开发环境配置(Revit 2020 +Visual Studio 2019)
Revit二次开发环境搭建(Revit 2019+Visual Studio 2017)准备内容
- Revit 2019(主要的开发环境)
- Visual Studio 2019(用于代码的编写)
- Revit SDK 2019
- AddinManager(用于管理二次开发插件)
- Revit Lookup(查看工具)
- lLSpy 4.0.1(查看Revit API)
安装
系统要求:Windows 10 (x64)
Revit 2020 的安装
Visual Studio 2019 的安装

配置 AddinManager

- 如果你安装了 Revit 2019 SDK,那么可直接将19的这两个AddIn文件复制到上方路径中;
- 如果没有,那么请【移步这里】(提取码:76ig),同样的下载完之后复制两个文件到上方路径即可。


Revit Lookup



- 右键选择【引用→添加引用】
- 打开【引用管理器→浏览→选择要引用的文件】
- 在浏览窗口的右上方搜索框中输入需要添加的引用,系统即可自动检索到所需内容



ILSpy 4.0.1
测试
- 打开Visual Studio 2019,创建新项目,找到创建模板【类库(.NET Framwork)】,切记,选择的是类库(.NET Framwork),不是类库(通用 Windows)或者类库(.NET Standard),这里一定会有人心急赶紧弄好而看错。之后写上项目名Hello Revit。
- 在右边的引用中右键添加引用(RevitAPI.dll和RevitAPIUI.dll),用上文一样的方法,找到所需要的添加的引用,确定添加之后,记得把这里上述两个引用的【复制到本地】属性改为false,否则会生成一大堆没用的东西。因为做的是测试插件,不可能脱离Revit程序本身来运行的。
- 除了using System;其他所有的引用全部删掉;然后在后面加上下面的字段。
using Autodesk.Revit.DB;
using Autodesk.Revit.UI;
using Autodesk.Revit.Attributes; - 在默认生成的public class Class1{}前面加上下面的字段。
[Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.Manual)]
- 把默认生成的public class Class1{}改成下面的字段。
public class Class1: IExternalCommand{}
- 在上面的字段内部添加下面的字段。
public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements) { }
- 在上面的字段内部添加如下字段。
TaskDialog.Show(“Revit”, “Hello Revit!”);
return Result.Succeeded; - 最终这个.cs文件的全部代码应该是下面这样:
using System; using Autodesk.Revit.DB;
using Autodesk.Revit.UI;
using Autodesk.Revit.Attributes;
namespace Hello_Revit
{
[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;
}
}
} - CtrlK,S保存全部文件,不会快捷键的情点击【文件】,找到【全部保存】。之后右键项目本身选择【属性】,找到【生成】,把【目标平台】改为 x64,省略该步骤在编译的时候会出现警告。检查无误之后生成类库,并记下输出窗口中的.dll文件的位置。【注】是目标平台!不要看成平台!
- 新建一个文本文件.txt,输入以下内容。但是要注意的是:注意第4行、第5行和第6行,都要根据实际情况填写。第4行Assembly标签内就是上一步记下的.dll文件的位置,第5行AddIn标签的内容可以在这个类库项目的Properties文件夹中的AssemblyInfo.cs文件里找到,直接把Guid冒号后面的引号中内容完全粘贴到标签内即可。【注】FullClassName标签内的类名一定要和上面的类库项目中.cs文件的命名空间一致,下面的代码中Hello和Revit字段中间的下划线是因为创建项目的名称是Hello Revit,创建时会默认把空格当做下滑线处理。
<?xml version ="1.0" encoding ="utf-8" standalone ="no"?>
<RevitAddIns>
<AddIn Type="Command">
<Assembly>E:\文档\Visual Studio 2019\repos\Hello Revit\bin\Debug\Hello Revit.dll</Assembly>
<AddInId>0d27e093-398b-41f2-bbfd-eaef14cad3b1</AddInId>
<FullClassName>Hello_Revit.Class1</FullClassName>
<Text>Hello Revit</Text>
<VendorId>NAME</VendorId>
</AddIn>
</RevitAddIns> - 把这个.txt文件重命名为HelloRevit.addin,复制到Revit插件目录下:C:\ProgramData\Autodesk\Revit\Addins\2020。
- 重启Revit,选择【附加模块→外部工具→Hello Revit】,执行之后就可以看到弹出对话框,测试成功。
Revit二次开发环境配置(Revit 2020 +Visual Studio 2019)的更多相关文章
- DX12龙书 00 - 环境配置:通过 Visual Studio 2019 运行示例项目
0x00 安装 Visual Studio 2019 安装 Visual Studio 2019 以及相关组件. 注:安装组件时带的 Windows 10 SDK 可以在 Individual com ...
- C#进行CAD二次开发环境配置
最近被公司分配到了做CAD二次开发.也是初次接触这方面的东西,其实是有些无从下手的感觉.因为公司这边也没有人有时间带我,只能是自己看书,然后再写一些Demo,再结合实际的应用来一点点的学习.废话不多说 ...
- xshell远程终端操作Ubuntu server安装LAMP环境之最详细笔记之二PHP开发环境配置
前言: 昨天学会了安装server,今天试着通过远程终端xshell来安装LAMP,搭配一下开发环境,也有集成环境可以一键安装使用,还是瞎折腾一下,手动一步一步搭建一下这个开发环境. 接上一篇:ubu ...
- JMeter二次开发环境配置
本文主要介绍如何在Eclipse中配置JMeter开发环境. 一.下载JMeter源码 1.在JMeter官网下载二进制包和源码包: 解压备用: 二进制解压后文件夹名称为“jmeter_release ...
- [Revit]Autodesk Revit 二次开发整理(资料、准备工作和环境搭建)
1 前言 Revit被Autodesk收购之后,整理和开放了一大部分API,供开发者实现自己的功能和程序,总体来说API的功能比较完善,毕竟市面上已经出现了各式各样的插件. 本人也是初学者,在Revi ...
- 踏上Revit二次开发之路 1 准备工作
1 准备工作 工欲善其事,必先利其器.在正式开始之前,我觉得有必要先盘点一下需要准备些什么. 1.1 硬件设备 PC机一台(谢绝Apple). 配置不能太低,至少要i3以上的cpu.4g以上的内存和支 ...
- Revit二次开发初体验
最近换了下工作,由之前的互联网企业转入了BIM软件开发行列.具体原因不多说,作为一个程序员来说学习永无止境.下面来一个Hello World体验下Revit的二次开发 事前准备 VS Revit 20 ...
- revit二次开发wpf里button按钮无法实现事务
不能在revit提供的api外部使用事务,解决此方法, 1.把button里要实现的功能写到外部事件IExternalEventHandler中,注册外部事件,在button事件中.raise()使用 ...
- revit二次开发之族的类型参数与实例参数的转换
1背景小伙伴在做revit二次开发的时候,可能需要在族环境中将族的类型参数与实例参数相互转换. 2思路1.使用族管理器FamilyManager,参见注释12.首先获取需要转换的参数(单个与批量),参 ...
随机推荐
- 怎么启用apache的mod_log_sql模块将所有的访问信息直接记录在mysql中
怎么启用apache的mod_log_sql模块将所有的访问信息直接记录在mysql中
- pod管理调度约束、与健康状态检查
pod的管理 [root@k8s-master ~]# vim pod.yaml apiVersion: v1 kind: Pod metadata: name: nginx-pod labels: ...
- Kubernetes 开船记-脚踏两只船:用 master 服务器镜像克隆出新集群
自从2020年2月23日 园子全站登船 之后,我们一边感叹"不上船不知道,一上船吓一跳" -- kubernetes 比 docker swarm 强大太多,一边有一个杞人忧天的担 ...
- 利用vbs隐藏dos窗口
方法一: option explicitdim wshshellset wshshell=wscript.createobject("wscript.shell")wshshell ...
- Sentry(v20.12.1) K8S 云原生架构探索,JavaScript 性能监控之管理 Transactions
系列 Sentry-Go SDK 中文实践指南 一起来刷 Sentry For Go 官方文档之 Enriching Events Snuba:Sentry 新的搜索基础设施(基于 ClickHous ...
- 词嵌入之GloVe
什么是GloVe GloVe(Global Vectors for Word Representation)是一个基于全局词频统计(count-based & overall statisti ...
- 被集群节点负载不均所困扰?TKE 重磅推出全链路调度解决方案
引言 在 K8s 集群运营过程中,常常会被节点 CPU 和内存的高使用率所困扰,既影响了节点上 Pod 的稳定运行,也会增加节点故障的几率.为了应对集群节点高负载的问题,平衡各个节点之间的资源使用率, ...
- SpringBoot JPA简单使用
引自B站楠哥:https://www.bilibili.com/video/BV137411B7vB 一.新建Springboot项目 pom.xml文件 <?xml version=&qu ...
- Angular入门到精通系列教程(11)- 模块(NgModule),延迟加载模块
1. 摘要 2. NgModule举例.说明 3. Angular CLI生成模块 4. 延迟加载模块 5. 总结 环境: Angular CLI: 11.0.6 Angular: 11.0.7 No ...
- 【中文】【deplearning.ai】【吴恩达课后作业目录】
[目录][吴恩达课后作业目录] 吴恩达深度学习相关资源下载地址(蓝奏云) 课程 周数 名称 类型 语言 地址 课程1 - 神经网络和深度学习 第1周 深度学习简介 测验 中英 传送门 无编程作业 编程 ...