Split imported solids in subsolids

Hello all!
I need some help and I hope the question is not too difficult…

I have a 3D AutoCAD file and need to identify all the sub-solids composing it.
Once this is imported in Revit, I need to recognize the solid inside it as separated geometries and after that, I will transform them to single families.
Well… I have no idea how splitting the geometry in separate sub-geometries… any hints??
Just imagine that my final scope is converting all the boxes and the cylinder in the image as separate families in Revit.

Many thanks in advance!

I think you need the node: Geometry.Explode

that node explodes all the geometries in single surfaces; I need to have all the solids instead

But can’t you recreate the solids after you explode it with the separate surfaces with Solid.ByJoinedSurfaces

1 Like

You can, but from my experience, that tends to recreate a single solid. There are some workarounds for this issue, but there’s gotta be a way to get seperate solids more simply; a way that doesn’t involve recreating them from extruded surfaces and polylines. That approach is not always favorable with more complex geometry.
Has anyone had more luck with this?

@dcmasten1, so, did you find a way to solve this ?
I do have the same problem, made so research but quite a mess to find a proper solution !

I found a method that takes very few nodes, but unfortunately may not work very quickly, depending on your circumstances.

The problem is that it may take a while to ‘put Humpty back together again’!

We are creating a new node to do just this in Dynamo 2.9 :slight_smile:

It will be called Solids.Separate. Feed in a composite solid (i.e. a solid that is in fact multiple solids) and it will split them out without having to explode stuff.

PR here: https://github.com/DynamoDS/Dynamo/pull/11135


That is exactly what we need. I am guessing that the process which Dynamo uses to separate a composite solid would be different from the one shown above. It would be awesome if this was an instant computation.

1 Like

That’s actually a very good news ! Any clue to do this in older version ?
I will try the @daniel1 solution, but my geometry is so damn complex, I think a night will no be sufficient to calculate all the process !
Somebody knows a package ?