检查器

检查器是用于查看和修改场景对象(例如形状、图形、地图图层或静态模型)的属性和参数的主要工具。 根据所选的对象类型,检查器用户界面会有所不同,并且提供对象属性的访问权限。

要打开检查器窗口,在主菜单中单击窗口 > 检查器,或者按 Alt+I

检查器支持针对单个对象和对象集合的属性编辑。 在所有对象中唯一的属性将按原样显示。 如果属性在对象集合中具有不同的值,则该属性将用问号标记为非唯一属性。 选择多个对象时,会显示前导对象的属性。 前导对象是最新的单独选择对象。

对于地图图层,您可以更改地图文件、修改边界和调整显示偏移(地图渲染相对于实际地图值的偏移量)。 另外,可以指定地图的叠加颜色和 Alpha 值。 有关详细信息,请参阅地图图层概述

探索属性

检查器窗口中可用的属性取决于视窗中所选场景对象的类型。 通过单击不同对象类型的图标,可以在其之间进行切换。 同样,如果将鼠标悬停在图标上,您将看到选择了多少该类型的对象。

下图是选择不同场景对象的示例,其中显示了路段属性:

“检查器”窗口中的已选对象

参数

参数可用于驱动街道形状的创建过程。 您可以使用参数部分调整所有街道参数并更改其形状几何,例如街道宽度或结点类型。

以下场景对象包含参数:路段、人行道、结点和区块。 有关详细信息,请参阅路段和人行道参数结点参数区块参数

参数可以具有不同的源,这些源支持对值进行精细控制。 有关详细信息,请参阅

注:

形状和地块没有参数。

复制并粘贴参数

为了高效编辑,您可以将参数从一个所选对象复制并粘贴到一个或多个相同类型的所选对象。 为此,选择一个使用参数的对象,例如结点或路段参数。 接下来,单击更多选项 更多选项菜单 然后选择复制 {参数类型} 参数。 选择要应用参数的对象。 最后,单击更多选项 更多选项菜单,然后选择粘贴 {参数类型} 参数

复制并粘贴参数

规则

规则部分中,您可以控制可能包含颜色、建筑物样式、楼层数、分区类型等属性的 CGA 规则。

可以将规则分配给以下场景对象:形状、路段、人行道、结点和地块。

规则属性可以具有源,这些源支持对值进行精确控制。 有关详细信息,请参阅

复制并粘贴规则属性

您可以复制并粘贴规则属性,以将其应用于场景中其他任意形状类型的对象。 按照参数部分中列出的步骤操作。 此时,在规则部分中单击更多选项 更多选项菜单 以复制并粘贴规则属性:

复制并粘贴规则属性

有关规则的详细信息,请参阅基于规则的建模使用规则

对象属性

对象属性部分下,列出了附加到所选场景对象的对象属性。

以下场景对象可以具有对象属性:形状、路段、结点、人行道(显示段或节点的属性)、区块、地块和静态模型。

某些对象属性是在导入或生成动态形状时自动创建的。 可编辑或删除的属性值背景为灰色,而只读属性的背景为白色。

添加对象属性

要添加对象属性,请执行以下操作:

  1. 单击更多选项 更多选项菜单,然后选择添加新对象属性

    添加对象属性

    随即显示创建属性对话框:

    “创建属性”对话框

  2. 提供属性名称类型的信息。

    CityEngine 具有以下对象属性类型:

    • BOOL - 布尔型
    • FLOAT - 浮点型值(双精度)
    • STR - 字符串(UTF-16 编码)
    • BOOL[ ] - 布尔值数组
    • FLOAT[ ] - 浮点型值数组
    • STR[ ] - 字符串数组
    注:
    • 提供属性值时,您可以为浮点数(非数字)提供 NaN 值,或为字符串提供 NULL 值。
    • 在提供属性数组的值时,请使用逗号来分隔值,具体如下:
      • 1,2,3,4,NaN,6
      • a,b,c,d,e,f,NULL,h,i,j
      • true,false,true,false
    • 也可用方括号对数组值进行格式化,以便从 CGA 代码或控制台输出中进行复制:
      • ["a", "b", "c"]
      • [a,b,c]
  3. 单击确定

