Why does my script place double face based familys (on top of each other)?

I`ve created a script to place face based familys on points on a surface and then cut them along the edge of the surface. It works on a surface without void but also on a surface with a void.
The problem is that in case of a surface WITH void the script places the face based familys double.
I cant find the reason why, maybe someone can help?
Attached is the scriptscript family op punt op surface faced based family.dyn (170.5 KB)

sounds like it may be a list lacing/level issue - can you post a preview of your graph as an image after expanding the data preview bubbles? Be sure to use the export as image so it’s legible.

I changed lacing from cross product to longest. After this it didnt place doubles anymore. Thanks for the tip! I have another question; How can I rerun a script on different Surfaces in Revit and keep the results? By default Dynamo sticks to the geometry it created, so when I rerun it deletes the old` geometry.
I googled this question and came up with Dynamo player. Is this the only solution?

This topic and the content from the AU class linked at the bottom of the first post should give you all the various ways to manage bindings. Player is likely the easiest. Likely your best bet will be to only run the graph once and leverage bindings all the same. Just modify the selection method you use to select all the surfaces you’ll want to populate at once, then modify list levels and lacing through the graph to ensure you get the right results, and finally run the graph and save it (locking the bindings into the dyn), and close the graph.

If in 3 hours, 3 days, 3 weeks, 3 months, or 3 years you decide to change which surfaces you populate, or the shape of the surfaces needs to be revised, open the old graph, modify the selected surfaces if required, and run the graph again. The previously placed instances will modify their locations based on the revised shapes and selections.