免费Revit插件:种豆得瓜,他是怎么把一个二开点子一步步搞大的?

你好,这里是BIMBOX。

最近和中建西南院的一位老友聊起推进BIM的问题,他说了一句话让我印象很深刻:

很多公司和部门BIM推进不下去,说到底是因为大家都有退路,往往遇到了一点点小问题,就会马上退回到安全的CAD画图领域去,等别人把问题解决了再说。

而BIM之所以能往前推进,恰恰是因为有一些人不想退回去——或许是因为没有退路、或许是因为喜欢和技术较劲、或许就是一个单纯的小梦想。他们总会想出各种办法来,解决当下遇到的问题,这一系列小问题的解决,就让BIM这架越来越庞大的战车,缓步向前进。

今天想送你一套免费的Revit插件,也想通过它的诞生,来和你说说我关于这件事的一点想法。这款是由BOX的一位朋友蔡兆旋,凭借个人能力开发出来的,一共十几个功能。

针对通用专业,提供了自动附着墙体、批量自动创建楼板和过门石的功能。

针对室内装饰专业,提供了批量生成面层、自动附着房间做法信息、一键生成3D面层等功能。

此外,还提供了统计功能,实现房间面层信息、做法信息、做法工程量的统计和批量编辑。

详细的功能和获取方式给你放在内容的最后,在给你分享这款插件之外,我更希望能讲给你的,是它背后的诞生故事。

我们见到的软件成品很多,但只有极少数的机会去窥探一个开发者是怎样开启他的思考,并且一步步把想法变成现实的。

更有趣的是,这是一个「种豆得瓜」的故事,一开始蔡兆旋只是想解决一个正向设计的「小问题」,为了解决它,派生出了一系列相关的子问题,就在把一个个问题搞定的过程中,顺便做出了很多非常实用的功能。

正如蔡兆旋自己说的:想给你讲讲,他自己是怎么一不小心「把事情做大」的。我们做一件事往往会瞻前顾后、踌躇不前,殊不知很多奇思妙想,正是在行动的过程中才会逐渐浮现的。

这是一个非常好的学习样本,并且还不是来自一家开发公司,而是一个普通的BIMer。

如果你是一个开发者,可以把它作为一个实践案例,补充自己的思维方式。

如果你并不会开发,或者想学习开发又有点畏难,但和他一样,是一个有理想的BIMer,或许能通过这个平凡的故事,找到想办法解决实际问题的勇气。

下面有请这位平凡又有情怀的BIMer,讲述他和这套插件的故事吧。

1

倔强的探索者

大家好,我是蔡兆旋,一个在BIM圈子里摸爬滚打五六年的一线搬砖工,现在在铁设院(山东)工程科技有限公司工作。
这几年BIM项目大大小小干了20多个,最多的工作当然是建模,也是最磨人意志的工作。
一个项目少则几万个,多则十几万个构件,有时候搞着搞着真的会怀疑人生。
也幸亏这几年除了建模以外,调管综、做视频动画、搞倾斜摄影、写论文、编程等等都在做,能时不时的可以换换脑子。不过说实话,虽然这些工作涵盖建筑、影视、IT等多个行业,工作很杂量也很大,却没赚到什么钱。
BIM是门新技术,早一批从业者是需要牺牲掉很多的。在没有看到曙光时,支撑我们向前走的只能是理想,或者说是倔强。
还记得当初,刚毕业实习时学习CAD识图,看了一大堆图纸感觉恶心的不行,当乱七八糟的CAD图和直观明了的三维模型同时摆在我面前时,我立马就感受到了这门技术给我的冲击,毅然选择了BIM这个行业。
说起来理由也真是非常的简单,就是觉得BIM符合我的三观,三维的思想被翻译成二维线条然后再指导三维实施,这显然很不合理,我也打心里不认可这种模式,也就这么选择了BIM这条路。
或许这就是我的倔强吧,一个刚踏入社会的少年的倔强。
也正是有这种倔强,才能支撑我走过这几年,学习各种知识,开展各方面研究。
大家总说量变引起质变,这几年建模的构件量得有几十万了吧,而且这量总会冲击人的神经,让人生出一些奇怪的想法。
比如:BIM成果如何才能更好的落地?建模中简单、重复、量又大的工作能不能交给计算机去完成?像我这样的人做BIM真的就只能是建模吗?
管他能不能质变,我想自己是该「变」了,无论咋样总得要变,感觉总有种莫名的力量推着我去寻找变化,这可能就是BIM的魔力吧。
在三年多前,其实我就着手为我这次新领域的探索做准备了,没错,新领域就是Revit二次开发。
之前也一直努力用Dynamo和Grasshopper提高Revit建模效率,当然也用过很多市场上的Revit插件,但作为真正脚踏实地干活的人,总能发现很多当下插件中没有的功能需求。
起初是用上面两个可视化编程软件去解决的,后来慢慢的有了自己搞二次开发的想法。
既然有了想法就开始边研究边搞,从一门编程语言的基础学起,都是业余时间学习,真的是从零开始搞,学了好久。经过一番折腾,还真搞出来几个功能,当自己的想法被验证时,就真的想迫不及待的分享出来。
2

