Design Automation API is billed based on the number of seconds the workitem takes to run. When the workitem completes, the onComplete callback (or the GET Workitem response) will include the time it started and ended. It would look like the following:
The numbers we’re interested in for cost estimation are timeDownloadStarted and timeUploadEnded. In the above example, the total time is 217 seconds. This is what will be deducted from your Forge Cloud Credit balance. Note that it will only appear on your Usage Analytics when 1 Cloud Credit is used. The report also gives the exact time taken for downloading the file: just subtract the instructions started minus download started.
Now the main thing to notice is that it counts the time to download the input files and upload the output files. Therefore, is important to consider where your input files are and where you want to send your output files.
If your files are hosted on one of the main storage players, the download & upload time do not vary significantly. We tested with AWS S3, Azure Blob Storage and Forge OSS (also used by BIM 360 Document Manager) and obtained very similar times. We also tested files hosted in different regions across the globe, with no significant difference, but higher variation due to internet traffic. To give a concrete number as an example, on our testing for a 400Mb file, it takes around 30 to 40 seconds to download the file to Design Automation server and opening of the file to start the operation took 3-4 seconds
Now if your file is hosted somewhere else, like a personal or private host, this time can be significant, especially for very large files. So, it’s important to test so you can estimate the global cost of Design Automation workitems. Or even consider moving the files to highly available storage before running your workitem.
Back to the main storage players, another factor to consider is their charges on outbound file transfer. We’re not trying to provide a definitive answer or expertise on it, but let’s run some basic numbers: assume you have a 1.2GB Revit file to run 10 times with Design Automation (which is a fair assumption for Revit projects), and that file is hosted on either AWS S3 or Azure Blob Storage.
As of December 2019, AWS S3 Data Transfer IN is free, and OUT costs $0.09/GB/Month (assuming traffic of 1GB to 39.99TB). Likewise, Azure inbound data transfer is free, outbound is $0.087/Gb/Month (assuming traffic of 5GB to 10TB). Google Cloud charges $0.12 (0-1 TB or $0.11 for 1-10TB)
If the file is hosted on a Forge OSS Bucket or on BIM 360 Data Management there is no cost in accessing (download or upload).
Running some numbers
Before doing the math, some assumptions:
- Let’s assumed we run the 400Mb file several times (or enough times to go above the free tier, a fair assumption).
- We know it takes from around 30 seconds to download or upload.
- Design Automation cost 6 Cloud Credits per hour for Revit, Inventor and 3ds Max, and 4 Cloud Credits for AutoCAD. For this sample, let’s use 6 Cloud Credits per hour.
Design Automation will GET the input file (outbound traffic from the host), at this point we would pay $0.035 on AWS, $0.033 on Azure, $0.046 on Google Cloud, or free if the file is hosted on Autodesk (Forge OSS or BIM 360). Design Automation will take 30 seconds to download each input file, plus 30 to upload each result file, 1 minute in total, which in the US this would represent $0.10 for Revit, Inventor & 3ds, or $0.066 for AutoCAD (see Forge Pricing). When Design Automation PUT the results, there is no cost (AWS, Azure and Google Cloud will not charge data in/inbound/ingress traffic, Forge OSS and BIM 360 doesn’t charge for traffic).
Can we optimize this? If your files are hosted with Autodesk (e.g. BIM 360 or Fusion Team), that’s it. If your files are hosted with AWS, Azure, Google Cloud or any other “big player”, you may consider hosting it closer to Design Automation servers (currently using AWS us-east) to reduce latency and traffic oscillations, but that’s mostly for a marginal improvement. If your data is hosted on a slow provider or on your own cloud with slow speed, then you can get significant improvements by moving to AWS, Azure or Google Cloud.
The above is the starting cost, not considering the time it actually takes to open your model and run your AppBundle code, which can vary significantly depending on model geometry and code complexity. You can estimate that locally, actually: Design Automation runs the exact same engine you have locally, except that it is headless, meaning the applications launches fairly quickly. For your local test, with a good machine, open the respective app (AutoCAD, Revit, Inventor or 3dsMax), then start measuring the time it takes to open the file, run your code and save the results. That should give you a good approximation.
And that’s it.
Design Automation is really powerful and allows very complex workflows and automation, this article aims to help you understand the global cost of running your workitems so you can better design your business around it.