Revit二次开发入门:第二章RevitAPI基本概念
本章内容
1.学习写出“Hello Revit”
- 创建一个C#项目
- 添加引用
- 复制本地改为False
- 添加引用,实现接口
- 书写代码,添加属性
- 修改项目属性
- 生成解决方案
- 加载DLL文件
2.扩展Revit的方式
Revit API是建立在Revit产品的基础之上的。他是一个类库,需要在Revit运行时才能够工作。通过强大的Revit API,可以添加用户基于Revit API开发的插件来扩展和增强Revit功能和应用。
- 外部命令IExternalCommand。IExternalCommand是Revit API用户通过外部命令来扩展Revit时必须在外部命令中实现接口。
IExternalCommand:UI vs. DB
UIApplication:创建菜单
UIDocument:用户和文档的交互
Application:处理文档
Document:处理元素
IExternalCommand:Result,message,elements
Result:
Succeeded:执行成功
Cancelled:取消执行
Failed:执行失败——回滚事务
message:
失败提示信息,出现在提示框
elements:
失败相关元素,被高亮
- 外部应用IExternalApplication
创建开发者可以通过实现IExternalApplication来添加自己的应用。
Revit同样通过.addin文件识别和加载实现IExternalApplication的外部插件。
-
宏Macro
宏是一种程序,旨在通过实现重复任务的自动化来节省你的时间。每个宏可执行一系列预定义的步骤来完成特定任务。这些步骤是可重复的,操作是可预见的。
下图是宏管理器在Revit中的位置。宏管理器是一个用户界面,可用于:
启动Revit宏IDE,在改IDE中可以添加、编辑、构建和调式宏
运行先前构建的宏
3.了解Application/Document/Element
API主要对象结构
Revit与Office一样,使用多文档模型。在Revit API的类结构中,应用类和文档类是处于最顶层的。
Application应用类
Application类便是一个Revit应用,提供对文档、选项以及其它应用范围的数据的访问和设置
Document文档类
Document类用于表示打开的Autodesk Revit工程
Element元素的分类与对象结构
元素在Revit里面尤其重要,用户能够看见的大多数对象都是元素,比如墙、族、族类型、族实例、标高、轴网、视图等等。
Revit中大多数类都是继承自元素
下图数一个族、族实例类图
为什么要进行Revt二次开发
- 提高工作效率:使用API进行批量操作
- 扩展Revit自身功能:对Revit不完善的功能进行修补或者添加没有的功能
- 与其他系统对接:进一步对接各种分析软件或模拟软件等
本课代码
using Autodesk.Revit.Attributes;
using Autodesk.Revit.DB;
using Autodesk.Revit.UI;
namespace HelloRevit {
[TransactionAttribute(TransactionMode.Manual)]
[RegenerationAttribute(RegenerationOption.Manual)]
public class Class1 : IExternalCommand {
public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements) {
TaskDialog.Show("Hello", "我的第一个Revit创建!");
return Result.Succeeded;
}
}
}