CityEngine 的CGA建模过程是个不断迭代繁衍的过程,我们将这个过程想象成一棵树。
通过 Shapefile,File Geodatabase,AutoCAD DXF 这些矢量数据格式导入CityEngine中的2D基面(Footprint),通常称为 CityEngine Initial Shape,这是这棵树的根节点。通过CGA中的命令符 -->
,将一个shape经过各种形状(Geometry)和位置(Pivot,Scope) 的函数操作,生成另一个shape。直到最后,模型建立,最终的shape节点,通常称为 CityEngine Leaf Shape。
这个细节的概念,在2013年的开发者大会中提过一次,结合模型层次结构的幻灯片理解下:
完整的幻灯片可以点 这里 下载。
为什么说是“迭代繁衍”? 因为除了 Leaf Shape 之外的所有shape 在建模过程中都被紧跟它其后的shape替代而消亡了。
举例子,在这条规则中,
1 | A --> function() B |
这条规则中 ,A shape 对象已经消亡被B替代,在后续的规则中无法再调用到 A, 如果希望取到与A相同的对象,就需要提前复制出来,如下:
1 | A --> Anew function() B //A被复制而创建了分支 |
了解了这些,那么我们可以进一步回答这个问题:“如何将CityEngine规则建模的模型导出成各组件独立存储的模型?”
可以的,再导出FileGDB或 Scene Layer Package的时候选中 “One Feature per Leaf Shape” 即可。
这些导出的模型数据拿到其他软件中使用,例如ArcGIS Pro,各组件即为不同的静态模型对象。
这个示例的CGA脚本在 我的Github 可以查看和下载。
如果您喜欢此博客或发现它对您有用,则欢迎对此发表评论。 也欢迎您共享此博客,以便更多人可以参与。 如果博客中使用的图像侵犯了您的版权,请与作者联系以将其删除。 谢谢 !