当前位置: 首页 > article >正文

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 = -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

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


http://www.kler.cn/a/227582.html

相关文章:

  • 理解React中的setState()方法
  • Springboot3.x+dubbo3.x+jdk17 开发的微服务框架
  • springboot项目以jar包运行时,读取jar包内的静态文件
  • 【算法与数据结构】739、LeetCode每日温度
  • Spring auto-configuration的使用
  • Hive 主要内容一览
  • 智能决策的艺术:探索商业分析的最佳工具和方法
  • 企业在什么情况下需要一款固定资产管理系统?
  • MySQL 教程 2.3
  • npm ERR! code CERT_HAS_EXPIRED
  • 计算机设计大赛 深度学习 python opencv 火焰检测识别
  • 初始Ansible自动化运维工具之playbook剧本编写
  • 代码随想录算法训练营第三十八天 | 509. 斐波那契数、 70. 爬楼梯、746. 使用最小花费爬楼梯
  • 设计一个可以智能训练神经网络的流程
  • C# 递归执行顺序
  • 接口测试框架对比
  • springwebflux高性能服务
  • kkFileViews任意文件读取漏洞原理解析
  • ArrayList在添加元素时报错java.lang.ArrayIndexOutOfBoundException
  • Unity DOTS中的baking(三)过滤baking的输出