使用 GIS 数据

要访问 ArcGIS CityEngine 中的教程工程,请打开 CityEngine,然后在主菜单中单击帮助 > 下载教程和示例。 在选择教程或示例后,系统会自动下载工程并将其添加到 CityEngine 工作空间。

本教程与 Houseal Lavigne Associates 的 Devin Lavigne 合作创建。

底特律开发概览

使用您自己的数据

使用 GIS 数据是城市规划的关键工作流。 本教程将向用户介绍 GDB 的导入以及如何使用实际 GIS 信息程序化地创建 3D 城市

存在现有 GIS 信息时,CityEngine 可以导入数据并使您能够访问几何及其所有空间属性。 例如,具有退缩尺度信息的宗地可以将此信息传递给 CityEngine 以便快速生成分区包络,或者可以使用现有的土地利用信息来生成典型建筑物。 如果您正在研究重新开发概念,并将此概念应用于现有开发环境,则可能发现此方法十分有用。 在这种情况下,可以轻松地从现有 GIS 信息生成现有环境,从而有机会重新开发特定宗地。

本教程围绕一个实际用例构建,该用例使用 CityEngine 帮助底特律市量化和可视化填充式开发。 2021 年 5 月,美国住房和城市发展部 (HUD) 选择底特律作为其竞争激烈且令人垂涎的 Choice Neighborhoods 拨款计划的赢家。 Corktown 社区位于底特律市中心以西,3000 万美元的 HUD 拨款将帮助这一复兴中的社区建设 500 个经济适用房单元。

底特律对该区域的规划依赖于 Greater Corktown 框架,此框架在城市规划与发展部和住房与振兴部的共同努力下完成,制定过程历时 18 个月。 城市领导者、居民、社区组织和非营利组织以及私人开发社区团结合作,助力底特律振兴社区区域及应对各种挑战。 Greater Corktown 框架要求:

  • 更换贫困的公共援助住房。
  • 改善家庭的教育、就业和健康情况。
  • 更好地整合经济适用房和市场价住房,以确保为所有居民提供舒适的多元化社区。
  • 对贫困地区进行再投资以提供便利设施和资产,例如提高安全性和提供幼儿教育。

在 Greater Corktown 框架的后续实施行动中,使用了 CityEngine 可视化框架的建议和政策,并借助其仪表盘和报告为拨款申请和未来的决策制定提供信息。 本教程使用城市的 GIS 信息以类似方式完成该工程,其中涵盖了与使用现有 GIS 信息相关的常见工作流和任务。

导入数据

教程的第一步是将要素或图层以及经过地理配准的航空影像从文件地理数据库导入场景。

导入图层

通过转至文件 > 导入,即可使用菜单导入数据。 在对话框中选择位于 CityEngine 图层文件夹中的文件地理数据库导入

导入对话框

此操作将打开文件地理数据库对话框,您可在其中浏览至工程的 Corktown.gdb 文件夹中的 \Essentials_Work_with_GIS_Data\data 文件地理数据库。

文件地理数据库对话框

或者,您可以右键单击 Essentials_Work_with_GIS_Data 工程内 data 文件夹中的 Corktown.gdb 文件地理数据库,然后选择导入。 此操作似乎更加容易,请记住本教程已为您将数据移动到此目录。 您可通过文件 > 导入方法浏览至计算机或网络上任意位置的地理数据库。

导入图层之前,您需要确保已取消选中从图形创建块/地块形状复选框。 由于您正在使用实际宗地,因此不需要 CityEngine 帮助我们创建区块和宗地。

选择要导入的图层

取消选中 \Corktown\Buildings_Detroit 数据集,然后单击完成。 将所有数据导入场景后,其外观应与下图相似。

视窗中的已导入文件地理数据库

导入航空影像

要导入航空影像,请在 Navigator 中浏览至 \maps\CorktownAerial 文件夹。 将 Aerial Base.jpg 文件拖动到场景中,此操作将启动一个用于完成导入的对话框。

Navigator 中的 Aerial Base.jpg

选择纹理导入,然后单击下一步。 在下一个屏幕上,单击完成

导入纹理

清理街道网络

使用街道时的第一步是执行一些在处理自己的数据时可以预见的常见清理操作,然后再应用 CGA 规则。

