获取引擎的授权认证

填写申请表申请免费评估版引擎授权或购买正式商用版引擎,由glendale发放授权密钥。 引擎免费评估版申请表格如下所示:

获取开发资源包

参考Glendale提供的软件安装包,解压文件包如下:

打开“BimEngine” 文件夹目录下:

Token.json:文件是引擎授权文件,通过部署引擎的引擎管理平台即可下载此文件。
3dEngine.js: 文件是glendale常规引擎文件。
3dEngine.lod.js:文件是glendale 大模型LOD引擎文件。
引擎的部署,请参照“葛兰岱尔BIM轻量化引擎部署说明”,此文档可以从葛兰岱尔官方网站获取,获取地址: 访问地址:http://www.glendale.com.cn/productnew.aspx

这三个文件获取后的使用方法,本文后续章节会详述。

模型轻量化处理服务

模型轻量化服务:主要是对RVT、Catia、Bentley、Naviswork2019(Nwd/Nwc)、IFC、FBX、DAE、OBJ、3DS等文件进行压缩处理,RVT、Catia、 Bentley、Nwd/Nwc轻量化时服务器需要安装对应的建模软件。
模型轻量化处理程序是通过C#控制台程序编写的,为了提高传输速度,要求对BIM模型文件压缩上传到轻量化处理程序的
..\GLBIMEngineServer\CustomerStation\Tools \input目录下,一般是通过iis配置ftp服务进行上传文件。
具体的BIM文件压缩及命名要求及FTP站点配置请参照引擎部署说明文档。
BIM模型文件轻量化处理完成后,会在\GLBIMEngineServer\CustomerStation\Tools /output”路径下的文件中生成两个相同文件名的文件。
1.文件夹中保存的是三维模型渲染数据;
2.DB文件保存的是模型结构属性信息数据。
通过Navicat for SQLite工具可以打开查看表结构和数据,DB表字段属性说明请访问进行查看:
http://www.glendale.com.cn/template/default/Twodevelopment/table.html
程序可以通过连接SQLite数据库进行读取或同步数据到指定数据库中。
引擎访问一般通过iis配置http路径指定到轻量化完成的../output路径下。
例如:
Varfilepath= 'http://117.34.118.8:9007/Tools/output/' + File + "/" + File + 'List.json';
AddModel(filepath, MileageID);
的方式来加载模型。

轻量化BIM模型基于webgl 浏览器渲染和控制操作

葛兰岱尔BIM轻量化引擎对轻量化BIM模型的渲染,采用的是Nodejs语言进行编写,是纯js语言可以嵌套到任何开发语言中。 引擎渲染二次开发,可根据引擎API文档提供的调用接口,来实现自身业务的扩展开发,引擎本身是支持团队开发模式的,开发人员只需要将引擎 包引入到基于引擎开发的BIM应用项目工程中,引擎包文件列表如下:

与jquery的引用方式一样。
引擎包中的token.json认证只是对购买/申请公司基本信息和有效时间行的核实,并不对客户机电脑做任何限制。
引擎包中以下文件是我们公司为用户提供的体验页面部署脚本,供客户浏览参考。开发人员可以调整或重新设计页面布局。

如果平台代码已经引用了引擎包,引擎所提供的所有接口,开发人员可以根据业务需求进行调用开发。
引擎开发的API参考文档:
API跳转链接
同时葛兰岱尔还提供了多种典型应用的引擎API调用代码样例供您参考
API代码参考样例

引擎附属的开发代码样例


您从葛兰岱尔获取的轻量化BIM引擎包中同时附带了一套开发代码样例。 您可以将轻量化处理后的模型文件从“..\GLBIMEngineServer\CustomerStation\Tools\output”拷贝到“.\APIDemo\model”下,用火狐浏览器( 火狐浏览器具有打开本地文件的权限)打开“index.html”,进行预览模型。 在左上角输入模型名称(就是output下的BIM模型文件夹名称)打开模型。

打开模型后,您可以点击左边的菜单功能,逐一体验葛兰岱尔BIM轻量化引擎的功能并查看与此对应的API接口调用样例代码。

基于.net开发如下

