什么是宏?

宏是一种程序,开发环境是集成在软件本身上,可以用来实现重复认为的自动化来节省时间。

Revit 宏可以做什么?

  • 优化几何图形或参数
  • 创建多种类型的图元
  • 导入导出外部文件
  • ...等等

Revit 宏其实也是基于 RevitAPI 来编写的,只不过不用手动搭建环境、不需要写.addin文件来注册插件,打开就能开始写代码,写完就能运行。

模块和宏

模块是对宏的分组。

  • 用 C#语言来说:模块就是命名空间,一个宏就是一个方法。
  • 用文件夹组织的类比来说:模块就是文件夹,宏就是文件。

所以要先创建模块,在模块里面写宏。

应用程序级和文档级的宏

区别

使用权限不同

  • 应用程序级的宏是和 rvt 文件无关的,在多个 Rvt 中可以共用。
  • 文档级的宏只和 Rvt 关联,代码只能在当前文档中使用。

保存位置不同

  • 应用程序级的代码保存在本机电脑上,不会跟着文档走
  • 文档级的代码是跟着文件走,我发给你文件,代码也会附带在文件里面。

如何选择?

如果只是为特定的项目文件编写,不会在其它文件中写,或者代码在其它文件中不会起作用的时候,就可以选择文档级的代码。

其它的情况,一般都推荐用应用程序级别的宏。

Revit 宏的实现语言

解析性语言:Python、Ruby

编译性语言:C#、VB.NET

宏保存的位置

应用级别的宏保存在:C:\ProgramData\Autodesk\Revit\Macros\2020
文档级的宏不保存在 Rvt 中,在写代码、编译的时候,会把代码释放在在临时文件夹中,当 Rvt 文件关闭时,会被自动删除。

开发基本流程

  1. 点击【管理】——【宏管理器】
  2. 选择宏的级别(应用程序级还是文档级)
  3. 创建模块
  4. 创建宏,编写宏代码
  5. 运行宏查看效果。

示例:编写 HelloWorld

1. 点击【管理】——【宏管理器】

2. 选择应用程序,然后点击模块

3. 弹出窗口,填写模块信息

  • 模块名称:随便取、可以中文、可英文,建议英文
  • 选择语言:选择自己会的一门语言
  • 说明:可以填写更详细的说明

4. 点击确定之后,弹出 SharpDevelop 集成开发环境

5. 开始编写代码

直接在这个类中声明一个公开的、无返回值、无参的方法。

public void HelloWord()
{
    TaskDialog.Show("标题","你好,这是我的第一个宏程序");
}

6.编译生成

点击生成——生成解决方案

在输出窗口显示生成成功,说明编写的代码正常,已经生成成功

7.运行宏

回到宏管理器界面,就会在HelloWorld模块中,生成HelloWorld宏

选中宏,点击运行:

显示结果: