Revit学习之路01_Revit基础

序言:

此分类记录自己的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开发的第一天,千里之行始于足下!

时间: 2024-12-22 16:54:10

Revit学习之路01_Revit基础的相关文章

Android 学习之路--android基础(三)

Android 学习之路--android基础(三) | Talent?C 盒子 盒子 博客 友链 关于 Posts List 作者Talent?C转载请注明出处 前言 上一篇文章我们介绍了 活动(Activity) 的作用及相关用法,我们知道活动是用来给用户展示 UI界面 的,那么在Android中都有哪些UI控件呢?今天就让我们来简单学习几种常见的 UI控件. 如何编写UI界面? Android Studio中为我们提供两种UI界面的编辑方式, 第一种是通过Android Studio 提供

Python学习之路-Day1-Python基础

Python学习之路第一天 学习内容: 1.Python简介 2.安装 3.第一个Python程序 4.变量 5.字符编码 6.用户输入 7.表达式if..else语句 8.表达式for语句 9.break和continue 10.while循环 11.字符串格式化 1.python简介 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承. 最新的TIOB

python学习之路(基础篇)——python入门

一.python是一门编程语言,作为学习python的开始,需要事先搞明白:编程的目的是什么?什么是编程语言?什么是编程? 编程的目的:将人的思想转换成机器能理解的语言,利用机器的优势扩大个人的能力,实现更广阔的目标. 编程语言   : 能够被计算机所理解的语言即为编程语言.编程语言是程序员与计算机沟通的介质. 编程          :编程是程序员将自己思想流程按照编程规则写下来,产出的结果就是包含一堆字符的文件. 二.程序语言分类 机器语言:直接用二进制编程,直接操作硬件 汇编语言:简写的英

java学习之路--简单基础的面试题

1.面向对象的特征有哪些方面? 答:面向对象的特征主要有以下几个方面: 1)抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面.抽象只关注对象有哪些属性和行为,并不关注这些行为的细节是什么. 2)继承:继承是从已有类得到继承信息创建新类的过程.提供继承信息的类被称为父类(超类.基类):得到继承信息的类被称为子类(派生类). 3)封装:通常认为封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面.面向对象的本质就是将现实世界描绘成一系列完全自治.封闭的对象.

python学习之路_python基础(1)

学习内容: 1.python介绍 2.python程序初接触和变量 3.python用户交互 4.python数据类型 5.python循环if...(elif)...else 6.python循环while...else 7.python循环for...else 8.python循环中断break和continue 一.python介绍 1)python优缺点 先看优点: Python的定位是“优雅”.“明确”.“简单”,所以Python程序看上去总是简单易懂,初学者学Python,不但入门容

小白学习之路,基础四(函数的进阶)

一,内置函数 前面已经认识了函数,对函数都有所了解了,其实呢,在Python中提供了很多内置的函数方便给我们调用.下面会给大家提到一些常用的常用内置函数的用法,当然还有一些其他没讲到的,你也可以看参考文档,深入学习一波.咳咳咳,不多说了,直接进入装逼的代码环节. 更多的内置函数详情请参考http://www.runoob.com/python3/python3-built-in-functions.html 1 abs(-3) #取绝对值 2 all([1,2,5,0]) #当全部为真或者全部不

PYTHON学习之路_PYTHON基础(4)

学习内容: 1.Python函数的基本语法 2.Python函数的返回值与变量 3.Python嵌套函数 4.Python递归函数及实例(二分查找) 5.Python匿名函数 6.Python内置方法 7.Python实例 一.Python函数的基本语法 1.定义:函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数名即可 def f(n): print (n**n) return n**2 2.特性 (一)减少重复代码 (二)使程序变的可扩展 (三)使程序变

python学习之路-5 基础进阶篇

本篇涉及内容 双层装饰器字符串格式化 双层装饰器 装饰器基础请点我 有时候一个功能需要有2次认证的时候就需要用到双层装饰器了,下面我们来通过一个案例详细介绍一下双层装饰器: 执行顺序:自上而下 解释顺序:自下而上 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51

PYTHON学习之路_PYTHON基础(8)

学习内容: Python模块介绍 1.经典类 or 新式类 2.抽象接口 3.静态方法.类方法.属性方法 4.反射 5.异常处理 6.socket编程初识 7.用socket实现get.put文件等功能 一.经典类 or 新式类 二.抽象接口 3.静态方法.类方法.属性方法 4.反射 5.异常处理 try/except语句用来检测try语句块中的错误,从而让except语句捕获异常信息并处理. 如果你不想在异常发生时结束你的程序,只需在try里捕获它. 语法: 以下为简单的try....exce