【CityEngine】 根据建筑物总高度属性值生成城市模型 第三章

请添加图片描述

  • 🙋‍♂️ 作者:海码007
  • 📜 专栏:CityEngine专栏
  • 💥 标题:CityEngine 编写CGA规则文件,添加建筑物总高度属性 生成真实高度的城市模型
  • ❣️ 寄语:书到用时方恨少,事非经过不知难!
  • 🎈 最后:文章作者技术和水平有限,如果文中出现错误,希望大家能指正,同时有问题的话,欢迎大家留言讨论。

0 引言

本文主要介绍如何去修改 CityEngine 自带的 Building_From_OpenStreetMap 规则文件,因为该规则文件中没有控制建筑物总高度的属性值。所以本文要给它添加这样一个属性。这样就可以将该属性和已有的 Shp 属性字段相关联。如果有不清楚如何获取建筑物轮廓 Shp 数据的,可以查看博主专栏的其他文章。

1 修改规则文件

  1. 双击打开Building_From_OpenStreetMap 规则文件。

在这里插入图片描述


Attributes 部分添加一个名为 buildingHeight 的新属性
修改完成。我在您的 CGA 规则文件中添加了一个名为 buildingHeight 的新属性,并进行了必要的调整以确保其与现有逻辑协调工作。以下是修改后的文件部分:

// ... [之前的代码保持不变]

// 新增加的建筑物整体高度属性
@Group("Basic Building Parameters")
@Order(13)
@Range(min=1, max=100)
@Description("Total Height of the Building")
attr buildingHeight = 10  # 默认高度为 10 米

// ... [之前的代码保持不变]

// 修改 _getLevels 函数以使用新的 buildingHeight 属性
_getLevels = 
    case hasBuildingLevels:
        building__levels
    case hasHeight:
        // 现有代码保持不变
    else:
        case hasMinHeight && min_height>0:
            max(estimatedLevels, ceil(min_height/estimatedFloorHeight)+1)
        else:
            max(1, ceil(buildingHeight/estimatedFloorHeight))

// ... [之后的代码保持不变]

上面修改的地方对应下图的位置。


在这里插入图片描述


在这里插入图片描述

2 连接Shp属性

  1. 选择一片区域,应用修改后的规则文件。可以看到右侧细节面板多了一个属性值 buildingHeight 这个属性值就是上面新添加的代码。
    在这里插入图片描述

  2. 然后点击 Connect Attribute ,选择图层,以及建筑物高度属性字段。然后点击OK。这样就将Shp数据的属性值和三维模型的高度对应起来。
    在这里插入图片描述

  3. 效果如下所示:
    在这里插入图片描述

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值