ArcGIS Pro处理发布并在前端调用bim数据全过程-rvt转slpk

2023-03-23 15:14:58 来源:博客园

记录ArcGIS处理三维bim模型全纪录,从原始的rvt格式开始,到最后web前端js api调用的整个过程,并记录部分中间操作过程中出现的问题和解决办法。


(相关资料图)

本文示例使用:

软件:ArcGIS Pro3.0.1(破解版),

GeoScene Portal2.1

ArcGIS Maps SDK for JavaScript 4.23(原ArcGIS JS API)

bim数据格式:rvt

注:ArcGIS Pro/Portal和GeoScene Pro/Portal实际上是相同的东西,他们之间的操作是互通的;  ArcGIS Maps SDK for JavaScript在示例中用的是4.23版本,建议尽量使用越新的版本。

本文操作流程:

1、将bim数据加载到ArcGIS Pro,进行地理配准,并调整bim数据的位置和旋转等。

2、使用BIM File To Geodatabase(BIM 文件至地理数据库)将rvt格式先转到地理数据库

3、使用Make Building Layer(创建建筑图层),将bim数据加载到地图

4、使用Create Building Scene Layer Content(创建建筑场景图层包)选择第2步在图层树上生成的bim数据转换成slpk格式

5、使用Share Package(共享包),将slpk发布成rest服务

6、使用ArcGIS Maps SDK for JavaScript的BuildingSceneLayer加载数据并在浏览器端展示

详细操作步骤:

1、将bim数据加载到ArcGIS Pro,进行地理配准,并调整bim数据的位置和旋转等

ArcGIS Pro可以直接打开rvt格式添加到场景中查看bim数据(需要先新建局部场景,然后通过Catalog中添加或者通过Map下Add Data的Data添加rvt数据)

添加后会显示两个图层分组,一个与文件同名,一个在文件名后添加后缀_Floorplan:

通常rvt格式数据加载到arcgis pro中并没有坐标系,在加载的过程中会提示:

此时就需要进行地理配准,移动到指定位置。

先使用 Map菜单下的GO TO XY,确定bim数据要移动到的位置:

输入经纬度,点击手型图标Pan To Location,将视图移动到指定位置

然后选择一个图层(要选到具体图层,可以随便选择一个,不能选择图层组),然后在BIM Data菜单下,选择Georeference(地理配准):

如果bim数据没有坐标系(没有配准过),则会弹出一个提示,点击确定,会将当前地图的坐标作为bim数据的坐标系:

此时会生成一个bim数据同名的.prj格式数据:

同时会打开一个Georeference(地理配准)菜单,选择菜单下的Move to display(移至显示),会将指定图层移动到指定位置,另外可通过Move、Scale、Rotate进行微调

调整完后点击Save(保存)按钮,这是会生成另外一个与bim数据同名的.wld3格式数据

注:CAD 和 BIM 文件需要具有有效的 Esri 坐标系 (.prj),并且可能需要可选的坐标变换信息文件 (.wld),以确定应在地球表面上定位 CAD 或 BIM 数据中的坐标的方式。 参考:https://pro.arcgis.com/zh-cn/pro-app/latest/help/data/revit/geospatial-position-of-cad-and-bim-data.htm

选择CloseGeoreference(关闭地理配准),会发现rvt 所有图层都到新位置了:

只需调整一个图层,其他图层都会跟着变化,此时若还需要对模型位置进行微调,还可以再打开地理配准进行操作,同样只要选中其中一个图层即可。

特别说明:ArcGIS可以直接使用Create Building Scene Layer Content将rvt格式数据转换成slpk(可省去2、3步骤)。

通过下拉选择同名的数据集,设置输出slpk文件的路径和名称,以及坐标系(只有将数据添加到图层上输入数据集才可以使用下拉选择到对应数据):

因所使用的测试数据在使用该方法转换的时候会导致ArcGIS Pro奔溃(以前有直接转过是成功的,不知道是不是此次数据的问题还是软件的问题导致),故本次处理过程是先将rvt数据转到地理数据库再进行转换发布(测试成功)。

实际上如果rvt可以直接转成slpk的话,可以省去2、3步骤。

2、使用BIM File To Geodatabase将rvt格式先转到地理数据库中

输入的bim文件使用rvt格式,选择坐标系后运行,将bim数据存储到地理数据库中:

3、使用Make Building Layer,将bim数据加载到地图上

效果:

如果直接从gdb中拖到地图里,效果比较差,图层比较多,渲染的颜色与原始数据不一致,所以要想在图层树上展示,先通过工具Make Building Layer,将地理数据库中的bim模型放到图层书上 :

4、根据第二步加载到图层树上的bim模型,使用Create Building Scene Layer Content转换成slpk数据:

输入数据集使用下拉选择左侧图层树上的数据,输出为slpk格式,根据实际情况设置坐标系,运行成功后即可生成slpk数据。

5、使用Share Package,对slpk数据进行发布

发布前需要在右上角登录用于发布数据的portal:

然后使用Share Package工具

选择需要发布的slpk数据,注意Publish web layer需要勾上,否则只上传数据包,并没有发布数据,发布成功后,在Portal上有两条记录:

如果在发布的时候没有勾选共享给所有人,则需要在ArcGIS Portal选择Scene Layer,将服务设置成共享,然后可以通过Server访问rest服务(如果没有共享,在Hosted目录下找不到发布好的服务):

