CityEngine创建不同类型的屋顶(一)

来源:互联网 发布:煲耳机软件下载 编辑:程序博客网 时间:2024/05/01 17:05

在世界各国和各地区的建筑中,屋顶作为建筑的顶部构件,是建筑中最重要的形式构成部分,也是传递历史和区域文化信息的典型符号。同样,在CityEngine制作建筑规则时如果能正确表达建筑的屋顶信息,对建筑特征的表达有着至关重要的影响。笔者从己有案例并结合实际的工作总结部分屋顶创建的规则与大家分享,以期起到抛砖引玉的作用。由于对建筑了解有限难免表述有误,敬请指正。


1.平顶


普通平顶



参考规则如下:

Lot-->

    extrude(20)

    comp(f){top:color("#0000ff")TopFacade |side:color("#ff0000")SideFacade. |all:NIL}

带女儿墙的平顶



参考规则如下:

attr Parapet_hei=1.2  #女儿墙的高度

attr Parapet_wid=0.3#女儿墙的宽度

 

Lot-->

    extrude(20)

    comp(f){top:color("#0000ff")TopFacade |side:color("#ff0000")SideFacade. |all:NIL}

 

#女儿墙屋顶规则 

TopFacade--> 

    setback(Parapet_wid){all:color("#00ff00")RoofSide.|remainder:extrude(-Parapet_hei)comp(f){bottom:NIL | top:reverseNormals()TopFacade_Tex. |all:reverseNormals()color("#00ff00")RoofSide.}}


思考:除了利用setback实现面的后退外,offset()函数同样能满足这方面的需求。那两者又会有怎么样的区别呢?请读者自行测试,根据不同的需求选用不同的后退函数。

阶式屋顶


参考规则如下:

attr cascad_Num=3#层阶数

attr cascad_Hei=0.5 #层阶高

attr cascad_Wid=0.5 #层阶增加的距离

 

Lot-->

    extrude(20)

    comp(f){top:color("#0000ff")TopFacade |side:color("#ff0000")SideFacade. |all:NIL}

   

TopFacade-->

    case cascad_Num>1:

           s(scope.sx+cascad_Wid,scope.sy+cascad_Wid,'1)

           center(xy)

           extrude(cascad_Hei)

           set(cascad_Num,cascad_Num-1)

           comp(f){top:TopFacade |all:color("#00ff00")RoofSide.}

    else:

           s(scope.sx+cascad_Wid,scope.sy+cascad_Wid,'1)

           center(xy)

           extrude(cascad_Hei)

           comp(f){top:TopFacade. | all:color("#00ff00")RoofSide.}

2.简单坡顶


单坡顶



参考规则如下:

attr roofAngle=15#屋顶坡度

attr sideIndex=1 #坡向的起始边的索引值

 

Lot-->

    extrude(20)

    comp(f){top:color("#0000ff")TopFacade |side:color("#ff0000")SideFacade. |all:NIL}

 

TopFacade-->

    roofShed(roofAngle,sideIndex)comp(f){top:FlatRoof_Tex. |side:color("#00ff00")RoofSide.}

双坡顶



参考规则如下:

attr roofAngle=25#屋顶坡度

attr overHang=0.4#延伸出来的长度

 

Lot-->

    extrude(20)

    comp(f){top:color("#0000ff")TopFacade | side:color("#ff0000")SideFacade. | all:NIL}

 

TopFacade-->

    roofGable(roofAngle,overHang,overHang)comp(f){bottom:NIL | aslant:FlatRoof_Tex. | side:color("#00ff00")RoofSide.}


四坡顶



参考规则如下:

attr roofAngle=25#屋顶坡度

attr overHang=0.4#延伸出来的长度

 

Lot-->

    extrude(20)

    comp(f){top:color("#0000ff")TopFacade |side:color("#ff0000")SideFacade. |all:NIL}

 

TopFacade-->

    roofHip(roofAngle,overHang)

    TopFacade_Tex.

金字塔顶



参考规则如下:

attr roofAngle=25#屋顶坡度

 

Lot-->

    extrude(20)

    comp(f){top:color("#0000ff")TopFacade |side:color("#ff0000")SideFacade. |all:NIL}

 

TopFacade-->

    roofPyramid(roofAngle)

    TopFacade_Tex.


更多屋顶样式制作:《CityEngine创建不同类型的屋顶(二)》 点击 

原创粉丝点击