您可能会注意到街道中心线的图形网络延伸到研究区域之外并且长度有所不同。 您希望将其缩短到比交叉点稍长的位置。 虽然这只是样式方面的变化,但可以使图形更清晰,有助于将注意力集中在研究区域。

设置图层可见性

首先,需要手动关闭除了 StreetCenterlines_Corktown 图层之外所有图层的可见性。 这样做可以聚焦于此图层,不受其他信息的干扰。

设置图层可见性

缩短街道路段

可以使用选择工具 选择工具 (Q) 选择街道网络一侧的节点,然后单击变换移动工具 移动工具 (W) 移动节点以缩短其长度。

移动前的“变换移动”工具

移动后的“变换移动”工具

您可能已经注意到,可以使用红色或蓝色箭头沿场景的世界方向拖动结点。 您可以通过使用变换工具选项中的调整位置和方向切换键或按 (o) 沿街道格网临时调整方向来更改此行为。

在研究区域周围操作,直到最终得到的外观与下图相似。

街道已调整

修复冲突形状

您可能会注意到其中一个交叉点存在需要修复的错误。 此错误称为冲突形状,当 CityEngine 没有足够的空间来创建与交叉点和结点关联的几何时,就会出现这种错误。

存在错误的交叉点

首先选择导致错误的结点。 现在,在 Inspector 中更改 Node Parameters 部分中的 Curb Radius。 将值从 3 更改为 2,错误应该已经解决。

错误已修复的交叉点

简化拐角

这是您导入的数据中存在的另一个问题。 数据可能包括 z 值(高度),或者 CityEngine 在下方拐角处向上弯曲街道。 通过仔细检查,您可以看到此拐角处有三个结点。 常规提示:图形网络中的结点/折点越少,冲突就越少,并且图形网络更易于调整。

存在 z 值错误的交叉点

要移除结点,仅需将其选中,然后使用变换移动工具 移动工具 (W) 将其移动到相邻结点上方。 结点应该会自动捕捉,在您放手后,两个结点将合并到一起。 您需要在此位置执行两次操作。

使用变换工具修复 z 值错误

调整拐角曲线

剩下一个结点后,最后的清理步骤是修复这条街道的曲线和位置。 选择最后一个剩余的结点,然后激活编辑街道/曲线工具 编辑街道/曲线工具 (C)。 您可以使用此工具移动所选结点,并使用控点编辑拐角/曲线的长度和弧度。 打开 Parcels Corktown 图层以查看参考线,然后使用编辑街道/曲线工具 编辑街道/曲线工具 调整道路以适应宗地之间的区域。

调整拐角曲线

使用 ESRI.lib 规则

CGA 规则可将形状转为 3D 模型。 您将应用于街道的规则文件已经创建并作为 ESRI.lib 中的规则之一提供。ESRI.lib 是一个 CityEngine 工程,其中包含由大量有用资源(例如 CGA 规则和资产)组成的库。 这些规则可以帮助您着手处理工程。 ESRI.lib 已自动安装到您的 CityEngine 工作空间中。

选择街道形状

选择所有与中心线关联的形状。 可以通过多种不同的方式选择对象:使用选择工具 选择工具 (Q) 进行手动选择、使用选择菜单,或者右键单击场景编辑器中的 StreetCenterlines_Corktown 图层,然后单击选择对象

分配规则

选择所有形状后,您现在可以通过单击 Inspector 窗口的规则部分中的分配来应用规则。 此操作将打开一个对话框,您可以在其中导航至 \ESRI.lib\rules\Streets\Street_Modern_Standard.cga 规则。 选择规则后,单击打开以将其分配到形状。

“分配规则文件”对话框

或者,您可以直接将规则拖放到 ESRI.lib 工程文件夹中的选定形状上。

突出显示要应用规则的街道

在场景中生成的街道模型:

应用规则后的街道模型

使用现有建筑物

其中一个导入场景的图层是 Buildings_Corktown 图层,此图层包含社区中的现有建筑物。 您可以借助 CGA 使用现有信息将其变换为 3D 模型。

Buildings_Corktown 图层设置为可见,并隐藏场景编辑器中的所有其他图层,然后继续操作。

对象属性

