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 的安装
Revit SDK 2020
配置 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.首先获取需要转换的参数(单个与批量),参 ...
随机推荐
- 【Git】3、创建Git版本库、配置Git仓库用户邮箱信息
初识Git 文章目录 初识Git 1.创建Git版本库 认识.git 2.基础配置 2.1.查看配置信息 2.2.配置昵称邮箱信息 2.3.修改配置信息 1.通过命令行 2.通过修改配置文件. 修改全 ...
- 在.NET Core 中使用Quartz.NET
Quartz.NET是功能齐全的开源作业调度系统,可用于最小的应用程序到大型企业系统. Quartz.NET具有三个主要概念: job:运行的后台任务 trigger:控制后台任务运行的触发器. sc ...
- Java中的Date类型无法赋值给数据库的datetime类型
因为Java中new Date()的结果是"Thu Aug 27 19:03:54 CST 2020",而mysql中的datetime不接受这样的日期格式,插入数据会报错. 解决 ...
- mysqldumpslow基本使用
参数解释 -s, 是表示按照何种方式排序 c: 访问计数 l: 锁定时间 r: 返回记录 t: 查询时间 al:平均锁定时间 ar:平均返回记录数 at:平均查询时间 -t, 是top n的意思,即为 ...
- LocalDateTime、OffsetDateTime、ZonedDateTime互转,这一篇绝对喂饱你
前言 你好,我是A哥(YourBatman). 在JSR 310日期时间体系了,一共有三个API可用于表示日期时间: LocalDateTime:本地日期时间 OffsetDateTime:带偏移量的 ...
- uni-app开发经验分享十三:实现手机扫描二维码并跳转全过程
最近使用 uni-app 开发 app ,需要实现一个调起手机摄像头扫描二维码功能,官网API文档给出了这样一个demo: // 允许从相机和相册扫码 uni.scanCode({ success: ...
- SQL Server和Oracle数据类型对应关系
在工作中,有时会遇到跨库传输数据的情况,其中 SQL Server 和 Oracle 之间的数据传输是比较常见的情况. 因为 SQL Server 和 Oracle 的数据类型有些差异,这就要求我们在 ...
- 【Android初级】利用startActivityForResult返回数据到前一个Activity(附源码+解析)
在Android里面,从一个Activity跳转到另一个Activity.再返回,前一个Activity默认是能够保存数据和状态的.但这次我想通过利用startActivityForResult达到相 ...
- 用CSS制做一个三角形!
用CSS制做一个三角形! <style> .outer { width: 0; height: 0; border-left: 10px solid transparent; border ...
- mysql主从复制安装配置
mysql主从复制安装配置 基础设置准备 #操作系统: centos6.5 #mysql版本: 5.7 #两台虚拟机: node1:192.168.182.111(主) node2:192.168.1 ...