Hello pyRevit community! Happy to share my first post here. I know this might be better suited for the Autodesk forums, but I’m curious to hear what the more code oriented people have to say.
I should disclose that I’m just getting into the Revit API, and I’ve been using AI to dissect and patch bits of code here and there to reach my desired results , so I’m by no means an expert.
The problem I’ve been facing is that I created a pyRevit script and a batch command to run it on several Revit workshared models hosted on ACC. The best method I’ve found so far is to run it directly on my PC and let Desktop Connector handle the task of downloading the cache and applying the script.
However, the files are huge , over 250 GB which takes a lot of time and space. Based on your experience, is there a way to deploy a script that can open the files, apply the script without downloading them, similar to what Revit Batch Processor (GUI) can do, but for pyRevit?
If not, is there any way to batch-download the Revit files from ACC without their linked files , and as detached models? I’ve already tested this manually on one model, and it reduced the size by about 80%, but doing it for a hundred models would take days.
Example of the CLI command:
pyrevit run “C:\Users*\batchscript.py" "C:\Users*\DC\ACCDocs**\Project Files**.rvt” --revit=2025
ok. I don’t have a solution but I’m triggered but the file size. 250GB? Dang! You have a whole neigborhood in one project? Curious which computer specs you are using. Must be Nasa style I bet.
Well… humm, how can I put this…
Let’s just say we use a few methods to avoid loading the entire thing into memory at once. Not ideal, but even with a NASA-sized budget, Revit wouldn’t know what to do with server-grade specs anyway. A lot of its operations are still single threaded, so brute force isn’t really a solution.
Thanks for pointing it out , I was actually heading in that direction.
For now I’m using more of a hybrid approach. There’s also some limited potential with Revit journals, but as you know, they’re fragile and not really meant for large-scale automation.
The main issue I ran into is the UI prompts enforced by Autodesk for cloud models. Revit Batch Processor can bypass some of that, but it can’t deploy pyRevit scripts, which is why I was exploring alternatives.
From what I’ve seen so far, Autodesk is clearly pushing toward APS for this type of workflow. The token-based access model gives a lot more flexibility for secure automated operations, and early tests show that cloud-side processing avoids many of the bottlenecks we hit when trying to force everything through Desktop Connector.
So what I’ve done is to grab Model and project GUID using APS, then on my local computer opens the cloud model by converting the Guid ModelPathUtils Class, then apply the script to export my model
I find that works well to run my export script locally, I haven’t actually try to apply it then sync tho
Also my script also disables all the worksets so i don’t have to deal with links so i haven’t tested out on link models
Thank you @Revitalize for putting on the right track
Exactly , the APS was my missing part of the puzzle , i did not get into it yet , but planning some training soon , i tried so many unorthodox methods to grab the GUIDS , like trying to read it from the ACC web page but nothing worked .
Thanks , i tested the app and i confirm it works , it returns both the document GUID (projectGuid) and the and identifier (modelGuid) , i want to dig deeper into this , from what i understood so far, the app is looking for a BasicFileinfo block stored within the RVT file , so no need for APS if i download the model as is, directly from ACC .
This led me to think , would it be possible to extract this info using pyrevit CLI in future updates ?becaue it already extractes the ModelsGUID , the only thing missing is the projectGUID
Yes, that’s exactly what I was referring to. I’ve been using pyrevit revits fileinfo and it already exposes most of what rvt.app shows except projectGUID .Since rvt.app is reading those GUIDs from the BasicFileInfo stream, it looks like pyRevit could theoreticaly also surface them and then be used to batch-process a list of already-downloaded models.
The big advantage of useing the APS though is i don’t have to download the models at all , ideate automation already has that functionality ,but for an open-source / transparent workflow I’d really like to push this as far as possible on the pyRevit side so I know exactly what’s happening under the hood.