使用您自己的 GIS 信息的主要优势和原因之一是可以将属性映射到 CityEngine 中的形状。 工程中的覆盖区数据包括五个属性,您可以使用它们来驱动生成模型 - STORIES(高度)、DESCRIPTION(屋顶形态)以及 RED,GREEN,BLUE(建筑物颜色)。

具有对象属性的形状

应用底特律建筑物规则

使用 DetroitBuildings.cga 文件夹中的 rule 规则以应用于现有建筑物。 此过程与您在本教程之前的部分中对街道应用规则的过程相同。 右键单击 Buildings_Corktown 图层并单击选择对象。 现在,您可以像为街道分配规则一样在 Inspector 中分配规则,或者将 DetroitBuildings.cga 规则从 Navigator 拖动到所选建筑物形状上。

分配底特律规则

通过 Inspector 窗口分配规则的唯一区别是不会自动生成形状。 单击生成模型工具 生成工具 (Ctrl+G) 以生成模型。

选择要生成的模型

使用形状生成的模型

自动字段映射

3D 模型会根据数据的准备方式和 CGA 规则的编写方式自动生成。 由于 CGA 规则包含与 GIS 数据中的字段同名的属性,因此字段映射会自动进行。 因此,应用规则后,模型会被拉伸到适当的高度,并根据 GIS 中的 RGB 值着色,并且如果 DESCRIPTION 属性已设置为 Single-Family Housing,则会应用四坡屋顶。

如果查看 Inspector 窗口,将看到 (Object) 字样以斜体字显示在属性旁边。 此信息通知您已根据对象或形状的属性提供此 CGA 属性。 请注意,您可以通过更改规则对象属性部分中的值来覆盖其中的任意属性。 您可以在此部分中查看所有值。

应用底特律规则后的对象属性

重命名图层

建筑物已拉伸和着色后,您可以重命名图层以便组织场景。 将图层重命名为 Buildings-Land Use。 您可以通过以下方式重命名图层:

  • 双击图层名称。
  • 右键单击图层,然后单击重命名
  • 选择图层,然后在 Inspector 中输入新名称。

重命名图层的方法

分区包络

通常,社区规划者需要可视化分区规则如何影响可在宗地上建设的建筑物。 借助 CityEngine,此过程得到了简化,尤其适用于已在街道上识别并设置宗地的情况。

接下来,您将使用宗地中的分区信息来创建分区包络,以帮助您可视化所需的退缩尺度和建筑物高度如何限制放置和施工。

调整场景编辑器,仅 Parcels_Corktown 图层中的形状可见。

分配街道边

由于您正在使用自己的宗地数据,而非 CityEngine 根据街道网络创建的形状,因此需要识别每个宗地面向街道的边。 此手动过程包括选择面向街道的宗地边,然后在主菜单中选择形状 > 设置街道边

更改您的视图,以便一次性地在多个街道边周围拖出一个选择框。

选择街道边

设置街道边目录

设置键盘快捷键

执行此类过程时,可能会发现需要耗费大量时间访问菜单中的工具。 要加快速度,请考虑设置快捷键。 要设置快捷键,请在主菜单中单击编辑 > 首选项。 搜索按键。 您可以通过此操作为菜单工具绑定按键或按键组合。 在下方示例中,设置街道边的键盘快捷键已配置为 Ctrl+Shift+E。 现在,当您选择一条边或一组边时,该按键组合会自动将边设置为街道边。

配置键盘快捷键

将规则应用于宗地

要选择所有宗地,右键单击 Parcels_Corktown 图层,然后单击选择对象

ZoningEnvelope.cga 规则位于 \rules\ 文件夹中。 这是一个简单的规则,适用于文件地理数据库宗地中的属性数据,并且可以自动将退缩尺度信息转换为简单的分区包络。

选择宗地后,将规则从 Navigator 拖动到其中一个宗地上。

自动属性映射

与现有建筑物类似,宗地和 ZoningEnvelope.cga 规则使用相同的字段或属性准备,因此字段映射会自动进行。

您可能会遇到某些正视图/后视图翻转的形状。 这是因为街道边不是出于某种原因而设置的。 要解决此问题,您仅需重复执行为这些形状分配街道边的过程。 最后,结果应该类似于下图:

