Sheet cutting optimization by Dynamo for Revit

Hello to everyone.
I recently came across an idea and wondering how can I solve it with Dynamo for Revit.

Imagine I have built a desk in Revit which will be made of MDF. To build this desk I will use several pieces with different dimensions of this material, but usually you buy it as a big sheet and cut out the pieces according your design to assemble. For the sake of optimization and have a better use of the large sheet, how can I programme Dynamo to make a dynamic “sheet cutting plan”.
For example, Dynamo gets the dimensions of assembly pieces (the families) from Revit, then we introduce the dimensions of the large sheet, which Dynamo could fit the pieces (graphically) in the best way. Then the result could be imported back to Revit to place it on a drawing sheet as a so called, sheet cutting plan!

I imagine the result should contain: 1. A drawing for presentation; 2.Total used and unused area of the big sheet (for scheduling)
I would appreciate if anyone could help me to make this. If is not available already!
Thank you.

I came across a non-Dynamo solution which might be useful for you.
Please see this:

1 Like

I’ve face this problem to but in more simple case (less variable). I tried to choose the optium acrylic sheet for pre determine component (single and fixed in size).

The input ( acrylic size, saw thickness and component size) and the output (report) made from excel and the optimization process (to evaluate acrylic sheet and the cutting configuration to) made from dynamo (no custom script or node) so there have 3 files.

It’s good idea to share it, but I’m sorry If there are certain parts that are not well described because I design it for personal use. Here is it :
Square Cut Optimization - Input.xlsx (11.4 KB)
Square Cut Optimization.dyn (77.1 KB)
Square Cut Optimization - Output.xlsx (251.1 KB)

And I make another .dyn to evaluate cutting cycle time. At least you can use this .dyn file to find out cutting configuration Square Cut Cycle Time.dyn (79.1 KB)