2023PKPM+BIM轻量化二次开发平台使用指南_第1页
2023PKPM+BIM轻量化二次开发平台使用指南_第2页
2023PKPM+BIM轻量化二次开发平台使用指南_第3页
2023PKPM+BIM轻量化二次开发平台使用指南_第4页
2023PKPM+BIM轻量化二次开发平台使用指南_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

使用指南步1获取开发账号OBVIDID”(client_id)OBV部署的OBV平台内置一个唯一的开发账号,开发人员只需使用这个内置账号访问即可。2获取访问令牌curl-s-k-H"Content-Type:application/x-www-form-urlencoded"--data"client_id=4de26805-9e54-4bfb-aa36-32770d8c079fcurl-s-k-H"Content-Type:application/x-www-form-urlencoded"--data"client_id=4de26805-9e54-4bfb-aa36-32770d8c079f&client_secret=6adb615a-3b9c-4e0b-8004-f2af7199642e&grant_type=client_credentials""/authentication/v1/oauth/token"client_idclient_secretIDOBV平台productionOBV22”,并且因没有浏览器认可的签名而须使用http调用成功以后,OBV平台将返回如下的Json数据。{{"token_type":"Bearer","expires_in":1799,"access_token":"f40e6dd4-28ec-41c6-bb0f-e6352be8941d"}f40e6dd4-28ec-41c6-bb0f-e6352be8941d,但是在实际使用的过程。3上传文件首先在storage创建一个储存空间(Bucket,也称“存储桶”),如下。curl-k-s-XPOST\curl-k-s-XPOST\-H"Authorization:Bearerbb1890178351917fc52442b7909795d5"\-H"Content-Type:application/json"\--data"{'bucket_key':'viewing_bucket'}"\-F"/storage/v1/buckets"\成功后返回如下结果:{{"data":{"data":{"bucket_key":"viewing_bucket","id":"0dd7c29e-dbf5-4134-8f97-8c2f682dcbe","client_id":"4de26805-9e54-4bfb-aa36-32770d8c079f","owner":"4de26805-9e54-4bfb-aa36-32770d8c079f","create_at":1507687453746}}object(存储对象t1452570294835_08023550764191896.ifc的文件。curl-k-s-XPOST\curl-k-s-XPOST\-H"Authorization:Bearerbb1890178351917fc52442b7909795d5"\-H"Content-Type:application/octet-stream"\-F"bucketKey=viewing_bucket"\-F"objectKey=t1452570294835_08023550764191896.ifc"\--data{文件的二进制数据块}\"/storage/v1/buckets/viewing_bucket/objects/t1452570294835_08023550764191896.ifc"\注意:"Content-Typeapplication/octet-stream以及上传的文件数据类型必须要转换成二进制。keybucketObject_keykey,也需要上传者自己定义。参数的意义通过名称可以自我解释,不再累述。成功后返回如下结果:{{"data":{"object_key":"t1452570294835_08023550764191896.ifc","id":"b2b7aabc-22be-465d-a6f4-739fbe98d70","client_id":"4de26805-9e54-4bfb-aa36-32770d8c079f","owner":"4de26805-9e54-4bfb-aa36-32770d8c079f","size":0,"create_at":1507639733000}}4启动转换任务获取支持在线浏览的文件后缀名列表及对应的转换器//代码示例curl-s-k-XGET\-H"Authorization:Bearerbb1890178351917fc52442b7909795d5获取支持在线浏览的文件后缀名列表及对应的转换器//代码示例curl-s-k-XGET\-H"Authorization:Bearerbb1890178351917fc52442b7909795d5"\-H"Content-Type:application/json"\"/viewing/v1/viewers/file-type.json"成功后返回如下结果"{"{"converters":{"dwf":"dwf-obv","converters":{"dwf":"dwf-obv","dwfx":"dwf-obv","imodel":"imodel-obv"}}"其中,键是文件扩展名,值是该文件对应的转换器名称。在启动一个转换任务时须指定转换器名称。启动转换任务创建一个转换任务的API如下所示curl-s-k-XPOST\curl-s-k-XPOST\-H"Authorization:Bearerbb1890178351917fc52442b7909795d5"\-H"Content-Type:application/json"\--data"{\"seed\":\"urn:bimbox.object:viewing_bucket/t1452570294835_08023550764191896.ifc"\",\"job_type\":\"imodel-obv\",\"time_out\":\"3600\"}"\"/bimserver/translation/v3/jobs"其中,viewing_bucketbucketKey;t1452570294835_08023550764191896.ifc为前面上传文件的objectKey;urn是指一个源文件文件(seed)或某个文件版本在OBV平台中的唯一标识。格式为:urn:bimbox.object:{bucketKey}/{objectKey}如,urn:bimbox.object:viewing_bucket/t1452570294835_08023550764191896.ifc成功后返回如下的结果,{{"data":{"seed":"urn:bimbox.object:viewing_bucket/t1452570294835_08023550764191896.ifc","job_type":"ifc-obv","time_out":3600,"id":"b579b819-d56e-4c9b-8273-dbace192fb80","state":"queued","reason":null,"client_id":"4de26805-9e54-4bfb-aa36-32770d8c079f","owner":null,"retries":3,"create_at":1476338018216,"update_at":1476338018216}}其中,id字段是Job的唯一标识,可用来查询该转换任务的状态。state字段表示该任务的状态。状态有:queuedqueued:busy:aborted:timeout:complete:排队等待处理中正在处理失败了,reason字段有详细的原因超时,在指定时间内没有处理完成成功查询转换状态curl-s-k-XGET\-H"Authorization:Bearerbb1890178351917fc52442b7909795d5"\curl-s-k-XGET\-H"Authorization:Bearerbb1890178351917fc52442b7909795d5"\-H"Content-Type:application/json"\"/bimserver/translation/v3/jobs/b579b819-d56e-4c9b-8273-dbace192fb80"返回结果能够完整的描述当前Job的状态和信息为,{{"data":{"seed":"urn:bimbox.object:viewing_bucket/t1452570294835_08023550764191896.imodel","job_type":"imodel-obv","time_out":3600,"id":"b579b819-d56e-4c9b-8273-dbace192fb80","state":"complete","reason":"Viewingpackagefileuploaded","client_id":"client_id":"4de26805-9e54-4bfb-aa36-32770d8c079f","owner":4de26805-9e54-4bfb-aa36-32770d8c079f,"retries":3,"create_at":1476338018000,"update_at":1476338018000}}5OBV浏览文件OBVOBVURNUrlSafe的Base64编码,如上URNurn:bimbox.object:viewing_bucket/t1452570294835_08023550764191896.ifc编码后变为:dXJuOmJpbWJveC5vYmplY3Q6dmlld2luZ19idWNrZXQvdDE0NTI1NzAyOTQ4MzVfMDgwMjM1NTA3NjQxOTE4OTYuaW1vZGVs/bimserver/viewing/v3/bimserver/viewing/v3/viewers/viewer.html?document=urn:42b7909795d5&env=Productionhttp访问方法:/bimserver/viewing/v3/viewers/viewer.html?document=urn:42b7909795d5&env=:18035&https=falseurlurn有一个前缀(urn:)urn一定是UrlSafe的BASE646OBV浏览多个文件/bimserver/viewing/v3/bimserver/viewing/v3/viewers/viewer.html?document=urn:urn:dXJuOmJpbWJveC5maWxlOjc0MDYzYTdkLWVkOTMtNGJmYy05NmY2LTc3ODVhZGQ1N2M3Zi8xMjA5NmVkYy1lMWYzLTQyZWMtYjg0ZS02MWY3ZjliYWYxOTI&accessToken=bb1890178351917fc52442b7909795d5&env=Productionhttp访问方法:/bimserver/viewing/v3/viewers/viewer.html?document=urn:urn:dXJuOmJpbWJveC5maWxlOjc0MDYzYTdkLWVkOTMtNGJmYy05NmY2LTc3ODVhZGQ1N2M3Zi8xMjA5NmVkYy1lMWYzLTQyZWMtYjg0ZS02MWY3ZjliYWYxOTI&accessToken=bb1890178351917fc52442b7909795d5&env=:18035&https=false35&https=false&globaloffset={"x":0,"y":0,"z":0},{"x":0,"y":0,"z":0}globaloffsetdocument指定的模型个数必须一致。7OBV嵌入客户系统页面除了使用OBV平台内置的OBV视图显示文件的模型数据外,更常用的是将OBV视图嵌入某个webOBV视图嵌入一个简单的html页面中。文件obv-simplest-example.html:<<html><head><title>PKPMOPENBIMViewerExample</title><linkrel="stylesheet"href="/bimserver/viewing/v3/viewers/style.min.css"type="text/css"><scriptsrc="https:// /bimserver/viewing/v3/viewers/obv.min.js"type="text/javascript">></script><scripttype="text/javascript">nvar={credentials:{//这里使用的是演示账号,功能和空间都有限制,且会定期清理模型文件。//请不要在正式产品中使用演示账号。client_id:'4de26805-9e54-4bfb-aa36-32770d8c079f',client_secret:'6adb615a-3b9c-4e0b-8004-f2af7199642e',grant_type:'client_credentials'},//产品环境(Production):https://baseUrl:'',version:'v3'};functiongetAccessToken(cb){//组装完整的API路径varurl=authentication.baseUrl+'/authentication/'+authentication.version+'/authenticate';//创建formdatavar params = "client_id="+ +"&client_secret=" + +"&grant_type=client_credentials";varxhr=newXMLHttpRequest();xhr.withCredentials=true;xhr.open('POST',url,true);//注意ContentType为'application/x-www-form-urlencoded'xhr.setRequestHeader('Content-type','application/x-www-form-urlencoded');xhr.onload=function(){//dosomethingtoresponseconsole.log(this.responseText);varresponse=JSON.parse(this.responseText);一分钟重新刷新一下AccessTokencb(response.data.access_token,response.data.expires_in);};//xhr.send(data);xhr.send(params);};var ='dXJuOmJpbWJveC5maWxlOjhhMGI4ZjI4LThhZjAtNDU2ZS04OWQ1LWVkYTMxMmJjOGYzOS80MjBlOWJhNi1kZTc3LTRkMWMtOWVlNS1lZTMzODc1ZDEwMjI=';//必须保证有前缀:urn:,否则系统不能够解析。if(urn.indexOf('urn:')!==0){urn='urn:'+urn;}//初始化函数,使用OBVAPI来创建一个Viewer,并获得OBVApi对象。functioninitializeSampleViewer(containerId){//选项varoptions={shouldInitializeAuth:true,env"Production"getAccessToken:getAccessToken,//获取Token的回调refreshToken:getAccessToken,//刷新Token的回调,后台API可以提供刷新TokendocumentId。globalOffset:'{"x":0,"y":0,"z":0}'//指定模型的位置。如果多个模型,则以逗号隔开;必须与documentId指定的模型个数一致。};varthat=this;varobvApi=null;//初始化一个Viewer,初始化成功后,回调函数会传回创建好的OBVApi对象。//可以参看API文档,调用OBVApi中暴露的函数对Viewer进行操作和控制。BIMBox.Viewing.API.initializeViewer(containerId,options,function(obvApi){that.obvApi=obvApi;//obvApi已经成功创建,viewer已经完成初始化,可以进行API调用了。//如订阅选择集变化的消息。that.obvApi.addEventListener(BIMBox.Viewing.API.SELECTION_CHANGED_EVENT,function(event){for(vari=0;event.nodeIdArray&&i<event.nodeIdArray.length;i++){varmodelId=event.nodeIdArray[i].modelId;vardbId=event.nodeIdArray[i].dbId;Selection:modelId=",modelId,",dbId=",dbId);}});});}</script></head><<body<divid='viewerDiv'class="customizing-view-div",style="position:fixed;top:20px;left:20px;width:800px;height:600px"></div></body></html>使用流行的web服务器(如IIS、Apache、Nginx、NodeJS等)将obv-simplest-example.html Chrome等支持WebGL器打开obv-simplest-example.html,将会得到如下图所示的页面:将OBV视图嵌入页面之后,即可通过javascripts/viewing.js中定义的obvApi变量来访问OBVJavaScriptAPI。认证服务API/bimserver/authentication/v3APIPaths POST/authenticate AuthenticationSummary采用2leggedauthentication方式对指定的clientid和clientsecret进行验证,并返回一个Token。Descriptionclientid,clientsecret和grant_type是在From中,不是querystring中,并请注意ContentType.ParametersNameLocatedinDescriptionRequiredSchemaclient_idformData客户端身份ID(clientid)Yes⇄stringclient_secretformData客户端身份密码(clientsecret)Yes⇄stringgrant_typeformData身份验证方式(granttype)No⇄stringResponsesCodeDescriptionSchema200successfuloperation⇄AccessToken{}400无效的clientid404clientid不存在POST/token/refreshPOST/token/refreshTokenSummary根据指定的Token来申请一个新的access_token。Description主要场景是在老的Token过期前,使用新的Token进行替代,避免出现403的错误。ParametersNameLocatedinDescriptionRequiredSchemabodybody指定的Token和Token类型Yes⇄AccessToken{}ResponsesCodeDescriptionSchema200Token有效,并生成一个新的Token⇄AccessToken{}403Token无效POST/token/validatePOST/token/validateTokenSummary对指定的access_toke进行验证,并返回该Token的上下文信息。ParametersNameLocatedinDescriptionRequiredSchemaNameLocatedinDescriptionRequiredSchemabodybodyToken和Token的类型等信息Yes⇄AccessToken{}ResponsesCodeDescriptionSchema200Token有效⇄TokenInfo{}403Token无效对象模型访问系统的令牌(Token)AccessToken{令牌的类型token_type:string*Enum:Array[2]0:"Bearer"1:"Mac"令牌(Token)的失效时间.单位为秒expires_in:integer(int64)令牌(Token)access_token:string}Token的上下文信息TokenInfo{客户端的身份IDclient_id:string*用户的ID信息user_id:string*}存储服务API存储服务的API路径为:/bimserver/storage/v3APIPaths GET/buckets storageSummary列举出所有的Buckets.顾名思义,Bucket的意思是“桶”,OBV平台的存储以“桶”为单位,每个“桶”内可以存放任意多的数据。ResponsesCodeDescriptionSchema200successfuloperation⇄BucketCollection{}POST/bucketsPOST/bucketsstorageSummary创建一个新的BucketParametersNameLocatedinDescriptionRequiredSchemabodybodyBucket元数据YesstringResponsesCodeDescriptionSchema200successfuloperation⇄BucketModel{}DELETE/buckets/{bucketKey}DELETE/buckets/{bucketKey}storageSummary删除一个非空的BucketsParametersNameLocatedinDescriptionRequiredSchemabucketKeypathBucketKeyYesstringResponsesCodeDescriptionSchema200successfuloperation⇄BucketModel{}GET/buckets/{bucketKey}GET/buckets/{bucketKey}storageSummary获取Bucket的对象模型信息ParametersNameLocatedinDescriptionRequiredSchemabucketKeypathBucketKeyYesstringResponsesCodeDescriptionSchema200successfuloperation⇄BucketModel{}POST/buckets/{bucketKey}POST/buckets/{bucketKey}storageSummary创建一个新的BucketParametersNameLocatedinDescriptionRequiredSchemabucketKeypathBucketKeyYesstringResponsesCodeDescriptionSchema200successfuloperation⇄BucketModel{}GET/buckets/{bucketKey}/objectsGET/buckets/{bucketKey}/objectsstorageSummaryBucket中所有文件Object的对象模型数据ParametersNameLocatedinDescriptionRequiredSchemaNameLocatedinDescriptionRequiredSchemabucketKeypathBucketKeyYesstringResponsesCodeDescriptionSchema200successfuloperation⇄ObjectCollection{}GET/buckets/{bucketKey}/objects/{objectsKey}GET/buckets/{bucketKey}/objects/{objectsKey}Summary