已创建分区包络

由于宗地图层现在为 3D 分区包络,因此将图层重命名为 Zoning Envelopes 以帮助组织场景。

填充式开发

作为 HUD 拨款的一部分,底特律市将为处于快速重新开发阶段的 Corktown 社区建设 500 多套新的经济适用房单元。 在过去的几十年里,底特律土地银行管理局一直在收购破旧宗地和空置宗地,使城市中的破旧和空置资产恢复生产用途是其使命的一部分。 本教程的下一部分会将土地银行管理局拥有的宗地变换为 3D 开发模型。

复制建筑物图层

首先,关闭所有图层,使所有内容均不可见。 接下来,在场景编辑器中单击 Buildings–Land Use 图层以将其选中。 然后,在主菜单中单击图层 > 复制以创建图层的副本。 将此新图层重命名为 Buildings–Context

准备上下文图层

右键单击 Buildings–Context 图层,然后单击选择对象。 选择所有对象后,在 Inspector 中将颜色模式选项更改为白色。 此操作可以使现有建筑物不那么突出。

更改上下文图层的颜色

删除土地银行宗地上的建筑物

打开 Landbank_CorktownBuildings–Context 图层的可见性,并确保其他所有图层均处于关闭状态。 您将注意到有一些建筑物位于土地银行拥有的宗地上。 这些房屋可能已经拆除,或者计划拆除,以使宗地可用于新建筑。 在场景中移动,选择位于土地银行宗地上的任意建筑物,然后按 Delete 键。

删除土地银行宗地

删除土地银行宗地之后

应用重新开发规则

选择 LandBank Corktown 图层中的所有对象,将 LandbankDevelopment.cga 规则应用于形状/对象,然后单击生成模型工具 生成工具 (Ctrl+G) 以创建 3D 模型。 该规则会将城市分区规则应用于宗地,并在宗地上生成新的房屋。

分配街道边

现在,所示内容与预期不符,因为与宗地图层相似,CityEngine 需要您识别 Landbank_Corktown 宗地面向街道的边。 与之前一样,此手动过程包括简单地选择面向街道的宗地边,然后在主菜单中单击形状 > 设置街道边。 同样,如果您更改视图,以便一次性在多个街道边周围拖出一个选择框并将街道边设置为许多对象,则此操作会更加简单。 在场景中移动并确保已设置所有街道边。

选择街道边

已设置街道边的宗地

如果 CityEngine 由于所有树模型而速度变慢,请考虑在 Inspector 中将其表示从 Realistic 更改为 Fan

编辑宗地和属性

虽然此规则在大多数情况下会生成可行的重新开发方案,但有些宗地形状独特,不会产生可实现的建筑物。 不用担心,这种情况在现实世界中十分常见,这是房产被细分和合并的主要原因之一,也是业主申请变更或免除分区要求的主要原因之一。 教程的下一部分将聚焦于完成开发所需的形状编辑和属性更改。 请注意下方的某些方法需要在形状上执行,而其他方法则是在 Inspector 中微调 3D 模型的属性。 F12 键是十分实用的快捷键,可用于隐藏和显示模型,您可以通过此键在最实用的视图状态之间切换,以执行编辑。 您还可以通过单击可见性设置 可见性设置 中的模型来将其手动打开和关闭。

可见性设置

分割大型宗地

可以将几个大型宗地分割以容纳两个房屋。 在形状上单击以将其选中。 按 I 键以隔离选择内容,隐藏除了所选宗地之外的所有内容。 接下来,在宗地上放大,按 F 键以框住选择内容。 请单击面形状创建工具 面形状创建工具 (S),或在主菜单中单击形状 > 面形状创建。 将鼠标悬停在形状中点附近时,CityEngine 会将绘制工具捕捉到线的中间。 单击以设置线的起点。 在要分割宗地的位置绘制一条线,并捕捉到对边的中点处,然后单击以完成该线。

分割前后的宗地

尽管看起来这条线已将宗地一分为二,但该过程还没有完成。 要完成分割,请在主菜单中单击形状 > 分离面以分离面。 执行此操作时,形状将消失,因为在技术层面上您已创建两个新形状。 再次按 I 键以离开隔离模式,新形状以及所有其他形状将返回到视图中。 在场景中重复此过程,将较大宗地分割为两个或更多的较小宗地,以最大化填充式重新开发。

