前言

本文内容主要是用来记录一次模型的生成与调整。
内容为:通过路径线要素 shp 文件和模型文件,生成线要素节点上的地物,并调整地物生成的细节。
首先、将路径文件制作成 shp 文件(CityEngine 可直接从 shp 中读取属性数据),(具体方法使用 ArcGIS 等 GIS 软件即可);
其次、在 CityEngine 项目文件夹的 rules 中新建 CGA 文件,编写地物生成的规则(方向、高度、偏移等);
然后、在 CityEngine 中直接将 shp 文件拖入 View 视图中,选择对应的规则生成模型,还可使用 "File"中的 get map data 选项 从 esri 中下载地形。

相关CGA 规则

绑定对象属性字段

首先读取 shp 文件中的属性,使用 attr 关键词获取 shp 对象的某个字段。

Esri CityEngine导入b3dm cityengine导入地形_字段


如上图 路径中存在属性 Length,使用同名变量 Length 绑定该字段。

根据属性字段的数据类型,实例一个变量

Example:

attr Length = 0 (Length 为数值)
/attr Length = “” (Length 为文本)

此时在 CityEngine 中 Inspector 窗口的 Rules 部分便会出现对应的 Length 属性

Esri CityEngine导入b3dm cityengine导入地形_缩放_02


点击对应属性,弹出属性绑定窗口,选择绑定对象属性。

Esri CityEngine导入b3dm cityengine导入地形_字段_03


Esri CityEngine导入b3dm cityengine导入地形_字段_04


这样就完成了 CGA 规则中绑定对象规则。

插入模型

插入模型分成两种,一种是直接导入模型到场景中,一种是根据 shape 插入模型到指定位置。


插入模型使用 insert 操作
i 操作 从文件中读取模型,支持 fbx、obj、dae、glTF 四种 3D 模型。
使用 r 操作、 t 操作、 s 操作 对模型进行旋转、平移、缩放三种操作。操作的数值可以由上一小节中的 attr 变量决定,这样就获得了沿路线不同特点和属性进行模型定制化。

如下为一段插入模型并根据字段 Length 进行缩放的 CGA 规则

attr Length = 0
head -->
	r(0,0,0)
	s(length,0,0)
	t(0,length,0)
	i("modelName")
	print(Length)

上述规则中,能够打印变量 Length 进行 debug,注意需要在 Inspector 的 Rules 中的 Start Rule 中选择准备打印的对象,上个例子中的对象是 head

直接插入模型到场景

Esri CityEngine导入b3dm cityengine导入地形_数据建模_05


图中的模型即为可支持的模型,较 insert 操作支持的模型来的多。

note:2019 版本的 CityEngine 不支持 2013 版本以上的 DXF 文件。

同时,导入 DXF 文件的过程中,尽量不要选择 Graph Cleanup Tool 工具。它会自动调整模型数据。

Esri CityEngine导入b3dm cityengine导入地形_指定位置_06