Split mesh by face index

Hey Guys,

I need help splitting a mesh in a computationally effective way by supplying face index’s.
I figured out a way to unsplit meshes after WB smoothening and WB sub D Cat-mul-clark functions - It’s actually pretty cool stuff and allows for some cool options!

However my issue is that things get exponentially slower with larger data sets and the techniques are not really scalable, which is something that is important.

My technique atm is to list faces from the joined mesh, which are equivalent to the unsplit meshes - the problem is, in the constructing of the mesh, to match data trees you either have to 1) duplicate the original mesh hundred of times OR 2) split the verticie list into smaller trees and remake the mesh vertice list to match a new smaller list. Both which have advantages/disadvantages.

What I think is the solution is a custom made construct mesh component whereby you can construct a mesh which can function with sub-branches in the process. so the inputs would be the same as the original construct mesh component with an addition of branch inputs which represent sub-branches nested in the original vertice branch structure. it’s a little like an internal cross-referencing function, but does not result in duplicating data, just knowing which lists to take the data from.

Any help would be appreciated! Perhaps there is even a component out there which offers a work around already?190413_MESH UNJOIN.3dm (345.1 KB)
190413_MESH UNJOIN.gh (43.7 KB)