step1:创建项目:
在Microsoft Visual Studio2012下创建一个空项目,项目创建一个index.html页面,项目中引用jquery+css样式等文件,同时 引用引擎包中的"3dEngin.js",确保3dEngin.js与token.json在同一个地方。
step2:创建模型结构树:
在Index.html页面上,创建模型分部分项结构树,可以通过其它工具ztree.js等工具和后台数据库进行交互来实现。
step3:模型结构树节点上,上传模型文件:
在模型分布分项结构树上,上传对应专业的模型文件到引擎指定的文件夹中,为了减轻网络传输一般 将文件压缩为*.rar格式上传(模型包含在文件夹中直接压缩rar,保证rar与模型、文件夹名称一致,文件名不能有中文和特殊符号), 程序通过ftp协议进行文件上传到引擎轻量化指定的“input”文件夹中,引擎轻量化服务AutoEnCode.bat(如果轻量化服务部署完成, 保证此批处理一致处于开启状态)自动检测“input"中的模型,进行轻量化处理,处理结果存放于同级目录下的“Output”中,名称与 模型上传名称一致,同时将属性数据另存为DBTemp文件夹中*.db。属性文件是sqlite轻量化桌面数据库,程序引用微软提供 的“System.Data.SQLite.dll”来读取*.db文件,批量同步到指定的数据库中。并将属性文件从DBTemp文件夹中移除(保证数据不会重 复插入)。
step4:创建模型渲染区域:
在index.html页面中创建一个div容器:
《div id="webglContainer" style="height:100%"》《/div》
页面引用3dEngin.js
《script src="~/Themes/default/Content/Scripts/3dEngine.js》《/script》
页面加载时,对引擎画布区域进行初始化:
《$(function () 》
{ EngineInit("webglContainer",true,'./lib/cube.glb'); }
divId:展示模型的前台页面div标签的Id值。"webglContainer"
bCube:为true时显示指南针true
cubePath为方块的模型文件路径'./lib/cube.glb'
出现如下页面:

背景色为引擎默认色,可以通过接口进行设置背景颜色。
step5:调用引擎添加模型进行渲染:
在index.html可以通过点击模型分布分项结构树,获取需要加载的模型名称,如“modeltest”,通过js调用引擎接口来实现模型的渲染,如下:
《$(function () 》
{
EngineInit("webglContainer",true,'./lib/cube.glb');
var filepath = 'http://127.0.0.1:9007/Tools/output/' + File + "/" + File + 'List.json'; //轻量化服务器发布模型轻量化后的output路径为http网站,
var MileageID='7541'//模型结构树的id
AddModel(filepath, MileageID);//引擎加载模型
}
step6:引擎模型添加完成监控事件:
在index.html页面调用引擎回调事件:
function OnLoadModelEnd(tag) {
//tag为加载完成模型的标识
//后续模型的加载,或其他业务接口的设置,模型透明,构件设置颜色等。
}
加载完成页面如下:

step7:模型结构绑定:
在index.html 对应的后台页面调用数据库读取来自*.db对应的model_tree (模型结构表)表,来查询模型建模的装配机构,此表为子父级树形表,通过字段“glid”(子集id)与“pGlid”(父级id)来区分。前台可以通过属性控件对构件的结构归属进行绑定。 *.db对应的model_type (模型专业类型表)表,来查询模型专业类型构件归属表,此表为子父级树形表,通过字段“glid”(子集id)与“pGlid”(父级id)来区分。前台可以通过属性控件对构件的结构归属进行绑定。
通过点击模型结构的层级可以获取包含的构件编号“externalId”,通过编号集合可以对模型构件进行控制显示、隐藏、透明、回复透明、局部展示等。
以上样例代码中的“7541”为模型文件添加时的自定义值
构件局部展示:
《srcipt》ShowActors(GUIDARRAY)《/script》
接口说明:
设置模型中部分构件显示
传入参数:
GUIDARRAY:为显示模型构件id的集合,id集合可以通过调用OnSelectionChanged(id)得到,调用OnSelectionChanged接口时模型操作模式必须是ID拾取模式
返回:0:设置成功 其它:设置失败。
何时调用:
在葛兰岱尔BIM轻量化引擎初始化完成调用,一般用户为了查看模型部分构件时可以调用此接口
调用方式:
显示部分构件: var actArray = [];
actArray.push('7541_2327');
actArray.push('7541_77396');
actArray.push('754133951');
ShowActors(actArray);
构件着色:
SetActorColor('7541_2327#7541_41736', 0, 0, 255);
构件透明:
SetActorAlpha('7541_10993#7541_2327', 0.3);
构件隐藏:
SetActorVisible('7541__10993#7541__2327', false);
更多BIM模型操作功能请查看引擎API说明文档。
step8:模型构件属性查询:
在index.html 页面画布初始化完成后,设置引擎鼠标模型是为坐标拾取模式, 图下代码: $(function () {
EngineInit("webglContainer",true,'./lib/cube.glb');
var filepath = 'http://127.0.0.1:9007/Tools/output/' + File + "/" + File + 'List.json';
//轻量化服务器发布模型轻量化后的output路径为http网站,
var MileageID='7541'//模型结构树的id
SetClickMode(2);
AddModel(filepath, MileageID);//引擎加载模型
}
通过调用引擎回调函数可以获取鼠标点击构件的id:
function OnSelectionChanged(id) {
//guids鼠标点击模型构件的id值,返回结果格式为"模型id_构件id"
var guid=id; //通过获取的id,在数据库对应的*.db表model_property 查询选择构件对应的属性。
}
如下图:

step9:模型相关其他操作:
模型相关其它操作可查看API文档,或阅读代码样例。
引擎API文档:http://www.glendale.com.cn/template/default/Twodevelopment/api.html
代码样例:
http://www.glendale.com.cn/sample.aspx

基于Java开发如下

BIM引擎是基于WebGL技术、纯web的引擎插件,不限任何开发语言和系统平台,以Java语言为例、项目中加入BIM引擎功能开发实例。
Step1、前期准备工作
1)Java项目中引入BIM引擎,BIM引擎只有3dEngine.js、token.json两个文件,需要将两个文件拷贝到java Web项目中(不限制目录如Jquery.js一样使用,两个文件在同一目录即可)。
2)3dEngine.js是BIM引擎渲染模型的文件,在渲染模型的页面文件中引入即可。
Step2、BIM引擎开发demo实例
1) 创建一个页面,在页面中引入3dEngine .js引擎文件
2) 页面中创建一个div 设置id 和 初始化 宽、高,div是作为引擎渲染模型的画布使用,id是引擎初始化画布的键值索引,指定在那里渲染画布,初始化宽、高必须在js初始化画布前设置好,可以在js初始化画布前通过计算屏幕大小进行设置。
EngineInit(id,bCube,cubePath)初始化画布函数只在页面加载时执行一次,第一个参数是画布div的值,第二个参数是画布上的指南针功能模块,为true时显示指南针功能,第三个参数是指南针模块的模型路径,指南针模型可在http://www.glendale.com.cn/template/default/Twodevelopment/api.html 下载,将加载的指南针模型放到web项目中,可以请求的到此模型的路径即可。
AddModel(模型的json地址,模型id,true) 加载模型函数是将轻量化处理完成的模型渲染到画布中的执行方法,需要传三个参数 模型的json地址是轻量化处理服务器上的模型地址,iis配置有访问模型的外部请求地址,默认配置到轻量化处理的output目录,访问模型地址时只需要请求访问模型的外部地址/模型名称/模型名称List.json 即可,模型id是自定义的值,用于加载多个模型的区分和后面引擎其他功能函数操作模型的键值,第三个参数传true或者false 默认为true 用于判断加载过程中是否恢复视角。
例:
《html》
      《head》
        《title> BIM引擎 demo样例 《/title》
        《meta name="generator" content="editplus" /》
        《meta name="author" content="" /》
        《meta name="keywords" content="" /》
        《meta name="description" content="" /》
        《script src="/js/3dEngine.js"》《/script》
      《/head》
    《body》
        《divid="webglContainer"style="width:500px;height:500px;"》《/div》
    《/body>
    《script type="text/javascript"》
        $(function () {
        // 初始化画布
        EngineInit("webglContainer", true, "./lib/cube.glb"); // 加载模型
        AddModel("http://192.168.1.1:8090/model/modelList.json", "model", true);
            });
      《/script》
    《/html》
