CityEngine使用Python脚本按feature导出数据

发布时间:2017-09-13    浏览:212

在CityEngine中进行道路导出时有两个选项:

001.png



Use file size limit:将所选的道路导出为一个obj文件

Create one :将所选的道路按照网络节点,每个线段导出为一个obj

 

以上两种可选导出方式均不能将一条完整的道路导出为一个obj文件,即无法按照Feature将道路分别导出为独立的模型文件。

 

为了实现按feature导出道路,需要用到CityEngine中的Python脚本进行自定义的导出。

一:依据道路名称导出单条道路

1、在道路图层属性数据中添加Name字段,类型为Text

002.png



2、为Name字段赋值(非中文)

003.png




3、生成道路模型

004.png



4、新建脚本文件,并编辑如下:

005.png




参数解释:

ce.withName(“ ’UNION’”)中的UNION为道路的Name

Name为导出后的模型文件名

D:/tmp为导出路径

 

5、选中一个模型后,File----Export----Export Models of Selected Shapes(allmodels are generated),之后选中Script Based Export(Python),最后在Misc Options中选择脚本。


006.png

007.png



6、点击Finish,导出模型

008.png




二:依据道路名称将道据全部按要素导出


 

本次在使用客户实际数据时的处理方式为:

1、将道路GIS数据添加的Name字段赋值为其FID,重新加载网络数据并生成模型

009.png



2、修改Python脚本为:


010.png


Range参数中的28为道路的数量+1(目前是根据道路的数量来进行循环模型导出)

3、执行上述脚本即可得到结果

011.png


注意事项:

1、本文档使用的示例数据为教程中Pasadena工程中的data----streets.shp:

012.png


2、在第二部分的全图层批量导出时未很好解决文件名的问题,需要继续研究更智能的导出脚本

3、某些情况下会遇到一些错误

spacer.gif

spacer.gif

暂时分析为数据或脚本问题,而在实际数据测试的50条道路中未出现该问题。