你好,这里是 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 = -1
while 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 = rest2
out.append(first)
intersections = rest
OUT = out
好了,今天的分享就到这里,小伙伴们快去自己尝试吧~