Step3、更多功能及实例
完成第一个简单的demo后,需要开发更多的业务功能请参考葛兰岱尔公司官网上提供的在线体验站、API开发文档、和在线代码样例。
1) 在线体验站
http://www.glendale.com.cn/typroduct.aspx
2) API开发文档
http://www.glendale.com.cn/template/default/Twodevelopment/api.html
3) 在线代码样例
http://www.glendale.com.cn/sample.aspx
Step4、属性入库
模型轻量化处理后轻量化程序会将模型的 属性信息 和 结构信息 存储在模型同级目录的 模型同名称.db 文件中,如果需要读取显示模型构件的结构信息和构件的属性信息可以从模型对应的db文件中读取.
1) db 文件,表、字段详解
http://www.glendale.com.cn/template/default/Twodevelopment/table.html
2) DB数据入库。
模型属性、结构数据可以直接读取db文件或者将db文件数据读取出来存放在本地库中。
以DB入库的操作方式为例。项目中通过轻量化处理服务提供的ftp服务 将压缩成 .rar 的模型文件上传至Tools/input 目录中,并给此模型数据设置状态标记为轻量化处理中,轻量化处理脚本会自动读取是否存在需要轻量化处理的模型,处理完成后存储在Tools/output 目录中,java程序中通过定时任务查询出轻量化处理中的模型数据,循环使用ftp下载服务 下载模型轻量化处理完成的标识文件 Tools/output/模型名称/模型名称. finish 文件,如果文件不是空的,则判定轻量化处理已完成。
在使用ftp下载服务,下载当前模型的db文件到本地,使用 Sqlite 读取db文件中的数据并将数据写入本地数据库中,执行完以上操作后修改此模型数据的状态标记为轻量化处理完成。
注:以上是java体验站代码中 db入库的业务流程,仅供参考,如需项目源码可联系相关销售人员购买。

