Comme promis, dans cet article, voici un tutoriel sur l’utilisation de l’API Autodesk AEC Data Model.
0- Mise en garde :
Le développement d’APIs nécessite des compétences en programmation et une connaissance approfondie des systèmes, des protocoles de communication et des formats de données pour assurer une intégration fluide et sécurisée avec d’autres applications ou services.
1- Prérequis :
- Avoir activé votre compte ACC pour l’extraction vers le modèle de données AEC (AEC Data Model).
Nota : nécessite d’avoir les droits d’administration de la plateforme ACC.
Nota bis : seront visibles seulement les fichiers Revit qui seront uploadés après avoir activé l’option « Modèle de données AEC ».
- Utiliser des fichiers Revit de version 2024 ou ultérieure
- Disposer d’une licence Autodesk Docs (serveur Us ou EU)
- Accéder aux fichiers Revit dans votre projet Autodesk Construction Cloud
- Activer les services API Autodesk AEC Data Model (nous allons réaliser l’opération dans le chapitre 2.3)
2- Un peu de théorie :
2.1 Structuration de Autodesk AEC Data Model :
« ElementGroup » : est une partie d’un projet AEC qui contient des éléments. « Model» ou « Design» est parfois utilisé de manière interchangeable avec « ElementGroup ».
« Eléments » : est un bloc de construction de données d’ « ElementGroup ». Il représente un élément individuel d’un « ElementGroup » tel qu’un mur, une fenêtre ou une porte sans imposer une définition rigide. L’absence d’une définition rigide permet à l’élément d’être flexible pour s’adapter aux différentes exigences d’un « ElementGroup ». Les données contenues dans un élément lui donnent un contexte en utilisant la classification, la propriété et la définition de propriété.
“Reference Property »: décrit la relation entre les éléments.
« Property” : est un élément de données granulaires bien défini qui décrit l’élément. Par exemple : les paramètres Revit et leurs valeurs telles que la surface, le volume, la longueur, etc.
“Property Definition: » fournit des informations détaillées sur une propriété. Elle contient des métadonnées qui donnent un contexte à la propriété. Par exemple : unité, type, etc.
2.2 Capacités d’Autodesk AEC Data Model :
À l’aide de Autodesk AEC Data Model, vous pouvez obtenir les informations suivantes : :
- comptes qui correspondent à un critère spécifique, tel que le nom du compte souhaité
- un compte à l’aide d’un ID (identifiant)
- tous les projets qui correspondent aux critères de filtre d’un compte spécifié
- un projet à l’aide d’un ID (identifiant) de projet d’un compte spécifique
- tous les dossiers de niveau supérieur dans un projet spécifique
- tous les sous-dossiers d’un dossier spécifié qui répondent aux critères de filtre.
- un dossier à l’aide de l’ID (identifiant) de dossier.
- les dernières données « ElementGroup » en fonction de ID (identifiant) « ElementGroup »
- « ElementGroup » par numéro de version et ID (identifiant) « ElementGroup »
- les groupes d’éléments dans un compte donné à l’aide de filtres de type RSQL*
- les groupes d’éléments dans un projet donné à l’aide de filtres de type RSQL*
- les groupes d’éléments dans un dossier donné à l’aide de filtres de type RSQL*
- l’élément à l’aide de l’ID (identifiant) d’élément
- des éléments d’un compte donné à l’aide de filtres de type RSQL*
- des éléments d’un projet donné à l’aide de filtres de type RSQL*
- des éléments d’un dossier donné à l’aide de filtres de type RSQL*
- des éléments d’un groupe d’éléments donné à l’aide de filtres de type RSQL*
- des éléments d’un groupe d’éléments et d’une version donnés à l’aide de filtres de type RSQL*
*RSQL : est un langage convivial de requêtes pour effectuer des filtres paramétrés à partir d’API.
2.3 Accéder à l’interface Autodesk AEC Data Model :
L’équipe Autodesk ont créé pour les débutants un environnement qui facilite l’apprentissage Autodesk AEC Data Model. Cliquez sur ce lien et après avoir rentré vos identifiants et mot de passe Autodesk, vous devez obtenir l’interface ci-dessous :
Afin de travailler sur vos projets sur votre compte ACC, il faudra activer les services API Autodesk AEC Data Model, voici la procédure ci-dessous :
- dans l’interface d’apprentissage, cliquez sur le bouton « ? », puis sélectionnez et copiez ID client
- Sur votre compte ACC, rendez-vous sur « Account Admin », « Intégration personnalisée » puis cliquez sur le bouton « Ajouter une intégration personnalisée »
- Collez l’ID client dans le champ approprié, renseignez les autres cellules puis cliquez sur le bouton « Ajouter »
Nota : Si vous ne souhaitez pas extraire vos données, contactez l’équipe d’assistance via ce lien.
2.4 AEC Data Model Voyager:
Pour vous aider dans votre compression des différentes commandes, l’équipe développements Autodesk a mis à votre disposition un applicatif qui s’appelle « AEC Data Model Voyager ».
- Afin d’y accéder, cliquez sur le bouton « Voyager » dans l’interface de Autodesk AEC Data Model
- Apparait dans un second onglet la cartographie interactive des différentes commandes et leurs interactions
A titre d’exemple, si vous souhaitez connaitre les « enfants » de la commande « Hubs », cliquez sur le nom « Hubs » dans la liste « Query », vous allez être redirigé vers la liste « Hubs ». Puis cliquez sur « Hub » (Result), vous allez être redirigé vers la liste « Hub » et ainsi de suite ….
Il est également possible de cliquer sur le fil correspondant, par exemple au nom « Hubs » dans la liste « Query » avec la touche « Ctrl » enfoncée, le fil sera mis en surbrillance rouge.
Par ce biais, sur colonne de gauche de l’interface, vous découvrirez la définition de la commande, comme illustré ci-dessous :
3- Utilisation de l’API Autodesk AEC Data Model :
L’interface d’apprentissage vous permet de tester plusieurs requêtes et de prendre connaissance du codage tout en bénéficiant d’un retour immédiat, ce qui aide à comprendre l’impact des modifications et à affiner les résultats pour obtenir des données plus précises et plus pertinentes.
3.1 Obtenir la liste des comptes :
L’onglet « GetHubs » est conçu pour récupérer la liste des comptes ACC auxquels vous êtes associé et également l’identifiant « urn ».
- Par défaut, cette interface d’apprentissage pointe sur le serveur ACC aux US, si comme moi, vous réalisez des tests sur votre compte qui est hébergé en Europe, il faudra ajouter dans l’onglet « Headers », cette partie de code
- Cliquez sur le bouton « Execute query » ou « Ctrl »+ Entrée
Résultat :
Trois comptes sur lesquels je travaille ont été trouvés et pour chacun, j’obtiens leurs noms et leurs identifiants
3.2 Obtenir la liste des projets dans un compte :
L’onglet « GetProjects » est conçu pour récupérer la liste des comptes ACC auxquels vous êtes associé.
- L’onglet « Variables » nécessite de rentrer l’identifiant de compte que vous souhaitez investiguer. Pour cela, rendez-vous dans l’onglet « GetHubs » et copiez-collez l’identifiant du compte, comme monté ci-dessous :
Comme au chapitre précédent, si vous utilisez un compte ACC hébergé par un serveur Européen, ajoutez l’information dans l’onglet « Headers ».
- Cliquez sur le bouton « Execute query » ou « Ctrl »+ Entrée
Résultat :
Quatre projets sur lesquels je travaille ont été trouvés et pour chacun, j’obtiens leurs noms et leurs identifiants
3.3 Obtenir des groupes d’éléments dans un projet :
L’onglet « GetElementGroupsByProject » est conçu pour récupérer l’ensemble des éléments dans un projet.
- L’onglet « Variables » nécessite de rentrer l’identifiant du projet que vous souhaitez investiguer. Pour cela, rendez-vous dans l’onglet « GetElementGroupsByProject » et copiez-collez l’identifiant
- Comme au chapitre précédent, si vous utilisez un compte ACC hébergé par un serveur Européen, ajoutez l’information dans l’onglet « Headers »
- Cliquez sur le bouton « Execute query » ou « Ctrl »+ Entrée
Résultat :
Un seul fichier Revit est disponible (qui répond aux critères énumérés dans le chapitre des prérequis).
3.4 Obtenir des groupes d’éléments par catégorie dans un projet :
L’onglet « GetElementsFromCategory » est conçu pour récupérer l’ensemble des éléments dans un projet.
- L’onglet « Variables » nécessite de rentrer l’identifiant du groupe d’éléments que vous souhaitez investiguer. Pour cela, rendez-vous dans l’onglet « GetElementGroupsByProject » et copiez-collez l’identifiant
Nota : la deuxième variable appelée « propertyFilter » permet de réaliser un filtre sur le résultat. Dans le cas de l’exemple, il s’agit d’un filtre sur les murs du fichier Revit.
- Comme au chapitre précédent, si vous utilisez un compte ACC hébergé par un serveur Européen, ajoutez l’information dans l’onglet « Headers ».
- Cliquez sur le bouton « Execute query » ou « Ctrl »+ Entrée
Résultat :
Vous récupérez la liste des murs ainsi que leurs propriétés.
3.5 Visualisation de la maquette dans l’interface AEC Data Model :
L’interface AEC Data Model permet de visualiser la maquette afin de contrôler les éléments investigués.
- Rendez-vous dans l’onglet « GetElementGroupsByProject », copiez la valeur de la variable « fileVersionUrn » dans le champ prévu à cet effet, puis activez le viewer.
Résultat :
- Si vous réalisez la même opération dans l’onglet « GetElementsFromCategory » et que vous lancez la recherche
Résultat :
Le viewer affiche uniquement les murs de la maquette conformément au filtre demandé.
4 Conclusion :
Cet article vous a présenté les bases de l’API AEC Data Model au travers d’exemples, naturellement, il n’est pas exhaustif. L’API permet de réaliser bien d’autres tâches.
Je vous invite à consulter cette page où vous retrouverez tous les détails de l’API AEC Data Model ainsi que des exemples complémentaires.