BIMBase API是建立在BIMBase产品基础之上的,需要在BIMBase运行时才能工作。通过这套强大的API,可以添加基于BIMBase API开发的插件来扩展和增强BIMBase的功能和应用。本章将详细介绍如何基于BIMBase API开发自己的插件。

2.3.1 插件注册及加载

可参考1.3.3至1.3.5讲解

2.3.2 外部命令及注册

插件开发者可以通过函数注册实现自己的命令。

void HelloBIMBase()
{
     AfxMessageBox(L"Hello BIMBase!");
}
AutoDoRegisterFunctionsBegin
BPToolsMessager::registerFun(_T("HelloBIMBase"), &HelloBIMBase);
AutoDoRegisterFunctionsEnd

代码2-1 注册自己的函数命令

表2-1 布置工具接口列表

方法 描述
_onPostInstall() 工具启动响应函数
_onDataButton(BPBaseButtonEventCP) 按下鼠标左键响应函数
_onDataButtonUp(BPBaseButtonEventCP) 抬起鼠标左键响应函数
_onResetButton(BPBaseButtonEventCP) 点击鼠标右键响应函数
_onModelMotion(BPBaseButtonEventCP) 鼠标移动响应函数
_onStartDrag(BPBaseButtonEventCP) 按住鼠标左键拖拽开始
_onEndDrag(BPBaseButtonEventCP) 按住鼠标左键拖拽结束
_onMouseWheel(BPBaseMouseWheelEventCP) 鼠标滚轮滚动响应函数
_onDynamicFrame(BPBaseButtonEventCP) 动态绘制函数
_onKeyTransition(bool ,P3DVirtualKey, bool, bool) 键盘响应函数
_onTracerChanged(BPTracerInfo) 追踪器赋值函数
_exitTool() 退出工具响应函数

表2-2 选择工具接口列表

方法 描述
_onPostInstall() 工具启动响应函数
_onDataButton(BPBaseButtonEventCP) 按下鼠标左键响应函数
_onDataButtonUp(BPBaseButtonEventCP) 抬起鼠标左键响应函数
_onResetButton(BPBaseButtonEventCP) 点击鼠标右键响应函数
_onModelMotion(BPBaseButtonEventCP) 鼠标移动响应函数
_onStartDrag(BPBaseButtonEventCP) 按住鼠标左键拖拽开始
_onEndDrag(BPBaseButtonEventCP) 按住鼠标左键拖拽结束
_onMouseWheel(BPBaseMouseWheelEventCP) 鼠标滚轮滚动响应函数
_onDynamicFrame(BPBaseButtonEventCP) 动态绘制函数
_onKeyTransition(bool,P3DVirtualKey,bool, bool) 键盘响应函数
_onTracerChanged(BPTracerInfo) 追踪器赋值函数
_onPostLocate(BPPickDataCP, PStringR ) 工具拾取实体过滤函数
BPEntityArrayPtr getEntityArray() 获取拾取到的对象集
_exitTool() 退出工具响应函数

基本工具和选择工具使用BPToolsManager::registerTool来进行注册。