File parameters (inputs)
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.
These components of the ShapeDiver plugin for Grasshopper allow you to define file parameters: Import Bitmap, Import Geometry, Import Text
Watch the file parameters chapter of our Youtube Video ShapeDiver Geometry Backend API explained!
An example
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.
You can view this model on the platform, or upload it yourself:
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
bunnies.obj
contained above),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:
API call | Description |
---|---|
Upload request | The viewer sends an upload request to the Geometry Backend, which requests an upload URL for the file. The request body includes the
CODE
Essentially the upload request asks the following to the Geometry Backend: In case of success, the Geometry Backend responds with two pieces of information:
CODE
|
File upload | The viewer uploads the selected file to the URL which it received from the Geometry Backend (property |
Computation request | Finally, the viewer sends a computation request. It uses the unique
CODE
|
Key takeaways
The parameter value to be used for File parameters when submitting computation requests and export requests is the unique
id
of the file that was uploaded.In order to upload a new file, an upload request needs to be sent first, which will provide a unique
id
and 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
id
across 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.