Importer un fichier BIM dans un jeu de données Indoor (Indoors)

Disponible pour une organisation ArcGIS disposant d’une licence pour l’extension Indoors.

Synthèse

Importe des entités depuis un fichier BIM dans un jeu de données Indoor conforme au modèle d’information ArcGIS Indoors. La sortie de cet outil peut être utilisée pour créer des cartes et des scènes tenant compte des étages à utiliser dans des applications qui prennent en charge les étages, et pour générer un réseau Indoor pour le calcul d’itinéraire.

Utilisation

  • Vous pouvez utiliser cet outil pour charger des données de plan d’étage dans un jeu de données Indoor créé à l’aide de l’outil Créer un jeu de données Indoor ou une géodatabase Indoors créée à l’aide de l’outil Créer une base de données Indoors.

  • Il convient de géoréférencer les données BIM sources au préalable pour pouvoir utiliser cet outil.

    En savoir plus sur l’ajout de données BIM dans ArcGIS Pro

  • La valeur du paramètre Couche surfacique du plan d’étage BIM en entrée correspond à la couche d’entités Floorplan_Polygon du jeu de données Floorplan dans le fichier BIM source.

    • L’outil utilise la couche Floorplan_Polygon pour créer les entités Niveaux et Unités.
    • En se basant sur la valeur du paramètre Couche surfacique du plan d’étage BIM en entrée, l’outil accède aux couches supplémentaires du même jeu de données Floorplan afin de créer le jeu de données Indoor. La couche Footprint permet de créer les entités Bâtiments. Quant à la couche Floorplan_Polyline, elle permet de créer les entités Détails.
  • Les paramètres Entités d’unité cibles, Entités de détail cibles, Entités de niveau cibles et Entités de bâtiment cibles doivent référencer des classes d’entités ou des couches d’entités contenant des entités d’unité, de détail, de niveau et de bâtiment conformes au modèle Indoors.

    Remarque :

    Les entités cibles doivent toutes provenir de la même géodatabase fichier, de la même géodatabase d’entreprise ou du même service d’entités.

  • Le paramètre ID de bâtiment est utilisé pour remplir le champ FACILITY_ID pour les entités de bâtiment importées dans le jeu de données Indoor. Gardez les points suivants à l’esprit lorsque vous le définissez :

    • Les espaces ne sont pas autorisés. Vous pouvez remplacer les espaces par des traits de soulignement. Par exemple, à la place de Bâtiment XYZ, utilisez Bâtiment_XYZ.
    • Pour ajouter les données BIM en entrée en tant que nouveau bâtiment dans un jeu de données Indoor existant, spécifiez un ID de bâtiment qui n’est pas affecté à un autre bâtiment dans les entités de bâtiment cibles.
    • Pour mettre à jour un bâtiment existant, utilisez la valeur du champ FACILITY_ID définie pour cette entité de bâtiment dans les entités de bâtiment cible.
      Remarque :

      Pour que vous puissiez mettre à jour une entité de bâtiment existante, la valeur du paramètre ID de bâtiment doit correspondre à la valeur du champ FACILITY_ID de l’entité de bâtiment et la valeur du paramètre Nom du bâtiment doit correspondre à la valeur du champ NAME de l’entité de bâtiment. L’appariement est sensible à la casse.

  • Le paramètre Nom du bâtiment est utilisé pour remplir le champ NAME pour les entités de bâtiment importées dans le jeu de données Indoor.

  • Le paramètre Nom du rez-de-chaussée détermine le rez-de-chaussée du bâtiment. L’ordre vertical, le numéro de niveau et la valeur z de chaque niveau dans les entités de niveau cibles résultent de cette entrée. Tout niveau dont l’élévation est inférieure à celle du rez-de-chaussée identifié se voit attribuer un ordre vertical négatif.

    Remarque :
    • Il est inutile d’importer le niveau que vous avez défini comme rez-de-chaussée dans le jeu de données Indoor.
    • Seuls les niveaux habitables sont acceptés comme entrées pour ce paramètre.

  • Si des données existent aux localisations que vous avez définies pour les paramètres d’entité cible, les noms de bâtiment et de niveau dans le fichier BIM source sont comparés aux noms de bâtiment et de niveau des entités afin d’identifier les entités à mettre à jour.

    • Une entité Bâtiments sera mise à jour si les valeurs des paramètres ID de bâtiment et Nom du bâtiment correspondent aux valeurs des champs FACILITY_ID et NAME, respectivement, pour une entité de bâtiment cible.
    • Une entité Niveaux, ainsi que ses entités Détails et Unités associées, seront mises à jour si la valeur du champ BldgLevel pour une entité de niveau dans le fichier BIM source correspond à la valeur du champ NAME pour une entité de niveau cible.
    Remarque :

    Si les valeurs des paramètres ID de bâtiment et Nom du bâtiment ne correspondent pas aux champs FACILITY_ID et NAME pour une entité de bâtiment existante et que le polygone de plan d’étages BIM n’intersecte pas une entité de bâtiment existante, l’outil importe les données BIM en tant que nouveau bâtiment avec les valeurs spécifiées pour ID de bâtiment et Nom du bâtiment.

  • Le paramètre Champ de type d’utilisation du polygone de plan d’étages définit le champ depuis la couche d’entités Floorplan_Polygon qui sera utilisée afin de remplir le champ USE_TYPE pour les entités d’unité cibles. Si aucun champ n’est fourni, la valeur du champ RoomName de la couche Floorplan_Polygon est utilisée.

  • Vous pouvez apparier des attributs supplémentaires depuis la couche de salles du fichier BIM source à des champs existants pour les entités d’unité cibles avec les paramètres suivants :

    • Le paramètre Couche de salles BIM définit la couche de salles qui se trouve dans le jeu de données architectural dans le fichier BIM source.
    • Le paramètre Appariement des propriétés de salle peut être utilisé pour apparier des champs de la couche de salles BIM en entrée à des champs d’entité d’unité cible. Les champs doivent exister avant que vous n’exécutiez l’outil. Il est recommandé d’apparier les champs de la couche de salles BIM source à des champs cibles dont le type de données est identique.
  • Les champs suivants sont appariés par défaut s’ils sont présents dans la classe d’entités Unités et ne peuvent pas être appariés à l’aide du paramètre Appariement des propriétés de salle : AREA_GROSS, AREA_NET, AREA_UM, ELEVATION_ABSOLUTE, ELEVATION_RELATIVE, FACILITY_ID, FACILITY_NAME, LEVEL_ID, LEVEL_NAME, LEVEL_NUMBER, NAME, UNIT_ID, USE_TYPE et VERTICAL_ORDER.

  • Le paramètre Étages à importer définit les étages du fichier BIM en entrée qui seront importés. Vous pouvez l’utiliser pour ajouter ou mettre à jour des niveaux spécifiques dans les données Indoor. Si le paramètre n’est pas rempli, tous les étages du fichier BIM seront importés.

  • Le paramètre Unité de mesure de surface vous permet de spécifier les unités utilisées pour le champ AREA_GROSS dans les classes d’entités Niveaux et Unités.

  • Utilisez le paramètre Autoriser l’insertion d’un nouveau bâtiment superposé pour éviter toute importation accidentelle de données de plan d’étages conflictuelles.

    • Ce paramètre est désélectionné par défaut. Lorsqu’il est désélectionné, l’outil vérifie si le polygone de plan d’étages BIM en entrée intersecte un polygone de bâtiment existant dans les entités de bâtiment cibles. Si une intersection est détectée, l’outil vérifie si les valeurs des paramètres ID de bâtiment et Nom du bâtiment correspondent aux valeurs des champs FACILITY_ID et NAME de l’entité Bâtiments d’intersection. Si les valeurs correspondent, l’outil met à jour le bâtiment existant. Si elles ne correspondent pas, il émet un message d’avertissement et s’arrête.
    • Lorsque ce paramètre est sélectionné, l’outil ne vérifie pas si le polygone de plan d’étages BIM en entrée intersecte un polygone de bâtiment existant dans les entités de bâtiment cibles. Sélectionnez ce paramètre pour importer un bâtiment qui chevauche ou touche un bâtiment existant.