复制并粘贴对象属性

您也可以复制并粘贴对象属性,以将其应用于场景中的其他对象。 按照参数部分中列出的步骤操作,但是改为在检查器窗口的对象属性部分中单击更多选项 更多选项菜单 以复制并粘贴对象属性。

复制和删除对象属性

可以通过右键单击任何对象属性来复制或删除对象属性。 仅可复制只读属性。

数组属性

CityEngine 支持浮点型、字符串型和布尔数组。 您可以查看和编辑规则属性和对象属性的数组。

在数组表中编辑属性

要创建或修改数组属性,请执行以下操作:

  1. 单击展开菜单按钮 展开菜单 以展开数组属性。

    数组索引将以灰色显示。

    数组属性
  2. 单击添加按钮 + 以将新行添加到数组末尾。

    所添加的元素将设置为适用于每种类型的默认值(即适用于浮点数的 0、适用于字符串的 "" 以及适用于布尔值的 false)。

  3. 单击一个元素即可对其进行编辑。
  4. 右键单击以添加、复制或删除行。

2D 数组显示在表视图中。 行索引显示在左侧。 列索引显示在顶部。

2D 数组显示在表中
2D 数组显示在表中。

使用数组菜单编辑列表

要使用数组菜单编辑列表,请执行以下操作:

  1. 单击展开菜单按钮 展开菜单,然后从下拉菜单中选择编辑列表

    编辑列表

  2. 修改编辑列表对话框中的值。

    您可以使用此工具栏复制、添加或删除元素。

    也可以右键单击以添加、复制或删除行。

  3. 单击确定

    新值将添加到数据模型和场景中。

使用数组菜单编辑表

当一个对象有许多遵循 prefix_... 语法的属性数组(例如,MyAttribute_AMyAttribute_BMyAttribute_X)时,可以从下拉菜单中编辑属性值并为每个属性选择编辑表

要编辑多个数组属性,请执行以下操作:

  1. 从其中一个属性的下拉菜单中单击编辑表

    该操作将打开一个数组属性表以进行编辑。

  2. 修改每个列中的值。
  3. 单击确定

资源

属性和参数可以具有不同的源,这些源允许对值进行精细控制。 以下是可能的源的列表:

默认值

所使用的默认值。 对于规则属性,此为初始属性值。 对于参数,此为算法指定的默认值。

用户

由用户输入的值。 每当用户(包括通过 Python)设置值、使用滑块或控点时,系统就会将源设置为用户定义。

对象

该值获取自相应的对象属性。 该值将以斜体显示,并用(对象)进行标记。

形状

规则属性可以使用父形状中的值。 例如,街道形状可以对街段的 streetWidth 进行采样。 该值将以斜体显示,并用(形状)进行标记。

图层

该值将连接到图层属性。 该值将以斜体显示,并用带有括号的源图层进行标记。 有关详细信息,请参阅编辑地图图层属性

注:

  • 创建连接和设置源的最有效方式是使用连接编辑器
  • 在规则分配期间,名称与规则属性匹配的对象属性将会自动建立连接。
  • 每当您向参数或属性键入值时,该参数或属性都将自动更改为用户源。

使用连接编辑器映射属性

CityEngine 中的属性和对象参数可以从多种源进行控制。 连接编辑器菜单可帮助创建这些属性连接。

要映射特定属性的连接,请执行以下操作:

  1. 单击属性的下拉菜单。
  2. 单击连接属性以打开属性连接编辑器菜单。
  3. 设置属性连接。
  4. 单击确定

属性连接编辑器菜单中具有以下选项:

对象属性

将您的属性连接到对象属性。 此选项仅在以下情况下可用:

  • 场景对象的对象属性具有匹配的名称。
  • 对象属性的类型与所需的属性类型相匹配。

形状参数

将属性连接到父形状参数。 此选项仅在以下情况下可用:

  • 此为规则属性。
  • 规则文件已附加至交叉点、街道或区块(地块)的形状。
  • 该属性与形状参数具有相同的名称
  • 形状参数的类型与所需的属性类型相匹配。

图层属性

