Dynamo根据几何相交对墙体进行分组——群问题整理002

你好,这里是 BIM 的乐趣,我是九哥~

近期给大家分享一些短平快的小教程,基本都是来自群里面常问的问题,不做过多的介绍了,直接上截图和代码。

问题:002 - 根据几何相交对墙体进行分组

今天分享的,是通过墙体的几何对象相交,对图元进行分组,大概意思如下图:

Dynamo根据几何相交对墙体进行分组——群问题整理002_第1张图片

然后我这里做了一个取巧的方法,就是让所有墙体进行两两相交判断,然后找到每个图元与之相交的图元索引。之后呢,通过一段简单的 Python 代码,找出两两相交的集合,然后根据该索引就能得到分组后的图元。

Dynamo根据几何相交对墙体进行分组——群问题整理002_第2张图片

然后附上 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

好了,今天的分享就到这里,小伙伴们快去自己尝试吧~

你可能感兴趣的:(Dynamo案例百解,python,Dynamo)