要访问 ArcGIS CityEngine 中的教程项目,请打开 CityEngine 并点击 帮助 > 下载教程和示例 在主菜单中。选择教程或示例后,项目将自动下载并添加到您的 CityEngine 工作区。
本教程由Houseal Lavigne Associates的Devin Lavigne合作制作。
使用您自己的数据
处理GIS数据是城市规划中的关键工作流程。本教程介绍用户如何导入GDB,并如何利用实际的GIS信息来程序化地创建3D城市。
当现有的GIS信息存在时,CityEngine 可以导入数据,并为您提供访问几何图形及其所有空间属性的权限。例如,带有后退信息的地块可以将此信息传递给 CityEngine 以快速生成分区包络,或者现有的土地使用信息可以用来生成典型建筑。如果您正在处理重新开发概念或将其概念应用于现有的开发上下文中,您可能会发现这特别有用。在这种情况下,现有的上下文可以轻松地从现有的GIS信息中生成,并且可以将重新开发机会应用于特定地块。
本教程围绕一个实际案例展开, CityEngine 被用来帮助底特律市量化和可视化插建开发。2021年5月,美国住房与城市开发部(HUD)在竞争激烈且备受瞩目的“选择社区”补助计划中选中了底特律。HUD提供的3000万美元补助将为底特律的Corktown社区带来500套经济适用住房,这是一个位于底特律市中心西部的正在振兴的社区。
底特律的这项计划参考了“大柯克敦”规划框架,该框架由城市规划和开发部以及住房与振兴部在为期18个月的努力后制定。城市领导人、居民、社区组织和非营利组织以及私营开发社区共同合作,制定了底特律对街区进行振兴并解决挑战的计划。“大柯克敦”规划框架呼吁:
- 更换破旧的公共援助住房。
- 改善家庭在教育、就业和健康方面的结果。
- 更好地整合可负担和市场房价的住房,以确保所有人都能在一个欢迎和多样化的社区中生活。
- 对困难地区进行再投资,提供改善后的安全性和早期儿童教育等设施和服务。
作为“大科克敦”框架的后续实施行动,CityEngine 被用来可视化框架的建议和政策,并且其仪表板和报告被用来帮助撰写资助申请和未来决策。本教程使用该市的GIS信息,以类似的方式逐步介绍这个项目,并涵盖与处理现有GIS信息相关的常见工作流程和任务。
导入您的数据
在本教程的第一步,您将导入文件地理数据库中的要素或图层以及一张地理参考的航拍图像到您的场景中。
导入图层
您可以通过点击菜单中的 文件 > 导入 来导入数据。选择 文件 GDB 导入 位于对话框中的 CityEngine 图层 文件夹。
这将打开文件地理数据库对话框,并允许您浏览到项目中的Corktown.gdb文件地理数据库,该文件位于项目中的\Essentials_Work_with_GIS_Data\data文件夹。
或者,您可以右键单击Corktown.gdb文件地理数据库,该文件位于数据文件夹内的Essentials_Work_with_GIS_Data项目中,并选择导入。虽然这可能看起来更简单,但请记住,本教程已经将数据移动到此目录。 文件>导入方法允许您浏览到计算机或网络上的任何地理数据库。
在导入图层之前,您需要确保取消勾选从图创建块/地块形状复选框。因为您使用的是实际地块,您不需要让CityEngine为您创建块和地块。
取消勾选 \Corktown\Buildings_Detroit 数据集,然后点击 完成。一旦所有数据导入到你的场景中,它应该看起来像下面的图片。
导入航拍图像
要导入航拍图像,请导航到 \maps\CorktownAerial 文件夹 中的 导航器 。将 Aerial Base.jpg
选择 纹理导入 并点击 下一步。在下一个屏幕,点击 完成。
清理街道网络
在处理街道数据时,首先需要执行一些常见的清理工作,就像处理自己的数据时一样,然后应用CGA规则。
你可能会注意到街道中心线的图形网络延伸到研究区域之外,并且长度不同。你想缩短它们,这样它们只是稍微延伸到交叉路口。这是一个更具风格的改变,但它看起来更整洁,并有助于保持对研究区域的关注。
设置图层可见性
首先手动关闭所有图层的可见性,除了StreetCenterlines_Corktown图层。这使您可以专注于此图层,而不受其他信息的干扰。
缩短街道段
使用选择工具 (Q) 选择街道网络一侧的节点,然后点击移动变换工具
(W) 将节点移动以缩短它们的长度。
您可能已经注意到,使用红色或蓝色箭头拖动节点会沿着场景的世界方向移动。 您可以通过在街道网格上暂时调整方向来更改此行为,使用调整位置和方向切换键在变换工具选项中,或按(o)。
在学习区域四处走动,直到你得到如下所示的图像。
修复形状冲突
您可能会注意到其中一个交叉口有一个需要修正的错误。这被称为形状冲突,发生在没有足够的空间让CityEngine创建与交叉口和节点相关的几何图形。
首先选择产生错误的节点。然后,在检查器的 节点参数部分中更改曲率半径。将值从3更改为2,错误应该就会解决。
简化角落
您导入的数据还存在一个问题。可能的是,数据中包含了一个z值(高度),或者CityEngine在下面的拐角处将街道向上弧形化了。经过仔细检查,您可以看到这个拐角处有三个节点。作为一个一般的建议,您的图网络中的节点/顶点越少,冲突就越少,调整图网络也会越容易。
要删除一个节点,只需选中它,然后使用移动工具 (W) 将其移动到相邻节点的上方。它会自动捕捉,松开后,两个节点将合并在一起。在此位置您需要执行此操作两次。
调整角落曲线
一旦只剩下最后一个节点,最后的清理步骤是修正这条街道的曲线和位置。选择最后一个剩余的节点,然后激活编辑街道/曲线工具(C)。该工具允许您移动所选节点,并使用手柄编辑拐角/曲线的长度和弧度。打开Parcels Corktown 图层作为参考,并使用编辑街道/曲线工具
来调整道路以适应地块之间。
使用 ESRI.lib 规则
CGA 规则将形状转换为 3D 模型。您将应用于街道的规则文件已经创建,并作为规则之一提供在 ESRI.lib 中。ESRI.lib 是一个 CityEngine 项目,其中包含一个有用的资源库,例如 CGA 规则和资产。它们帮助您开始项目。ESRI.lib 会自动安装在您的 CityEngine 工作区中。
选择街道形状
选择与中心线相关的所有形状。有几种不同的方式选择对象:手动使用选择工具 (Q) ,使用选择菜单,或者在Scene Editor中右键单击StreetCenterlines_Corktown图层并点击选择对象。
分配规则
选择所有形状后,您现在可以点击分配在 规则部分的 检查器窗口中应用规则。这将打开一个对话框,您可以在其中导航到\ESRI.lib\rules\Streets\Street_Modern_Standard.cga规则。一旦选择了规则,点击打开将其分配给形状。
或者,您可以直接将规则从ESRI.lib项目文件夹拖放到选定的形状上。
街道模型将在你的场景中生成:
与现有建筑合作
导入到您的场景中的图层之一是 Buildings_Corktown图层,该图层包含该地区的现有建筑。您可以利用现有信息,并借助CGA将其转换为3D模型。
在继续之前,请使Buildings_Corktown图层可见,并隐藏场景编辑器中的所有其他图层。
对象属性
与自己的GIS信息合作的一个关键好处和原因是,这些属性会被映射到CityEngine中的形状。项目中的 footprints 数据包括五个属性,您可以使用这些属性来驱动模型的生成——STORIES(用于高度)和 DESCRIPTION(用于屋顶形式),以及 RED、GREEN、BLUE(用于建筑颜色)。
应用底特律建筑规则
使用 DetroitBuildings.cga 规则,该规则位于 规则 文件夹,应用于现有建筑。这个过程与您在教程早期如何将规则应用于街道相同。右键单击 Buildings_Corktown 图层并点击 选择对象。现在,您可以在 检查器 中分配规则,就像您之前分配街道规则一样,或者从 导航器 拖动 DetroitBuildings.cga 规则到选定的建筑形状上。
通过检查器窗口分配规则时的唯一区别是形状不会自动生成。点击生成模型工具 (Ctrl+G)生成模型。
自动字段映射
3D模型是自动生成的,因为数据准备方式和CGA规则的编写方式所致。由于CGA规则包含与GIS数据字段同名的属性,因此字段映射会自动发生。所以,一旦你应用规则,它就会被拉伸到正确的高度,根据GIS中的RGB值进行着色,如果DESCRIPTION属性设置为“单户住宅”,还会应用人字形屋顶。
如果你查看检查器窗口,你会看到(Object)字词在属性旁边是斜体的。这告诉您这个CGA属性是由对象或形状的属性提供的值。请注意,您可以更改 规则或 对象属性部分中的值来覆盖这些属性。您可以查看此部分中的所有值。
重命名图层
建筑物已经提取并上色,您可以重新命名图层以帮助您组织场景。将图层重新命名为建筑物-土地利用。您可以以以下方式重新命名图层:
- 双击图层名称。
- 右键单击图层并点击 重命名。
- 选择图层并在检查器中输入新名称。
分区信封
通常,社区规划师需要可视化分区法规如何影响地块上的建筑。使用CityEngine,这个过程非常简单,特别是因为你已经确定并设定了街上的地块。
接下来,您将使用地块的分区信息来创建分区包,以帮助您可视化所需的后退距离和建筑高度如何限制建筑物的位置和建设。
调整 场景编辑器,以便仅显示Parcels_Corktown图层中的形状。
分配街道边缘
由于您使用的是自己的地块数据,而不是CityEngine从街道网络创建的形状,因此您需要识别每个地块面向街道的边。这是一个手动选择面向街道的地块边并在主菜单中选择形状>设置街道边的过程。
更改您的视图,以便您可以同时拖动选择框围绕多个街道边缘。
设置键盘快捷键
当你进行这样的过程时,你可能会发现自己花费大量时间访问菜单中的工具。为了加快速度,可以考虑设置快捷键。要设置快捷键,请点击主菜单中的 编辑 > 偏好设置。搜索 键。这允许你将一个按键或多个按键与菜单工具绑定。在下面的示例中,设置街道边缘 的键盘快捷键已配置为 Ctrl+Shift+E。现在当你选择一个边缘或一组边缘时,这个按键组合会迅速将边缘设置为街道边缘。
将规则应用于宗地
要选择所有的地块,请右键单击 Parcels_Corktown 图层并点击 选择对象。
该ZoningEnvelope.cga规则位于\rules\文件夹中。这是一个简单的规则,与文件地理数据库 parcels 的属性数据一起工作,并自动将后退信息转换为简单的规划包络。
选定包裹后,将规则从导航器拖动到其中一个包裹上。
自动属性映射
与现有建筑、地块和ZoningEnvelope.cga规则具有相同的字段或属性,因此自动进行字段映射。
您可能会遇到一些前后颠倒的形状。这是因为出于某种原因没有设置街道边缘。要解决这个问题,您可以简单地重复为这些形状分配街道边缘的过程。最终结果应类似于下面的图片:
由于包裹层现在是3D分区包络,将图层重命名为分区包络以帮助组织场景。
填隙开发
作为HUD补助的一部分,底特律市将为快速发展的柯克敦社区带来超过500套新的经济适用住房。在过去的几十年里,底特律土地银行一直在收购破败和空置的土地,以实现其将城市荒废和空置的物业恢复到充分利用的使命。教程的下一部分将土地银行拥有的地块转换为3D开发模型。
复制建筑物图层
首先关闭所有图层,使 nothing 可见。接下来,点击 建筑–土地利用 图层在 场景编辑器 中以选择它。然后点击主菜单中的 图层 > 复制 以创建图层的副本。将此新图层重命名为 建筑–背景。
准备上下文层
右键单击建筑-上下文图层,然后点击选择对象。选择所有对象后,在检查器中将颜色模式选项更改为白色。这有助于使现有建筑不那么显眼。
删除土地银行地块上的建筑物
打开两个 Landbank_Corktown和建筑物-上下文图层的可见性,并确保关闭所有其他图层。您会注意到有些建筑位于土地银行拥有的地块上。这些房屋可能已经拆除,或者计划拆除,以便为新建筑提供地块。在场景中移动,选择任何位于土地银行地块上的建筑,并按删除键。
应用重新开发规则
选择 LandBank Corktown 图层中的所有对象,将 LandbankDevelopment.cga 规则应用到形状/对象,并点击 生成模型 工具 (Ctrl+G) 以创建3D模型。此规则将城市的分区规定应用于地块,并在地块上生成新的住宅。
分配街道边缘
现在情况可能看起来不像预期的那样,因为类似于包裹层,CityEngine 需要你识别 Landbank_Corktown 帕累托图的边缘,这些边缘 facing 街道。和之前一样,这是一个手动过程,只需选择 facing 街道的包裹边缘并点击 Shapes > Set Street Edges 在主菜单中。再次提醒,你可以更改视图,这样你就可以拖动选择框同时围绕多个街道边缘,并为许多对象设置街道边缘。在场景中移动,确保所有街道边缘都已设置。
如果CityEngine由于所有的树木模型变慢了,可以考虑在检查器中将它们的表示方式从逼真更改为扇形。
编辑包裹和属性
虽然这条规则在大多数情况下都能生成可行的重新开发,但也有一些具有独特形状的地块无法生成逼真的建筑。不用担心,这种情况在现实世界中经常发生,这也是物业被分割和合并的主要原因之一,也是业主申请豁免或解脱分区要求的主要原因。教程的下一部分将重点编辑形状和更改属性以完成开发。请注意,下面的一些技术是针对形状进行的,而另一些则调整了检查器中3D模型的属性。 F12 key 是一个有用的快捷键,用于隐藏和显示模型,使您能够在执行编辑时在最常用的状态之间切换。您还可以通过点击 模型 在 可见性设置 中手动切换这些功能。
拆分大包裹
有一些更大的地块可以分割以容纳两座房子。通过点击来选择形状。按I键以隔离选择——隐藏除选定地块外的所有内容。接下来,按F键以框选选择——放大到显示地块。点击多边形形状创建工具 (S) 或点击主菜单中的形状>多边形形状创建。悬停在接近中点的形状上,CityEngine将绘图工具 snap 到线的中点。点击以设置线的起点。在你想分割地块的地方绘制一条线, snap 在对面边的中点,点击以完成线。
尽管看起来线已经将包裹分成两部分,但过程尚未完成。要完成拆分,请在主菜单中点击 形状 > 分离面。当您这样做时,形状会消失,因为您在技术上创建了两个新的形状。再次按 I 键以退出隔离模式,新的形状以及所有其他形状将重新显示。在整个场景中重复此过程,将较大的包裹拆分成两个或多个较小的包裹,以最大化填充重建。
合并小包裹
另一种常见的编辑技术是将两个或多个形状合并为一个。场景中有一些地块较小或形状不规则,应该合并成一个更合适的地块。要这样做,只需选择您要合并的第一个地块,同时按住Shift键,选择第二个地块。现在,通过点击形状>合并形状在菜单中将形状合并在一起。在场景中的任何地方重复这个过程,无论您认为有哪两个或多个地块应该合并以生成一个更可行的建筑。
在检查器中调整后退距离
一旦你对形状的大小感到满意,仍可能会有一些房屋或3D模型的结果不是你预期的那样。在场景中移动,找到任何让你不满意的结果。选择形状或模型,并更改后缩属性——本质上是创建一个例外,或者规划师会称之为偏差。这是一个迭代过程,可能还需要你通过设置街道边缘来更改前院的位置。
为了帮助你整理场景,请将此图层重命名为渗透再开发。虽然不是必须的,但你可以通过点击并拖动图层在场景编辑器中重新整理图层顺序,可能会对你有所帮助。
确保所有模型都已生成并可见,你的场景应如下图所示:
添加上下文
在导出之前,为场景添加最后一层——围绕场地的建筑层,以提供模型的更多上下文。Corktown社区位于底特律市中心以西,额外的建筑将有助于你的场景。
导入现有建筑数据
您可以像在教程开始时一样导入上下文建筑的足迹。点击主菜单中的文件>导入。接下来,点击CityEngine图层>GDB导入。点击下一步。浏览到项目中的\data\文件夹并选择Corktown.gdb。最后,仅选择Buildings_Detroit图层并点击 完成。
将 Buildings_Detroit 图层重命名 为 Buildings–Detroit.
应用CGA规则
通过右键单击您的新图层并选择 选择对象来选择所有新的建筑足迹。选定所有新的建筑足迹后,将 DetroitContextBuildings.cga 规则拖放到足迹上。这将规则分配给所有选定的形状并生成模型:
出口
CityEngine 提供了几种分享或导出您的3D模型或图像的方法。本教程部分将引导您完成几个使用案例——导出图像和导出360度VR体验。
设置书签
设置书签可以存储相机的视角,并且可以随时返回到该位置。设置书签还为某些类型的导出格式提供额外的功能,包括360 VR体验。
要设置书签,请点击书签菜单并选择新建书签。
导出快照
在CityEngine中,最常见和最简单的工作传达方式之一是通过图像,这些图像可以用于报告、文档或ArcGIS StoryMaps中。要导出当前视图的快照,请点击书签菜单并选择保存快照。这将导出当前视图并打开一个对话框,允许您更改导出图像的大小和位置。默认设置是您的视口大小,并保存到\images\ 文件夹中。快照导出为.png文件格式。
导出360度VR体验
要导出当前场景的360 VR体验,请点击文件>导出。这将打开一个导出对话框,允许您以多种格式导出场景。点击导出360 VR体验并选择下一步。
配置360 VR体验
导出360度VR体验窗口出现,允许您自定义360度VR体验。您可以使用 图层合成选项配置多个场景。对于每个合成,您可以配置哪些图层应可见。默认情况下只添加了一个图层合成。可以使用图层合成操作添加额外的图层合成。确保您检查多个书签视图复选框。
使用本教程中创建的图层,准备三种不同的图层构成:
- 一个填充开发的组成,街道、建筑-背景、建筑-底特律、填充再开发和航拍图像的图层已选中
- 一个分区包络的组成,检查了街道、分区包络、建筑 – 底特律和航拍图像图层。
- 一个现有土地利用组成,勾选了街道、建筑-土地利用、建筑-底特律和航拍图像。
点击 完成 以创建文件。
查看360度VR体验
如果您接受了默认位置,360 VR Experience 将导出到 \models\ 文件夹。右键单击 导航器 中的文件,然后点击 用 > 3VR Web Viewer 打开。
在 CityEngine中,这会启动一个浏览器窗口,您可以在其中查看VR。然而,这种导出格式的真正影响是在使用VR设备(如Oculus Quest)和其VR浏览器查看时才显现出来。
在本教程中,您学习了在处理GIS数据时的工作流程,包括以下内容:
- 将GIS数据导入到CityEngine场景中并清理街道网络。
- 从 ESRI.lib 分配规则并使用对象属性修改建筑物。
- 利用地块的分区信息创建分区包,以可视化地块的后退距离和建筑高度。
- 编辑包裹并修改属性。
- 导出 CityEngine 场景为360 VR体验。
一定要查看其他 Essentials 教程: CityEngine 之旅,使用 Get Map Data 构建城市,和 基于规则的建模。
继续学习CityEngine,请参阅 CityEngine教程目录。
评论(0)