教程 1:必备技能

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

具有随机高度值的建筑物

在此教程中,您将了解使用 CityEngine 时所需的必备技能,例如创建场景、选择对象和编辑规则。

创建工程

首先,您将创建 CityEngine 工程。

  1. 单击文件 > 新建 > CityEngine > CityEngine 工程以打开选择向导对话框。

    新建工程

  2. 单击 下一步
  3. 工程名称框中,输入 MyFirstCity

    工程名称 MyFirstCity。

  4. 单击 完成

    MyFirstCity 工程在 Navigator 中创建。

    Navigator 中的 MyFirstCity

创建场景

接下来,您将创建场景。

  1. 单击文件 > 新建 > CityEngine > CityEngine 场景 或右键单击 \MyFirstCity\scenes\ 文件夹,然后选择新建 > CityEngine 场景以再次打开选择向导对话框。

  2. 单击下一步
  3. 文件名称框中,输入 myFirstCity_01.cej

    场景名称 MyFirstCity_01.cej

  4. 保持坐标系为空。

    有关坐标系的详细信息,请参阅地理配准

  5. 单击完成

    随即在 \MyFirstCity\scenes\ 文件夹中创建 MyFirstCity_01.cej 场景。

    Navigator 中的 MyFirstCity_01.cej

复制规则和资产

现在,您要从下载的 Tutorial_01_Essential_Skills 工程将文件复制到 MyFirstCity 工程。

  1. 单击 \Tutorial_01_Essential_Skills\rules\ 文件夹以将其展开。
  2. 选择文件夹中的内容然后按 Ctrl+C 或右键单击并选择 Copy 来复制内容。

    从教程文件夹复制的规则

  3. 单击 \MyFirstCity\rules\ 文件夹,然后按 Ctrl+V 或右键单击并选择粘贴以将内容粘贴至 \rules\ 文件夹。

    在 MyFirstCity 中粘贴文件

  4. \Tutorial_01_Essential_Skills\assets\ 文件夹重复相同的步骤。

    MyFirstCity 工程中的 \assets\\rules\ 文件夹现在包含所需的 Tutorial_1_Essential_Skills 内容。

创建您的第一个街道布局

设置新的工程和场景后,您即可创建第一个街道布局。 要了解有关街道的更多信息,请参阅图形

要创建街道网络,请执行以下操作:

  1. 单击视窗,以使其成为活动窗口。
  2. 单击图形 > 生成街道以打开生成街道对话框。

    “生成街道”基本设置对话框

  3. 保留默认设置,然后单击应用
  4. 单击关闭以关闭对话框。

    现在,您已创建约 500 个街道。

  5. A 或单击 CityEngine 工具栏中的框选视窗工具 框选视窗 以将街道框选在视窗中。

    所生成街道的视窗透视图显示

  6. 场景编辑器中单击新的 Streetnetwork 图层以展开图层。

    Streetnetwork 图层包含一个具有块、图形段和形状的网络。

    Streetnetwork 图层已展开的场景编辑器

    \Tutorial_01_Essential_Skills\ 工程文件夹中,打开 Essential_Skills_Part_2.cej 场景以查看完成的示例。

探索 CityEngine 导航

在本部分中,您将了解如何在 CityEngine 中导航,包括平移、旋转和缩放。

要在 CityEngine 中导航,可以使用以下操作:

翻转或旋转场景。

  • 单击翻转/旋转工具 旋转
  • Alt + 单击

向左、向右、向上或向下移动视图。

  • 单击平移/追踪工具 平移
  • Alt + 单击滚轮按钮
  • 箭头键

朝向或远离感兴趣点推动/缩放相机。

  • 单击推动/缩放工具 缩放
  • 按 Alt 并右键单击。

从当前相机位置旋转视图。 此操作有助于创建 360 VR 导出的书签

  • 单击环视工具 环视
  • B + 单击

有关完整操作的列表以及如何更改鼠标和导航设置,请参阅3D 导航基础知识

选择对象

您可以使用选择工具 选择工具 以选择和编辑场景中的对象并与之交互。 单击选择工具 “选择”工具 (Q)。 您也可以在 CityEngine 主菜单中单击选择 > 选择工具以打开该工具。

使用下表中的选择操作:

单击

选择单个对象。 在一个已经选中的对象上选择组件(面、边或折点)。

双击

选择并框住单个对象。

从左到右选择矩形

选择对象或组件, 这些对象完全位于所选矩形中。 地图图层不会添加到选择中。

从右到左选择矩形

选择与选择矩形相交的对象。 地图图层不会添加到选择中。

注:
  • 当有许多对象占据相同的空间时,从左到右的选择通常用于选择微小的对象,例如单个街道图形节点。
  • 使用 F9F12 键打开或关闭地图图层的可见性,图形段形状模型。 当您取消激活其他对象类型的可见性时,将有助于正确选择。

