Loop While to execute a task in chunks

Hello all,

I developed a custom frit pattern for a very large section of glass. The pattern will have about 5-10 million dots (my guess I actually do not know). My computer does not have the RAM to execute the whole script in one go.

Is it possible to run LoopWhile so it will only draw one line of dots at a time and then move on to the next one after? The last node draws the dot in revit so none of the information would need to be retained after this step.

Sorry my knowledge of loops is very little. I read this the link below and some others but I am still lost.

My thought was that if I could loop List.GetItemAtIndex then It might work.

Thanks in advanced,
If you need any more information please ask.

5 to 10 million of anything inside Revit sounds unrealistic. You might be able to load a point cloud with 10 million points but even that is questionable… Have you considered an alternative approach for your glass pattern? If each dot represents a pixel (or a group of pixels) in an image, maybe something like Photoshop or GIMP should be a better fit. You’ll then be able to load the image inside Revit, if necessary.

1 Like

Dimitar thank you for the reply,

The end goal is not to have the frit dots in revit but to send it to the manufacturer so they can print the frit onto the glass with a CNC. Since they are using a CNC they will need actual line work.

If you do not think it is possible then it probably is not. I know you know your stuff.

Thanks for the reply,
Steven

Steven,

Since you’ve already created your logic in Dynamo, maybe you can salvage that and try a different approach? Some CNC machines support *.csv files, you should double-check the correct format with your manufacturer. You could for example create a file that stores the start and end coordinates of each line.(check out the serialization nodes from Lunchbox and spring nodes for some examples on how to do that)

A *.csv file should not have any problem spanning into the millions of lines because it is usually read row by row.

1 Like

[quote=“Dimitar_Venkov, post:2, topic:4981”]
5 to 10 million of anything inside Revit sounds unrealistic.
[/quote]Yes, unless it’s an attached point cloud RCS or RCP. Imported AutoCAD Points is the only other way I know of showing a large number of points inside Revit. A practical limit is 100 to 200K within an imported DWG.

Thank your Dimitar and Truevis,

Would you recommend I use the stand alone Dynamo rather than the Revit plugin? I think I may still run into a problem with trying to compute the amount of data needed for a .csv file. Any recommendation on trying to split the computing into automated smaller chunks? I think my computer can only process about 1/100 of the dots at a time.

Do you have a sample file or snapshot of csv code so I could see what my end goal would look like for a circle? Not sure how to code a csv file.

Sorry for being suck a noob this is way outside anything I have ever done.

Thank you,

Steven

Handling circles should be pretty straight forward. I imagine that all you’d need would be the X, Y and Z for the circle’s center point and its radius. But you should ideally contact your CNC manufacturer and confirm the requirements with him:

1 Like

Tried restricting the cutting operation to a module and then translating and joining modules.
Not sure if it actually helped, but felt like it did :slight_smile:
Managed a million hexagonal openings. Abandoned the 10 million attempt as it was taking too long :frowning:

Dimitar,

Thank you very much. That is much easier than I was thinking it would be to export. All I would need to do is get the X,Y coordinates as Z=0 and the radii are all the same size. I will contact them to double check that it is ok to send csv code.

Thank you for all your help,

Vikram,
How long did it take you to complete a million hexagons? My computer was locking up somewhere around sixty thousand circles. I am going to did through my code to see if there is a better more efficient way to wright some parts. I am also going to look at your code more closely to see what I can lean

Thank you both very much,

Steven

1 Like

About a minute and a half