Revit 二次开发:从 Revit 开始 (2)
网络上有很多 Revit 二次开发的教程,包罗万象,但是学完之后如何自己独立进行开发可能是一些开发者面临的问题。
除了上篇文章提到的开发逻辑,熟练掌握如何快速查找 Revit API 也是开发者必备的一项核心技能。本文将介绍两种快速查找 Revit API 的方法,助力大家更高效地进行开发。
一、通过英文版快速获取关键词
在完成教程或 SDK 代码的学习后,许多开发者希望基于所学内容进一步拓展开发。然而,常常会遇到这样的困境:有了开发思路,却苦于找不到对应 API 的关键词。
此时,我们可以通过以下方法解决这一问题:将 Revit 语言设置为英文模式,通过查看英文界面中的关键词,快速定位到 API 中对应的功能或方法。这种方式能够有效缩短查找时间,提升开发效率。
修改Revit语言
- 右键 Revit 点击属性
- 将高亮栏修改为 ENU 结尾,可以使用`End`键快速导航到末尾
关键词
- 打开 Revit 之后可以看到所有构件类别的英文,和 API 中的方法名称一样我们可以通过这种方式快速的查找 API 并获得需要的方法进行下一步操作,再 API 中我们可以根据关键词快速找到
- 轴网 - Grid
- 墙 - Wall
- 幕墙竖挺 - Mullion
- 零件 - Part(零件的创建函数在 PartUtil 中,我们通过了解到零件的英文并在 API 文档中查找关键词可以快速的找到所有的零件相关的办法)
- 选择过滤器:这个在我们的操作中无法直接创建,但是在 API 中却是可以创建一个构件集合并在视图过滤器中,附加我们希望显示的样式,像是下图我们可以直接在 API 中输入 Selection Filter 获取方法。
.
- 操作步骤 + 英文关键词
- 这种情况是网络上的这部分 API 资料介绍比较少,通过再 Revit 中的操作辅助英文关键词可以快速找到相应的 API 位置
- 像是下面的这个案例:希望通过代码控制构件的显隐性
- 切换成英文版的 Revit 中我们先人工操作一下
- 输入快捷键"vv",调出命令窗口
- 我们可以选择需要隐藏的族类别并应用,Revit中的对应类别会被隐藏。通过截图可以发现,该窗口的子名称为 Model Categories。
此时,我们可以在API中搜索关键词 Category,查看与之相关的类。如图所示,API 返回的类可能非常多,逐一查找显然耗时过长。
因此,我们可以将操作逻辑融入分析中。例如,在建模时,我们知道每个视图可以单独控制族类别的显隐性。这说明该方法很可能位于 View 类中,或者是一个需要传入 View 参数的函数。通过这种逻辑推导,可以更精准地缩小查找范围,提高效率。
- 再继续查看 View 下面的 Category 的方法,可以看到有几个关键函数 GetCategoryHidden,SetCategoryHidden,可以看到这两个函数的解释都是在当前视图中族类别的隐藏的函数
- 我们在代码中尝试运行这段代码,可以看到墙体消失了,并且在vv中墙体的类别也被隐藏,这样我们就通过带入操作逻辑和快捷键快速找到一个不熟悉的 API 方法。
doc.ActiveView.SetCategoryHidden(new ElementId(BuiltInCategory.OST_Walls),true);
二、日志查找
Revit 会记录用户的操作日志,在某些情况下,如果想快速找到某些命令对应的方法,可以先在 Revit 中完成相关操作,然后通过查看日志中的关键词进行快速查找。
日志的位置是: %localappdata%\Autodesk\Revit\Autodesk Revit 2024\Journals
此外,如果希望直接调用 Revit 的内置命令来执行某些操作,这些命令的信息也可以在日志文件中找到。这种方法不仅能够加快开发中的问题定位,还能帮助开发者更好地理解 Revit 内部的命令结构,从而更高效地实现所需功能。
调用 Revit 的内置命令(通过调用 Revit 的视图可见性设置浏览器为案例)
- 在Revit中使用快捷vv调出窗口后关闭
- 打开日志文件,找到我们最后一个编辑命令,可以看到日志中显示,我们使用快捷键进行了操作,命令是ID_VIEW_CATEGORY_VISIBILITY
3. 通过这样我们可以在代码中调用这个命令,调出可见性设置浏览器。
UiApplication.PostCommand(RevitCommandId.LookupCommandId("ID_VIEW_CATEGORY_VISIBILITY"));
利用日志快速查找 API 关键词
通过日志的关键词查找其实和上面所说的通过英文版 Revit 查找关键词大同小异,如果不希望来回更改可以通过日志快速查找关键词,并在 API 上修改。
创建幕墙网格
- 在 Revit 中创建幕墙网格后,打开日志文件可以看到关键词 CurtainGrid
2. 将关键词输入到 API 中可以看到所有的方法,通过这种方式也可以快速的找到方法
三、本文总结
通过上述两种方法,学习 Revit 的开发者可以更高效地从日常生产操作过渡到开发实践。这些方法能够帮助开发者利用自身擅长的设计和建模操作,快速掌握 Revit API 的使用以及其开发中涉及的层级逻辑,从而更好地将理论应用到实际项目中。
这不仅能让开发者更容易消化教程或书籍中的知识点,还为他们提供了一种更加自然的过渡方式,逐步从熟悉的建模工作切换到开发角色。此外,通过结合 Revit 的操作经验与开发技能,开发者能够更深刻地理解 Revit 的体系结构和工作原理,从而为更复杂的开发任务打下坚实的基础。
希望本文的内容能够为读者提供启发,让更多的开发者能够快速适应并掌握 Revit 的二次开发,为提高工作效率和创新能力助力。
如果您觉得这篇博客对您有所帮助或启发,请点赞👍
如果您有任何疑问或想法,请在评论区留言👇
只有注册用户才能在此添加评论。 如果您已经注册,请登录。 如果您还没有注册,请注册并登录。