什么是宏?
宏是一种程序,开发环境是集成在软件本身上,可以用来实现重复认为的自动化来节省时间。
Revit 宏可以做什么?
- 优化几何图形或参数
- 创建多种类型的图元
- 导入导出外部文件
- ...等等
Revit 宏其实也是基于 RevitAPI 来编写的,只不过不用手动搭建环境、不需要写.addin
文件来注册插件,打开就能开始写代码,写完就能运行。
模块和宏
模块是对宏的分组。
- 用 C#语言来说:模块就是命名空间,一个宏就是一个方法。
- 用文件夹组织的类比来说:模块就是文件夹,宏就是文件。
所以要先创建模块,在模块里面写宏。
应用程序级和文档级的宏
区别
使用权限不同
- 应用程序级的宏是和 rvt 文件无关的,在多个 Rvt 中可以共用。
- 文档级的宏只和 Rvt 关联,代码只能在当前文档中使用。
保存位置不同
- 应用程序级的代码保存在本机电脑上,不会跟着文档走
- 文档级的代码是跟着文件走,我发给你文件,代码也会附带在文件里面。
如何选择?
如果只是为特定的项目文件编写,不会在其它文件中写,或者代码在其它文件中不会起作用的时候,就可以选择文档级的代码。
其它的情况,一般都推荐用应用程序级别的宏。
Revit 宏的实现语言
解析性语言:Python、Ruby
编译性语言:C#、VB.NET
宏保存的位置
应用级别的宏保存在:C:\ProgramData\Autodesk\Revit\Macros\2020
文档级的宏不保存在 Rvt 中,在写代码、编译的时候,会把代码释放在在临时文件夹中,当 Rvt 文件关闭时,会被自动删除。
开发基本流程
- 点击【管理】——【宏管理器】
- 选择宏的级别(应用程序级还是文档级)
- 创建模块
- 创建宏,编写宏代码
- 运行宏查看效果。
示例:编写 HelloWorld
1. 点击【管理】——【宏管理器】
2. 选择应用程序,然后点击模块
3. 弹出窗口,填写模块信息
- 模块名称:随便取、可以中文、可英文,建议英文
- 选择语言:选择自己会的一门语言
- 说明:可以填写更详细的说明
4. 点击确定之后,弹出 SharpDevelop 集成开发环境
5. 开始编写代码
直接在这个类中声明一个公开的、无返回值、无参的方法。
public void HelloWord()
{
TaskDialog.Show("标题","你好,这是我的第一个宏程序");
}
6.编译生成
点击生成——生成解决方案
在输出窗口显示生成成功,说明编写的代码正常,已经生成成功
7.运行宏
回到宏管理器界面,就会在HelloWorld模块中,生成HelloWorld宏
选中宏,点击运行:
显示结果: