cityengine导入规则的方法

  • 格式:docx
  • 大小:37.58 KB
  • 文档页数:2

cityengine导入规则的方法

CityEngine是一种专业的城市建模软件,它可以帮助用户快速创建和修改城市景观。CityEngine具有强大的导入规则功能,可以将外部数据导入到软件中,并根据指定的规则进行自动化建模。在本文中,我们将介绍如何使用CityEngine的导入规则功能,以及一些常用的导入规则方法。

在使用CityEngine之前,我们需要准备一些外部数据作为导入的对象。这些外部数据可以是地图、建筑模型、道路网络等。CityEngine支持导入多种格式的文件,包括Shapefile、OBJ、FBX等。我们可以根据项目的需求选择合适的外部数据格式。

在导入外部数据之前,我们需要先创建一个新项目。在CityEngine的主界面中,点击“New

Project”按钮,然后选择一个合适的项目文件夹,并为项目命名。创建完成后,我们可以在项目文件夹中看到一些默认的文件,如“scenes”文件夹和“rules”文件夹。我们将在“rules”文件夹中编写导入规则。

导入规则是用来告诉CityEngine如何读取并解析外部数据的指南。我们可以在导入规则中定义对象的属性、位置、旋转、缩放等信息。导入规则使用CGA语言编写,CGA语言是CityEngine的一种脚本语言,用于描述建筑和城市景观的规则和约束。

要创建一个导入规则,我们可以在“rules”文件夹中创建一个新的CGA脚本文件。我们可以使用文本编辑器打开这个文件,然后开始编写导入规则。

导入规则通常由三个部分组成:导入声明,解析规则和生成规则。导入声明用于指定导入的文件路径和格式,解析规则用于定义如何解析外部数据,生成规则用于生成建模结果。

在导入声明部分,我们需要使用“import”关键字来指定要导入的文件。例如,如果我们要导入一个名为“building.obj”的OBJ文件,可以使用以下代码:

```

import building = "path/to/building.obj"

```

在解析规则部分,我们可以使用一些预定义的函数和操作符来解析外部数据。例如,我们可以使用“split”函数来将字符串拆分成数组,并使用“length”函数获取数组的长度。我们还可以使用“for”循环来遍历数组。例如,以下代码将解析外部数据中的每个顶点,并计算它们的平均值:

```

attr v = split(building, "\n")

attr avg = 0

for (var i = 0; i < length(v); i = i + 3) { avg = avg + v[i]

}

avg = avg / (length(v) / 3)

```

在生成规则部分,我们可以使用一些操作符和函数来生成建模结果。例如,我们可以使用“extrude”函数将一个平面几何体拉伸为一个立方体。我们还可以使用“comp”函数将多个几何体组合在一起。例如,以下代码将生成一个立方体,并将其组合到一个名为“building”的几何体中:

```

Lot -->

extrude(10)

comp(f) { side: all }

split(y) { ~ : Mass_00 }

```

以上代码中的“Lot”是一个CGA规则,它将应用于导入的每个对象。我们使用“extrude”函数将平面拉伸为一个立方体。然后,我们使用“comp”函数将立方体组合在一起。最后,我们使用“split”函数将几何体在y轴方向切割,并将结果命名为“Building_00”。

完成导入规则的编写后,我们可以保存文件并返回CityEngine的主界面。在主界面中,我们可以选择导入的文件,并选择“Import Rules”选项。然后,我们可以选择我们刚刚创建的导入规则文件,并点击“Import”按钮。CityEngine将根据我们的导入规则解析外部数据,并生成建模结果。

总结起来,使用CityEngine的导入规则功能可以帮助用户将外部数据导入到软件中,并根据指定的规则进行自动化建模。通过编写CGA脚本文件,我们可以定义对象的属性、位置、旋转、缩放等信息。通过导入规则,我们可以快速创建和修改城市景观,提高工作效率。