Cut and fill volumes from two topo surfaces Existing and proposed

I have tried troubleshooting the script, but unfortunately, I haven’t been able to resolve the issue. I suspect there might be an issue with the solid creation or the intersection operation. If anyone has experience with a similar workflow or has encountered this issue before, I would greatly appreciate any guidance or suggestions on how to troubleshoot and resolve this error.

Additionally, if you have alternative approaches or best practices for calculating cut and fill quantities in Dynamo, I’m open to exploring different solutions.

Any help or insights you can provide would be immensely valuable. Thank you in advance for your assistance!
Cut fill from two surfaces.dyn (38.0 KB)
cut fill from two surfaces.rvt (5.1 MB)

I have updated the


Dynamo graph that calculates cut and fill quantities using the intersection between solids. However, when the solids do not intersect, the Solid.Volume node returns an error. I am looking for a solution to handle this condition and set the volume to 0 when there is no intersection. Can anyone provide guidance on how to implement a conditional statement or workaround in Dynamo to achieve this
Cut fill volumes floors-assignparametrs .dyn (79.7 KB)
fill only.rvt (6.7 MB)

1 Like

Hi,
if this helps


cordially
christian.stan

Thanks Christian, my idea was to build a scripts that can calculate the cut and fill volumes for three scenarios : fill only ,cut only and cut and fill the issue is when I have cut or fill situation ONLY i get error and thier respective parameter are not updated in revit , so I am after a solution that can improve my graph to give 0 volume value in case of cut only or fill only that the parameters get assigned correctlyback in revit , thanks

1 Like

Ah ok, I was wrong in my answer

It is necessary to map in top view the areas of cut and fill and the separating cut/fill limits (interception of surfaces with identical current/future altimetry)

I’ll try to watch tomorrow.
Have a good evening
Sincerely
christian.stan

1 Like

Try using the Solid.Volume as a function (wire nothing into it, and pass it as a Function into a Function.Apply node with the lists solids as the argument. From there use a Math.Sum node to total the values.

I believe that this will convert the null to a zero without throwing a warning, while simultaneously accounting for the condition where the intersection has two solids (because “I guess it could happen but I haven’t seen it yet” is a thing to account for).

1 Like

Hello, Jacob and happy New Year!
I still receive errors it seems the null is not converting to zero as you see in the pic


Thanks

Hi, here’s something to think about
with management of a mixed surface
or not


I attach the script
Reponse forum english 3112.dyn (165.4 KB)

Sincerely
christian.stan

Ok. Might have been a change in a later build.

Try this bit of design script before the math.sum: value == null ? 0 : value;.

2 Likes

Thanks, Christian, my Idea was to exclude the error in the case there are no intersections between floors

1 Like

I think I resolved it, the script still throws an error when the cut value is null but I was able to get it to read 0 with an IF node
Cut fill volumes floors-assignparametrs .dyn (88.8 KB)
the set parameter works just fine and updates the schedule that I wanted. thank you all for your help and Happy New Year 2024! best wishes

2 Likes

When the surface is complicated the Solid.byunion node throw an error : unable to union …inconsistent face edge relationship…any solution ?

No idea. Please tart a separate question and provide the simplest model you can which reproduces the issue.