问题的起源

行业一直在推BIM正向设计,但说实话,我真没见过完全搞定正向设计的项目,所以我主观意想了一下:假设一个房建项目通过BIM正向设计的形式——也就是以三维形式为主、二三维结合的方式来表达设计意图,除了设计说明需要以文字形式表达外,其他部分的设计意图以三维形式表达的话问题都不大。
但是,在设计说明中有一个地方,也就是工程做法表和房间信息表,似乎有优化的空间。
传统设计方法,是把项目中的房间类型,分层梳理成一张房间信息表,表中标明了每个房间的所在楼层、地面做法编号、踢脚做法编号、内墙面做法编号、顶棚做法编号等信息。然后再单独建立一个工程做法表,里面说明了每类工程做法的编号、名称、分层做法等信息。
看图的人可以根据平面图中的房间名称,在房间做法表中找到相应的做法编号,然后根据做法编号,在工程做法表中找到对应的分层做法信息。
这种形式似乎很合理,但逻辑链条很长,那么在正向设计模式下,这些信息的表达能不能更优雅、更高效呢?
于是,我要解决的问题来了:可不可以把工程做法表和房间信息表,与三维模型绑定起来呢?
这是一个很小的点,但我就喜欢钻一下。
3

思考的种子

首先要解决的是,能不能在Revit里面,先把房间做法信息与房间元素绑定,点击房间的时候就可以查看?
这个问题显然是可行的,那么继续推进。
在Revit中房间的创建是有边界条件的,通常情况下的建模工作是按专业划分,再以链接形式整合,这种情况下,仅靠柱和墙作为房间的边界是不可行的,因为很有可能围成房间的构件在链接的模型里,Revit不能识别它们作为房间边界。
这个问题Revit官方可能也意识到了,所以才有「房间分隔」线这样的构件。
但这次再继续下去,更多的问题又涌现出来了:
第一,工程做法表中的分层做法信息,在Revit中应该以什么样的形式表达出来呢?
第二,如何避免房间做法信息添加错误的问题呢?
第三,既然要通过创建「房间分隔」线来定义房间边界,那么这些分隔线总不能一条条手画吧,怎么提高效率呢?
这三个问题,值得展开进一波研究。
我对Revit还算是比较熟悉,针对第一个问题,也就是如何表达分层做法信息,就想到了墙和楼板材质信息分层定义的功能。
如何将面墙和面楼板的分层信息,按常规需要统计出来呢?好像明细表不能满足要求,因此需要通过Revit二开解决。
接下来是第二个问题,也就是如何避免房间做法信息添加错误?我想也是得通过二次开发,限定一下房间信息添加的方式,让用户只能通过选择现有做法类型的方式添加。
这两个问题通过二开可以很好地解决,到了第三个问题就有些麻烦了,怎么提高房间分隔的效率呢?
这个问题值得好好研究,我又继续往深处思考。
「房间分隔」线跟楼板的草图线是不是能联系起来?把这二者联系起来有意义吗?
我的思考是:在表达房间饰面设计意图时,可以不对踢脚、面层墙和顶棚建模,但面层楼板总得要有吧?房间的建筑标高和结构标高得通过这块板区分一下吧?而且在三维状态下,画了面层板和不画面层板,在模型的感官上也不一样。
想到这儿,我就觉得将两者联系起来是有意义的,那么问题就由如何提高「房间分隔」线的绘制效率,转移到了如何提高面楼板的建模效率上了。
那么如何提高面楼板的建模效率呢?这个问题可就深了,需要利用几何算法解决,也就是利用算法快速获取某个点所在的封闭区域,然后把封闭区域提取出来创建楼板。
先不谈算法写起来难不难的问题,新的问题又产生了:围成封闭区域的线如何该拿到呢?
其实这也不是大问题,把模型导出为dwg、再导入到Revit中,通过Revit二开解析一下就拿到了,然后算法慢慢搞呗。
可拿到封闭区域的前提是,要把柱和砌块墙这些构件画出来。
画柱还好点,一般都是顶天立地的,设置好楼层高度,平面布置完之后,立面的高度一般调整不大。
而在Revit中画墙的效率其实挺低的,因为三维墙建模,不但要画出它的平面走向,还得兼顾它在立面上的高度,砌块墙在立面上的状态就跟柱不太一样了,要根据墙所在的位置来定,有的墙在板底,有的墙在梁底,等等。
平面画完墙后,还得再根据情况逐一对墙的高度进行调整,工作量巨大,还不能忽视,否则这个模型拿给领导看可就要挨批了。
我想这可能也是利用Revit进行三维设计会导致设计速度降低的一个原因吧。
好了,思考到一步,问题又变成了:如何提高墙的建模效率呢?
要想解决这个问题,进一步就是要解决如何实现墙在立面上快速附着的问题。
好,那就再搞一波二开,实现在绘制平面画墙的同时,自动根据墙的上下附着情况调整墙的高度,或者画完墙后批量完成墙的上下自动附着。
经过一番折腾,问题解决了个差不多,还有哪漏了呢?
在建筑地面建模时,有个地方不容忽视,就是过门石。
过门石通常用楼板建模,建模过程跟画楼板一样繁琐,而且画完过门石后还得调整它与墙的剪切顺序。
那么这个细节的效率如何提高呢?得,继续二开呗。
3

