树型数据 操作

请教各位大神 树型数据 有些需要有退树 有些不需要 要怎么操作
Test tree .rar (5.9 KB)

相当于每个大组的前两组,合并为一组?是分支号还是数据里面的数等于1的砍树?

每个大组回归 0;0,0;1,0;2…归到0;0 2;0 3;0已经回归了不需要

描述混沌不清,一共数据也不多。请手工绘制希望的结果图。

根据你的字面意思,应该是最简单的GH操作
使用list length获取数列长度
使用equal电池判断长度是否等于1
使用dispatch将数据分成要砍树和不要砍树
使用trim tree/path mapper/shift patsh这三个的任意一个电池都可以砍树
最后完毕了合并起来

以上都是GH基础操作,应该不存在任何难度
但问题是你确定你希望达到的结果是砍过和没砍过混在一起吗?
一旦将树砍掉一层,1;0就一定会变成1
而1就是单层路径,单层路径和你说的不用砍的2;1这样的双层路径混在一起。
会导致奇怪的结果。


我建议你将自己背后实际想达成的目的告诉大家。
例如你这个子问题所归属的母问题到底是什么,大家可以帮你看看,是不是一开始方法就错了。是不是可以有更科学的办法直接解决你的母问题,或者根源问题。尽量回避处理这类很晦涩很非常规的数据操作。


感谢大神解答 这是我的需求

前期的操作 我想在树型数据中 某几位置插入 几组树形的数据 运用插件打包 模仿列表插入方式插入
但是发现 总列表是一次打包 插入的数据是二次打包 解包的时候就出现了这样的结果

你做这样的数据操作目的是什么?

建筑的平面好多是相同的 需要把平面对应到标高上 当标高的数量和平面不匹配 需要复制平面数量 然后插入对应的位置

你的问题应该既不需要奇怪的第三方插件,也不需要处理那么复杂的数据。建议发个文件,如果文件太大,可以直接描述数据类型。
例如输入端是什么:
1:建筑平面:由曲线构成,已经分成了20组。
2:标高数据:30个数字

输出的是什么?
30组曲线,分布在不同标高。

针对你的描述,标高数量不匹配应该是不存在的。
假设5-15是标准层。共享一个平面。那你的标高数据是12345然后直接跳到16了吗?如果是的话,逻辑就是6-15层直接复制5的数据。但是如果你的标高提供的是一个连续的数列,那么跳过或者说空白的层没办法表达。
所以你的标高具体是用什么形式表达的, 这方面也请你提供出来,大家可以帮助你重新设计整个程序逻辑

2 个赞

感谢大佬提供思路 已通过path mapper 分流解决