教程 16:城市规划

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

本教程将介绍如何将 CityEngine 用于典型的城市规划任务。

拟建建筑物设计

简介

本教程将介绍如何将 CityEngine 应用于典型的城市规划任务。 为此,我们将使用一个虚构的开发区域作为示例,该开发区域包括位于城市中心的 9 块建筑用地。 我们的目标是设计一个可满足购物、生活和工作等需求的综合性居住区。 在本教程中,我们将为该区域开发一个符合城市分区规则的逻辑示意图设计。 (本教程是与 Matthias Buehler (http://www.garsdaledesign.co.uk) 和瑞士城市规划公司 SEILER&SEILER (http://seilerseiler.com) 合作开发的,后者已在日常工作中广泛使用 CityEngine。)

当然,与本教程中描述的简化案例相比,城市规划过程的实际复杂程度通常要高上许多。 在实际情况中,这些过程将受到许多因素的影响,例如各种利益相关者的利益、预算、工程阶段、移动性目标、基础设施承载力(公共交通、供应和废物管理)、受保护建筑物以及自然保护等。 该简化示例在大约两小时内所呈现的内容实际上需要花费数月甚至数年的时间方可实现。 CityEngine 特别适合处理此类迭代性质的过程。 通过凭借 CityEngine WebScene 共享建议的设计选项,您可以轻松管理与客户端之间的反馈循环。 由于这是 CityEngine 中的典型工作,因此针对设计的优化工作通常需要通过在检查器中调整形状、位置和更改属性来完成。 更改将立即反映在所报告的关键数字(例如 FAR,楼层面积比)中。

本教程将介绍 CityEngine 的程序式建模如何成功地应用于“要素驱动”的点和面半自动工作流。 编写用于构建放置模式的自定义分布规则可能会导致需要相当复杂的 CGA 代码,因此我们建议在本教程中仅使用点形状或手动创建的任何形式的覆盖区形状,这样可以更快地控制覆盖区分布。 许多人可能会发现该方法非常直观且更为灵活,对于中小型环境而言更是如此。

以下是对本教程的概述:

  • 城市规划工具概述了我们将用来完成城市规划任务的 CGA 文件。
  • 分区可将分区规则定义为最大建筑物高度和开发区域的退缩尺度,并将其显示出来。
  • 总体规划可为建筑用地开发逻辑示意图设计,该设计将符合刚刚定义的分区规则。

正如您将看到的,CityEngine 可在工程的多个上下文、领域和规划阶段中使用。

城市规划工具

以下是对本教程中将使用的 CGA 文件的概述:

规则:

  • Zoning.cga:将分区定义(例如退缩尺度、最大建筑物高度等)应用于建筑用地,并将其显示为框架。
  • Pointmarker_To_FootprintShape.cga:根据点标记形状创建覆盖区形状,然后使用(导入)FootprintShape_To_Building.cga 来拉伸这些形状。 您可通过格网的大小、覆盖区形态和多种其他属性轻松自定义覆盖区。 要绘制点标记,请使用形状创建工具(位于 视窗中,Shift-S)。 要旋转建筑物,请使用 'R' 键来旋转建筑物的标记。 可使用 'E' 对其进行缩放操作。
  • FootprintShape_To_Building.cga:拉伸覆盖区形状并应用建筑物用法。 该属性将切换为显示违反 Zoning.cga 中定义的分区规则的建筑物构件。 不完全位于分区体积内的构件会生成红色的几何。 该特性在直观浏览多个设计时非常有用。
  • 具有初始规则 Water bodyLandscaping.cga:可创建一个具有周围墙壁的水体。
  • 具有初始规则 TreesTreeAlleyLandscaping.cga:可创建逻辑示意图树,并允许更改其大小、分布类型、密度等。(注意:应将 TreeAlley 用于动态街道形状。)
注:
  • 一些规则会生成有用的尺寸标注文本。
  • 所有规则都会生成 CGA 报告。
  • FAR 值报告需要正确映射 parcelArea 属性才能正常工作。 请参阅其他教程手册,以获取有关“属性映射”的更多详细信息。
  • 请注意,其中的一些规则对“样式”进行了定义。 这些样式只是为本教程定义的示例“预设”,可以随意对其进行自定义以供个人使用。

样式示例:

样式

模型示例:

模型
  1. 打开带有示例模型 2_UrbanPlanning_Tools.cej 的场景。
  2. 请在遵守规则的同时尽情体验其中的乐趣!

区划图

在本部分教程中,我们将重点介绍开发框架的定义。 通常会有一个由公共机构定义的特定于区域或城市的分区系统,可将其用作总体规划的指导原则,也可将其用作旨在进一步优化任务的战略/任务声明(例如 10 年内提供 100,000 套公寓)。 为了简单起见,我们将根据空间上下文(分配、城市结构、邻近居住区等)来定义开发框架。 首先,我们将定义不同用法的排列和比例,然后指定最大建筑物高度和退缩尺度线。

虚拟设置

用法定义

用地 A 概览(向北对齐)

我们以建筑用地 A 为例来说明如何从空间上下文中获得用法。 以下为已定义的条件:

  • 用地 A 为开发区域的入口处。
  • 沿其东侧延伸的主街道为该区域带来了大量的机动车和非机动车交通量。

根据这些条件,我们计划在主街道沿线设置一个综合性区域:在底层设置商店,在高层提供服务;并将建筑物后方规划为住宅用途。

  1. 打开 3_Zoning_01.cej. 该场景包含建筑用地和邻近环境。 单击接受,随后 CityEngine 将生成所有模型。
  2. 通过选择建筑用地 A 并按 'F' 来将其放大。
  3. 空用地
  4. 分配规则 Zoning.cga
  5. Zoning.cga 选择样式 Mixed_Use
  6. 调整图层的可见性,并根据需要切换线框显示('7' 键)。
  7. 默认分区体积

建筑物高度和退缩尺度的定义

设置最大建筑物高度(通常需要在现有建筑物和分区规则中对其进行定义)。

  1. 请确保将分区体积的 maxHeight 属性设置为 50 米,以确保我们允许足够密集的上下文集成。
  2. 注:

    此外,可以查看太阳入射角(场景编辑器窗口中的图层 scene light),以检查建筑物之间的空间中的阳光直射情况。 在此示例中,我们将跳过这一步骤。

  3. 将所有退缩距离指定为 10 米,以便能够灵活使用外侧区域(停车场、户外座椅等)。
  4. 检查器中显示的带有属性值的分区体积

反映分区定义

首先,我们将测试我们的分区定义是否能够为城市中心提供足够的密度。 请注意,场景中已经存在一个小的测试形状(图层 Footprint),我们可以将其用作放置建筑物所需的定位器(在下一个屏幕截图中以绿色表示)。 实际上,我们将放置九座(3x3 格网)总高度为 50 米的多功能塔而非仅放置一座塔,并在检查器报告部分中检查 FAR

建筑物定位器形状,已准备好分配规则
  1. 打开 3_Zoning_01.cej 并生成所有模型。
  2. 将规则文件 PointMarker_To_FootprintShape 分配到覆盖区形状并生成模型。
  3. mainLength 设置为 25 并将 mainDepth 设置为 25。
  4. footprintForm 设置为矩形。
  5. gridWidthgridDepth 设置为 3。
  6. gridDistWidthgridDistDepth 设置为 35。
    注:

    您还可以使用一个预定义样式。

  7. 切换至 FootprintShape_To_Building。
  8. numberFloors 设置为 13。
  9. 查看建筑物报告。

当前的 FAR 值为 0。 为了获得正确的值,我们需要输入建筑物所占的用地面积。 最简单的方法是将该值定义为规则中的用户设置值。 请执行以下操作:

  1. 请暂时将规则 rules/helpers/reportShapeArea.cga 分配给用地形状。 记下报告值。 对于该用地,该值应为 40,445 平方米。
  2. 返回并重新分配 Zoning.cga 规则
  3. 在规则 FootprintShape_To_Building 中,在检查器中将 parcelArea 的值设置为 40,445 的用户值。
    注:

    还可在检查器中映射而非手动设置此值。

  4. 在报告部分中查看 FARFAR 值为 1.81,因此可以满足城市中心的要求。

当然,这只是一种非常粗略的设计方法,但它可以为我们快速提供 FAR 的近似数字。 现在,我们即可通过位置更精确的建筑物和更加出色的总体设计来更为深入地挖掘和确定更多细节。 我们现在就开始:

  1. 打开 3_Zoning_03.cej 并将其作为分区设计的一个示例。
  2. 随意使用其余用地的分区体积。 请提出您自己的设计!

FAR = 1.81 的城市街区

总体规划

既然我们已经在分区规则中设置了起点,那么我们就可以开始查看整个开发区域的逻辑示意图设计了。

首先,我们选择一个具有基础拓扑以及建筑用地主要用法的初始布局,并说明如何确保遵守分区规则。 接下来,我们放大一块建筑用地,并进一步优化拓扑和设计。 最后,我们将重点转移到外部空间并添加结构化元素。

逻辑示意图设计

我们准备了具有各种用法的,混合了矩形、L 形和 U 形的初始布局。 我们现在可以通过更改检查器中的属性轻松对设计进行自定义。 用于用法组合的预定义样式、覆盖区形状以及格网状阵列创建功能将使此过程变得更加简单。

  1. 打开初始场景 4_Masterplanning_01.cej
  2. 随意尝试覆盖区形状、格网、用法组合等等。在检查器中打开报告,并查看更改建筑技术规范时系统如何自动更新所报告的关键数字(例如 FAR)。
    方形建筑物的 3 X 3 格网
  3. 将覆盖区形状调整为 L 形建筑物,即可得到以下结果:
    L 形建筑物的 3 X 3 格网

现在我们来看一下如何使用给定规则来可视化任何遭到违反的分区规则。 我们可以将一个建筑物的高度更改为高于允许值的值,例如 20 层。 建筑物上超过分区规则所允许的最大高度的部分将以红色显示。

本教程的建筑物规则中包含了一小组用于实际设计建筑物的属性,尤其是总建筑物体积。 您可以构建建筑物的总高度,然后通过切掉建筑物的一部分来实现建筑物设计的最小化。 我们需要将三种属性 volumeChangeFloorIDvolumeChangeRotationrelVolumeChangeSplit 用于这一目的。 请执行以下操作:

  1. 选择一个建筑物。
  2. 将属性 visualizeBrokenLaw 设置为 True。
  3. Floors 的数量更改为 20。
之前:使用 visualizeBrokenLaw 属性

之后:使用 visualizeBrokenLaw 属性

添加两个新的地标建筑物

我们来放大中心建筑用地,并优化未来社区入口的设计。 我们将通过更改两个相邻建筑物的设计来添加地标。 4_Masterplanning_02.cej 将显示这些调整的结果。

  1. 打开 4_Masterplanning_02.cej,生成所有模型。
  2. 默认建筑物体积建议的视图
  3. 将 L 形建筑物的 numberFloors 更改为 13 并将 volumeChangeFloorID 更改为 5。
  4. volumeChangeRotation 设置为 330 度。
  5. relVolumeChangeSplit 设置为 0.5。 此举会将建筑物的形态更改为从 5 层开始的略微截短的塔。
  6. 简单拟建建筑物设计
  7. 将线形建筑物的 numberFloors 更改为 13 并将其 volumeChangeFloorID 更改为 5。
  8. relVolumeChangeSplit 设置为 0.7。 此属性将推动塔的分割,并切掉 70%(相当于 0.7)的顶部体积。
  9. 其他简单拟建建筑物设计

设计外部空间

4_Masterplanning_03.cej 将显示我们对外部空间的基本设计结果。 现在,我们准备在开发区域的入口处进一步执行放大操作并设计外部空间(这是我们对景观建筑的尝试)。 我们将通过添加水盆和树木来增加入口的美观舒适度。

  1. 打开带有外部空间设计 4_Masterplanning_03.cej 的场景。
  2. 我们先从一个简单的水池开始。 创建一个正方形,然后将规则文件 Landscaping.cga 与初始规则 Waterbody 一起应用。
  3. 添加的景观元素:一个大水池
  4. 在我们这个虚构的城市中,夏天的温度相对较高。 因此,我们沿着街道添加一排树。
  5. 请继续使用当前的景观工具来创建自己的外部设计!
  6. 如果遇到问题,请查看我们在 4_Masterplanning_04.cej 中的结果。
    简单建议设计
  7. 更改您的视图。
    简单建议设计的备用视图

显然,在本教程中我们只有时间专注于这种小而抽象的设计。 但是,我们希望本教程对您有所帮助,并已演示了 CityEngine 可用于您的城市规划方案的多种方式。