# Concepts
# Cloud (or Space)
A cloud is a set of projects sharing the same configuration. Each projects contains your models, your Document Management System and BCFs. Cloud administrators are also projects admin by default, they can see every user in their cloud and change everyone’s roles. Cloud users can’t see cloud collaborators. This means that a contractor on a project can’t see every collaborators of the company.
On BIMData Platform, cloud have been renamed "Space". For compatibility reasons, we did not rename every route on the API. Cloud and Spaces are two names for the same entity.
# Project
A project is a place where IFC files and documents are stored. IFC files and documents can be uploaded and organized, checkplans are defined. A project is attached to a cloud and a cloud can host an infinite number of projects.
A project may contains:
- IFCs
- Document Management System
- BCFs
- ...
Note
A BCF is linked to a Project, not a Model.
A project member can see all other members, and an admin member can manage the users of the project.
# IFC
BIMData API exposes a lot of tools to extract, update and manipulate information from IFC files.
The tools are compatible with IFC2x3TC1 and IFC4 Add2.
Depending on the options you chose, you can:
- Retrieve the model as a 3D GLTF file?
- Retrieve elements and properties.
- Retrieve the spatial structure.
- Retrieve classifications, systems and zones.
- Retrieve 2D plans in SVG format.
# Upload an IFC
To upload an IFC file, you have to upload a document
. When the BIMData API detects an IFC format (based on the file name ending with .ifc
or .ifczip
), it will trigger the IFC process.
IFC files are tied to a document
which represents the actual uploaded file. We use HTTP Compression to speed up the file transfer. HTTP Compression will start as soon as you upload a file. Files are decompressed at the output of the API.
There is no size limit to the IFC upload.
# Workflow
After being uploaded, the IFC will be processed on our servers.
Note
The process takes from few minutes to an hour depending on the size of the file and the options activated.
You can follow the progress on the status
field:
Status | Name | Description |
---|---|---|
P | Pending | Your IFC will soon be processed. |
I | In process | The process has started. |
C | Completed | The process is complete and you can retrieve data from the API. |
E | Error | The process has failed. It’s more likely to be a problem on our side. An alert is triggered and our team will fix it promptly. |
# Folders & Documents
The API exposes a complete set of methods to upload and manage documents.
# Folders
Every project is created with a root folder. It is the starting point to create other folders or upload documents.
# Example
Fetching https://api.bimdata.io/cloud/1/project/1
returns : (with the correct granted access)
{
"id": 1,
"name": "my project",
"cloud": {...},
"status": "A",
"created_at": "2017-12-01T10:09:54Z",
"updated_at": "2018-02-21T17:07:25Z",
"root_folder_id": 3,
}
Note
- If a folder is created without
parent_id
, it will be placed under the root folder. - You can’t create a loop with folders (a parent being itself or a loop including multiple folders).
# Documents
BIMData API allows you to upload any kind of file (IFC, Office, images, binaries, etc.). Those files are named documents
. You can define in which folder you want to put the file using a parent_id
.
# Upload a document
File upload is one of the few API calls which does not use the application/json
Content Type. This call uses x-www-urlencoded
with form-data
. The name of the file field must be “file”
, this means that you have to fire multiple calls if you want to upload many files.
Response example :
{
"id": 424,
"parent": 1,
"creator": 134,
"project": "1",
"name": "my_custom_name",
"file_name": "XXX.pdf",
"description": null,
"file": "https://storage.gra3.cloud.ovh.net/v1/AUTH_b6a1c0b6b7c041d3a71d56f84ce25102/bimdata-staging-dev/cloud_1/project_1/XXX.pdf?temp_url_sig=311d34059bbebc87cd7f37de244bb6b62d114679&temp_url_expires=1527771256",
"size": 175780,
"created_at": "2018-05-31T12:24:16Z",
"updated_at": "2018-05-31T12:24:16Z",
"ifc_id": null,
"parent_id": 1
}
Note
The filesize is the compressed size and not the actual size of the initial file due to HTTP Compression.
# Download a document
You can download files using the URL returned by the API. The URL is valid for 1 hour.
# User
User has a Role and belongs to a Project. There are currently 3 roles.
- admin
- user
- guest
When checking User’s role through the API, the values are:
# Constant values in API
# Cloud role’s values
- admin: 100
- user: 50
# Project role’s values
- admin: 100
- user: 50
- guest: 25
# User in the Cloud
Every User in the Cloud is linked to a Project.
# Admin
A cloud Admin can see every other member of the Cloud, can invite other Users as admin in the Cloud. By default, the cloud Admin has admin rights on every project on the Cloud. A cloud admin can ban any User from the Cloud.
WARNING
Ban a User exclude the User from all Projects of the Cloud.
# Member
A Cloud member is at least a member of one Project.
# User in the Project
Any User in any Project can read the user list and see the other users of the project.
# Admin
A Project admin can invite Users to the Project.
Note
The User is implicitly invited in the Cloud.
The Project admin manages the Roles of the Users: the admin can add, edit or delete Roles.
# Member
A member can read and write DMS, model, and BCF.
# Guest
A guest can read-only: DMS, models, BCF and write BCF content.