将属性从任意图层连接到图层属性。 从下拉菜单中选择源图层,然后从下拉菜单中选择所需的图层属性。

每个图层都将提供其可用图层属性的列表,其中包括以下内容:

  • 地图图层的通道属性 - 图层图像的颜色通道(红色、蓝色、绿色、alpha、亮度等)。 其标记为(地图通道)。
  • 对象属性 - 源图层中对象的对象属性。 其标记为(对象属性)。
  • 其他属性 - 现有表达式或映射。 其标记为(图层属性)或(表达式)。

注:
如果已经存在与您的属性同名的图层属性,则新属性可能会覆盖现有属性。

重置属性

您可以通过属性下拉菜单中的默认规则选项来重置特定属性。 根据属性的类型,此属性将重置为算法的默认值(例如街道形状创建)或规则文件中的默认值(规则属性)。 属性快捷菜单(通过右键单击打开)也提供了其他选项:

  • 重置用户属性 - 将此规则文件的所有用户设置属性重置为其默认(规则)值。
  • 重置所有属性 - 将此规则文件的所有用户设置和映射的属性重置为其默认(规则)值。

使用图层属性映射对象属性

每个图层都可以定义任意一组图层属性。 然而,地图图层通常使用其图像数据作为图层属性的源,而图形和形状数据图层则可以将其矢量对象查询至图层属性。

对象属性映射和采样

图层属性可用于将其场景对象的对象属性映射到具有不同名称的属性,或映射到其他图层上的对象。

注:

对于比较简单的情况,请使用连接编辑器来执行属性映射。

可通过以下命令之一使用图层属性对结点、线段和形状的对象属性进行映射或采样:

getFloatObjectAttr(name)
getFloatObjectAttr(name, sample)

getStringObjectAttr(name)
getStringObjectAttr(name, sample)

getBoolObjectAttr(name)
getBoolObjectAttr(name, sample)

getFloatArrayObjectAttr(name)
getFloatArrayObjectAttr(name, sample)

getStringArrayObjectAttr(name)
getStringArrayObjectAttr(name, sample)

getBoolArrayObjectAttr(name)
getBoolArrayObjectAttr(name, sample)

这些命令将在图层内以匹配名称搜索对象属性。

如果 sample 参数为 false,则系统仅会检查形状的对象属性。 如果 sample 为 true(默认值),且形状没有此类对象属性,则系统将为指定的 name 对属性图层中的重叠形状进行采样。

如果您在街段上使用对象属性 width 来控制所创建街道形状的宽度(街道参数 streetWidth),则 getFloatObjectAttr 将允许属性图层从其他对象获取值。

attr streetWidth = getFloatObjectAttr("width")

要使用此图层属性,请将街道参数窗格中 streetWidth 参数的源设置为其自己的图层。 以下是一个依赖于属性的 streetWidth 参数示例:

依赖于其他属性的 streetWidth 参数
streetWidth 参数依赖于其他属性。

streetWidth 属性从对象属性 width 映射。 现在即可使用图层属性 streetWidth 来控制街道形状的街道宽度。

注:

在导入 OSM、形状或 GDB 数据时,系统会在导入的图层上自动创建一组预定义的图层属性。 选择新图层,然后在检查器窗口中显示或修改所创建的图层属性。

报表

报表部分将列出所选模型的所有已报告变量。 下表对示例进行了说明:

检查器中的报表表格
显示“检查器”窗口中的报表表格。

报表

计算出的报表变量的名称。

N

报表变量的出现次数。

% (N)

变量出现在组中的百分比。

总和

变量值的总和。

%(总和)

组中变量值总和所占的百分比。

平均

变量值的平均值。

最小值

变量值的最小值。

最大值

变量值的最大值。

NaNs

非数字值的出现次数。 例如,字符串变量(例如 RetailOffice)没有数值。

注:

报表变量可能包含一个点,用于将常用组名称与变量名称分开,例如 FAR.Office 或 FAR.Retail。 这些变量将合并在 FAR 组中。

有关详细信息,请参阅教程 11:报告。 此外,报表操作中还具有有关使用 CGA 规则进行报告的其他详细信息。