Apply script to a number of Models

Hello and happy new year!
Here since I need to deploy one Dynamo Script to a number of models. I don’t want to manually open each model and run the script.
Any idea on how to automate the process?

Thank you!

hello @andrea.dilisa95 I would try look into Birdtool multiplayer

https://www.birdtools-developers.com/dmu.html

or bvn revit batch processor

4 Likes

Hello and best wishes, is this what you should use when you want to run a script without launching the rvt file?
you still have the inputs from the dynamo player which are displayed or you have to go through forms or data-shape.
Sorry to pollute your thread a little Mr. andrea.dilisa

Sincerely
christian.stan

Thank you @sovitek.

Is there a way of doing this my own to avoid third party tools?

Yes you could try with Background open, Rhythm have some nodes for that, but can be unstable if you try run on a lot of project files at once…thats why i think birdtool its better or bvn as these run on a single projectfile one by one

1 Like

Might try writing it as a single Python node which takes a directory of documents as an input. Could be easy to do, or it could be a big lift, depending on what you are doing in the graph. Generally speaking I don’t recommend background opening with nodes as memory consumption is significant, and I have seen things go sideways on people.

2 Likes

So Python, manual opening or tools like the ones mentioned by @sovitek would be the way to go if I get it right.

I downloaded this a few months ago…

There’s one thing about it that really annoys me. “Bird Tools” appears in at the top of all my pop-ups while logged into Dynamo now.

I know it’s minor but I find it super irritating. :laughing:

image

1 Like

Hi @Alien hmmm try create an issue on the github or contact them via the webside,they can probably help…very nice and helpfull people

1 Like

Thanks, I thought about it but it doesn’t appear when using Dynamo Player so it doesn’t really matter in the grand scheme of things.

It’s just me, I find it irritating. :grimacing:

2 Likes

@andrea.dilisa95 I would definitely give the BatchProcessor suggested by @sovitek a go. It works flawlessly for your scenario and have found it to be incredibly powerful when needing to automate things across multiple models without having to open them.

You can even schedule it to run at night if you want to come in the next day and a task has been done whilst you sleep :grin:!

2 Likes

I guess both can do it now BVN with a really windows taskschedule and birdtool with some timer but guess you pc had to be open…btw who sleeps in this buisness :wink: :wink:

2 Likes

You also have to make sure you use nodes that work on the background opened document instead of the currently opened document as well, which can be a hard concept to get around/manage at first but definitely something to watch out for.

Why i do all background Opening tasks within python.

Though i will highlight that it is sometimes best to open a blank project in revit then run the script because if the currently none background file is linked in to a background opened file it can sometimes cause issues when opening projects.

4 Likes

The problem with background opening and passing between nodes is that it requires you open a new copy of every model to start, and keep that copy open until all processes are updated on each model, and then close the models all at once when done.

The amount of RAM needed to effectively open a model is 20x the file size. Assuming it is large number of files (if it was three files just run it in player 3x as you won’t get ROI in building the larger tool), if you were to manually open the large number of models concurrently Revit would likely flip out with the hit on the RAM. So you would [open, perform the tasks, save, close] and repeat the process. Never having more than one file open at a time.

This is the advantage of Python based methods, as if you write the code carefully it follows the same process as the manual operation, while Dynamo [opens N times, processes everything N times, saves N times, and closes N times].

The same can be accomplished via a custom node, but nesting external custom nodes inside of custom nodes is problematic so you often have to resort to Python anyway.

All in Multi-Player is my personal preference for multiple automations (after design automation for cloud projects).

1 Like