Paramètres

ÉtiquetteExplicationType de données
Couche surfacique du plan d’étage BIM en entrée

La couche d’entités Floorplan_Polygon du fichier BIM source a été ajoutée à la carte actuelle.

Feature Layer
Entités d’unité cibles

Couche d’entités, classe d’entités ou service d’entités Unités cible conforme au modèle d’information ArcGIS Indoors et qui se trouve dans le même espace de travail que les entités Bâtiments, Niveaux et Détails cibles.

Feature Layer
Entités de détail cibles

Couche d’entités, classe d’entités ou service d’entités Détails cible conforme au modèle d’information ArcGIS Indoors et qui se trouve dans le même espace de travail que les entités Bâtiments, Niveaux et Unités cibles.

Feature Layer
Entités de niveau cibles

Couche d’entités, classe d’entités ou service d’entités Niveaux cible conforme au modèle d’information ArcGIS Indoors et qui se trouve dans le même espace de travail que les entités Bâtiments, Unités et Détails cibles.

Feature Layer
Entités de bâtiment cibles

Couche d’entités, classe d’entités ou service d’entités Bâtiments cible conforme au modèle d’information ArcGIS Indoors et qui se trouve dans le même espace de travail que les entités Niveaux, Unités et Détails cibles.

Feature Layer
Facility ID (ID du bâtiment)

