Le blog francophone consacré
aux technologies Esri

Offrez de vrais volumes à vos bâtiments !


Depuis longtemps dans ArcGIS for Desktop, il est possible d'utiliser les emprises 2D de ses bâtiments pour les mettre en volume. A l'aide d'un champ de hauteur, l'utilisateur peut extruder cette emprise et construire des volumes simples (des boîtes). Si cette première solution permet de révéler des grandes masses urbaines, elle ne donne pas une vision très réaliste de la véritable physionomie des bâtiments.
Exemple d'emprises de bâtiments affiché par simple extrusion dans ArcGlobe

Il existe cependant des solutions relativement simples pour générer, avec ou sans l'extension 3D Analyst, des volumes plus réalistes pour vos bâtiments 3D. Dans la plateforme ArcGIS, la solution CityEngine permet de concevoir des règles procédurales permettant l'extrusion de surfaces 2D mais aussi la construction de toits selon différentes formes (plat, avec pentes, toit pyramidal, ...).



Une règle procédurale CityEngine est un enchainement d'opérateurs géométriques permettant la transformation, par phases successives, de géométries 2D simples en modèles 3D complexes. Ces transformations peuvent être basées sur certains attributs des entités (type d'usage du bâtiment, ancienneté de la construction, hauteur du bâtiment, largeur d'une voie, type de végétation, ...) et peuvent également inclure l'application de textures. Vous retrouverez plusieurs articles consacrés à CityEngine sur ce blog ou encore cet article sur le blog arcOpole.
Exemple de règle CityEngine (fichier *.cga)

Ces paquetages de règles peuvent être utilisés de 2 manières dans ArcGIS Desktop:

  • Pour construire à la volée une symbologie 3D dans une scène ArcGIS Pro à partir d'une couche d'entités 2D. Aucune extension n'est alors nécessaire.
     
  • Pour générer une nouvelle classe d'entités multipatch dans une Géodatabase à partir d'une classe d'entités 2D. L'extension 3D Analyst est alors nécessaire.

Pour faciliter la compréhension de ces deux notions, j'ai réalisé une règle CityEngine assez générique permettant de construire des bâtiments 3D à partir de leur emprise, de leur hauteur, du type de toit et de quelques autres attributs optionnels. Ma règle permet d'extruder les emprises 2D des bâtiments en utilisant un champ "hauteur". Elle construit en plus le toit du bâtiment à partir d'un champ "type_toit" contenant une des valeurs suivantes:

type_toit = "plat"
type_toit = "plat parapet"
type_toit = "2 pentes"
type_toit = "4 pentes"
type_toit = "mansarde"
type_toit = "pyramide"
  
Cette règle propose (en option) d'utiliser également 5 autres champs:

  • "couleur_facade" pour définir la couleur des facades, 
  • "couleur_toit" la couleur du toit,
  • "hauteur_parapet" pour définir la hauteur du parapet (uniquement pour le type "plat parapet"),
  • "largeur_parapet" pour définir la largeur du parapet (uniquement pour le type "plat parapet"),
  • "debord_toit" pour définir la distance de débord du toit (uniquement pour les type "2 pentes", "4 pentes" et "mansarde".

Pour vous permettre de tester cette règle sur vos propres données, j'ai partagé le paquetage de règle sur ArcGIS Online. Le fichier contient le code source de la règle (fichier *.cga) afin de vous permettre de le personnaliser si vous disposez de l'application CityEngine.

Utiliser la règle pour afficher dynamiquement vos bâtiments en 3D avec ArcGIS Pro

Avec ArcGIS Pro (sans l'extension 3D Analyst), il est possible d'appliquer une symbologie basée sur une règle procédurale CityEngine. Appliquée à une couche de polygones, la règle permet de transformer à la volée les géométries 2D en modèles 3D complexes. Les paramètres de la règle peuvent être connectés aux attributs de la couche ce qui permet de modifier le modèle 3D résultant en fonction des attributs des entités. Il s'agit là d'une capacité extrêmement puissante d'ArcGIS Pro.

Voici la procédure à suivre:
   
  • Ajouter la couche 2D de vos emprises de bâtiments. Si les géométries de cette dernière ne possèdent pas de Z, ajustez les propriétés d'altitude de la couche.


     
  • Afficher ensuite les propriétés de symbologie de la couche puis cliquer sur l'icône "Structure" (a.). Vous voyez alors les différentes couches qui composent actuellement votre symbole. Cliquer alors sur le bouton "Ajouter une couche de symboles" (b.).


     
  • Sélectionner l'option "Couche procédurale" pour ajouter une règle procédurale dans la composition de votre symbole.


     
  • Vous supprimerez alors les autres couches composant votre symbole pour ne garder que la couche de la règle procédurale.


      
  • Cliquer maintenant sur l'icône "Couches" puis cliquer sur le bouton "Règle..." pour sélectionner le fichier RPK correspondant à la règle procédurale (pour mémoire le paquetage de règle de cet exemple peut être téléchargé ici).


     
  • Une fois le fichier RPK sélectionné, les paramètres de la règle s'affichent.


      
  • Vous pouvez alors définir des valeurs qui s'appliqueront à toutes les entités ou bien associer certains paramètres à des champs de la table attributaire de votre couche. Pour cela, il suffit de cliquer sur l'icône "Base de données" situé à droite de chaque paramètre et de choisir le champ souhaité. Par exemple, si vous disposez d'un champ contenant la hauteur du bâtiment ou le type de toit, vous devrez ainsi les associer depuis cette interface.


     
  • Une fois le paramétrage terminé, cliquer sur le bouton "Appliquer". Vous devez alors visualiser en 3D votre couche de bâtiments.


Si vous disposez de l'extension 3D Analyst, vous pouvez convertir cette couche dont la symbologie est dynamique, en classe d'entités de Multipatch stockée dans une Géodatabase. Pour cela vous utiliserez l'outil "Couche 3D vers classe d'entités".


Vous sélectionnerez la couche précédemment configurée dans votre scène ArcGIS Pro et vous indiquerez le nom de la classe d'entités à créer. L'option "Désactiver la couleur et la texture" permet de créer des entités multipatch neutres (sans couleur, ni texture).




Utiliser la règle pour générer directement une classe d'entités multipatch

Une autre manière d'utiliser cette règle procédurale consiste à convertir directement la classe d'entités 2D des emprises de vos bâtiments en une classe d'entités multipatch. A l'aide de l'outil nommé "Entités issues de règles CityEngine" (disponible avec 3D Analyst dans ArcGIS Pro, ArcMap, ArcScene, ArcGlobe ou ArcCatalog), vous pourrez appliquer une règle procédurale CityEngine et générer directement une classe d'entités multipatch dans une Géodatabase.


A la différence de la méthode précédente, il devra y avoir une correspondance exacte (y compris la casse) entre les noms des champs de la table attributaire et les noms des paramètres de la règle. Il suffira de spécifier la couche d'emprise des bâtiments en entrée, le paquetage de règles à utiliser ainsi que la classe d'entités multipatch à créer. L'outil permet également de transférer les champs de la couche en entrée vers la classe d'entités en sortie.


Cette seconde méthode peut être plus intéressante que la première si vous n'utilisez pas l'application ArcGIS Pro. Elle est également recommandée si le nombre de bâtiments à mettre en volume est important car elle présente l'avantage de ne pas passer par une étape d'affichage dynamique dans une scène 3D.

Partager cet article:

Rejoindre la discussion

    Les commentaires à propos de cet article: