CityEngine学习笔记——屋顶拉伸roofHip

Synopsis 概要

roofHip(angle)

roofHip(angle, overhang)

roofHip(angle, overhang, even)

roofHip(valueType, value)

roofHip(valueType, value, overhang)

roofHip(valueType, value, overhang, even)

Parameters参数

  • valueType (selstring)
    Type of roof generation (byAngle | byHeight).
  • value (float)
    Angle or height of the roof-planes as specified by valueType.
  • 屋顶的坡度
  • angle (float)
    Angle of the roof-planes (generation byAngle).
  • 屋檐的长度
  • overhang (float)
    Overhang distance, measured perpendicular to the shape edges (on the roof).
  • even (bool)
    Whether to make the ridges even or not. If true, non-planar faces originate.

The roofHip operation builds a hip roof perpendicular to each face of the current shape's geometry. At every edge, a plane is generated with a given angle or height wrt. the polygon plane. All planes are cut with each other to form the roof faces.

If overhang is set, the roof faces overlap the original shape by this distance. Overhang distances are measured perpendicular to the shape edges (on the roof planes).

If even is set to true, the gable edges are forced to be horizontal. In this case, non-planar roof faces originate.

The connectivity of the roof mesh is optimized for trim plane generation to cut bricks inserted into the roof planes (see examples below).

Scope

The scope orientation is set in the following way:

  • x-axis direction is kept as much as possible (old x-axis is projected to plane orthogonal to face normal of the first face)
  • y-axis along the face normal of the first face
  • z-axis normal to the two above

The scope's sizes are adjusted to tighly fit the extruded geometry.

Related

Examples

Simple Hip Roof

A basic hip roof is generated on top of an extruded L-lot.

 

Lot  --> extrude(10) Mass
Mass --> comp(f) { top: Top | all: X }
Top  --> roofHip(30, 2) Roof
A hip roof with roof slope 30 degrees is built on top of an extruded L-lot. The overhang distance is set to 2. Note the setting of the pivot and scope.
 

Roof --> set(trim.horizontal, true)
         comp(f) { all : X }
After a component split, each roof face contains trim planes to cut bricks on insertion.

Note that per default there are no horizontal trim planes at the ridges. To enable them, set(trim.horizontal, true) is used in front of the component split (details).

Note that there is exactly one roof face perTop shape edge. Unfortunately in the images it seems like the overlap is in a separate face. However, the simple reason for this is that the edges of the shapes in behind bleed through.

Even Hip Roof

This example demonstrates the difference between a standard and an even hip roof built on a trapezoid-lot.

 

Lot  --> extrude(10) Mass
Mass --> comp(f) { top: Top | all: X }
Top  --> roofHip(45, 1, false) Roof
A hip roof with roof slope 45 degrees is built on top of an extruded trapezoid-lot. The overhang is set to 1. Note that the ridge is uneven.
 

Top  --> roofHip(45, 1, true) Roof
When using the above rule for theTop shape, the ridge vertices are set to the average height, making the hip roof even.

The roof faces are non-planar now.

For many shapes, ridges get implicitly even and hence the even option doesn't change anything.

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
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、付费专栏及课程。

余额充值