ID de bâtiment unique qui sera affecté aux entités Indoors en sortie. Il ne peut pas comporter d’espace.

String
Facility Name (Nom du bâtiment)

Nom commun du bâtiment.

String
Nom du rez-de-chaussée

Rez-de-chaussée du bâtiment. L’ordre vertical des niveaux est dérivé de cette entrée. Tous les niveaux dont l’élévation est inférieure à celle du rez-de-chaussée spécifié se voient attribuer un ordre vertical négatif.

String
Champ de type d’utilisation du polygone de plan d’étages
(Facultatif)

Champ de la couche d’entités Floorplan_Polygon qui sera utilisé pour remplir le champ USE_TYPE pour les entités d’unité cibles. Si aucun champ n’est fourni, la valeur du champ RoomName de la couche Floorplan_Polygon est utilisée.

String
Étages à importer
(Facultatif)

Étages du fichier BIM en entrée qui seront importés dans les entités cibles. Si aucun étage n’est indiqué, tous les étages sont importés.

String
Unité de mesure de surface
(Facultatif)

Indique l’unité de mesure utilisée pour les champs surfaciques dans les classes d’entités Niveaux et Unités.

  • Mètres carrésL’unité de surface est le mètre carré.
  • Pieds carrésL’unité de surface est le pied carré. Il s’agit de l’option par défaut.
String
Couche de salles BIM en entrée
(Facultatif)

Couche de salles du jeu de données architectural dans le fichier BIM en entrée. Cette couche est utilisée pour obtenir des valeurs de champ étendues pouvant être appariées à des champs existants dans la classe d’entités Unités à l’aide du paramètre Appariement des propriétés de salle.

Feature Layer
Appariement des propriétés de salle
(Facultatif)

Contrôle quels sont les champs attributaires dans la classe d’entités Unités qui seront remplis avec des valeurs de champ provenant de la couche de salles BIM en entrée. Les champs doivent exister avant que vous n’exécutiez l’outil. Il est recommandé d’apparier les champs de la couche de salles BIM en entrée à des champs de la couche d’entités Unités dont le type de données est identique.

