
Éléments linéaires — renvoyés sous forme de segments de ligne avec un point de départ, un point d'arrivée, une longueur et une épaisseur :
Murs (y compris les murs intérieurs et extérieurs)
Portes
Fenêtres
Éléments surfaciques — renvoyés sous forme de polygones avec des points de contour, une surface, un périmètre et tout texte trouvé à l'intérieur de la région :
Pièces, couloirs et autres espaces fermés
Zones nommées personnalisées, telles que GIA (Surface Interne Brute) ou GEA (Surface Externe Brute), trouvées en recherchant des étiquettes de texte sur le dessin
Toutes les mesures sont converties en unités réelles en fonction de l'échelle que vous avez définie pour le projet, ainsi que les coordonnées en pixels relatives au fichier source.
Chaque recherche IA suit les mêmes quatre étapes. L'URL de base est https://takeoff.kreo.net/api/ai-search/v1/takeoff2D, et toutes les demandes nécessitent votre clé API dans l'en-tête X-API-KEY.
POST /upload avec le fichier en tant que données de formulaire multipart. Formats pris en charge : PDF, CAO (DWG, DXF, DWF, DGN) et images (PNG, TIFF, JPG, JPEG, BMP, EMF, GIF). La réponse est une clé de fichier temporaire fileKey que vous utiliserez à l'étape suivante.
POST /project avec la clé fileKey. Un projet représente l'analyse d'une seule page de dessin — pour les documents multi-pages, spécifiez la page à utiliser avec pageIndex (basé sur zéro, par défaut 0) et créez un projet distinct pour chaque page que vous souhaitez analyser.
Vous pouvez définir l'échelle du dessin immédiatement. Pour un dessin à l'échelle 1:100 :
json
{
"fileKey": "your-file-key",
"pageIndex": 0,
"scale": {
"drawingCalibrationLineLength": 1,
"originalCalibrationLineLength": 100
}
}Si le statut du projet revient comme Calculating (courant pour les fichiers CAO qui nécessitent une conversion), interrogez GET /projects/{projectId}/status jusqu'à ce qu'il soit Ready. Vous pouvez également définir ou mettre à jour l'échelle ultérieurement avec PUT /projects/{projectId}/scale — mais uniquement lorsque le statut du projet est Ready.
POST /projects/{projectId}/search lance une tâche de recherche asynchrone :
json
{
"dpi": 300,
"type": "wall"
}Paramètres :
type (required) — what to look for: wall, door, window, space (rooms and enclosed areas), or polygon (find an area by its text label).
dpi (required) — search resolution: 150, 300, 450, or 600. Default is 300. Higher DPI can improve detection on dense drawings but takes longer.
text — required when type is polygon: the text label to search for, e.g. "GEA" for gross external area. Must be omitted for other types.
includeWalls — only for type: space: extends space areas to wall center lines.
cropBox — an optional [x1, y1, x2, y2] rectangle to limit the search to part of the drawing.
La réponse contient un jobId.
GET /projects/{projectId}/search/{jobId} — interrogez jusqu'à ce que le status soit Ready. Vous pouvez filtrer les résultats par confiance IA avec le paramètre de requête optionnel confidence (une valeur entre 0 et 1).
Les résultats linéaires (murs, portes, fenêtres) sont retournés sous forme de lines:
json
{
"status": "Ready",
"lines": [
{
"p1": [1715.523, 218.374],
"p2": [1667.250, 525.628],
"length": 15.6,
"thickness": 0.25
}
]
}p1 et p2 sont les extrémités de la ligne médiane en pixels ; length et thickness sont en mètres.
Les résultats surfaciques (espaces et polygones) sont retournés sous forme de contours:
json
{
"status": "Ready",
"contours": [
{
"points": [[1127.16, 812.88], [1127.16, 704.4], [1031.88, 704.4], [1031.88, 812.88]],
"text": ["DblBedroom", "13.0m²"],
"area": 12.86,
"perimeter": 14.38
}
]
}points sont les sommets du polygone en pixels, area est en mètres carrés, perimeter est en mètres, et text contient les étiquettes trouvées par l'IA à l'intérieur de la région — utile pour faire correspondre les résultats aux noms de pièces du plan. Si un contour comporte des trous, la surface les exclut et le périmètre les inclut.
Définissez l'échelle avant de rechercher. Sans une échelle correcte, les longueurs et les surfaces ne correspondront pas aux dimensions du monde réel.
Un projet = une page. Créez un projet par page pour les PDF multi-pages.
Utilisez cropBox pour accélérer les recherches et éviter le bruit lorsque vous n'avez besoin que d'une partie d'une grande feuille.
Besoin du dessin converti ? Pour les projets créés à partir d'images ou de fichiers CAO, GET /projects/{projectId}/pdf télécharge le projet en tant que PDF.
Les schémas détaillés et les exemples de résultats pour chaque type d'élément sont disponibles dans notre portail développeur : Walls, Doors, Windows, Rooms and Areas, et GIA.
Des questions ? Contactez-nous à [email protected] ou via le chat intégré à l'application.