Please read the section How to inspect the API first. This will explain to you how to inspect the session init response, which is important to understand the following explanations.
Let’s consider the following example, which uses an Import Geometry component to import a file from any of the supported CAD file formats, displays the imported geometry, and makes it available as an STL download for 3D printing.
These parameters are shown on the platform:
The “CAD file” parameter corresponds to the Import Geometry component, while the “CAD file URL” parameter is defined by the Direct Text Input component. A public URL can be set for the “CAD file URL” parameter, which the Import Geometry component downloads and imports a file from, in case no file has been uploaded to the “CAD file” parameter yet. This is why the model shows a bunny by default.
When inspecting the model on the browser console, the session init response shows the following
parameters to represent the “CAD file” and the “CAD file URL” parameters:
We can see that the unique
id of the "CAD file" parameter is
bfe63355-314d-4372-a6e8-498e9c11b82e (this will be important below).
How do File parameters work on the API?
In the following, we are going to focus on the “CAD file” parameter. Please go ahead, and
View the model on the platform,
Open the network tab of the browser console (remove any filter keyword),
Click the “CAD file” parameter on the platform,
Select a file (e.g. the file
and inspect the API calls made by the viewer.
You should be able to see the following on the browser console:
In case you used
bunnies.obj, you should see two bunnies.
This is what happens on the Geometry Backend API:
The viewer sends an upload request to the Geometry Backend, which requests an upload URL for the file. The request body includes the
Essentially the upload request asks the following to the Geometry Backend:
In case of success, the Geometry Backend responds with two pieces of information:
The viewer uploads the selected file to the URL which it received from the Geometry Backend (property
Finally, the viewer sends a computation request. It uses the unique
In order to upload a new file, an upload request needs to be sent first, which will provide a unique
idand an upload URL for the file.
You can reuse uploaded files in order to speed up your application. Say your file is a 20MB file which your Grasshopper model imports data from. Uploading the file takes quite a while, but once it’s uploaded the import of this file into Grasshopper is very fast (which means computations will be fast). You can upload the file once, and reuse its
idacross many computation and export requests.
Uploaded files are linked to your model and to the parameter they were uploaded for. You can not use file ids for other models or other parameters.