序言:

此分类记录自己的Revit学习之路。初学者难免一叶障目,不见泰山,欢迎一起交流学习!

Revit介绍

Revit专为建筑信息模型(BIM)构建的一款建模软件。随着BIM概念在国内的兴起,各大设计院对Revit建模的需求增多,相关的基于Revit的二次开发也逐渐增多。具体介绍不在搬运。

Revit是专为BIM构建的软件,了解Revit必须先了解BIM。BIM的概念不仅仅是二维图纸到三维模型的变化,BIM是一个信息管理和交互的平台。Revit既然作为专为BIM构建的软件,那么他就必须能够管理模型和信息。

参考:https://zhuanlan.zhihu.com/p/20164680?columnSlug=BIMinfo

Revit作为一个平台类的软件,那么必须有平台的功能:1、可自定义的菜单2、加载外部插件3、提供外部插件调用的借口。

Revit菜单

Revit 二次开发创建自定义外部选项卡时 需要引用Revit·外部应用接口,然后在Revit启动的时候(OnStartup)创建 Tab,Panel,Button。由于二次开发菜单经常变动,总去调程序十分麻烦。所以应该将菜单定义到一个配置文件中,Revit启动的时候去读取菜单配置。这部分博主刚做过,后续会详细介绍。

注册插件

Revit通过AddIn文件本质是Xml文件)来加载外部插件。文件格式如下:

<?xml version="1.0" encoding="utf-8"?>

<RevitAddIns>

<!—调用外部插件的类型[Command]和[Application]-->

<AddIn Type="Command">

<!—程序集用于反射调用插件-->

<Assembly>D:\HelloWorld\bin\Debug\HelloWorld.dll</Assembly>

<!—唯一标示-->

<AddInId>4d8936ea-82ca-49b0-abc0-d0904d8bd716</AddInId>

<FullClassName>HelloWorld.Class1</FullClassName>

<!—显示的名称-->

<Text>HelloWorld</Text>

<!—开发商信息-->

<VendorId>ABC</VentorId>

</AddIn>

</RevitAddIns>

插件调用

1、 添加RevitAPI.dll和RevitUI.dll到项目的参考引用中。它们可以Revit的安装目录下或者SDK包中找到。2、继承IExternalCommand接口并实现接口的Execute()方法。

代码示例:

//一、命令调用

using Autodesk.Revit.DB;

using Autodesk.Revit.UI;

using Autodesk.Revit.Attributes;

namespace HelloWorld

{

[Transaction(TransactionMode.Manual)]

public class HelloWorld : IExternalCommand

{

public Result Execute(ExternalCommandData commandData, ref string messages, ElementSet elements)

{

TaskDialog.Show("Title", "Hello World");

return Result.Succeeded;

}

}

}

//二、外部应用程序

using Autodesk.Revit.DB;

using Autodesk.Revit.UI;

using Autodesk.Revit.Attributes;

namespace App

{

[Transaction(TransactionMode.Manual)]

public class App : IExternalApplication

{

public Result OnShutdown(UIControlledApplication application)

{

TaskDialog.Show("结束", "结束");

return Result.Succeeded;

}

public Result OnStartup(UIControlledApplication application)

{

TaskDialog.Show("开始", "开始");

return Result.Succeeded;

}

}

}

结语

正式学习Revit开发的第一天,千里之行始于足下!

转载于:https://www.cnblogs.com/Blog-Pan/p/6528441.html

Revit学习之路01_Revit基础相关推荐

  1. Revit学习之路02_Revit基础菜单定义

    序言: 前一章对Revit加载外部插件进行了简单的说明,本章详细说明Revit自定义菜单的设计与实现. Revit菜单机制 Revit的菜单配置结构为Tab->Panel->Button如 ...

  2. 软件测试的学习之路-----计算机基础 (详情展示)

    文章目录 一:计算机基本介绍 二:硬件系统 三:软件系统 四:二进制的基本介绍 五:常见的数字进制 六:进制之间的转换 七:编码 八:数据的计量单位 九:编程语言 十:基本的DOS命令 十一:欢迎查看 ...

  3. Vue学习之路(基础篇)

    Vue学习之路(基础篇)

  4. python na不显示 占位_Python学习之路—Python基础(一)

    前言 在Python学习之路-初识Python一文中,简单的介绍了Python的基本信息,搭建了Python的基础运行环境,这篇文档将主要展现一些Python的入门必备内容,如有错误或遗漏的地方,欢迎 ...

  5. Java学习之路(基础到高级200讲)

    (由于合同未续,视频课程已被下线,可到另一个平台观看对应的视频教程) https://www.yingyinyi.com/site/view/57171.html 对应博客有300余篇基础到高级的文章 ...

  6. Java学习之路-----Java基础简介,基础语法,Java标识符,修饰符,关键字与注释

    这里写目录标题 Java简介 Java发展历程 Java语言平台版本 Java语言的特点 Java语言跨平台原理--JVM JRE和JDK JDK安装路径下的目录解释 Java基础语法 Java标识符 ...

  7. Python学习之路 day1_Python基础1

    本节内容 Python介绍 发展史 Python 2 or 3? 安装 Hello World程序 变量 用户输入 模块初识 .pyc是个什么鬼? 数据类型初识 数据运算 表达式if ...else语 ...

  8. 大数据学习之路-Linux基础

    Linux基础与Shell编程 1. Linux概述 2. 系统安装 3. Linux目录与结构 4. VI/VIM编辑器 4.1 打开和新建文件 4.2 VI三种工作模式 末行模式命令 一般模式 编 ...

  9. Python全栈最全学习之路-Python基础(七)

    面向对象初级 一.面向对象介绍 思考一:在之前学习的基础上,已经能够处理实现很多功能,比如我们可以定义一个关于人相关的内容,但是如果要表示很多人该怎么办呢? 加粗样式面向对象介绍 name = '不动 ...

最新文章

  1. CentOS 6/7 忘记root密码,重新设置的方法
  2. k8s 带你一步步 创建用户账号(User Account)
  3. 项目搭建Nacos及遇到问题解决
  4. Linux解压bz2格式文件
  5. stm32定时2通道3映射_stm32学习笔记之问题总结
  6. matlab建立子程序,怎么实现matlab子程序的放置以及调用
  7. python遗传算法解决分配问题
  8. 机器学习基石01_课程说明
  9. 新国货全面崛起,背后的密码是什么?
  10. firefox 屏蔽Backspace按键的后退功能
  11. 学会使用distribute-list过滤路由更新
  12. 科目三考试挂掉原因分析
  13. Apache Calcite入门
  14. Java并发之魂——synchronized深度解析
  15. java如何开发游戏大厅_java仿qq游戏大厅的设计与实现
  16. STM32F103步进电机驱动简单控制
  17. spice 0.14.0添加新功能
  18. 足球赔率数据爬虫分析一体化的项目
  19. python 批量下载指定时间段的邮箱附件
  20. 音乐速度与节拍估计(一)基本方法

热门文章

  1. Cloudera CDP 7 版本以及软件依赖
  2. 【论文阅读】A Point Set Generation Network for 3D Object Reconstruction from a Single Image
  3. 盘点那些你不知道却很有效果的网络推广方法
  4. 基于SAPI(微软的语音API)的文字转语音功能
  5. Linux编辑器进制转换以及进制转换
  6. 从0到1,一文掌握用户画像标签体系
  7. 史上十大必玩的经典游戏
  8. 普中科技stc89c52rc单片机烧写失败
  9. JavaScript中函数
  10. android复制粘贴功能