事件是BIMBase界面或者API在执行过程中特定时机触发的特定动作。通过注册事件,一个插件程序能在某个动作触发的前后得到通知,然后根据这个动作采取相应的行动。事件通常是成对的,其中一个在某个动作发生前触发,称为预备事件,另一个在某个动作发生后触发,称为事后事件。对于单独出现的事件,我们称之为单一事件。

BIMBase中事件较为丰富,能满足客户在特定场景下特定时机进行定制化处理。BIMBase提供了应用级别的事件包括工程(Project)事件、专业(Domain)事件、视图(View)事件、右键菜单事件、构件(Entity)事件、构件显示变化事件、命令事件等。

BIMBase中主要事件包括:

表6-1 事件列表

工程事件 (BPProjectEventListener) 工程打开前事件 _onPreOpen
工程打开后事件 _onPostOpen
工程关闭前事件 _onPreClose
工程关闭后事件 _onPostClose
工程保存前事件 _onPreSave
构件选择事件(BPEntitySelectedEventListener) 选择前通知事件 onPreSelected
选择后通知事件 onPostSelected
选择集拦截事件 onCaptureSelected
无构件选中单击事件 onSelectedNothing
构件双击通知事件 onDoubleClickEvent
被选择构件单击事件 onClickEvent
构件反选事件 onReverseSelected
框架事件 (BPMainFrameEventListener) 框架创建后事件 _onPostCreate
框架关闭前事件 _onPreClose
右键菜单事件 (BPViewRButtonClickListener) 设置专业右键菜单事件 _setMenu
构件显隐事件 (BPHideEntitySetEventListener) 构件隐藏前事件 _onPreHide
构件隐藏后事件 _onPostHide
构件显示前事件 _onPreShow
构件显示后事件 _onPostShow
构件选择事件(BPEntitySelectedEventListener) 选择前通知事件 onPreSelected
选择后通知事件 onPostSelected
选择集拦截事件 onCaptureSelected
无构件选中单击事件 onSelectedNothing
构件双击通知事件 onDoubleClickEvent
被选择构件单击事件 onClickEvent
构件反选事件 onReverseSelected
构件改变事件 (BPObjectChangeEventListener) 新增构件前事件 _onPreNew
新增构件后事件 _onPostNew
编辑构件前事件 _onPreEdit
编辑构件后事件 _onPostEdit
删除构件前事件 _onPreDelete
被选择构件单击事件 onClickEvent
菜单事件 (BPRibbonEventListener) 切换专业前菜单更新事件 onPreChangeDiscipline
切换专业后菜单更新事件 onPostChangeDiscipline
改变菜单前事件 onPreChangeCategory
改变菜单后事件 onPostChangeCategory
构件显示变化事件 (BPEntitySymbologyEventListener) 构件显示变化事件 _getOverrides
命令事件 (BPCommandEventListener) 命令事件 onPreExeCommand