注:

  • 对于数据小于1G的slpk数据可以在浏览器将其上传到ArcGIS Portal上,再进行发布,无需使用ArcGIS Pro,当数据量大于1G才使用ArcGIS Pro的Share Package工具上传至ArcGIS Portal并发布。
  • Create Building Scene Layer Content工具生成的slpk数据,只能发布到10.7.1及以上版本,参考:https://pro.arcgis.com/en/pro-app/latest/help/mapping/layer-properties/building-scene-layer-in-arcgis-pro.htm

在实际测试过程中,因刚开始ArcGIS Pro连的是10.5的Portal,数据在生成slpk后,在向Portal10.5上发布的时候不成功,报Invalid scene package错误。后面拷贝数据到GeoScene Pro2.1中去发布测试成功。

6、使用ArcGIS Maps SDK for JavaScript(原ArcGIS JS API)的BuildingSceneLayer加载bim服务在前端浏览器展示:

参考示例:https://developers.arcgis.com/javascript/latest/sample-code/building-scene-layer-slice

const buildingLayer = new BuildingSceneLayer({    url: "http://10.0.4.4/tcloud/rest/services/szbuilding2019/SceneServer"});map.add(buildingLayer);buildingLayer.loadAll().then(function() {    buildingLayer.allSublayers.forEach((layer) => {        switch (layer.modelName) {            case "FullModel":                layer.visible = true;            break;            case "Overview":                layer.visible = false;            break;        }    });}).catch(function(error) {    console.log("Error: one or more sublayer failed to load");});

通常在将BuildingSceneLayer添加到WebScene或Map时,只有概览层可见。在示例中,我们希望从头开始查看完整模型。所以我们隐藏概览层并显示完整模型层:

“FullModel”和“Overview”是BuildingSceneLayer的直接子层。如果您想在BuildingSceneLayer的子组中搜索,可以使用BuildingSceneLayer.allSublayers,它是子图层的平面数组。要识别子图层,最好使用BuildingSceneLayer.modelName,因为这是基于I3S 规范的标准名称,无法更改。

注:ArcGIS发布的bim数据分为概览层(OverView)和完整模型(Full Model),  默认情况下使用BuildingSceneLayer加载图层是只加载概览层,要想将全部模型都能展示出来,需要将完整模型更改为可视。

通过ArcGIS Pro中拖入slpk数据,可以查看ArcGIS bim模型数据的组织结构:

参考资料:

https://pro.arcgis.com/en/pro-app/latest/help/data/revit/adding-revit-data-to-arcgis-pro.htm

https://www.cnblogs.com/yansc/p/14960126.html

https://blog.csdn.net/gislaozhang/article/details/104613247

标签:

唐山加快验收时间 为建筑工地开复工保驾护航

唐山市住建局坚持两手抓、两手硬,统筹疫情防控和经济发展,想尽一切办法,简化一切手续,实现一路绿灯...

2022-03-19 15:15:42

消费者“身材焦虑” 减肥市场疯狂吸金

三月不减肥,四月徒伤悲。冬去春来之际,为了能穿上各种漂亮轻薄的服装,变得更瘦成为了许多人的追求,...

2022-03-19 15:14:49

2月份秦皇岛新建商品住宅销售价格环比下降0.2% 同比下降4%

3月16日,国家统计局公布2月份70个大中城市商品住宅销售价格变动情况,河北省入统的石家庄、唐山、秦皇...

2022-03-19 15:13:01

深圳技术进出口全年合同数量共1347项 同比增长2.51%

科技部火炬中心近日公布了2021年度全国技术合同交易数据。截至2021年12月31日,全国共登记技术合同67050...

2022-03-19 15:10:37

邢台柏乡:打造羊肚菌产业示范带 引领村级集体经济发展

我们通过打造食用菌产业高标准试验示范园,不仅盘活了闲置土地,还进一步增加了群众和村集体经济收入。...

2022-03-19 15:09:40

胡金秋32分17板 浙江广厦男篮“双杀”稠州金租

CBA浙江德比二番战昨晚开打,再度狭路相逢的浙江广厦男篮与浙江稠州金租男篮表现难分伯仲,比赛直到最后...

2022-03-19 15:07:37

黑龙江新增本土核酸检测初筛阳性人员5例 均在讷河市

  中新网12月13日电 据黑龙江省卫生健康委员会网站消息,2021年12月12日0-24时,黑龙江省无新增确诊...

2021-12-13 08:35:21

“恋爱盲盒”抽的不是爱情,是急功近利的心

  越是急功近利,越是焦虑,对恋爱关系的处理就越可能出现问题。  “玩法”简单,最低只需花费0 99...

2021-12-13 08:35:20

北京12月12日新增2例境外输入确诊病例

  中新网12月13日电 据北京市卫生健康委员会官方微博消息,北京12月12日新增2例境外输入确诊病例。 ...

2021-12-13 08:35:20

满洲里本轮疫情社会面“清零”,迎来拐点!

  满洲里本轮疫情社会面“清零”,迎来拐点!   ——访自治区卫生健康委员会党组书记、主任许宏智...

2021-12-13 08:35:19
x 广告
x 广告

Copyright ©  2015-2022 北方经营网版权所有  备案号:京ICP备2021034106号-50   联系邮箱: 55 16 53 8@qq.com