Dynamo not loading when Geometry.Split

Hi, I’m trying to get the cross section of my sphere from a certain height with the Geometry.Split Node. The idea was to set a XY Plane to the dedicated height and place it to the sphere. However, every time I activate the Geometry.Split node, dynamo just keeps loading forever and probably won’t finish loading.

I’m not sure what I’m doing wrong that it can’t easily split my geometry… Does anyone have a better approach?

image

Can you post your graph and a Dynamo Log / Revit Journal from the locked up session? I’ve seen much more complex examples of this node work cleanly so I’m wondering if there is something offscreen causing the backup.

Yeah, here you go

RobotWorkspaceIntersectionCheck.dyn (48.3 KB)

dynamoLog_a4567b09-64be-4ef9-94f3-cfdafa542d0f.txt (8.6 KB)

This was for running in a Dynamo for Revit context, right? Can you share a simple rvt too if so?

I tried but the max size to upload is 8 MB…

3rd party service (OneDrive, Dropbox, GoogleDrive, Box, WeTransfer, etc.) is fine, but I think you should be able to reduce the model to only the two parts, one view, and purge unused and get the file posted (do so even if you’re using a 3rd party). If that still doesn’t work a quick snapshot of what I should have for model elements in a 3d view and which is selected by which node ought to work.

AM Walls.7z

Here you go

1 Like

There’s a few things going on here:

  • Your graph isn’t always being efficient in terms of how you access data. Topology is faster than physical geometry, but as soon as you convert it to edges you loose that efficiency. Instead you might want to look into stuff like bounding boxes instead of pulling the edges of the solids to simplify the calculation times.

  • When you look at the solid you’re trying to split the geometry differs from what Revit has - the shape has a ‘lower half’ to the void revolve that is reading as a solid object. When you look at the actual faces you get even more unique geometry issues. The faces at index 4 and index 5 (from Element.Faces) overlap each other in a way which is going to cause problems with the base solid. No two faces should touch at anything more than an edge in a valid Dynamo Solid, and we have two protrusions that shouldn’t exist which overlap entirely… Not good to say the least, doubly so as when you try and manipulate the resulting solid the invalid shape is going to cause things to hang while Dynamo try (likely never succeeding) to put the geometry into a good state - there isn’t a CPU with enough RAM in the world to do that well.

For the time being I’m letting the Dynamo for Revit development team know so we can clean the conversion up, but that won’t happen until a future Dynamo for Revit build and that likely won’t suit your project timeline. So we look into work-arounds…

The good news there is that you have a few options depending on what the need for intersecting the plane is.

  1. Build the tool or this part thereof using the Revit API via C# or Python
  2. Convert the family geometry to Dynamo geometry via extraction in another environment (i.e. export from Revit, or pull the family geometry parts into Dynamo in the Family editor).
  3. Rebuild the apparently parametric geometry using the original formulas using native Dynamo geometry instead of or in additon to the work in Revit’s modeling engine.

To give guidance in terms of which to try I’d need to know more of the larger project, but my gut says #3 is the ‘fastest way forward’, while #2 is the ‘most Dynamo focused’ so you can keep building using mostly nodes, and #1 is the ‘most production read’ method.

1 Like

Thank you for the elaborate response! That’s unfortunate, but I appreciate your workaround suggestions!
You’re right, #3 approach is more convenient

1 Like