BIMBase C++ 二次开发 - 学习笔记 2
二、BIMBase API 基础
使用BIMBase API的基础知识
① 外部命令和工具的注册;
② Application和Project获取和保存数据;
③ 配置自己的专业和插件加载。
1、外部命令和工具
BIMBase API是建立在BIMBase产品的基础之上的,它是一个类库,需要在BIMBase运行时才能工作。
外部命令及注册
插件开发者可以通过函数注册实现自己的命令。
① BIMBase API中的外部命令包括:外部函数、布置工具、选择工具三类。
②外部函数:用户可通过实现自己的函数并注册到平台来实现自己的命令,注册时需定义该命令的名称,该名称可在命令行直接输入,也可在菜单上加载。
③注册( 此方法目前没开放)
BIMBase通过后缀名为.plugin的文件(XML格式)来实现注册。BIMBase会在启动时自动搜索下列目录下的.plugin文件进行加载。
C:\ProgramData\Pkpm\Bimbase\Plugins\v1.0\c++plugin\
【参考样例】
<?xml version="1.0" encoding="utf-8"?>
<BIMBasePlugins>
<Plugin>
<Name>Examples</Name>
<Text>Examples</Text>
<Description>Examples</Description>
<Assembly>D:\BIMBase\Project\MyBIMBase\MyBIMBase\bin\x64\Debug\Examples.dll</Assembly>
<PluginId>aa20eac1-9c45-49f3-8817-3c8a46948dc6</PluginId>
<VendorId>PKPM</VendorId>
<VendorDescription>PKPM</VendorDescription>
</Plugin>
</BIMBasePlugins>
在BIMBase的类结构中,应用类和文档类是处于最顶层的,他们主要为BPApplication和BPProject这两类。 (1) 一个应用对象对应一个独立的BIMBase会话;(2) 一个工程对象对应一个独立的BIMBase工程文件。
2、BIMBase应用类
BPApplication表示一个BIMBase应用,提供对工程文件管理器、事务管理器的访问。
- ① 工程文件管理器
用户可以通过 getProjectManager接口获取IBPProjectManager对象,通过IBPProjectManager的方法实现工程的打开、获取、保存、关闭等。 - ② 事务管理器
用户可以通过 getTransactionManager接口获取BPTransactionManager对象,通过BPTransactionManager的方法实现事务的管理与创建等。
3、BIMBase文档类
BPProject类用于表示打开的BIMBase工程。BPProject对象用于存储BIMBase的元素、管理Model和数据。
- 1) 工程信息
用户可以通过BPProject获取工程文件全路径、Guid等信息; - 2) 获取元素
用户可以通过BPEntityId获取对应的元素; - 3) 图层管理
一个BIMBase工程可以有多个图层,所有的图形对象都保存在图层上,通过BPProject类创建、查找、删除图层。
4、事务处理
BIMBase会在调用外部命令之前自动创建一个事务,并且该事务会在外部命令结束时提交。在一个事务中进行的所有修改都能被撤销。 BIMBase API提供BPTransactionManager类用于管理事务。
三、简单应用开发简介
- 应用1:“Hello BIMBase” 介绍如何用BIMBase API创建一个插件。
- 应用2:用BIMBase API 实现一个两点画线功能。
1、如何用BIMBase API创建一个插件
步骤一:打开Visual Studio 2019,新建C++动态链接库项目,如图所示
步骤二:添加库引用(引入SDK)
- ① 将SDK拷贝到HelloBimbase.sln所在文件夹的同级目录下 ……………………………………………………………………
C++SDK暂时还没提供,无法练习。
上一篇: BIMBase 二次开发(I)
下一篇: VisionPro 坐标空间树
推荐阅读
-
Small Snapper C++ 快速入门学习笔记
-
设计模式学习笔记 - 项目实践 2:设计和实现通用接口闲置框架(实现) - 重构最小原型代码
-
大数据学习笔记 14 - 蜂巢基础 2
-
IDA 专业权威指南学习笔记 (2) - IDA 数据库文件
-
Pytorch 学习笔记 (8):正则化(L1、L2、Dropout)和规范化(BN、LN、IN、GN)
-
使用 ggplot2 绘制条形图系列的 ggplot2 学习笔记
-
可视化学习笔记(2):ggplot2:折线图
-
V4L2 框架分析 [魏东山视频学习笔记
-
Cadence Virtuoso IC 学习笔记 2:CS 放大器仿真与分析
-
C++ 学习笔记 -- 虚拟函数