种豆得瓜

你看,我从最开始有一个初步的想法,一步思考到这儿,已经提出了10来个问题,随着问题的不断解决,我的Revit二开插件不知不觉就有了好几个功能。
首先是「统计报表」功能,可以一键统计面墙的分层信息;
第二是利用墙工具里面的「创建并附着」和「附着已创建」功能,可以实现墙的自动批量附着。
第三是「楼板匹配」功能,点击墙柱围成的空白区域,可以自动实现楼板的一键创建。
第四是「2D房间管理」功能,通过下拉菜单点选的方式赋予房间信息,来管理房间信息,同时实现做法信息与房间绑定。
第五,我在「统计报表」功能中增加了房间做法信息的统计功能,可以一键统计不同标高下每类房间的地面做法、踢脚做法、墙面做法等信息。
最后是「创建过门石」功能,可以在门下快速创建过门石,并自动调整过门石与墙的剪切顺序。
至此,我的插件一共开发了以上六个功能。
一路走到这里,我对当初提出的问题,也就是「如何将工程做法表、房间信息表与三维模型绑定起来」,算是研究出了比较满意的答案。
总结一下思路:工程做法信息可以通过墙或楼板的分层材质信息来表达,但是通过Revit原生功能不能实现想要的统计,我为此建立了「统计报表功能」。
然后,房间信息可以直接与房间元素绑定,但是绑定过程会很低效,因此我建立了「创建并附着」、「附着已创建」、「楼板匹配」及「2D房间管理」功能来提高效率,然后又在「统计报表」功能中增加了房间信息统计功能。
最后为了提高地面做法建模细节建模效率,我又建立了「创建过门石」功能。
我从最初的一个问题出发,一步步解决它的过程中发生了神奇的事情,这个问题会派生出来很关联问题,关联问题又派生出了许多子问题,等到最初的问题有了答案,我还顺便得到了很多方便的新功能。
种豆得瓜,这就是BIM的魅力吗?让人根本停不下来啊!
4

