Revit开发:如何获取多段重叠独立墙组成的墙体总高度
多段独立拼接墙体总高度获取及分段映射方案
核心问题梳理
- 目标需求:提取由4段独立墙体拼接组成的整面墙体总高度,且计算结果需支撑后续总高二等分、拆分点定位等关联操作
- 现存方案缺陷:
- 直接调用内置参数
BuiltInParameter.WALL_USER_HEIGHT_PARAM仅能返回单段墙体的设置高度,无法直接输出整墙总高 - 单纯累加各段墙高的方案仅能得到总高数值,没有建立高度值和对应墙段的位置映射关系,后续做总高二分时无法定位拆分点落在哪个墙段上,无法支撑后续操作
- 直接调用内置参数
- 参考场景:

实现步骤
- 第一步:完成目标整墙的墙段归集
以共面、相邻边完全重合、同底部/顶部约束标高为判断条件,筛选出属于目标整面墙的所有独立墙段,存入独立的墙段集合,排除无关墙段干扰。 - 第二步:遍历墙段建立带位置属性的高度数据集
先按墙段在高度方向的位置从下到上排序,遍历过程中不要只记录单段墙高,要同步记录两个核心字段:- 单段墙实际高度:优先读取墙体几何实例的实际高度,如果确认墙段无裁切、附着修改,也可以直接读取
BuiltInParameter.WALL_USER_HEIGHT_PARAM的参数值 - 单段墙底部相对于整墙底部基准的累计偏移值:从最底部墙段开始累加,每段墙的累计偏移值等于排在它下方所有墙段的高度总和
- 单段墙实际高度:优先读取墙体几何实例的实际高度,如果确认墙段无裁切、附着修改,也可以直接读取
- 第三步:总高计算与拆分点定位
整墙总高直接取最顶部墙段的累计偏移值加上最顶部墙段的自身高度即可。
如果需要做总高二等分,直接拿二分高度值和每段墙的累计偏移值、累计偏移+自身高度的区间做比对,就能直接定位到拆分点落在哪个墙段上:比如4段墙从下到上高度分别为1m、1.2m、0.8m、1m,总高4m,二分线在2m位置,各段的覆盖高度区间为01m、12.2m、2.23m、34m,可直接判定拆分点落在第二段墙范围内,完全不会出现高度和墙段匹配错误的问题。
注意事项:如果墙段存在顶部附着到楼板/屋顶、底部偏移、墙连接裁切的情况,不要直接读取用户设置的高度参数,一定要从墙体几何实体中提取实际高度值,避免参数值和实际建造尺寸不一致导致计算偏差。
内容的提问来源于stack exchange,提问作者Pedro Bernardes
相关产品推荐
相关产品推荐