大模型LOD功能应用

引擎对大模型的处理有独有的LOD算法,要求用户在上传模型时,配置BIM模型WEB或App渲染常驻模型构件类型的json文件。
一般在BIM应用开发项目的config配置文件中设置lod最小模型大小(一般配置500MB),如果BIM模型源文件(如RVT格式)超出才设置,则需要在上传BIM模型文件时配置常驻构件类型(配置功能和页面需要您自己开发,可参照葛兰岱尔提供的样例程序,http://www.glendale.com.cn/sample.aspx),并生成对应json 文件一并压缩上传。
配置界面如下:如果是有多个BIM模型文件则需要指定主BIM模型文件(一般为BIM模型索引文件)。

设置模型常驻构件集合,列表中列举为rvt 的所有模型类型构件集合。

配置完成后,由BIM应用程序将配置结构组织成json文件,具体格式可参照如下:

然后将该json 文件与BIM模型源rvt保持在同级目录中:

然后打包*.rar通过ftp上传到轻量化服务的input中(与常规BIM模型处理方法一致)。轻量化服务会根据配置的文件对模型进行Lod轻量化处理,处理完成后模型文件会放到Output 文件夹中。
应用程序在调用BIM引擎渲染时,请启用lod 模型渲染引擎包(即应用3dEngine.lod.js)。

LOD渲染引擎的接口API调用方式与常规模式相同(但部分接口功能在LOD模型下暂不支持,在接口API文档中有说明)。

引擎二次开发Api接口说明

请参考葛兰岱尔公司官网相关资料:
http://www.glendale.com.cn/template/default/Twodevelopment/api.html

模型轻量化属性表结构说明

请参考葛兰岱尔公司官网相关资料:
http://www.glendale.com.cn/template/default/Twodevelopment/table.html

模型预览跨域配置

添加Http相应标头

名称
Access-Control-Allow-Origin *

浏览器访问模型文件格式配置

添加MIME类型

文件扩展名 MIME类型
.glb application/x
.json application/json

技术支持人员
Glendale技术员1 QQ:1640552790
Glendale技术员2 QQ:1731242092