参数化建模系列-cityengine篇之:如何基于GIS数据快速构建城市三维建模模型

在当今快速发展的城市规划和建筑设计领域,三维建模已成为一个不可或缺的工具。它不仅帮助我们以更直观的方式理解和展示城市空间,还能在设计和决策过程中发挥关键作用。本文将探讨如何基于GIS数据,通过CityEngine软件快速构建富有细节的城市三维建模模型。我们将从GIS数据的获取和处理开始,逐步介绍如何将其转换为CityEngine中的参数化模型。

数据获取

本文介绍的数据获取方法是通过QGIS软件获取GIS开源数据,首先电脑上需要安装QGIS软件,安装方法:GIS Experience (六):QGIS安装及使用教程 - 知乎 (zhihu.com)

软件安装完毕,打开QGIS,并在"Plugings"点击"Manage and Install Plugins"下载并安装对应插件。

在"Plugings"的搜索框中输入"osm"进行模糊查询,检索到"QuickOSM"插件并进行安装。

插件安装完毕,可在"Vector"中点击"安装好的"QuickOSM"打开该插件。

选中"QuickOSM"插件弹窗中的"Quick query",并在右侧的"key"中筛选想要下载的数据。

因为我们要做建筑参数化建模,所以在"Key"中选择"building"。

并选择想要下载城市区域,例如"苏州市姑苏区",点击"Run query"运行。

即可获取苏州市姑苏区的建筑矢量数据

数据处理

将下载好的建筑的矢量数据加载到QGIS中,对该原始数据进行优化处理。首先在图层框中选中该数据图层,然后点击工具栏中的属性表图标,也可以右键打开属性表。因为该建筑矢量数据的属性表中没有建筑高度数据,无法满足建筑参数化建模的基础属性需求,所以需要对数据进行简单处理,即为建筑随机分配高度。

点击属性表的编辑图标,使属性表处于可编辑状态。

观察属性表可以发现"height"高度属性缺失较多,因此需要给建筑赋予高度。点击下图左侧下拉框选择"height" 属性,在中间输入框输入函数"rand(10,100)"进行10到100之间高度随机,然后点击运行。

点击下图编辑图标进行属性保存。

将数据导出为".shp"格式的矢量数据

设置矢量数据存放的位置和数据命名。

设置矢量数据的模型坐标系

设置完存储位置和坐标系点击"ok"导出。步骤到此数据部分已完成。接下来是模型生成部分。

数据导入建模软件

本文中模型是通过Cityengine软件进行模型的快速构建,首先电脑上需要安装Cityengine软件,安装方法: CityEngine2022发布及下载地址 - 知乎 (zhihu.com)

软件安装完毕,将软件打开,新建Cityengine工程。点击下图的"File",再点击"NEW..."。选择弹框中的"CityEngine Project"点击"Next"

在下图中设置项目名称,并设置项目存放的位置,并点击"Finish"

在软件中可以找到刚刚创建的建筑工程,接下来将之前处理好的数据,放进"data"数据文件夹中。

点击"scene"文件夹,右键新建场景文件

设置场景名称,并选择该场景的坐标系为"3857"。并点击完成场景的创建。

接下来创建建筑生成规则,首先点击"rule"文件夹,右键新建"CGA Rule File"CGA规则文件。

设置规则的文件名称,点击"Finish"创建完成。

参数化建模规则编写

最重要也是最核心一步就是编写参数化建模规则代码,以下是提供的代码样例,规则编写完成后保存即可。

下面给大家介绍一下模型规则构建的思路。每个规则编写都需要以"@StartRule"开始,以"lot-->"开头,下面正式开始啦。

首先需要给建筑添加高度,有两种方式,第一种是直接在代码里给到高度随机,写法是"extrude(rand(10,50))"

第二种是通过读取我们之前在数据层面设定的建筑高度,通过"attr height =10",可以链接到矢量数据的高度属性。如果我们的高度是基于真实数据设置的,我们就可以赋予真实的楼高。

其次就要给建筑写一段随机分配的代码。目的是让建筑外立面分布具备随机性,该方法是通过百分比的方式将数据中所有的矢量数据分成若干份。

最后就是给分好的类别单独编写建筑的立面样式,可以通过"split"函数分出你想要的建筑段数,从而分配想要的建筑颜色。完成这些步骤的编写,这个随机样式的建筑规则就完成啦。

建筑生成

接下来就是建筑生成,将数据拖进之前创建的"building_scene.cej"场景中。

给场景中的建筑矢量数据赋予刚刚编写的建筑规则并点击生成即可完成定制化三维建筑模型生成,模型生成完毕后导出即可,支持常用的fbx、glb、obj等。

📎录制_2024_04_09_16_01_52_232.mp4

工程文件可提供下载

注册Mapmost alpha可获取完整代码和工程哦

登录 · 语雀


关注Mapmost,持续更新GIS、三维美术、计算机技术干货

Mapmost是一套以三维地图和时空计算为特色的数字孪生底座平台,包含了空间数据管理工具(Studio)、应用开发工具(SDK)、应用创作工具(Alpha)。平台能力已覆盖城市时空数据的集成、多源数据资源的发布管理,以及数字孪生应用开发工具链,满足企业开发者用户快速搭建数字孪生场景的切实需求,助力实现行业领先。

欢迎进入官网体验使用:Mapmost------让人与机器联合创作成为新常态

相关推荐
军军君016 小时前
Three.js基础功能学习三:纹理与光照
前端·javascript·3d·前端框架·three·三维·三维框架
UID96226 小时前
[特殊字符] 无级变速传动(CVT)技术突破之道 | 易经×数学×工程的跨维度破解方案
算法·数学建模·开源
乐吾乐科技6 小时前
乐吾乐3D可视化2025重大更新与2026升级计划
前端·3d·信息可视化·编辑器·数据可视化
GIS数据转换器18 小时前
基于知识图谱的个性化旅游规划平台
人工智能·3d·无人机·知识图谱·旅游
爱思德学术1 天前
中国计算机学会(CCF)推荐学术会议-B(计算机图形学与多媒体):I3D 2026
3d·计算机图形学·虚拟现实
您好啊数模君1 天前
随机森林算法-数学建模优秀论文算法
随机森林·数学建模
在下胡三汉1 天前
3D 文件格式解析:您需要了解的内容
3d
m0_743106461 天前
【基础回顾】针孔相机、深度、逆深度、与SfM的统一
人工智能·算法·计算机视觉·3d·几何学
HMS Core1 天前
HarmonyOS SDK携手Remy让普通手机即可完成专业级3D空间重建
3d·智能手机·harmonyos
深圳讯鹏科技1 天前
机械装备车间 ESOP 升级2D图纸3D数模三防平板可视化作业指导
3d·电子作业指导书系统·esop系统·2d图纸展示·cad图纸展示