This article is to summarise the ways you can translate a composite / multi-file model.
1) Upload a zip file
You can upload the main file and all the referenced files in a single zip to both your private bucket on OSS and a Fusion Team or BIM 360 Team account (note BIM 360 Docs does not support translation of zip files)
This is what happens too when uploading an Assembly through the A360 website - see top image
In this case the Model Derivative service will resolve the dependencies automatically, without you having to specify the connections between the files explicitly
2) Upload each file
In this case you can upload each document separately, but have to specify the connection between the files somehow before using the Model Derivative service to translate the files
a) Using A360 type storage
If the files are uploaded to an A360 type storage then you can set up the references between the files and when it comes to translation the Model Derivative service will be able to resolve those references: https://forge.autodesk.com/blog/setting-up-references-between-files
These references are set up automatically when uploading such models using Desktop Connector
b) Using an OSS bucket
In this case there is no Data Service on top of the files that would organise them into folders/items/versions so you cannot set up references between those files either using the Data Management API.
Instead, you can use the Model Derivative API's POST references endpoint to help the service resolve file dependencies: https://forge.autodesk.com/en/docs/model-derivative/v2/tutorials/translate-composite-source-file-to-stl/
Pros and cons
a) Single zip
If you upload all the files of a composite model in a zip, then you only have to upload a single file and the file size will be smaller and the Model Derivative service will resolve the dependencies automatically.
However, you can only translate one model from a single zip for viewing (translating to SVF) i.e. if you have a model like MainAssembly.iam >> SubAssembly.iam >> Part.ipt inside the zip file then you cannot translate each model separately and show it in the Viewer - you have to decide whether the zip will have the SVF of MainAssembly.iam or SubAssembly.iam or Part.ipt (that's what you specify with the rootFilename parameter of the POST Job endpoint), it cannot have each of those at the same time.
Also, if only one file of the zip changed, even then you still have to upload the whole zip file again including all the other files that did not change.
b) Multiple files
In this case you only need to re-upload files that changed, but you have to set up the references between the files somehow.
Also, this way you can get an SVF for each file and can open them separately in the Viewer.