再走一步

既然停不下来,那就再琢磨琢磨,还能基于这个想法做什么事情。
我想,设计阶段BIM的主要价值是更好的表达设计意图,这六个功能主要也就是服务于建筑饰面做法设计意图的表达。
BIM正向设计要做的是,以三维设计为主、二三维结合的方式表达设计意图,而国内实行的算量模式是三维图形算量,那么BIM正向设计和三维图形算量之间必然存在一定联系。本身有设计成果才能算量嘛。
传统模式是什么样大家都清楚,但加上「三维正向设计」这一滴药水后,这两者之间似乎可以再产生点化学反应,我想这个反应的结果应该就是「一模多用」吧。
于是我又得到了一个派生问题:如何实现设计算量一体化?
对于我这种单打独斗的人来说,这个问题有点大了啊,不过,基于我前面钻的那个「牛角尖」,把这个问题缩小一下,变成了:如何实现建筑饰面做法的设计算量一体化?
然后,我乐此不疲地展开了新一轮的研究。
篇幅原因,研究过程中展开的自我问答就不展开细说了,总之一番折腾之后,我的插件功能又多了几个。
第七,「3D房间装饰」功能,可以根据房间做法信息,一键实现房间装饰面层的建模。
第八,「面生面」功能,可以设置好立面和非立面材质类型,对细部构造的装饰面层进行快速建模。
第九,我又在「统计报表」功能中增加了「做法工程量」统计选项,可以一键分类统计做法面积、体积等工程量。
第十,「导出明细表」功能,可以将当前项目中的明细表单独或批量导出。
第十一,「编辑明细表」功能,在Excel中打开明细表,方便对信息进行批量编辑,编辑完成后一键将编辑后的数据同步到Revit中以更新明细表。
在整套插件的开发过程中,我从「如何将工程做法表、房间信息表与三维模型绑定起来」这一小问题出发,一步步将问题扩大到了「如何实现建筑饰面做法的设计算量一体化?」这个更大的问题,一共搞了十几个功能。
个人力量有限,只能搞搞这些小点,但脚踏实地,心里不虚,我相信总有把事儿搞大的那一天。
后续有多少这样的问题出现呢?当问题出现时你是迎难而上还是选择放弃呢?各位老铁,一起加油吧!
最后,感谢各位老铁肯花时间听我的想法,我把这版插件免费分享给各位,不足之处请批评指正。
5

后记&下载

当我们把蔡兆旋的分享做好整理,和他确认内容的时候,插件的功能已经更新了不少,同时听到了一个意外的消息:他已经从上一家公司辞去了工作,进入到现在的新公司。
后来又在他发布在B站的视频,看到当他把这套成果汇报给当时的领导,却得到了很受打击的结果——并不是他哪里做得不好,而是原来的公司放弃了BIM,思量再三,蔡兆旋还是提交了辞呈,开启一段新的旅程。
在蔡兆旋B站视频下面的评论中,我看到很多BIMer,刚入局的、坚持的、离开的、乐在其中的,在分享自己的真实经历。
疫情过后的2023年,市场没有像大家期待的那样迅速回暖,相反,每个行业里的人都在切身感受到春寒料峭,见到的人都在聊,赚钱难、生存难。
也正是在这乍暖还寒的季节,蔡兆旋的死磕态度和乐观精神,更值得被讲出来,给你增加一些力量,我们也有幸认识了圈子里越来越多独立奋进的开发者,希望今后能把更多的故事和成果分享给你,如果你也有类似的思考和故事,欢迎联系我们。
最后是蔡兆旋开发的成果,暂时命名为 CZXTools2.0。经过和他的沟通,我们把它上架到了进步学社的软「软件优选」板块,目前的版本完全免费,扫描下面的二维码,就可以找到它下载安装了。
有态度,有深度,BIMBOX,咱们下次见!

 

暂无评论

相关推荐

微信扫一扫

微信扫一扫

微信扫一扫,分享到朋友圈

免费Revit插件:种豆得瓜,他是怎么把一个二开点子一步步搞大的?