EaBIM一直以来积极响应国家“十二五”推进建筑业信息化的号召,对建筑领域的信息技术开展深入技术交流和探讨!致力于打造“BIM-建筑师-生态技术”三位一体综合资源交流共享平台,希望为BIM与可持续设计理念及技术的普及做出微小的贡献!!!

frybud 发表于 2015-6-10 17:46:48

Dynamo for Revit 给梁底标高渐变着色的思考过程

本文旨在分享本项目的思考过程,因为调试比较麻烦,恕不能对所有问题一一解答.
商业项目,恕不能提供源文件供大家练习,图片也不是模型完整图片.
给设备专业提条件的时候,用过滤器做了一个漂漂亮亮的模型:

标高一清二楚,越红的地方板标高越低.
设备表示不满意:能不能把梁底下净高用颜色渐变表示出来?这样走管线的时候就能容易避开那些突出的梁了.
想起来正好前面看dynamo样例的时候,有一个墙着色的例子(revitcolor.dyn)
就试了一下.
总体思路是:
提取数据:
梁高和梁标高
处理数据:
梁标高-梁高=梁底标高
排序
处理模型:
根据排序的结果赋予梁构件的颜色.
总体思路有了,那就开始一个一个解决问题吧!
1.提取数据:
可以用明细表的方式,把梁高和梁标高数据提取出来

然后另外建立参数运算得出梁底标高,并附在梁属性里
排序可以考虑使用导出excel,排序对应rgb中的渐变,也可以考虑在dynamo中直接用color range一一对应颜色代码.
不过本文是选择另外一种方法
因为我发现dynamo还有一个样例:
Revit_PlaceFamiliesByLevel_Set Parameters.dyn
可以用element.parameters控件导出数据,再用excel处理.

然后结果是这样的(分别输出构件编号和构件属性值):

数据排序完全不一样,每个构件有多少属性也不清楚..(话说这可能是跟ifc格式储存格式有关,就是这么乱)
这个步骤作者尝试了很多方法,花费了很多时间,
甚至试过用Access和orgin来重构表,无奈学艺不精,都解决不了.
好在属性名称和属性值都是在一个值内.
最后还是使用excel对字符串函数死处理出来的:
用HLOOKUP寻找字段,
再用字符串函数筛选出数字:
可能影响到梁底标高的数据就都筛选出来了,
bz列就是需要的结果.

2.处理数据
接下来需要对BZ列这组数据转化为分布函数:
本来是考虑处理成正态分布或者均匀分布,
正太分布最终模型颜色都集中在红绿中间的颜色,虽然突出的梁很明显,但整体不好看.
最后直接排序得出的结果:

比较接近均匀分布,还是很理想.
公式:
(梁底标高最大值-梁底标高)/(梁底标高最大值-梁底标高最小值)
至此,处理数据这一步也完成了
3.处理模型
使用element.overridecolorinview控件上色.

前面最主要工作已经完成,这里就直接run,稍等一会就出来结果了:
可以看到,越红的地方梁低的净高就越小,建筑设备专业可以更明显地对此区域做好处理.
本文使用的dynamo脚本(都是对dynamo样例稍微修改了下):

附件不设金币和回复,
有问题回复我会一一解答.
本文也只是提供一种思路.理论上这个完整过程都是可以在dynamo里处理的,希望有同学来试试完全用dynamo来解决.
总结:
有想法了以后,先整理思路,然后一条一条实现.
目标难以实现的时候,不一定只在revit或者dynamo平台里解决,可以尝试使用自己熟悉的软件/方法来解决.

admin 发表于 2015-6-12 08:44:42

EaBIM官方微信粉丝“以梦为马”基于楼主的稍微改编了下,另外这位大美女想你楼主交流

frybud 发表于 2015-6-12 00:43:57

LZ可以不用转出到EXCEL中的,数据处理可以在DYNAMO中完成,然后用math.remaprange节点将计算结果缩放到0~1 ...
我想也是可以的。
当时做的时候也没仔细研究dynamo,主要是parameters那个控件导出来顺序是乱的,而且我没找到dynamo提供字符串处理的方法,所以就没继续在dynamo做,选择导出来弄。

青春日记123 发表于 2015-9-16 00:01:17

admin 发表于 2015-6-12 08:44
EaBIM官方微信粉丝“以梦为马”基于楼主的稍微改编了下,另外这位大美女想你楼主交流
你好我才开始学习dynamo希望能得到你的帮助 我QQ2361296320

悲剧的懒猫 发表于 2015-6-10 17:50:10

一直想尝试的,感谢分享!

ayan13 发表于 2015-6-10 17:53:23

这个有空一定要试试。

一切浮云 发表于 2015-6-10 17:55:56

这个很好用。感觉对机电深化应该有很大的帮助。

peoffery 发表于 2015-6-10 18:24:34

这个有空一定要试试。
]

qllpdean 发表于 2015-6-11 09:26:37

高手!! 这个真心牛了!!!!

admin 发表于 2015-6-11 09:42:48

学习了我都out了

cqszxtzhp 发表于 2015-6-11 10:14:18

不错,可以尝试做一下,

hdj0304 发表于 2015-6-11 12:47:18

值得推敲……

yanrui526 发表于 2015-6-11 15:20:00

LZ可以不用转出到EXCEL中的,数据处理可以在DYNAMO中完成,然后用math.remaprange节点将计算结果缩放到0~1之间,就可以着色了

jalsmida 发表于 2015-6-11 16:59:52

请问脚本如何用?

seablues 发表于 2015-6-11 17:21:29

相濡以沫不如相忘于江湖~

cobenliao 发表于 2015-6-12 07:50:41

感謝分享!

LWL0709 发表于 2015-6-12 07:51:56

顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶
页: [1] 2 3 4
查看完整版本: Dynamo for Revit 给梁底标高渐变着色的思考过程