分离面

合并小宗地

另一种常用的编辑方法是将两个或更多形状合并为一个。 您的场景中有一些尺寸较小或形状不规则的宗地,应该将其合并为一个更合适的宗地。 为此,仅需要选择第一个要合并的宗地,然后在按下 Shift 键的同时选择第二个宗地。 现在,在菜单中单击形状 > 联合形状以将形状合并到一起。 在整个场景中重复此过程,只要您认为应该将两个或更多宗地组合在一起以产生更具可行性的建筑物,即可执行此操作。

联合形状

在 Inspector 中调整退缩尺度

对形状的大小感到满意后,可能仍然有一些房屋或 3D 模型无法实现您所期望的开发。 在场景中移动,查找对结果不满意之处。 选择形状或模型,然后更改退缩尺度属性,本质上来讲即创建例外情况,规划者也可能将这种情况称为差异。 这是一个迭代过程,您可能还需要通过设置街道边来更改前院的位置。

调整退缩尺度之前

调整退缩尺度之后

为了便于组织场景,将此地图重命名为 Infil Redevelopment。 这虽然不是必要操作,但您可能会发现在场景编辑器中单击并向上或向下拖动图层十分便于重新组织图层。

确保模型均已生成并处于可见状态,您的场景应如下图所示:

Infil Redevelopment

添加上下文

导出前,将最后一个图层添加到场景中,此图层为站点周围的建筑物图层,可为模型提供额外的上下文。 Corktown 社区位于底特律市中心以西,其他建筑物可以为场景提供更多信息。

导入现有建筑物数据

您可以按照与教程开始时相同的方式导入上下文建筑物的覆盖区。 单击主菜单中的文件 > 导入。 接下来,单击 CityEngine 图层 > 地理数据库导入。 单击下一步。 浏览至工程的 \data\ 文件夹,然后选择 Corktown.gdb。 最后,仅选择 Buildings_Detroit 图层,然后单击完成

文件地理数据库对话框

Buildings_Detroit 图层重命名为 Buildings–Detroit

应用 CGA 规则

右键单击新图层并选择选择对象,可以选择所有新建筑覆盖区。 选择所有新建筑物覆盖区后,将 DetroitContextBuildings.cga 规则拖到覆盖区上。 这样,可以将规则分配给所有已选形状并生成模型:

使用 DetroitContextBuilding 规则生成的模型

导出

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 Experience

使用您在本教程中创建的图层,准备三个不同的图层组合。

  1. 填充式开发组合,其中已选中 Streets、Buildings – Context、Buildings - Detroit、Infill Redevelopment 和 Aerial Image 图层
  2. 分区包络组合,其中已选中 Streets、Zoning Envelopes、Buildings - Detroit 和 Aerial Image 图层;
  3. 现有土地利用组合,其中已选中 Streets、Buildings – Land Use、Buildings – Detroit 和 Aerial Image 图层。

单击完成以创建文件。

查看 360 VR 体验

如果您接受默认位置,则 360 VR 体验将导出至 \models\ 文件夹。 在 Navigator 中右键单击文件,然后单击打开方式 > 3VR Web 查看器

CityEngine 中,此操作会启动一个浏览器窗口,您可以其中查看 VR。 但是,当您使用 VR 设备(例如 Oculus Quest)的 VR 浏览器查看这种导出格式时,会注意到这种格式的真正效果。

360 VR 体验 web 应用程序中的填充式开发

360 VR 体验 web 应用程序中的分区包络

在本教程中,您学习了处理 GIS 数据时的工作流,其中包括以下内容:

  • 将 GIS 数据导入 CityEngine 场景并清理街道网络。
  • 在 ESRI.lib 中分配规则并使用对象属性修改建筑物。
  • 使用宗地中的分区信息来创建分区包络,以可视化宗地退缩尺度和建筑物高度。
  • 编辑宗地并修改属性。
  • 导出 CityEngine 场景作为 360 VR Experience。

确保已检出其他基础知识教程:CityEngine 教程通过“获取地图数据”构建城市以及基于规则的建模

要继续学习 CityEngine,请参阅 CityEngine 教程目录