选择对象后,您可以右键单击并显示快捷菜单:

选择快捷菜单

适应 (F)

框选选择内容(如果所选内容为空,则框选整个场景)。

选择同一图层中的对象

将选择相同的一个或多个图层中的所有对象。

选择具有相同规则文件的对象

选择已分配源选择中存在的规则文件的所有对象。

选择具有相同初始规则的对象

选择源选择中存在的具有初始规则的所有对象。

生成包含规则的模型

CityEngine 是一个程序化建模应用程序,并且使用 CGA 规则。 计算机生成建筑 (CGA) 是用于生成建筑 3D 内容的唯一的编程语言。 在以下部分中,您将了解如何使用 CGA 规则生成模型。

模型生成图

  1. 视窗中,选择一个块。

    检查器块参数中,Subdivision Type 属性已设置为 Recursive Subdivision

    检查器的“块参数”对话框

  2. 单击 Subdivision Type 属性下拉菜单并将其更改为 Offset Subdivision

    更改为“偏移细分”

    有块细分和动态城市布局的详细信息,请参阅教程 2:地形和动态城市布局

  3. 选择一个块内的形状。
  4. 单击主菜单中的选择 > 选择同一组对象

    块中的形状已选中

  5. building.cga 规则文件拖动到所选形状上的 \rules\ 文件夹中。

    分配规则文件

    将规则文件放置到形状上后,将应用规则,模型将自动生成。

    形状上的规则应用后所生成建筑物的视窗透视图显示

    可见性设置 可见性设置 下,通过单击模型按钮或按 F12 以确保模型可见。

    模型可见性

  6. 删除一个模型,并将其添加回场景。
    1. 选择一个建筑物,然后按删除或右键单击并选择删除

      此操作将移除模型。

    2. 再次选择覆盖区形状,然后单击工具栏上的生成工具 生成 (Ctrl+G) 以再次根据覆盖区生成建筑物。
  7. 要查看建筑物高度的变化,请单击更新种子工具 更新种子 (Ctrl+Shift+G) 以更改种子值。

    下图显示了具有不同高度种子值的建筑物:

    不同高度种子值的示例

  8. 检查器中,将高度属性更改为 60
    检查器规则高度参数已设置为 60

    当您手动更改检查器中的属性时,属性将高亮显示并覆盖 CGA 规则中的定义。

  9. 要重置 building.cga 规则的属性,在检查器中将鼠标悬停在任意属性上,然后右键单击并选择重置用户属性

    重置用户属性

    打开 Essential_Skills_Part_4.cej 场景以查看完成的示例。

编辑规则

CGA 编辑器是一个工具,用于创建和修改从现代到当代、从古代到未来的所有城市类型的 3D 模型。 接下来,您将浏览 buidling.cga 规则。

  1. 要在 CGA 编辑器中打开 building.cga 规则,在导航器中右键单击 CGA 规则文件或单击检查器中的规则文件链接。
    检查器调整规则文件 building.cga

    building.cga 规则将在 CGA 编辑器中打开。

    规则编辑器中的 Building.cga 规则

  2. 检查 building.cga 规则。

    height 属性已定义为 15 到 25 之间的随机值。

    attr height = rand(15,25)

    在下方示例中,建筑物的随机高度值为 18.35。

    随机高度值为 18.35 的建筑物

    注:

    由于 building.cga 规则会生成一个随机值,因此在您的场景中可能有所不同。

  3. 将随机高度最终值更改为 80
    attr height = rand(15,80)

    height 属性现定义为 15 到 80 之间的随机值。

    1. Ctrl+S 或右键单击规则文件,然后选择保存以保存编辑的规则。
    2. 通过单击更新种子工具 更新种子 (Ctrl+Shift+G) 重新生成建筑物。
      随机高度值为 56.79 的建筑物

      建筑物现在的随机高度值为 56.79。

      注:

      使用更新种子工具是因为高度是一个随机值,并且在重新生成建筑物时必须更新随机种子值。

  4. 通过向 building.cga 规则添加新的 Roof 规则,可创建屋顶几何。
    1. 编辑 Lot 规则,直到其与以下规则类似:
      Lot -->
       	case shapeType == "LotInner" : 
       		 Lot.
       	else :
       	  extrude(height) comp(f) { side :  Facade | top:  Roof }
    2. 添加 Roof 规则并将形状定义为角度为 22.5roofHip
      Roof --> roofHip(22.5) Shape
    3. 保存规则。
  5. 重新生成建筑物,但这一次单击生成模型工具 生成 (Ctrl+G)。 此操作将是建筑物 height 保持 56.79

    带 roofHip 屋顶的随机高度值为 56.79 的建筑物

    Essential_Skills_Part_5.cej 场景显示完成的示例。

在本教程中,您学习了如何创建工程和场景,添加街道,导航和选择,生成模型以及编辑规则。

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