本文主要是介绍Dynamo根据几何相交对墙体进行分组——群问题整理002,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
你好,这里是 BIM 的乐趣,我是九哥~
近期给大家分享一些短平快的小教程,基本都是来自群里面常问的问题,不做过多的介绍了,直接上截图和代码。
问题:002 - 根据几何相交对墙体进行分组
今天分享的,是通过墙体的几何对象相交,对图元进行分组,大概意思如下图:
然后我这里做了一个取巧的方法,就是让所有墙体进行两两相交判断,然后找到每个图元与之相交的图元索引。之后呢,通过一段简单的 Python 代码,找出两两相交的集合,然后根据该索引就能得到分组后的图元。
然后附上 PythonScript 里的代码:
# Copyright(c) 2019, 九哥BIMer
intersections = IN[0]
out = []
while len(intersections) > 0:first, rest = intersections[0], intersections[1:]first = set(first)lf = -1while len(first) > lf:lf = len(first)rest2 = []for r in rest:if len(first.intersection(set(r))) > 0:first |= set(r)else:rest2.append(r) rest = rest2out.append(first)intersections = rest
OUT = out
好了,今天的分享就到这里,小伙伴们快去自己尝试吧~
这篇关于Dynamo根据几何相交对墙体进行分组——群问题整理002的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!