在目前设计行业高周转的情况下,为了满足具有开发能力的设计单位和个人对结构设计方案实现参数化的快速调整和选优,PKPM结构软件发布了一套API二次开发工具包。API 1.0提供C#和C 版本,可实现建模模型参数化调整和创建,还可以实现根据构件级和指标级计算结果,关联对应的模型构件进行调整,自动启动PKPM结构软件计算进行优化迭代。除此之外,用户也可以利用API接口,将自己的定制功能与PKPM结构软件集成,打造属于自己的PKPM软件!
一、数据和绘图API V1.0简介
本次发布的二次开发SDK(SofteWare Development Kit)有两个部分,分别是数据API和绘图API,各自用途和支持的语言见下表,并提供接口说明书。
表1 API功能说明表
_ | 数据API | 绘图API |
名称 | PMDataAPI | PMDrawAPI |
用途 | 编辑PMCAD模型, 启动自动计算 | 集成到PKPM软件环境, API菜单,命令注册 |
SDK版本 | C ,C# | C |
1.数据API直接对接PKPM底层模型和计算结果数据,无需通过接口转换,直接高效;
2.利用数据API修改模型和自动调用PKPM计算并根据返回结果调整模型进行迭代;
3.绘图API可与PKPM结构软件集成,利用绘图API在PKPM环境中注册自己的命令,开发自己的功能,实现模型变更后即时高效的图形刷新。
二、数据API
01
数据API的架构
数据API层次关系与已发布的JWD(SQLITE)数据结构基本一致,按设计阶段,将数据分为PM建模和SATWE计算设计两个模型,这两个模型按数据管理组织均可分为构件、楼层、项目三个层级,两个模型的三个层级之间都存在双向互联对应关系。此次的API二次开发接口提供了获取这些对应关系的方法,建立了两个模型之间的联系,从而使得PM模型和计算结果的前后关联更加紧密,交互更加便捷。
图3 数据API架构关系图
02
利用数据API实现模型修改、结果提取和自动计算
本节主要介绍如何利用API编辑模型和启动PKPM结构软件自动计算,通过两者的结合,开发者可以自己实现工程的优化计算迭代。
2.1编辑模型
通过图2中PM建模模型数据组织形式可见,梁、柱、墙等构件是存在于标准层中的,与PMCAD建模一致,因此要获取和修改某层的构件,需先指定要操作的标准层再进行构件级数据的获取和编辑。
例如要获取第1标准层的梁,将截面类型为1的梁改为类型3,以C SDK来实现,示例如下:
Model model;
model.OpenPMModel(jwsPath);//打开指定的PM模型
model.SetCurrentStandFloor(1);//指定要操作的标准层
for(int i=0;i<model.GetBeamCount();i )
{
int beamID=model.GetBeamID(i 1);
if(model.GetBeamSect(beamID)==1)//找出截面类型是1的梁
{
model.SetBeamSect(beamID,3);//将其截面类型改为3
}
}
model.SavePMModel();//保存修改到PM模型
2.2提取计算结果
CResult result;
result.InitialResult(jwsPath); //获取PM模型计算结果
int beamnum=0;
CBeamDesign* beams=result.GetDesignBeams(1,beamnum);//获取第一层所有梁分析结果
for(int i=0;i<beamnum;i )
{
int pmid = beams[i].GetPmid();//获取每根梁的PMID
//获取每根梁的剪压比
floatshearCompressionRatio=beams[i].GetShearCompressionRatio();
//其他构件分析结果…
…
}
2.3启动PKPM自动计算
将本次发布的SDK包中JWSCYCLE.exe文件放于PKPM结构新版本软件安装目录的PkpmCycle文件夹中,如下图所示。
图4 利用JWSCYCLE启动PKPM计算
启动PKPM自动计算只需两步:
第一步,将要运行的工程路径粘贴入“DirectorySet.conf”文本中,或通过程序写入。
第二步,运行JWSCYCLE.exe。
PKPM结构软件会自动打开指定目录下的模型文件,自动执行模型检查和完成SATWE计算。
03
绘图API
绘图API主要提供与PKPM结构软件的菜单集成、命令注册和绘图刷新功能,通过绘图API调用数据API的接口,开发者可以实现个性化的功能定制。值得一提的是,由于API操作的是PMCAD模型,无需通过接口转换,因此可实现图形的高效刷新。
将SDK开发包中绘图API文件夹中的内容覆盖到PKPM结构新版本软件安装目录的Ribbon文件中即可使用,SDK中预置了菜单和命令注册的样例,在此不做赘述。
图5 API命令定制菜单
04
总结
本次发布的二次开发SDK中包含数据和绘图两部分,利用API可实现模型数据获取、编辑和展示,也能提取结果数据找到对应模型构件,实现模型和结果的串联,并且可以启动PKPM结构软件自动计算改动的模型。除此之外,还可以与PKPM结构软件进行集成,注册和开发个性化的功能,欢迎具有开发能力的设计者加入。