Field Mappings
Autoriser l’insertion d’un nouveau bâtiment superposé
(Facultatif)

Spécifie si un bâtiment du fichier BIM en entrée est importé dans le cas où une intersection est détectée entre le plan d’étages de ce bâtiment et une entité Bâtiments existante dans les entités de bâtiment cibles.

  • Option désélectionnée : l’outil vérifie si le polygone de plan d’étages BIM en entrée intersecte un polygone de bâtiment existant dans les entités cibles. Si une intersection est détectée, l’outil vérifie si les valeurs des paramètres ID de bâtiment et Nom du bâtiment correspondent aux valeurs des champs FACILITY_ID et NAME de l’entité Bâtiments d’intersection. Si les valeurs correspondent, l’outil met à jour le bâtiment existant. Si elles ne correspondent pas, il émet un message et s’arrête. Il s’agit de l’option par défaut.
  • Option sélectionnée : l’outil ne vérifie pas si le polygone de plan d’étages BIM en entrée intersecte un polygone de bâtiment existant dans les entités de bâtiment cibles. Vous pouvez utiliser cette option pour importer un bâtiment qui chevauche ou touche un bâtiment existant.
Boolean

Sortie obtenue

ÉtiquetteExplicationType de données
Unités mises à jour

Entités d’unité cibles mises à jour.

Feature Layer

arcpy.indoors.ImportBIMToIndoorDataset(in_bim_floorplan_layer, target_unit_features, target_detail_features, target_level_features, target_facility_features, facility_id, facility_name, ground_floor_name, {floorplan_polygon_use_type_field}, {floors_to_import}, {area_unit_of_measure}, {in_bim_rooms_layer}, {room_properties_mapping}, {allow_insert_new_facility})
NomExplicationType de données
in_bim_floorplan_layer

La couche d’entités Floorplan_Polygon du fichier BIM source a été ajoutée à la carte actuelle.

Feature Layer
target_unit_features

Couche d’entités, classe d’entités ou service d’entités Unités cible conforme au modèle d’information ArcGIS Indoors et qui se trouve dans le même espace de travail que les entités Bâtiments, Niveaux et Détails cibles.

Feature Layer
target_detail_features

Couche d’entités, classe d’entités ou service d’entités Détails cible conforme au modèle d’information ArcGIS Indoors et qui se trouve dans le même espace de travail que les entités Bâtiments, Niveaux et Unités cibles.

Feature Layer
target_level_features

Couche d’entités, classe d’entités ou service d’entités Niveaux cible conforme au modèle d’information ArcGIS Indoors et qui se trouve dans le même espace de travail que les entités Bâtiments, Unités et Détails cibles.

Feature Layer
target_facility_features

Couche d’entités, classe d’entités ou service d’entités Bâtiments cible conforme au modèle d’information ArcGIS Indoors et qui se trouve dans le même espace de travail que les entités Niveaux, Unités et Détails cibles.

Feature Layer
facility_id

ID de bâtiment unique qui sera affecté aux entités Indoors en sortie. Il ne peut pas comporter d’espace.

String
facility_name

Nom commun du bâtiment.

String
ground_floor_name

Rez-de-chaussée du bâtiment. L’ordre vertical des niveaux est dérivé de cette entrée. Tous les niveaux dont l’élévation est inférieure à celle du rez-de-chaussée spécifié se voient attribuer un ordre vertical négatif.

String
floorplan_polygon_use_type_field
(Facultatif)

Champ de la couche d’entités Floorplan_Polygon qui sera utilisé pour remplir le champ USE_TYPE pour les entités d’unité cibles. Si aucun champ n’est fourni, la valeur du champ RoomName de la couche Floorplan_Polygon est utilisée.

String
floors_to_import
[floors_to_import,...]
(Facultatif)

