使用规则

您可以在 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 注记):

设置初始规则
设置初始规则

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

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

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

默认初始规则

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