Offrez de vrais volumes à vos 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.
0 comments :
Enregistrer un commentaire