storage获取指定的Bucket中一个文件Object的数据内容。对象Key为指定KeyParametersNameLocatedinDescriptionRequiredSchemabucketKeypathBucketKeyYesstringobjectKeypathObjectKeyYesstringResponsesCodeDescriptionSchema200successfuloperation⇄ObjectModel{}POST/buckets/{bucketKey}/objects/{objectsKey}POST/buckets/{bucketKey}/objects/{objectsKey}storageSummary在指定的Bucket中新建一个文件Object。ParametersNameLocatedinDescriptionRequiredSchemabucketKeypathBucketKeyYesstringobjectKeypathObjectKeyYesstringNameLocatedinDescriptionRequiredSchemabodybody文件object内容YesstringResponsesCodeDescriptionSchema200successfuloperation⇄ObjectModel{}GET/buckets/{bucketKey}/objects/{objectsKey}/infoGET/buckets/{bucketKey}/objects/{objectsKey}/infostorageSummaryBucket中指定文件Object的对象模型数据。ParametersNameLocatedinDescriptionRequiredSchemabucketKeypathBucketKeyYesstringobjectKeypathObjectKeyYesstringResponsesCodeDescriptionSchema200successfuloperation⇄ObjectModel{}GET/objects/{objectId}GET/objects/{objectId}storageSummaryParametersNameLocatedinDescriptionRequiredSchemaobjectIdpath文件对象IDYesstringResponsesCodeDescriptionSchemaCodeDescriptionSchema200successfuloperation⇄ObjectModel{}GET/objects/{objectId}/infoGET/objects/{objectId}/infostorageSummary根据ObjectID获取对应的文件Object的对象模型。ParametersNameLocatedinDescriptionRequiredSchemaobjectIdpath文件对象IDYesstringResponsesCodeDescriptionSchema200successfuloperation⇄ObjectModel{}对象模型对象集合BucketCollection{count(integer,readonly):Bucket对象模型的数量,buckets(Array[BucketModel]):Bucket对象模型的集合}对象BucketModel{bucket_key(string):BucketKey,id(string):BucketID,client_id(string):Bucket所属的ClientID,owner(string):Bucket所属的Owner,create_at(string):Bucket创建时间的时间戳}对象集合ObjectCollection{count(integer,readonly):Object对象模型的数量,objects(Array[ObjectModel]):Object对象模型的集合}对象ObjectModel{object_key(string):Object键值,id(string):ObjectID,client_id(string):Object所属的ClientID,owner(string):Object所属的Owner,size(integer):Object数据内容的大小(Byte),create_at(string):Object创建时间的时间戳}转换服务API/bimserver/translation/v3APIPathsPOST/jobsPOST/jobsjobSummary创建一个新的转换任务(Job)。ParametersNameLocatedinDescriptionRequiredSchemabodybodyJob元数据,创建一个Job的必要参数Yes⇄TranslationJobParams{}ResponsesCodeDescriptionSchema200请求操作成功⇄TranslationJob{}400给定的Job参数无效⇄ErrorInfo{}500服务出现内部异常,请联系客服⇄ErrorInfo{}GET/jobs/{jobId}jobSummary根据JobId获取一个Job的详细信息ParametersNameLocatedinDescriptionRequiredSchemajobIdpath有效的JobIdYes⇄stringResponsesCodeDescriptionSchema200请求操作成功⇄TranslationJob{}404没有找到JobId对应的Job⇄ErrorInfo{}500服务出现内部异常,请联系客服⇄ErrorInfo{}对象模型ErrorInfo{err:string}TranslationJob{jobId:stringstate:stringseed:stringjobType:stringtimeOut:integerclientId:stringowner:stringretries:integercreateAt:stringupdateAt:stringreason:string}TranslationJobParams{urnseed:string*jobType:string*timeOut:integer(int64)clientId:string}视图服务API/bimserver/viewing/v3POST/tokenPOST/tokenSummary获取token。Responses

viewingCodeDescriptionSchema200请求操作成功GET/{urn}SummaryManifest。Parameters

viewingNameLocatedinDescriptionRequiredSchemaurnpath有效的urnYesstringResponsesCodeDescriptionSchema200请求操作成功GET/{urn}/version/{version}viewingSummary获取指定版本的Manifest。ParametersNameLocatedinDescriptionRequiredSchemaurnpath有效的urnYesstringversionpath有效的versionYesstringResponsesCodeDescriptionSchemaCodeDescriptionSchema200请求操作成功GET/thumbnails/{urn}GET/thumbnails/{urn}viewingSummary根据urn获取缩略图。ParametersNameLocatedinDescriptionRequiredSchemaurnpath有效的urnYesstringguidquerynostringResponsesCodeDescriptionSchema200请求操作成功GET/items/{urn}GET/items/{urn}viewingSummary根据urn获取一个视图。ParametersNameLocatedinDescriptionRequiredSchemaurnpath有效的urnYesstringResponsesCodeDescriptionSchema200请求操作成功OBVJavaScriptAPIOBVJavaScriptOBVOBVwebOBV提供了丰富的JavaScriptAPI,供用户系统调用。所有的API接口都在BIMBox.Viewing.API命名空间下。BIMBox.Viewing.API.initializeViewer创建视图BIMBox.Viewing.API.initializeViewerobvSummary将OBV视图嵌入到自己的页面中。初始化一个OBV视图,并加载指定模型。Parameters名称类型描述containerIdstring页面元素idoptionsobject{n:Prdtio,//BVPutiStgi:getAccessToken:,//。refreshToken://。duntI:un1un/uuurn”urnglobalOffset:'{"x":0,"y":0,"z":0},{"x":1000,"y":0,"z":0}'documentId}onSuccessCallbackfunction成功创建视图后回调此函数。函数参数为BIMBox.Viewing.API.OBVApi的对象。Example详见分步指南中“OBV嵌入客户系统页面”。BIMBox.Viewing.API.ESCAPE_EVENTOBV消息BIMBox.Viewing.API.ESCAPE_EVENTobvSummaryESC键按下后,触发此消息。Example});

_myOBVApi.addEventListener(BIMBox.Viewing.API.ESCAPE_EVENT,function(){//TODO:dosomethinghereBIMBox.Viewing.API.FULLSCREEN_MODE_EVENTBIMBox.Viewing.API.FULLSCREEN_MODE_EVENTSummary全屏模式切换后,触发此消息。Parameters

obv名称类型描述fullScreenbooltrue是全屏模式,false是非全屏模式Example_myOBVApi.addEventListener(BIMBox.Viewing.API.FULLSCREEN_MODE_EVENT,function(event){if(event.fullScreen){//TODO:dosomethinghere}BIMBox.Viewing.API.CAMERA_PROJECTION_CHANGE_EVENT});BIMBox.Viewing.API.CAMERA_PROJECTION_CHANGE_EVENTobvSummary透视视图和平行视图切换后,触发此消息。Parameters名称类型描述isPerspectivebooltrue是透视视图,false是平行视图Example_myOBVApi.addEventListener(BIMBox.Viewing.API.CAMERA_PROJECTION_CHANGE_EVENT,function(event){if(event.isPerspective){//TODO:dosomethinghere}});BIMBox.Viewing.API.VIEWER_RESIZE_EVENTBIMBox.Viewing.API.VIEWER_RESIZE_EVENTobvSummaryOBV视图大小改变后,触发此消息。Example_myOBVApi.addEventListener(BIMBox.Viewing.API.VIEWER_RESIZE_EVENT,function(){//TODO:dosomethinghereBIMBox.Viewing.API.VIEWER_UNINITIALIZED});BIMBox.Viewing.API.VIEWER_UNINITIALIZEDobvSummaryOBV视图没有成功初始化时,触发此消息。Parameters名称类型描述messagestring原因描述Example_myOBVApi.addEventListener(BIMBox.Viewing.API.VIEWER_UNINITIALIZED,function(event){//TODO:dosomethinghere});BIMBox.Viewing.API.MODEL_LOADED_EVENTBIMBox.Viewing.API.MODEL_LOADED_EVENTSummaryOBV视图加载指定模型完成后,触发此消息。

obvBIMBox.Viewing.API.MODEL_UNLOADED_EVENTBIMBox.Viewing.API.MODEL_UNLOADED_EVENTSummary

obvOBV视图没有成功加载指定模型时,触发此消息。Parameters名称类型描述messagestring原因描述BIMBox.Viewing.API.PROPERTIES_LOADED_EVENTBIMBox.Viewing.API.PROPERTIES_LOADED_EVENTSummaryOBV视图加载指定模型的属性库完成后,触发此消息。

obvBIMBox.Viewing.API.PROPRERTIS_UNAVAILABLE_EVENTBIMBox.Viewing.API.PROPRERTIS_UNAVAILABLE_EVENTSummaryOBV视图没有成功加载指定模型的属性库时,触发此消息。Parameters

obv名称类型描述messagestring原因描述BIMBox.Viewing.API.SELECTION_CHANGED_EVENTBIMBox.Viewing.API.SELECTION_CHANGED_EVENTSummary

obvOBV视图的选择集改变时(如用户在视图中通过鼠标选中对象时),触发此消息。Parameters名称类型描述nodeIdArrayobject选中的对象nodeIdExample_myOBVApi.addEventListener(BIMBox.Viewing.API.SELECTION_CHANGED_EVENT,function(event){for(vari=0;i<event.nodeIdArray.length;i++){}});

varmodelId=event.nodeIdArray[i].modelId;vardbId=event.nodeIdArray[i].dbId;//TODO:dosomethinghereobvAPI列表obvSummary通过路径获取一个对象的nodeId。"/"OBVnodeIdmodelId,用来表示模IDdbIdIDOBVAPI时,需要nodeIddbIdIDdbId的对象。Parameters名称类型描述pathstring路径obvobv{modelId,dbId}Summary通过nodeId获取一个对象的路径。Parameters名称类型描述nodeIdobject{modelId,dbId}ReturnsobvstringSummary通过模型名称获取该模型的Id。Parameters名称类型描述modelNamestring模型名称。为模型树上模型的根节点名称,有的转换器把文件名成作为模型的根节点,如dwf文件。numberReturnsnumberobvSummary获取当前摄像机对象。本书所涉及的THREE.js类,均可在Three.js官方网站找到详细解释。obvobvTHREE.cameraSummaryZYdwf。THREE.Vector3BIMBox.Viewing.API.OBVApi.setViewFromFileReturnTHREE.Vector3BIMBox.Viewing.API.OBVApi.setViewFromFileSummary设置当前视角为模型文件的初始视角。

obvBIMBox.Viewing.API.OBVApi.setViewToBIMBox.Viewing.API.OBVApi.setViewToSummary通过当前摄像机的位置和目标点,改变当前视角。Parameters

obv名称类型描述positionTHREE.Vector3全局坐标系下的摄像机的新位置targetTHREE.Vector3全局坐标系下的摄像机目标点的新位置BIMBox.Viewing.API.OBVApi.orientCameraUpBIMBox.Viewing.API.OBVApi.orientCameraUpSummary使当前摄像机向上(和全局坐标系向上的方向一致)。Parameters

obv名称类型描述positionTHREE.Vector3全局坐标系下的摄像机的新位置targetTHREE.Vector3全局坐标系下的摄像机目标点的新位置BIMBox.Viewing.API.OBVApi.getFOVBIMBox.Viewing.API.OBVApi.getFOVSummary获取视场角角度。单位为度Return

obvobvnumberSummary设置视场角角度。Parameters名称类型备注fovnumber单位为度obvSummary获取焦距。单位mmReturnobvnumberobvSummary设置焦距。obv名称类型备注focalnumber单位mmSummaryobv设置OBVobvSummary判断当前视图是否为透视视图。ReturnobvboolSummaryobv设置OBVobvSummary判断当前视图是否为平行视图。ReturnobvboolSummaryobv设置OBVobvSummaryobv设置OBVobvSummaryobv设置OBVobvSummaryobv设置OBVobvSummaryobv设置OBVobvSummaryobv设置OBVobvSummary名称类型描述nodeIdobjectnodeId、nodeId[]或dbId、dbId[]。为dbId时,默认取第一个模型。名称类型描述nodeIdobjectnodeId、nodeId[]或dbId、dbId[]。为dbId时,默认取第一个模型。obvSummary获取对象的属性。Parameters名称类型描述nodeIdobjectnodeId、nodeId[]或dbId、dbId[]。为dbId时,默认取第一个模型。onSuccessCallbackfunction成功取到对象属性后将结果传入此回调函数中。onErrorCallbackfunction(int,string)失败后将调用此回调函数。obvSummary获取模型树。modelId=undefined时,默认取第一个模型。Parameters名称类型描述modelIdnumber模型IdonSuccessCallbackfunction成功取到模型树后将结果传入此回调函数中。onErrorCallbackfunction(int,string)失败后将调用此回调函数。obvSummary在模型属性值中搜索给定的字符串。modelId=undefined时,默认取第一个模型。Parameters名称类型描述modelIdnumber模型IdtextstringonSuccessCallbackfunction(idArray)搜索完成后将结果传入此回调函数中。onErrorCallbackfunction(int,string)失败后将调用此回调函数。attributeNamesstring[]指定搜索的属性。为空时搜索所有属性。obvSummary获取当前视图中隔离的对象。ReturnnodeIdArraynodeIdArrayobvSummary隔离指定对象。指定对象为空时,将不隔离任何对象,也就是显示所有对象的功能。Parameters名称类型备注nodeIdobjectnodeIdnodeId[]dbIddbId[]。为dbIdobvSummary选中切换。若对象已经在选中状态,则取消选中,否则选中。Parameters名称类型备注nodeIdobjectnodeIdnodeId[]dbIddbId[]。为dbIdobvobvSummaryobv名称类型备注nodeIdobjectnodeIdnodeId[]dbIddbId[]。为dbIdSummary不选择指定对象。Parameters名称类型备注nodeIdobjectnodeIdnodeId[]dbIddbId[]。为dbIdobvSummaryobvobvSummary取得当前选择对象的个数。ReturnobvNumberSummary判断选择集中的对象是否有显示对象和隐藏对象。返回值是一个objecthasVisible,hasHidden。ReturnobvobjectobvnodeIdArraySummaryobvnodeIdArraySummaryParameters名称类型备注modeBIMBox.Viewing.API.SelectionModeBIMBox.Viewing.API.LEAF_OBJECT:叶子节点;BIMBox.Viewing.API.LAST_ASSEMBLY:从叶子节点往上检索至构件或设备节点。obvSummary获取当前视图中隐藏的对象。ReturnobvnodeIdArrayobvSummary隐藏对象。obv名称类型备注nodeIdobjectnodeId、nodeId[]或dbId、dbId[]。为dbId时,默认取第一个模型。名称类型备注Summary名称类型备注名称类型备注nodeIdobjectnodeId、nodeId[]或dbId、dbId[]。为dbId时,默认取第一个模型。obvSummaryobvobvSummary如果对象已显示,则隐藏;如果对象已隐藏,则显示。Parameters名称类型备注nodeIdobjectnodeId、nodeId[]或dbId、dbId[]。为dbId时,默认取第一个模型。obvSummary是否所有对象都显示。ReturnobvbooleanSummary临时移动对象。Parameters名称类型备注nodeIdobjectnodeId、nodeId[]或dbId、dbId[]。为dbId时,默认取第一个模型。xnumber移动x方向距离ynumber移动y方向距离znumber移动z方向距离obvSummary临时动态移动对象。Parameters名称类型备注nodeIdobjectnodeIdnodeId[]dbIddbId[]dbIdpathVectorsTHREE.Vector3[]连续移动向量stepLengthnumber动态移动每步步长speednumber移动速度obvSummary恢复对象到原始位置。Parameters名称类型备注nodeIdobjectnodeId、nodeId[]或dbId、dbId[]。为dbId时,默认取第一个模型。BIMBox.Viewing.API.OBVApi.resetObjectTransformationsBIMBox.Viewing.API.OBVApi.resetObjectTransformationsSummary恢复所有对象到原始位置。

obvBIMBox.Viewing.API.OBVApi.setObjectsColorBIMBox.Viewing.API.OBVApi.setObjectsColorSummary临时设置对象颜色。Parameters

obv名称类型备注nodeIdobjectnodeId、nodeId[]或dbId、dbId[]。为dbId时,默认取第一个模型。rednumber0~255greennumber0~255bluenumber0~255BIMBox.Viewing.API.OBVApi.restoreObjectsColorSummary

obv恢复指定对象颜色为初始值(模型文件中的固有颜色和材质)。未指定时nodeId时,恢复所有对象。Parameters名称类型备注nodeIdobjectnodeId、nodeId[]或dbId、dbId[]。为dbId时,默认取第一个模型。BIMBox.Viewing.API.OBVApi.getObjectBoundsobvSummary获取对象包围盒。Parameters名称类型备注nodeIdobjectnodeId、nodeId[]或dbId、dbId[]。为dbId时,默认取第一个模型。ReturnobvTHREE.Box3Summary获取模型包围盒。Parameters名称类型备注nodeIdobjectnodeId、nodeId[]或dbId、dbId[]。为dbId时,默认取第一个模型。ReturnobvTHREE.Box3Summary转换坐标,从全局坐标系(也称物理坐标系)到客户坐标系(也称屏幕坐标系)。Parameters名称类型备注pointTHREE.Vector3全局坐标系下的坐标ReturnobvTHREE.Vector3Summary(也称屏幕坐标系(也称物理坐标系null。Parameters名称类型备注clientXnumber客户坐标系下的坐标XclientYnumber客户坐标系下的坐标YReturnTHREE.Vector3THREE.Vector3obvSummary指定的临时场景是否存在。Parameters名称类型备注sceneNamestring临时场景的名称ReturnobvbooleanobvSummaryobv名称类型备注sceneNamestring临时场景的名称Summary清除临时场景中所有THREE.jsMesh对象,但不删除临时场景。Parameters名称类型备注sceneNamestring临时场景的名称obvSummary删除临时场景,同时也删除场景中的所有THREE.jsMesh对象。Parameters名称类型备注sceneNamestring临时场景的名称obvSummary添加THREE.Mesh到临时场景。THREE.Mesh的定义及实例构建,可在Three.js官方网站找到详细解释。Parameters名称类型备注sceneNamestring临时场景的名称meshTHREE.MeshTHREE.Mesh对象obvSummary添加多个THREE.Mesh到临时场景。Parameters名称类型备注namestring临时场景的名称meshesTHREE.Mesh[]THREE.Mesh对象数组obvSummary在

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论