CityEngine生成不等间距桥墩

本文介绍了如何在CityEngine中处理不等距桥墩的问题。通过获取桥墩点位数据,利用模型替换方法,结合3DMax创建的桥墩模型,以及使用ArcGIS的Near工具计算旋转角度,确保桥墩与道路垂直。详细步骤包括模型准备、角度计算、数据挂接、点图层导出以及CityEngine中的规则生成,最终实现不等距桥墩的生成。
摘要由CSDN通过智能技术生成

        在CityEngine中建立高架桥时自动生成的桥墩属于几乎等距的桥墩,对于不等距的桥墩该如何处理?另外,等距桥墩会有产生很多问题,比如:桥墩会压盖在下方路面上。
解决思路:获取桥墩点位数据,之后使用模型替换方法将点数据替换为桥墩。
解决方法:
1、 首先是模型的准备,可以使用3DMax或者其他建模软件来建立桥墩的三维模型。并将做好的模型文件(obj)拷贝到工程文件夹assets下。
 
2、 模型替换的方法主要是使用i方法在点位置处插入桥墩模型,但插入模型之后需要对模型进行一定的旋转,因为模型与路面可能不是垂直的,需要计算一个桥墩的旋转角度,使用该角度对桥墩进行旋转变换使其断面与道路方向垂直,该角度使用ArcGIS ArcToolBox中的Near工具获取。
   
Input Feature:桥墩点位数据
Near Freature: 道路中心线数据
Angle:计算结果包含角度

计算完成之后会在点图层中增加一个字段NEAR_ANGLE来记录这个角度。
 
在使用NEAR计算角度的过程中应注意的是点不能够落在线上,应该有极小的一点偏离,否则无法计算。
3、 将计算的角度数据通过Join的方式挂接到原始的点位数据属性表中,然后将原始的点位数据重新导出保存一次,生成最终的带有旋转角度数据的点图层文件。
4、 将点和路面数据加载到CityEngine中
 
5、 生成规则,如下:

attr height=0//从属性表获取值
attr NEAR_ANGLE = 0//从属性表获取值
lot-->i("Bridge_Pire.obj")
      r(0,NEAR_ANGLE+90,0) 
      s(5,height,20)
        t(0,-scope.sy-0.5,0) 
           center(xz)
      mirrorScope(false,true,false)

结果如图:


cityengine学习资料 利用ArcGIS和CityEngine规划荷兰鹿特丹港市未来的城市风貌   在Esri宣布收购瑞士公司Procedural(核心产品CityEngine)一个星期以来,大量用户已经开始探索CityEngine如何在他们的GIS工作中起到推动作用。CityEngine提供的关键性功能是:高端的3D信息快速的从二维GIS数据进行创建,并且是如此的简单易用。更重要的是,作为一个使用者,你需要用它来做什么?   CityEngine依托三个方面:要素、属性和规则。使用者可以给场景中的每个元素提供更为详细的信息,就能建立起更复杂更贴近真实三维世界的场景。同时,CityEngine可以从这三个方面潜在的创建各种3D内容,它主要关注城市环境,包括:建筑物、建筑物内部、道路、树木、路灯、汽车和人。   为了简单的了解CityEngine产品是如何工作的,考虑它如何产生的外部的建筑物。   作为一个GIS使用者,都知道Geodatabase中要素类包含两个方面:要素和要素属性。假设你足够的幸运使用多边形要素来直接表示建筑底面,并且每个要素都有相关尺寸大小和类型来表示该类建筑物。在CityEngine中,通过使用一个建筑物的规则并赋给该数据,瞬间所有建筑物将被构建完成。   首先,利用建筑高度属性将二维的建筑物底面多边形拉伸,成为三维的街区。这是最通常和简单的表示建筑的方法,但是在CityEngine中,这仅仅是一个开始。 如果你拥有更多的信息(比如建筑物房顶类型),在规则里面就可以构建不同房顶类型,比如平顶或三角形等。如果含有楼层数属性字段,你可以使用规则可以将建筑物重新构建成相应层数的建筑且每层楼都用窗户和阳台进行填充。这种3D建筑物集合对象,都是由GIS数据驱动生成的,并可以通过工作流的形式进行构建。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值