Étages du fichier BIM en entrée qui seront importés dans les entités cibles. Si aucun étage n’est indiqué, tous les étages sont importés.

String
area_unit_of_measure
(Facultatif)

Indique l’unité de mesure utilisée pour les champs surfaciques dans les classes d’entités Niveaux et Unités.

  • SQUARE_METERSL’unité de surface est le mètre carré.
  • SQUARE_FEETL’unité de surface est le pied carré. Il s’agit de l’option par défaut.
String
in_bim_rooms_layer
(Facultatif)

Couche de salles du jeu de données architectural dans le fichier BIM en entrée. Cette couche est utilisée pour obtenir des valeurs de champ étendues pouvant être appariées à des champs existants dans la classe d’entités Unités à l’aide du paramètre Appariement des propriétés de salle.

Feature Layer
room_properties_mapping
(Facultatif)

Contrôle quels sont les champs attributaires dans la classe d’entités Unités qui seront remplis avec des valeurs de champ provenant de la couche de salles BIM en entrée. Les champs doivent exister avant que vous n’exécutiez l’outil. Il est recommandé d’apparier les champs de la couche de salles BIM en entrée à des champs de la couche d’entités Unités dont le type de données est identique.

Field Mappings
allow_insert_new_facility
(Facultatif)

Spécifie si un bâtiment du fichier BIM en entrée est importé dans le cas où une intersection est détectée entre le plan d’étages de ce bâtiment et une entité Bâtiments existante dans les entités de bâtiment cibles.

  • NO_ALLOW_INSERT_NEW_FACILITYL’outil vérifie si le polygone de plan d’étages BIM en entrée intersecte un polygone de bâtiment existant dans les entités de bâtiment cibles. Si une intersection est détectée, l’outil vérifie si les valeurs des paramètres facility_id et facility_name correspondent aux valeurs des champs FACILITY_ID et NAME de l’entité Bâtiments d’intersection. Si les valeurs correspondent, l’outil met à jour le bâtiment existant. Si elles ne correspondent pas, il émet un message et s’arrête. Il s’agit de l’option par défaut.
  • ALLOW_INSERT_NEW_FACILITYL’outil ne vérifie pas si le polygone de plan d’étages BIM en entrée intersecte un polygone de bâtiment existant dans les entités de bâtiment cibles. Vous pouvez utiliser cette option pour importer un bâtiment qui chevauche ou touche un bâtiment existant.
Boolean

Sortie obtenue

NomExplicationType de données
updated_units

Entités d’unité cibles mises à jour.

Feature Layer

Exemple de code

Exemple 1 d’utilisation de la fonction ImportBIMToIndoorDataset (fenêtre Python)

Le script ci-dessous pour la fenêtre Python illustre l’utilisation de la fonction ImportBIMToIndoorDataset en mode immédiat.

import arcpy
arcpy.indoors.ImportBIMToIndoorDataset('C:/ExampleCampus.rvt/Floorplan/Floorplan_Polygon', 
                                        'C:/Indoors/ExampleCampus.gdb/Indoor/Units', 
                                        'C:/Indoors/ExampleCampus.gdb/Indoor/Details', 
                                        'C:/Indoors/ExampleCampus.gdb/Indoor/Levels', 
                                        'C:/Indoors/ExampleCampus.gdb/Indoor/Facilities', 
                                        'Building_A',
                                        'Building A',
                                        'LEVEL 01',
                                        'RoomName',
                                        ['BASEMENT', 'LEVEL 01', 'LEVEL 02'],
                                        'SQUARE_FEET',
                                        'C:/ExampleCampus.rvt/Architectural/Rooms',
                                       'UNIT_ID "Unit ID" true true false 255 Text 0 0,First,#,Rooms,ObjectId,0,255;'
                                       'NAME "Name" true true false 100 Text 0 0,First,#;'
                                       'NAME_LONG "Long Name" true true false 255 Text 0 0,First,#,Rooms,Department,0,255;LEVEL_ID "Level ID" true true false 255 Text 0 0,First,#;'
                                       'AREA_GROSS "Gross Area" true true false 8 Double 0 0,First,#;'
                                       'HEIGHT_RELATIVE "Relative Height" true true false 8 Double 0 0,First,#,Rooms,SourceHeight,-1,-1',
                                       'NO_ALLOW_INSERT_NEW_FACILITY')
