L'importation des fichiers IFC est basée au niveau du modèle Site.
Dans le contrôleur Site
, le fichier est téléchargé est transformé pour l'importation dans la base de données Mongo :
- Source : /src/controllers/three.site.controller.ts
- Endpoint:
POST /three/site/:siteId/import/ifc
- Content-Type:
multipart/form-data
- Body:
ifc
contenant le fichier IFC à envoyer
Remarque importante: cette requête n'attend pas la fin de l'importation du fichier pour renvoyer une réponse. Au contraire, si l'API reçoit un fichier correct elle renvoie immédiatement pour avertir le client que le fichier est bien reçu et qu'il est en traitement.
Le fichier doit être envoyé en mode multipart
et attaché à la requête sous le nom de ifc
.
La fonction importIfc
est appelée pour lancer le processus :
/src/controllers/three.core.controller.ts
Envoi du fichier
HttpResponse<String> response = Unirest.post("https://localhost:3001/three/site/5dea56767e6ac104dac9fde0/import/ifc?apiKey=e4be3bd3fb61")
.header("content-type", "multipart/form-data; boundary=---011000010111000001101001")
.header("authorization", "Bearer 0761528b2a3c1d969d85767c686dafb2")
.body("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"ifc\"\r\n\r\n\r\n-----011000010111000001101001--\r\n")
.asString();
Réponse
{
"id":"60991bd286960500085cfec8",
"_createdAt":"2021-05-07T10:41:06.209Z",
"_updatedAt":"2021-05-07T11:41:06.209Z",
"status":"in-progress",
"startedAt":"07-05-2021"
}
- Source:
/src/controllers/three.site.controller.ts
- Endpoint:
GET /three/site/:siteId/import/ifc/:operationId
- Content-Type:
application/json
Réponse
{
"id":"60991bd286960500085cfec8",
"_createdAt":"2021-05-07T11:41:06.209Z",
"_updatedAt":"2021-05-07T11:41:06.209Z",
"status":"in-progress",
"startedAt":"07-05-2021"}
Status
- in-progress : En cours de traitement
- completed : Fin du traitement
Workflow
- IfcConvert
- Importation des OBJ dans Three
- Importation dans MongoDB
- Ifc2Json
- Fusion des métadonnées dans la base de données
- API REST for check : API Checker