使用规则

可以在 CityEngine 主菜单(帮助 > 下载教程和示例)中下载的教程和示例工程以及 ESRI.lib 中包含多种通用规则,您可以在工程中直接使用这些规则,也可以将其作为您自定义规则的起点。 要开始使用规则,您可以创建一个简单的规则文件,将其应用于初始形状并生成模型。

创建规则文件

  1. 导航器窗口中选择您工程的 rules 文件夹。
  2. 单击新建 > CityEngine > CGA 规则文件

    或者,在导航器窗口中右键单击规则文件夹,然后选择新建 > CGA 规则文件

  3. 定义规则文件的名称。
  4. 单击完成

    系统随即创建一个新的 CGA 文件,并在 CGA 编辑器窗口中将其打开。 除了含有某些标题信息外,该文件为空。

元数据

/**
 * File:    rule.cga
 * Created: 4 May 2008 23:27:29 GMT
 * Author:  xxxx
 */

version "2019.0"

该文件将以自动为用户生成的元数据信息开头。 该元信息将被标记为注释,并将被编译器忽略。 版本标签将指定最初写入此规则文件的 CityEngine 版本。

属性

attr minheight 		= 10
attr maxheight 		= 300

您可以先定义两个建筑物参数:最小高度和最大高度。 选择描述性名称是一种较好的做法。 此外,关键字 attr 将添加到每个参数定义的前面。 这样,这些值将成为检查器窗口中的可编辑属性。 CGA 文件中设置的值为默认值。

初始规则

@StartRule
Lot --> extrude(rand(minheight,maxheight))

CityEngine 可将注记 @StartRule 识别为初始规则,因此在将规则文件分配给初始形状时无需手动指定初始规则。

Lot 规则会将初始形状拉伸到一个高度,该高度将由您之前定义的两个属性的值之间的随机选择值进行定义。

注:
  • Ctrl+S,然后单击文件 > 保存,或在 CGA 编辑器窗口中单击右键,然后选择保存以保存您的 CGA 文件。 您必须保存所做的更改才能使其作用于模型生成。
  • 要打开 CGA 文件,请在导航器窗口中双击该文件,或在主菜单中单击文件 > 打开

了解有关 CGA 编辑器窗口的详细信息。

分配规则并生成模型

  1. 使用面形状创建工具 (S) 面形状创建工具 创建一些形状。
  2. 选择形状。
  3. 单击形状 > 分配规则文件,然后选择您刚刚创建的规则文件。
  4. 单击打开
    • 检查器窗口中,规则文件初始规则字段现已填充。
    • maxHeightminHeight 属性显示在检查器窗口中。
  5. 单击生成模型工具 生成工具 或按 Ctrl+G

    视窗窗口中,您现在可以看到不同高度的拉伸。

选择一些形状并更改检查器窗口中的一个属性。 该操作将自动触发所选形状的重新生成。

注:

检查器窗口中的更改不会影响 .cga 文件中定义的值。

在不更改属性的情况下反复重新生成规则将始终产生相同的建筑物高度。 出现这种情况的原因在于,尽管您使用的是随机值,但您希望场景的外观在关闭和重新打开场景等情况下完全一致。 要获取新的随机值,您需要在形状上设置新的种子。 为此,您可以在工具栏上单击更新种子工具 更新种子(或按 Ctrl+Shift+G)。

教程 6:基本形状语法中了解有关 CGA 的详细信息。

不使用形状的情况下通过 CGA 建模

一些 CGA 规则(例如植被或家具)可以生成 3D 模型,而无需将其分配给形状。 例如,通过将 Plant_Loader.cga 规则从 ESRI.lib 库直接拖动到视窗的地形上,即可根据需要将树木放置在场景中。 将在拖动规则的位置创建一个较小的形状 (0.1m x 0.1m)。

之后,您可以使用检查器窗口修改规则属性。

设置初始规则

除规则文件外,形状还需要一个有效的初始规则来触发模型生成。 如果在分配规则文件时未找到有效的初始规则,则会显示设置初始规则对话框。

您还可以在检查器窗口中输入初始规则,或通过单击检查器中的选择以在设置初始规则对话框中进行设置。

“设置初始规则”对话框

设置初始规则对话框将显示所有可以应用为初始规则的规则。 标记为初始规则的规则将在下图中以粗体显示(另请参阅 CGA 注记):

设置初始规则
已在“设置初始规则”对话框中选择初始规则。

选择要分配为初始规则的规则。 此外,您可以选择以下选项:

  • 应用于所有所选形状 - 为所有所选形状设置初始规则。
  • 只能应用于具有无效初始规则的形状 - 将初始规则设置到所有具有无效或空初始规则的形状。 该选项仅在适用时处于活动状态。
注:

CityEngine 将尝试自动从规则文件中检测并推荐初始规则。 使用注记 @StartRule 将规则显式标记为初始规则。 有关详细信息,请参阅 CGA 注记

默认初始规则

  • CityEngine 中(通过区块细分或街道形状创建)从街道网络生成的形状会在创建过程中将其初始规则设置为默认值(LotLotInnerStreetSidewalk 等)。 您可以单击图形 > 重置形状属性,以将这些初始规则重置为其初始值。
  • 默认情况下,从 .obj 文件(任意几何)导入的形状会将其初始规则设置为 obj 组名称。

注:
有关在检查器中使用规则的详细信息,请参阅规则