Revit API:Events 事件总览

Events

Revit 中有多重类型的事件,平时使用中难免有疑惑,根据官方网站的介绍做个梳理。官网链接

事件,顾名思义就是通过某个特定动作或者API触发的通知。通过订阅事件,当某个动作发生时,一个插件应用可以被通知到。
有些事件是在动作发生时产生的,有些是在动作发生前,或者发生或产生的。那些没有发生前或者后的事件,被称作单独事件。
Revit 提供了两种层次的事件,应用层面的和文档层面的。同一个应用层面的事件可以从 Application 或者 ControlledApplication (不能访问 documents)中拿到。 ControlledApplication 可以在 add-ins 的 OnStartup()OnShutdown() 方法中拿到,或者说在订阅事件的时候,这两个类是可以互换的。即,订阅 ControlledApplication 和订阅 Application 是一样的。

事件还可以被分类成 DB 事件和 UI 事件,DB 事件可以从 ApplicationDocument 中获得,UI 事件可以从 UIApplication 中获得。
有些事件是只读的,这意味着在进行这些操作的时候,不能改变文档的内容。所以在事件的过程中,需要去确定文档是否可以更改, Document.IsModifiableDocument.IsReadOnly

DataBase Events

以下是各种类型的 DB 事件:

  1. DocumentChanged - 在事务完成、失败和回滚时触发。
  2. DocumentClosing - 在文档关闭时触发。
  3. DocumentClosed - 在文档关闭后触发。
  4. DocumentCreating - 在文档创建时触发。
  5. DocumentCreated - 在文档创建后触发。
  6. DocumentOpening - 在文档打开时触发。
  7. DocumentOpened - 在文档打开后触发。
  8. DocumentPrinting - 在文档打印时触发。
  9. DocumentPrinted - 在文档打印后触发。
  10. DocumentSaving - 在文档保存时触发。
  11. DocumentSaved - 在文档保存后触发。
  12. DocumentSavingAs - 在文档另存为时触发。
  13. DocumentSavedAs - 在文档另存为之后触发。
  14. DocumentSynchronizingWithCentral - 在文档进行中心文件同步时触发。
  15. DocumentSynchronizedWithCentral - 在文档进行中心文件同步之后触发。
  16. FailuresProcessing - 在 failure 处理的事务末尾触发。
  17. FileExporting - 在通过 API 导出的时候触发。
  18. FileExported - 在通过 API 导出之后触发。
  19. FileImporting - 在通过 API 导入的时候触发。
  20. FileImported - 在通过 API 导入之后触发。
  21. ProgressChanged - 在进度条发生变化之后触发。
  22. ViewPrinting - 在打印视图的时候触发。
  23. ViewPrinted - 在打印视图之后触发。

UI 接口事件

以下是各个类型的 UI 接口事件:

  1. ApplicationClosing - 在 Revit 将要被关闭时触发。
  2. ApplicationInitialized - 在Revit 被初始化,所有的 addin、addon 被加载,准备打开文档的时候触发。
  3. DialogBoxShowing - 在对话框弹出的时候触发。
  4. DisplayingOptionsDialog - 在 Revit 弹出 Options 对话框的时候触发。
  5. Idling - 在 Revit 空闲的时候触发。
  6. ViewActivating - 在视图被唤醒的时候触发。
  7. ViewActivated - 在视图被唤醒之后触发。

例子

Revit API 开发 (7): Event 事件的应用

猜你喜欢

转载自blog.csdn.net/weixin_44153630/article/details/110733864