您可以在CityEngine主菜单(Help > Download Tutorials and Examples…)以及ESRI.lib中下载教程和示例项目,其中包含您可以在项目中原样使用或作为您的起点的通用规则。自己定制的规则。要开始使用规则,您可以创建一个简单的规则文件,将其应用于初始形状并生成模型。
创建规则文件
- 在Navigator中选择项目的rules文件夹。
- 单击新建> CityEngine > CGA 规则文件…。
或者,在导航器中右键单击 规则文件夹并选择新建… > CGA 规则文件。
- 定义规则文件的名称。
- 单击 完成。
在CGA 编辑器中创建并打开一个新的 CGA 文件。除了一些标题信息外,它是空的。
该文件以自动生成的用户元信息开头。它被标记为注释并被编译器忽略。版本标签指定了最初编写此规则文件的CityEngine版本。
您可以从定义两个建筑参数开始:最小和最大高度。选择描述性名称是一种很好的做法。此外,关键字attr放在每个参数定义的前面。这样,这些值就成为Inspector中的可编辑属性。CGA 文件中设置的值是默认值。
CityEngine将注解 @StartRule识别为开始规则,因此在将规则文件分配给初始形状时无需手动指定。 Lot规则将初始形状拉伸到由我们之前定义的两个属性值之间随机选择的值定义的高度。 了解有关CGA 编辑器的更多信息。元数据
/**
* File: rule.cga
* Created: 4 May 2008 23:27:29 GMT
* Author: xxxx
*/
version "2019.0"
属性
attr minheight = 10
attr maxheight = 300
开始规则
@StartRule
Lot --> extrude(rand(minheight,maxheight))
笔记:
分配规则和生成模型
- 使用多边形形状创建工具 ( S )创建几个形状 。
- 选择形状。
- 单击形状>分配规则文件…并选择您刚刚创建的规则文件。
- 单击 打开。
- 在检查器中,“规则文件”和“开始规则”字段现在已填写。
- 属性maxHeight和minHeight出现在Inspector中。
- 单击生成模型工具 ( Ctrl+G ) 。
在视口中,您现在可以看到不同高度的拉伸。
选择一些形状并更改检查器中的属性之一。这会自动触发所选形状的重新生成。
笔记:
Inspector中的更改不会影响 CGA 文件中定义的值。
在不更改属性的情况下反复重新生成规则始终会产生相同的建筑物高度。这种行为是有意的,因为尽管您使用的是随机值,但您希望场景看起来完全相同,例如在关闭和重新打开场景时。要“洗牌”并获得新的随机值,您需要在形状上设置新种子。您可以通过单击工具栏中的更新种子工具 ( Ctrl+Shift+G )来执行此操作。
在教程 6:基本形状语法中了解有关 CGA 的更多信息 。
设置启动规则
除了规则文件之外,形状还需要有效的启动规则才能触发模型生成。如果在分配规则文件时未找到有效的启动规则, 则会打开“启动规则”对话框。
规则文件模型生成需要启动规则。启动规则也可以在Inspector中手动输入,或者通过单击Inspector中的Select… 使用Start Rule对话框进行 设置。
设置启动规则对话框
启动规则对话框显示所有可用作启动规则的规则。标记为开始规则的规则在下面的对话框中以粗体显示(另请参见CGA 注释):
选择要分配为开始规则的规则。此外,您可以选择以下内容:
- 应用于所有选定的形状:将选定的开始规则设置为所有形状。
- 仅适用于具有无效起始规则的形状:将选定的起始规则设置为具有无效或空起始规则的所有形状。此选项仅在适用时才有效。
笔记:
CityEngine尝试从规则文件中自动检测并建议启动规则。使用注释@StartRule将规则显式标记为启动规则。有关详细信息,请参阅CGA 注释。
默认开始规则
- 从街道网络(通过块细分或街道形状创建)在CityEngine内生成的形状在创建期间将其起始规则设置为默认值(Lot、LotInner、Street、Sidewalk,…)。可以使用Graph > Reset Shape Attributes将这些启动规则重置为其初始值
- 默认情况下,从 .obj 文件(任意几何)导入的形状的起始规则设置为 obj 组名称。