On daily-basis work, we insert several curtain walls, each containing the generic-model-based curtain panels, each being counted as one on a final table sheet. As you can see through the arrows, this are the assembly direction of the walls, therefore the last two panels (circled) are not on their full lenght.
The green circled one, actually, are at half of their lenght, leaving half of the panel to be used on other walls, such as the orange-circled one.

What would be the best ways to make Revit recognize that, in real life, one panel can be cutted and used on other curtain walls?

There would be some rules to it, also, but I’m stuck on the first step of it, yet.

This is essentially the pipe/spool optimization problem. If you have a given number of known fractional lengths, what’s the minimum number of full lengths needed to produce your required cuts.

Keep in mind, as an optimization problem, there are many different ways to go about finding a solution depending on how complex/accurate you want to be. Here’s an example of a similar topic:

The simplest solution (and still a pretty decent one) would be to optimize from longest to shortest. Start with the longest piece you have, and then look for the next largest piece that still fits within the remainder of a “full length” section. Continue this for a single section until there are no pieces left that fit within the constraints. That becomes one section of cuts and the process begins again with a new section.