Revit二次开发入门:第二章RevitAPI基本概念

本章内容

1.学习写出“Hello Revit”

1558490491515

2.扩展Revit的方式

Revit API是建立在Revit产品的基础之上的。他是一个类库,需要在Revit运行时才能够工作。通过强大的Revit API,可以添加用户基于Revit API开发的插件来扩展和增强Revit功能和应用。

IExternalCommand:UI vs. DB

UIApplication:创建菜单

UIDocument:用户和文档的交互

Application:处理文档

Document:处理元素

IExternalCommand:Result,message,elements

Result:

​ Succeeded:执行成功

​ Cancelled:取消执行

​ Failed:执行失败——回滚事务

message:

​ 失败提示信息,出现在提示框

elements:

​ 失败相关元素,被高亮

创建开发者可以通过实现IExternalApplication来添加自己的应用。

Revit同样通过.addin文件识别和加载实现IExternalApplication的外部插件。

下图是宏管理器在Revit中的位置。宏管理器是一个用户界面,可用于:

​ 启动Revit宏IDE,在改IDE中可以添加、编辑、构建和调式宏

​ 运行先前构建的宏

3.了解Application/Document/Element

API主要对象结构

Revit与Office一样,使用多文档模型。在Revit API的类结构中,应用类和文档类是处于最顶层的。

Application应用类

Application类便是一个Revit应用,提供对文档、选项以及其它应用范围的数据的访问和设置

Document文档类

Document类用于表示打开的Autodesk Revit工程

Element元素的分类与对象结构

元素在Revit里面尤其重要,用户能够看见的大多数对象都是元素,比如墙、族、族类型、族实例、标高、轴网、视图等等。

Revit中大多数类都是继承自元素

下图数一个族、族实例类图

为什么要进行Revt二次开发

本课代码

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;
        }
    }
}