检查器是用于查看和修改对象(例如形状、地图图层和模型)属性的主要工具。 根据所选对象的类型,检查器会调整其用户界面以提供对对象属性的完全访问权限。 您可以通过单击主菜单中的窗口 > 检查器 或按 Alt+I 来打开检查器。
检查器不仅支持单个对象的编辑,而且还支持对象的集合。 在所有对象中唯一的属性将按原样显示。 如果属性在对象集合中具有不同的值,则该属性将用“?”符号标记为非唯一属性。 检查器在选择多个对象时将显示 前导对象 的属性。 前导对象始终是最新的单独选择对象。
对于地图图层,您可以使用检查器来更改地图文件、修改边界和调整显示偏移(地图渲染相对于实际地图值的偏移量)。 另外,可以指定地图的叠加颜色和 Alpha 值。 有关详细信息,请参阅地图图层。
检查器参数
根据视口中所选对象的类型(形状、街道、线段、结点、人行道、区块),提供了不同参数选项可供使用:
检查器源
属性和参数可以具有不同的源,从而可以对值进行精细控制。 以下是可能的源的列表:
默认值 | 所使用的默认值。 对于规则属性,此为初始属性值。 对于参数,此为算法指定的默认值。 |
用户 | 由用户输入的值。 每当用户(同样通过 Python)设置值、使用滑块或控点时,系统就会将源设置为已定义用户。 |
对象 | 该值获取自相应的对象属性。 该值将以斜体显示,并用(对象)进行标记。 |
形状 | 规则属性可以使用父形状中的值。 例如,街道形状可以对街段的 streetWidth 进行采样。 该值将以斜体显示,并用(形状)进行标记。 |
图层 | 该值将连接到图层属性。 该值将以斜体显示,并用带有括号的源图层进行标记。 有关详细信息,请参阅图层属性。 |
注:
- 创建连接和设置源最简单的方法就是使用连接编辑器。
- 在规则分配期间,名称与规则属性匹配的对象属性将会自动建立连接。 在规则分配期间,名称与规则属性匹配的对象属性将会自动建立连接。
- 每当您向参数或属性输入值时,该参数或属性都将自动更改为用户源。
使用对象属性
要使用检查器来添加属性,请执行以下操作:
- 单击添加新对象属性。
- 输入属性名称、值和类型的信息。
City Engine 具有以下类型的对象属性:
- 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]
使用列表编辑器进行编辑
您可以使用列表编辑器在对象属性部分中编辑数组属性。
- 从下拉菜单中单击编辑列表...。
- 通过编辑第二列单元格来修改值。
您可以使用此工具条来复制、添加和删除元素。
- 单击确定。
新值将添加到数据模型和场景中。
使用表编辑器进行编辑
如果对象具有许多遵循 prefix _... 语法的属性数组,则可以从下拉菜单中编辑属性值,然后为每个属性选择编辑表...。
要编辑多个数组属性,请执行以下操作:
- 从其中一个属性的下拉菜单中单击编辑列表...。
该操作将打开一个数组属性表以进行编辑。
- 修改每个列中的值。
- 单击确定。
使用数组属性
CityEngine 支持浮点型、字符串型和布尔数组。 检查器将显示规则和对象属性的数组,并允许进行编辑。
- 单击按钮以展开数组属性。
数组索引将以灰色显示。
- 单击 + 图标,将新行添加到数组的末尾。
所添加的元素将被设置为适用于每种类型的默认值(即适用于浮点数的 0、适用于字符串的 "" 以及适用于布尔值的 false)。
- 单击一个元素即可对其进行编辑。
- 右键单击一行即可删除或插入行。
2D 数组显示在表视图中。 行索引显示在左侧。 列索引显示在顶部。
使用连接编辑器映射属性
CityEngine 中的属性和对象参数可以从多种源进行控制。 连接编辑器可帮助创建这些属性连接。
要编辑特定属性的连接,请执行以下操作:
- 单击属性的下拉菜单。
- 单击连接属性...以打开属性连接编辑器。
- 设置属性连接。
- 单击确定。
属性连接编辑器菜单中具有以下选项:
对象属性 | 将您的属性连接到对象属性。 该选项仅在以下情况下可用:
|
形状参数 | 将属性连接到父形状参数。 该选项仅在以下情况下可用:
|
图层属性 | 将属性从任意图层连接到图层属性。 从下拉菜单中选择源图层,然后从下拉菜单中选择所需的图层属性。 每个图层都将提供其可用图层属性的列表,其中包括以下内容:
注:如果已经存在与您的属性同名的图层属性,则新属性可能会覆盖现有属性。 |
重置属性 | 您可以通过属性下拉菜单中的默认规则选项来重置特定属性。 根据属性的类型,此属性将重置为算法的默认值(例如街道形状创建)或规则文件中的默认值(规则属性)。 属性快捷菜单(通过右键单击打开)也提供了其他选项:
|
使用图层属性映射对象属性
每个图层都可以定义任意一组图层属性。 然而,地图图层通常使用其图像数据作为图层属性的源,而图形和形状数据图层则可以将其矢量对象查询至图层属性。
对象属性映射和采样
图层属性可用于将其场景对象的对象属性映射到具有不同名称的属性,或映射到其他图层上的对象。
注:
对于比较简单的情况,请使用连接编辑器来执行属性映射。
可通过以下命令之一使用图层属性对结点、线段和形状的对象属性进行映射或采样:
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 属性将从对象属性 width 映射。 现在即可使用图层属性 streetWidth 来控制街道形状的街道宽度。
注:
在导入 OSM、形状或 GDB 数据时,系统会在导入的图层上自动创建一组预定义的图层属性。 选择新图层,然后在检查器中显示或修改所创建的图层属性。
报表
报表部分将列出所选模型的所有已报告变量。 下表说明了一个示例:
报表 | 计算出的报表变量的名称。 |
N | 报表变量的出现次数。 |
% (N) | 变量出现在组中的百分比。 |
总和 | 变量值的总和。 |
%(总和) | 组中变量值总和所占的百分比。 |
平均 | 变量值的平均值。 |
最小值 | 变量值的最小值。 |
最大值 | 变量值的最大值。 |
NaNs | 非数字值的出现次数。 例如,字符串变量(例如 Retail 或 Office)没有数值。 |
注:
报表变量可能包含一个点 (.),用于将常用组名称与变量名称分开,例如 FAR.Office 或 FAR.Retail。 这些变量将合并在 FAR 组中。