函数用于封装在规则中多次使用的评估。与规则不同,函数是有类型的(即它们返回一个值)并且不会改变当前的形状。函数可以是参数化的、有条件的和随机的。
例子
getHeight(area) =
case area > 1000 : 300
case area > 500 :
20% : 200
50% : 150
else : 100
else : rand(20,50)
getHeight函数采用一个浮点参数 ( area ),并根据参数返回一个高度。如果面积大于 1000,则返回 300。如果面积大于 500(但小于或等于 1000),则返回值为 200、150 或 100,概率为 0.2、0.5 和 0.3。如果area小于或等于 500,则返回 20 到 50 之间的随机值。使用getHeight的规则可能如下所示:
Lot --> extrude(getHeight(geometry.area)) Envelope
笔记:
与属性相反,函数在每次调用中都会被评估。这意味着一个函数,如
height = rand(30, 50)
仅对专用目的有意义,因为每次使用它都会返回不同的值。
常量函数
可以使用const关键字使函数保持不变。const 函数的行为与attrs相同,唯一的区别是 const 函数在规则文件内部,不能在Inspector中映射。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。