CGA 属性

属性是在具有以下属性的规则文件中定义的一组全局变量:

  • 相对于规则文件的范围而言,这些属性为全局属性。
  • 每个属性都将在规则文件中初始化为一个特定的值。
  • 可以基于每个形状单独更改属性值。

您可以在检查器窗口的规则窗格中执行此操作。

注:

不同于函数,系统在生成过程开始时仅会评估一次属性。

示例

attr height = 150
attr landuse = "residential"

Lot --> extrude(height) Envelope(landuse)

在本例中,使用 attr 关键字定义了两个属性:height(其类型为浮点型)和 landuse(其类型为字符串型)。 这些属性将在 Lot 规则中使用。

属性也可以是条件属性或随机属性:

attr landuse = 50% : "residential" 
               else : "industrial"

在本例中,landuse 有 50% 的可能性被评估为 "residential",还有 50% 的可能性被评估为 "industrial"。 对于每种形状,系统都会评估一次条件或随机属性,并在生成过程中使其保持不变。

同样,您可以使用 rand() 函数:

attr height = rand(30,50)

Lot --> extrude(height) Envelope

Envelope --> 
    case height < 40 : SmallBuilding
    else: LargeBuilding

对于每个开始规则为 Lot 的形状,height 的估算值将介于 30 到 50 个单位之间。 该高度为恒定值,且可用于规则文件中的任意位置。

注:
  • 您可以单击并编辑该值,或使用滑块修改该值。 有关使用不同的源控制规则属性输入的详细信息,请参阅属性、源和连接
  • 可以通过 CGA 注记来控制检查器窗口中属性的显示。
  • 您可以使用交互式控点在 3D 视图中编辑属性。

在“检查器”窗口中更改属性

您可以在检查器窗口中针对每个初始形状单独设置标有 attr 的函数值。 例如,下面的定义将在规则参数部分中产生一个条目。

@Range(min=10, max=40)
attr height = 20

将值分配给多个形状

您可以采用手动方式将值快速分配给多个初始形状。 完成以下步骤以将属性分配给多个形状:

  1. 选择两个初始形状,这些形状需要具有已分配 heightroofColorroofType 属性的规则文件。

    被分配了具有 height、roofColor 和 roofType 属性的规则的所选形状

  2. 将高度值更改为 40。

    两个所选形状的高度值均已更改。

    高度值已更改的所选形状

  3. 仅选择一个形状(或模型),然后将 height 值更改回规则默认值 20。
  4. 将两个模型全部选中。

    height 值将显示为问号 (?),表示两个所选模型的此属性值不同。