Unable to cut mass with topography

Hello Dynamo people!
I’ve been struggling with this task for days now. I can’t perform a very simple task which is cut a solid mass with a topography to create a concrete fill. I tried with OOTB tools from Revit but apparently topo won’t interact with mass easily. I’ve read a lot of forums and posts about similar operations but most of them, if not all, are about cutting topography, I need to cut the mass bottom part with the topography and then fill it with a generic model. Can’t be that hard right? Well It is for newbie like. I need the red part of the mass only.

Here are some of the references for this challenge I based my script on:

I tried:

  • Copying and adapting some nodes without success. Either I get warnings, out of date nodes, or even tried custom python blocks but will freeze Revit… or just won’t do anything.
  • I’ve seen most people use “Spring nodes” and so I tried.
  • The OOTB split.geometry won’t cut, sometimes It gave me a warning (All posts I’ve read are at least 5 years old, so i’ts out of date)

Maybe converting the topo’s mesh to an other mass so I can manually cut mass with mass? As long as I get the result I won’t mind the method.

After a lot of rework and scripts I came with this one, of course it doesn’t work but i’ts the one that got me the closest. (created the generic model once (uncut), then never again).
concrete fill.dyn (25.1 KB)

EDIT: I tried with split.geometry, but it wont work, i still have the same cuboid.

NODE WARNING: Warning: One or more geometries have failed to convert due to this error: Unable to create Line. Points are likely coincident.

Lastly I would like to thank you for the time here :slight_smile: Please help me, i’ts getting so frustrating, hopefully it will be a little tweak in the script…

Current Dynamo: 2.0.1

Geometry.Split isn’t broken - the returned list of solids should be a longer list than the given input. You’re just getting thrown off as you haven’t disabled the geometry preview for the nodes which you no longer need to display. Wire that in and then you can :

  • Sort the two solids by the minimum point from the associated bounding box;
  • Select the last item in the sublists to get the solids above the topo or the first item to get the solids below the topography (note if all masses aren’t cut by the topo, this wont’ work);
  • Union the list of solids in case you have multiple masses;
  • Pass the solids into the FamilyInstance.ByGeometry node from the Springs package which you’re using.
    NOTE: if you are in 2022 and are impacted by the import instance bugs you can scale the geometry from 1M to whatever your project units are (ie: if you’re in feet the scale factor is 0.3048), make a new family type using the out of the box FamilyType.ByGeometry, and create an instance of that geometry at the minimum point of the non-scaled geometry.
    Note that I have overridden the color of the family instance in Revit to be red in this screenshot.

The graph:


Thank you so much @jacob.small for the reply. Sorry for the delay, I was between deadlines. Anyway, I wanted to let you know I finally solved the script using the OOTB split geometry. I think my problem was that I was trying with a huge topography which crashed Revit.

This is how I solved it for anyone interested in the script.

Sir how Springs.Mesh.Topolysurface node and springs.FamilyInstance.ByGeometry node or please shear nodes also

From Spring Nodes package

Hi @lautarolzl
Could you give the script in a .dyn format? I would appreciate it.
thank you so much!