Exemple 2 d’utilisation de la fonction ImportBIMToIndoorDataset (script autonome)

Le script autonome ci-dessous illustre l’utilisation de la fonction ImportBIMToIndoorDataset.

# Name: ImportBIMToIndoorDataset_example2.py
# Description: Imports features from a BIM file into the indoor dataset

import arcpy

# Set tool parameters 
in_bim_floorplan_fc = 'C:/ExampleCampus.rvt/Floorplan/Floorplan_Polygon'
arcpy.management.MakeFeatureLayer(in_bim_floorplan_fc, 'in_bim_floorplan_layer')

target_unit_features = 'C:/Indoors/ExampleCampus.gdb/Indoor/Units' 
target_detail_features = 'C:/Indoors/ExampleCampus.gdb/Indoor/Details' 
target_level_features = 'C:/Indoors/ExampleCampus.gdb/Indoor/Levels' 
target_facility_features = 'C:/Indoors/ExampleCampus.gdb/Indoor/Facilities' 
facility_id = 'BUILDING_A'
facility_name = 'Building A'
ground_floor_name = 'LEVEL 01'
floorplan_polygon_use_type_field = 'Category'
floors_to_import = ['BASEMENT', 'LEVEL 01', 'LEVEL 02']
area_unit_of_measure = 'SQUARE_FEET'
in_bim_rooms_layer = 'C:/ExampleCampus.rvt/Architectural/Rooms'
room_properties_mapping = ""
allow_insert_new_facility = 'NO_ALLOW_INSERT_NEW_FACILITY'

# Create field mapping object
room_properties_mapping = arcpy.FieldMappings()
#set target schema
TargetSchema = 'C:/Indoors/ExampleCampus.gdb/Indoor/Units'
room_properties_mapping.addTable(TargetSchema)

# Map the target field "NAME_LONG", using values from "RoomNumber" field from source BIM file
fldMap = arcpy.FieldMap()
fldMap.addInputField(in_bim_rooms_layer, 'RoomNumber')
RoomNumber = fldMap.outputField
RoomNumber.name, RoomNumber.aliasName, RoomNumber.type = 'NAME_LONG', 'Long Name', 'TEXT'
fldMap.outputField = RoomNumber
room_properties_mapping.addFieldMap(fldMap)

# Map the target field "HEIGHT_RELATIVE", using values from "SourceHeight"
fldMap = arcpy.FieldMap()
fldMap.addInputField(in_bim_rooms_layer, 'SourceHeight')
SourceHeight = fldMap.outputField
SourceHeight.name, SourceHeight.aliasName, SourceHeight.type = 'HEIGHT_RELATIVE', 'Relative Height', 'DOUBLE'
fldMap.outputField = SourceHeight
fldMap.addInputField(in_bim_rooms_layer, 'SourceHeight')
room_properties_mapping.addFieldMap(fldMap)

# Run the tool
arcpy.indoors.ImportBIMToIndoorDataset(in_bim_floorplan_layer, target_unit_features, target_detail_features,
                                       target_level_features, target_facility_features, facility_id, facility_name,
                                       ground_floor_name, floorplan_polygon_use_type_field, floors_to_import,
                                       area_unit_of_measure, in_bim_rooms_layer, room_properties_mapping,
                                       allow_insert_new_facility)

Environnements

Cas particuliers

Informations de licence

  • Basic: Non
  • Standard: Non
  • Advanced: Nécessite Indoors

Rubriques connexes