DYnamo Running Slow sometimes(Question)should I change PC

Hi Guys . I have a Toshiba Laptop Icore 7 with 8GB Ram , I have inserted An SSD card in the Laptop to make it faster .Sometimes while I work on some scripts the script would take up to 10-15Minutes to finish.
I was wondering if I bought a new PC with better Performance would my scripts finish faster?
if that is the case what are the requirements of a pc to handle Big Scripts .
Thanks

Hard to say. There are many things you can do to optimize scripts…generally speaking, anything which is geometry-intensive (especially with preview) will slow the graph down.

There are also collection methods which are faster than others. AllElementsOfCategory and filtering is often much faster than all elements visible in view.

Then there is a question of how large/complex the graph is. Large data sets are just slow.

When I first started using dynamo, I built Amharic’s which tried to do very complex operations in one-go.

I found it is a lot easier to manage three or four scripts which do specific things than dealing with a single large script. It also makes trouble-shooting and adjusting the scripts a lot easier.

Maybe give a few examples or descriptions about what your scripts do, and how many elements are being handled?

Hi, Thanks a lot for the explanation but In general would a PC with better performance increase the speed of Running the Dynamo script. My Pc isn’t that Great . I was thinking of buying a new one to save time. I am currently outside so unfortunately I cannot provide any scripts for now

Well, generally speaking…a computer with better processing power and a good graphics card will run faster than one that „isn’t so great.“

It’s difficult to blindly say if you will have a noticeable difference because there are so many factors involved that without gathering a significant amount of other information.

Maybe there are benchmark tests to see if your system is running fast or slow?

Otherwise, I am usually working with datasets which involve multiple thousand (often tens of thousands) of Elments, which includes collecting, filtering, querying and setting data.

I can’t say that my system is fast or slow. It’s about what I expect when handling that much information in dynamo. It takes me about 3-4 hours to synchronize 12k-15k openings, but a lot of that time is spent dealing with really heavy models from third-party planners (+2GB) or opening models, saving models…etc. stuff I have to do by hand because dynamo doesn’t make it any faster.

I Am using a dell laptop.
i7-8850H @2.6GHz
64 ram
NVIDIA quadro P2000

I also have a workstation in the office with better specs, but the laptop honestly feels faster.

For what I need to do, the laptop runs just fine.

1 Like

Yes exactly this is the situation I am facing , I am traying to add Generic models (Generic Floor based Families) (Voids) that cut floors (Hosts) , so basically I am trying to add about 100 Voids into different floors , but it takes about 10-15Minutes. is that normal to happen.
thanks a lot for the help again

Well…I’ve been working on the exchange of technical openings between models for the past 4-5 years. It’s not my only job, but it has taken a significant amount of time. As I mentioned, I am doing this on large projects. The current project has about 15000 openings, of which 12000 are openings in structural elements.

How long this should take is, as I mentioned, dependent upon a variety of factors. Importing / syncrhonising the openings is done with 4 scripts and takes a total of about 10-15 Minutes for the entire building. I can’t really say how long it takes, I usually run it in the backgorund on my laptop.

My particular workflow involves unhosted elements, so the placement of the elements is very simple. I only need a point, the dimensions of the openings, and any additional information I want to transfer between the models. 100 openings is from my perspective a VERY LIGHT load for dynamo. I think the issue may be finding the host of the elements. Not sure how you are doing it…but I guess this might be what is slowing things down.

There may also be an issue of how you are matching data, and if it is efficient.

But without looking at the graph, and understanding the workflow, it’s very difficult to troubleshoot.

Once I have my openings placed, I have a script to cut the openings…this takes maybe minutes.

Cheers,
Matt

it’s hard to say if this is a computer issue or a script issue, or maybe something like having your packages on a network drive (figured this out the hard way).

You could try to use the TuneUp addin on Dynamo to see what is taking so long in your script, sharing your script here would help aswell!

8gb is usually too low for large revit models in my experience. 16 is minimum i recommend, 32+ is ideal for most modern AEC programs. Processor is also important, anything under about 3ghz can be problematic in my experience.

I am using this script


Which would filter a type of columns according to the intersection of specific type of floors (Floors here are called underwater concrete )
This is the family void that I place in hosts (Floors) according to columns intersection. So basicly here I am placing one family void in one host This is the family void I use (floor generic based family , but is a void )

. but for example when I am trying to place different voids lets say 30 voids per 3 floors it would take about 10 to 15 minutes to do such an action is that normal .
This is the final result I am doing (the photo here is for 1 floor 1 void )


You can see that the void is placed and rotated according to the column rotation (Sheet Pile )

@m.owens
@Garbage_Collector

Thanks a lot Gavin , I guess I have to change my PC to fasten up my work a little

1 Like

I would suggest simplifying that profile if you can, it has a lot of edges.

May I ask the profile of what exactly ?

Your void. Lots of articulated detail on the ends.

Thanks a lot, but it has to be the same shape here as the sheet piles that the things , but I’ll try to find a way maybe I can simplify them

So, it looks like you are putting the carriage in front of the horse.

Yes, you could probably build this out in dynamo, but it would be a lot easier to host a void in the Sheet-Piling family. The easiest thing to do would be to create a separate shared family as a generic model, and then place it in the sheet-piling. Then you don’t have to place / synchronize the locations if the sheet-piling-location shifts.

You could then grab these shared families in a dynamo script, intersect them with the slabs, and then cut them out. If you don’t have the following packages installed, you really should:

archi-lab
clockworks
steamnodes
rhythm
springs
bimorph nodes

Seriously, nest a void family in the sheet-piling. Placing through dynamo is maybe a fun exercise / learning experience, but use built-in features whenever possible.

Cheers,
Matt

2 Likes

Seems like a really good approach, but the sheet piles here are considered as a column may I ask how can I place a void in the sheet pile family that is able to cut specific Type of floors ?

Hi Mat any Idea how can I place a nested void in a structural Column family ?

I just tested this. You can nest a shared generic model into the column family and host it to a workplane. After that is done, you can parameterize the nested family to move where it needs to vertically.

In the generic model family settings:

  1. Select the “void-cut” option
  2. Select “shared”
  3. Select “workplane based”
    (I didn’t select it here…but it allows you to host the family to a reference plane in the column family.

In the second image, I selected the shared family in the project, even though it is hosted in the structural column family. This allows me to edit the family within the project. If I need to change something, I don’t need to open the column family in order to access the shared family. Shared families are very very useful.

You’ll probably also need a second void cut family for the inward / outward facing piles at the slab edge in order to cut-away concrete elements at the slab edge. You can also use a family-type parameter, and then have two family types to do this.

Ummm…what else…you can then select this family via dynamo. Not sure if you can get collisions between voids and slabs…otherwise, you could just do it by hand. 100 items is not so many with the “multiple” cuts option on the cut command. It looks like you were filtering by type name anyways, so you could just do that. Only issue is if you have multiple slabs that need to be cut…then you need to get the lists sorted out. Otherwise, you will create errors in your model. Those could be resolved with dynamo too…but it’s better to understand how to avoid it in the first place. :wink:

By the way, I drew lines around the void family so that I can locate it more easily in the 3D views. Then I know where it is sitting if i need to troubleshoot something.

I didn’t see the message from Before , I know it’s probably late but I am using your approach now . It’s very very helpful thank you very much .