revit模型画错标高怎么改?纠正 Revit 中基于面的构件错误的标高
文章来源:BIMExp
当项目中出现重复的设计时,我们经常使用“复制-粘贴”功能来提高翻模效率。但在粘贴【基于面的构件】时,往往出现我们不希望看到的情况。
比如:1)丢失主体;2)标高错误。
如下图,将Level1中的照明设备复制到Level2和Level3后,粘贴的构件全部丢失主体。
通过明细表能看到“标高”中居然没有Level3,而Level2的数量也是错误的。
本篇文章将介绍如何使用Dynamo解决第二个问题(因为第一个我不会啊图片),纠正粘贴构件的楼层标高信息,方便明细表中区分楼层统计。
解决思路
在项目中,不同类型构件存储参数的方式略有不同,基于面的构件(以下简称“构件”)将标高信息存储在参数“明细表标高”中。
构件经过多次粘贴后,“明细表标高”中的参数经常是错误的。但在项目的世界坐标系中,这些粘贴的构件都对应一个绝对坐标(x.y.z)。因此,可以使用Dynamo获取构件在坐标系中的Z值,与楼层标高进行匹配,得到构件所在的真实标高,最后将这个真实标高填入“明细表标高”参数中。
注意:如果是常规构件,单独修改“标高”会导致构件位置改变,此时要同时修改“偏移参数”
效果展示
01、节点展示
02、运行效果
节点设计
01、软件版本
Dynamo:0.9.1.4062
02、节点设计
1)获取构件Z坐标
选中构件的节点有很多,这里我直接选中整个项目的照明设备进行批量操作。
如果构件数量过多,可以通过节点分批选中,避免运算量过大导致软件奔溃。
(本次运行处理构件357个,耗时3~5秒。)
选中构件后使用FamilyInstance.Location-Point.Z获取构件Z坐标
2)获取楼层标高
使用相同方式获取所有标高,使用Level.Elevation获取标高数值。
此处排序的目的是让标高按从小到大的顺序排列,否则我们通过数数获得的索引对应的标高有可能发生错误。
3)构件Z坐标-楼层标高
使用构件Z坐标分别减去每一个楼层标高,对于构件所在标高的描述有两种:
A.结果中最小的≥0的值对应的楼层就是构件所在楼层;
B.结果中有多少个非负数,构件就在第几个标高。
(不同的项目和构件类型可能对应不同的标高定义方式,比如基于楼板的地漏,有可能在楼层标高之下-50,仍然算该楼层的构件,此时应是负数中最大的值对应的楼层为构件所在楼层。)
注意:求差节点(-)需右键选择“连缀-叉积”
4)匹配真实楼层
我们采用描述B的方式(这样简单),计算非负数的数量,再返回标高列表获取对应的标高。
注意:节点List.Count需右键选择“连缀-最长”
5)修改参数
以上步骤完成后,使用Element.SetparameterbyName将标高参数重新赋值到构件。
Revit中文网作为国内知名BIM软件培训交流平台,几十万Revit软件爱好者和你一起学习Revit,不仅仅为广大用户提供相关BIM软件下载与相关行业资讯,同时也有部分网络培训与在线培训,欢迎广大用户咨询。
网校包含各类BIM课程320余套,各类学习资源270余种,是目前国内BIM类网校中课程最有深度、涵盖性最广、资源最为齐全的网校。网校课程包含Revit、Dynamo、Lumion、Navisworks、Civil 3D等几十种BIM相关软件的教学课程,专业涵盖土建、机电、装饰、市政、后期、开发等多个领域。
需要更多BIM考试教程或BIM视频教程,可以咨询客服获得更多免费Revit教学视频。
BIM技术是未来的趋势,学习、了解掌握更多BIM前言技术是大势所趋,欢迎更多BIMer加入BIM中文网大家庭(http://www.wanbim.com),一起共同探讨学习BIM技术,了解BIM应用!
相关培训