《11-CityEngine规则建模-常用函数和语法资料》由会员分享,可在线阅读,更多相关《11-CityEngine规则建模-常用函数和语法资料(35页珍藏版)》请在金锄头文库上搜索。
1、CityEngineg规则建模 Esri中国信息技术有限公司徐汝坤 CityEngineg规则建模 规则语法与常用函数 常用函数常用函数的用法练习 利用常用函数创建自己的规则规则语法 规则语法和常用函数目录 常用函数 extrude 拉伸 挤出 把地块变成一个建筑comp 拆分组件 炸开 把模型从整体分成不同的部分color 着色 给模型着色Split 分割 切片 建筑分成不同的楼层 常用的函数 功能 挤出一个高度 使模型从面状变为体块概要 extrude height extrude axisWorld height 参数说明 height 拉伸的高度 默认沿模型的Y轴拉伸axisWorld
2、 设定拉伸轴线 使用世界坐标系的轴作为拉伸轴线 其可选参数为 world x world y world z 使对象的拉伸有共同的方向 常用函数 extrude 示例规则 Lot extrude 10 CompModel 常用函数 extrude 功能 从模型中分离出满足一定条件的模型概要 comp compSelector selectoroperatoroperations selectoroperatoroperations 参数说明 compSelector keyword 要分割组件的类型 可选值 f 面 e 边 v 点 selector keyword front back lef
3、t right top bottom前后左右上下 模型轴系 常用vertical 垂直 horizontal 水平 aslant 有坡度的 nutantside除水平部件外的其它部分all所有的 常用函数 comp Lot extrude 10 CompModelCompModel comp f side ColorsSideFacade top ColorfTopFacade 常用函数 comp 功能 给模型着色概要 color s Color r g b 参数说明 s string 文本类型的颜色值 16进制 例如 rrggbb r g b float float float 浮点类型的颜
4、色值 每个值的取值在0到1 0之间 常用函数 color Lot extrude 10 CompModelCompModel comp f side ColorsSideFacade top ColorfTopFacade ColorsSideFacade color 00ffff SplitModelColorfTopFacade color 1 0 0 TopFacade 常用函数 color 功能 沿一定方向切割模型概要 split splitAxis size1 operations1 size2 operations2 sizen 1 operationsn 1 split spli
5、tAxis size1 operations1 size2 operations2 sizen 1 operationsn 1 参数说明 splitAxis 取值 X Y Z 轴系为模型轴系sizen 分割的宽度 常用函数 split 示例规则 SplitModel split y 4 color aa33bb GroundFloor 3 Floor 注 符号 代表重复执行 代表一个近似值 常用函数 split 练习 简单规则的编写 练习 简单规则的编写 Lot extrude 10 extrudeModelextrudeModel comp f side SplitModel top Col
6、orfTopFacade ColorfTopFacade color 0 0 1 TopFacade SplitModel split y 4 color 0 1 0 GroundFloor 3 color 1 1 0 MidFloor 1 color 1 0 0 TopFloor 参考规则 规则语法 规则文件 由规则 属性 自定义函数以及注释等构成的集合 规则语法 规则 函数 标准规则带参规则随机规则条件规则递归规则属性自定认函数注释 comments 规则语法 形式 PredecessorShape Successor特点 与无参函数比较类似 其结果返回给模型标识示例规则 Lot extr
7、ude 10 CompModel 规则 标准规则 形式 PredecessorShape Parameters Successor特点 与有参函数比较类似 根据需要传递改变后继模型外观的信息注意1 参数的类型可以是布尔型 bool 浮点数值 float 和字符型 string 也可以是表达式注意2 具有不同参数个数的带参规则 前缀一样 比较类似于函数的重载 在CityEngine认为这样的规则为不同的规则 规则 带参规则 示例规则 Lot color 1 0 0 Footprint 20 Footprint height extrude height Envelope 规则 带参规则 形式 P
8、redecessorShape percentage Successor1percentage Successor2 else SuccessorN主要作用 用以随机生成不同外观的模型注意1 随机语句外不能出现任何语句注意2 必须以else结尾 else前面的percentage的和不得超过100 规则 随机规则 示例规则 Lot 60 color 1 0 0 Footprint 20 30 color 0 1 0 Footprint 30 else color 0 0 1 Footprint 50 Footprint height extrude height Envelope 规则 随机规
9、则 形式 PredecessorShape casecondition1 Successor1casecondition2 Successor2 else SuccessorN特点 与函数中的条件语句比较类似 条件规则的关键字是case else 根据不同的条件生成不同外观的模型注意 条件语句外不能出现任何语句 规则 条件规则 示例规则Lot casegeometry area1000 color 0 1 0 Footprint 30 else color 0 0 1 Footprint 50 Footprint height extrude height Envelope 规则 条件规则 形
10、式 PredecessorShape casecondition1 OperationsPredecessorShapecasecondition2 Successor2 else SuccessorN特点 与函数中的循环语句比较类似 适用于满足一定条件时重复执行相同的操作 规则 递归规则 示例规则Lot extrude 10 color 1 0 0 comp f side SideFacade top Recursive Recursive casegeometry area 100 X s 0 8 0 8 1 extrude 3 center xz comp f side SideFaca
11、de top Recursive else X 规则 递归规则 属性是一组静态的全局变量 每个属性被初始化一个特定的值 attr 变量 可在inspector面板里调整 与对象的属性字段做关联 当定义的属性名字与字段名一致时会自动关联 值类型一致 Const 常量 参数值不能在inspector面板里调整 也不能在规则中利用set函数调整其值 注意当没有关键字时 CityEngine会认为是自定义函数 属性 constheight 20Lot color 1 0 0 extrude height 练习 属性的调整 CityEngnie中的自定义函数与属性比较类似 前面无关键字 自定义函数可以被
12、参数化 随机化和条件化 示例 attrFloor 0height caseFloorcolor 1 0 0 extrude height 自定义函数 目的 提高规则的易读性三种形式 行注释 块注释和行内注释行注释 利用字符 或 注释一行 示例如下 acomment anothercomment块注释 利用 可以实现块注释 示例如下 blockcommentscanbeusedtowritemulti linecomments 行内注释 行内注释也是通过 来实现的 示例如下 Lot GardenHouse Garage Fence 注释 comments 常用函数extrudecompcolorsplit规则语法规则 带参规则 标准规则 随机规则 条件规则 递归规则属性自定义函数注释 小结