本小节将为大家展示一个最基础最精简的插件是如何形成的、每个配置在何处生效、每个文件夹是做什么用的、这些基础问题将有详尽的回答。

2.1.1 BIMBase的Python路径概念及其分工

每一个软件都有自己的安装路径,同样的,BIMBase的默认安装路径一般在C:/Program Files下,BIMBase文件夹内部的PythonScript中存放着软件中与python相关的全部内容。

【python-3.7.9-embed-amd64】: 该文件夹中包含内置解释器python.exe,可以避免安装的繁琐流程,直接在Visual Studio Code中直接调用,另外在Lib/site-packages下放置numpy等众多第三方库,为编写插件提供便利。其中,pyp3d文件夹为python二次开发专用功能包,提供了丰富的造型接口并在持续不断地更新迭代。

【ParamComponentLib】:内有“构建资源库”和“行业构件库”两个文件夹,里面包含各个行业模型的python脚本和其对应的Bfa。Bfa用于定义和保存构建物件(如窗户、门、家具等)的几何形状、参数和关联逻辑等信息,可以被多次重复使用,避免了同一脚本多次运行的繁琐。

【BFAComponentLib】:存放参数化组件样例,包括直线、弧线、立方体、圆柱体、球等基本体的python实例以及相对应的Bfa,供python教学使用。

2.1.2 三步走标准插件开发

2.1.2.1 第一步-新建插件:

1. 打开BIMBase软件,在菜单栏的“插件扩展”目录下找到“插件开发”按钮

2. 弹出如下对话框,该功能使用前请确保电脑已经安装Visual Studio Code:

3. 点击【新建插件】会自动跳转到Visual Studio Code界面并打开提前预置好的插件模板,并在BIMBase安装目录下的APP文件夹自动生成一份插件文件夹。请注意,如果文件打开出现乱码,需要在右下角选择UTF-8格式并重新打开文件。Visual Studio Code截图如下所示

2.1.2.2 第二步-插件开发和菜单配置:

插件包内配置文件职责及功能如下

【model.py】:模板文件model.py以最简单的Cube脚本为例,包含了立方体的参数设置、造型以及布置流程

【SystemConfig_BIMBase.pyplugin】:该文件本质为xml格式,清晰地描述插件的含义和结构,包含了插件菜单配置信息以及所需的python脚本。插件共分为两种类型,一种为执行python脚本,另一种则为跳转至对应的Bfa构件库文件。具体内容如下图所示:

第一行是pyplugin文档声明,该声明为必须条件,它定义了文档的版本和所使用的字符编码。

【BfaLibName】:若插件类型为跳转至Bfa构件库,该字段应填写对应的Bfa文件夹,该字段可为空。

【PluginVersion】:记录Plugin的版本信息,当前为1.0.0版本,该值不可为空。

【LoadStatus】:描述当前插件的加载情况,默认为true,即软件启动时便同时加载,若修改为false,则做过滤处理,不予加载。

【Category】:该字段内部包含ribbon的配置信息,包含目录、面板、按钮的名称,用户可自由操作该插件在菜单中显示的位置。以上图为例,在菜单中点击“cube”按钮后,即执行model.py脚本。iconPath为插件按钮的图标位置,该值不可为空。

【command】:该配置字段最为关键,决定了此配置按钮点击后执行哪个python脚本文件

模型脚本model.py

    • 此部分详细介绍见《BIMBase参数化组件2.0使用与教学手册》,里面清晰的讲解了如何使用python进行构件的造型编写及丰富的接口方法。另外,用户还需要在Visual Studio Code中配置python解释器,具体方法见文本章节1.1.3,配置完成后,点击右上方的按钮即可运行

此时回到BIMBase软件中,可以看到立方体已经生成,用户可以把它布置在任何位置。


2.1.2.3 第三步-插件加载进BIMBase:

至此,插件开发完毕,但是——

如何将插件加载到BIMBase软件内呢?

在用户修改插件的过程中,相关文件都放置在安装目录下的App/Temp文件夹中(此文件夹内插件默认不会加载)。用户编辑完成插件后,需将插件文件夹整体移动到外层App文件夹中

1. 重新打开BIMBase软件

重新启动BIMBase后,便可看到生成的样例插件,如下图所示【样例】即为新建的插件:

2. 插件排序

用户可通过修改文件夹名称来改变插件按钮对应的位置:

3.排序方式

文件夹名称前方的数字代表插件在菜单中的顺序,可以方便快捷的在软件菜单内使用自己创建的插件。帮助应始终在菜单的最后位置,修改后重新启动BIMBase,菜单位置如下图所示: