Die Integration von detaillierten BIM-Daten mit geografischem Kontext ermöglicht es Projektbeteiligten, auf zentralisierte, verlässliche Daten zuzugreifen und fundierte Entscheidungen in allen Projektphasen zu treffen. In diesem Beitrag zeigen wir Ihnen, wie automatisierte Workflows die komplexen Anforderungen moderner Bauprojekte vereinfachen.
Einführung
Die Kombination von detaillierten Infrastrukturplanungsdaten (BIM) mit einem geographischen Kontext ermöglicht es den Projektbeteiligten, auf Grundlage zentraler, verlässlicher Daten zusammenzuarbeiten und in allen Projektphasen fundierte Entscheidungen zu treffen. Integrationen, die GIS- mit BIM-Informationen kombinieren, helfen dabei, die komplexen Anforderungen von Bauprojekten zu erfüllen, bei denen Umwelt- und Infrastrukturfaktoren zunehmend miteinander verbunden sind.
Mit einem automatisierten Workflow können Sie sich von lästigen und zeitraubenden Aufgaben befreien und sich stattdessen auf die Dinge konzentrieren, die sich positiv auf Ihr Team auswirken.
Bevor Sie Beginnen:
- Stellen Sie sicher, dass das/die Modell(e) bereits georeferenziert sind.
- Melden Sie sich bei einer ArcGIS Online oder ArcGIS Enterprise-Organisation an.
Was Sie benötigen:
- Das zu diesem Beitrag gehörende ArcGIS Notebook.
- ArcGIS Pro 3.4 oder höher.
In diesem Beispiel wird davon ausgegangen, dass die Projektbeteiligten die Entwicklung eines Bauprojekts in verschiedenen Stadien (30 Prozent, 60 Prozent, 90 Prozent und 100 Prozent) in einer Webszene sehen möchten.
Das folgende Diagramm gibt einen Überblick über den allgemeinen Prozess, der für die Automatisierung der Erstellung von Szenen-Layern erforderlich ist – Gebäude-Szenen-Layer (gehostet) in ArcGIS Online (im Store erhältlich).

Stufe 1: Hochladen der 30-Prozent-Phase
Zunächst laden Sie das Modell hoch, das die 30-Prozent-Phase der Entwicklung darstellt. Dieses Projekt besteht aus mehreren digitalen Modellen (Rohrsystem, Tragwerk, Elektrik, Architektur usw.), die das gesamte Bauwerk darstellen.
Weitere Details zur Arbeit mit mehreren digitalen Modellen als einen einzigen Gebäude-Layer finden Sie im Blogbeitrag Combine multiple digital models into a single building scene layer.
Die Schritte 1 und 2 sind optional, wenn einer der folgenden Punkte zutrifft:
- Ihr Gebäude/Bauwerk wird durch ein einziges digitales Modell dargestellt oder
- Sie möchten jedes digitale Modell einzeln veröffentlichen oder
- Sie müssen die Geometrie und/oder Attribute nicht mit ArcGIS Pro bearbeiten
Manuell hochladen
- Konvertieren Sie die digitalen Modelle zu einem einzigen Dataset mit dem Werkzeug BIM-Datei in Geodatabase
- Erstellen Sie aus dem Dataset einen Gebäude-Layer mit dem Werkzeug Gebäude-Layer erstellen
- Speichern Sie im Layer (von dem Gebäude-Layer aus) mit dem Werkzeug In Layer-Datei speichern
- Erstellen Sie aus dem Layer einen Gebäude-Szenen-Layer mit dem Werkzeug Gebäude-Szenen-Layer-Inhalt erstellen
- Überprüfen Sie das Szenen-Layer-Paket (.slpk) mit dem Werkzeug Szenen-Layer überprüfen (Dieser Schritt ist optional, wird aber empfohlen)
- Geben Sie das Szenen-Layer-Paket (.slpk) frei mit dem Werkzeug Paket freigeben
Code-Beispiel
Dies ist ein Überblick über den Code. Das bereitgestellte ArcGIS Notebook enthält weitere Details und Erklärungen zum Code. Sie können es in ArcGIS Pro ausführen, so dass Sie den Code Schritt für Schritt durchgehen können.
### Import Packages
import arcpy
import os
import ast
import time
### Define Variables # The BIM file or files that will be converted to geodatabase feature classes. # This could be Revit or IFC or both formats bim_file_location = r’C:\TEMP\Automation_Blog\Automation_Sample\Revit\HUT_DA_60.rvt’
# The full path to the location of an existing ArcGIS Pro Project project_path = r”C:\TEMP\Automation_Blog\Automation_Sample\GDB”
# The geodatabase where the output feature dataset will be created. # This must be an existing geodatabase in the provided project. gdb_name = “DigitalModel_ProjectA_Del_60.gdb”
# The spatial reference of the output feature dataset. # The default will be the spatial reference defined # by the projection file of the BIM File Workspace (IFC or Revit) input_spatial_reference = “NAD_1983_2011_StatePlane_Maine_East_FIPS_1801_Ft_US”
# The building dataset name. # The name will be use also for the name of the # building scene layer package and published layer. dataset_name = “Part_60”
# Desired coordinate system ouput_coordinate_system = “GCS_WGS_1984”
# Transformation used between the coordinate systems intended_transformation = “WGS_1984_(ITRF08)_To_NAD_1983_2011” feature_dataset_path = os.path.join(project_path, gdb_name, dataset_name)
if arcpy.Exists(os.path.join(feature_dataset_path)): arcpy.Delete_management(feature_dataset_path)
### Export the BIM file Workspace into a Feature Dataset arcpy.conversion.BIMFileToGeodatabase( in_bim_file_workspace = bim_file_location, out_gdb_path = os.path.join(project_path, gdb_name), out_dataset_name = dataset_name, spatial_reference = input_spatial_reference, include_floorplan = “EXCLUDE_FLOORPLAN”
)
### Create Temporary Building Layer from the Feature Dataset temporary_layer = arcpy.management.MakeBuildingLayer( in_feature_dataset = feature_dataset_path, out_layer= f”{dataset_name}_Layer”
)
slpk_path = os.path.join(project_path, f”{dataset_name}.slpk”)
print (f”Creating output at {slpk_path}”)
### Create a Building Scene Layer Package arcpy.management.CreateBuildingSceneLayerPackage( in_dataset = temporary_layer, out_slpk = slpk_path, out_coor_system = ouput_coordinate_system, transform_method = intended_transformation, texture_optimization = “DESKTOP”, target_cloud_connection = None
)
### Share the Package as a Building Scene Layer (hosted) results = arcpy.management.SharePackage( in_package = slpk_path, username = “”, password = “”, summary = “BIM Project Example”, tags = “3D, building scene layer”, credits = “”, public = “MYGROUPS”, groups = None, organization = “MYORGANIZATION”, publish_web_layer = “TRUE”, portal_folder = “Delete”
)
if
results and
results[“out_results”] == “true”: print
(f”Successfully uploaded {slpk_path}\n”) publish_results = ast.literal_eval(results[“publish_results”]) serviceItemId = publish_results[“publishResult”][“serviceItemId”] print
(f”Service Item ID: {serviceItemId}”)
else
: print
(f”Error while attempting to upload {slpk_path}\n”)
Stufe 2: Aktualisierung mit der nächsten Entwicklungsphase
Um die Projektbeteiligten über den Projektfortschritt auf dem Laufenden zu halten, aktualisieren Sie die Informationen, auf die sie Zugriff haben. In dieser Phase beginnen Sie mit der Aktualisierung/Ersetzung der vorherigen Version durch eine aktualisierte Version des Projekts, damit die Projektbeteiligten die aktuellste Version des Projekts sehen können.
Da die Projektbeteiligten viel Zeit in die Erstellung ihres Projekts (und möglicherweise der Anwendung, mit der es angezeigt wird) investiert haben, stellen Sie außerdem sicher, dass der Ersetzungsprozess die vorhandene Element-ID beibehält. Dies hilft den Benutzer:innen, manuelle Arbeit zu reduzieren, wenn eine neue Version des Gebäude-Szenen-Layers zur Webszene hinzugefügt wird.
Manuell hochladen
- Konvertieren Sie die digitalen Modelle zu einem einzigen Dataset mit dem Werkzeug BIM-Datei in Geodatabase
- Erstellen Sie aus dem Dataset einen Gebäude-Layer mit dem Werkzeug Gebäude-Layer erstellen
- Speichern Sie im Layer (von dem Gebäude-Layer aus) mit dem Werkzeug In Layer-Datei speichern
- Erstellen Sie aus dem Layer einen Gebäude-Szenen-Layer mit dem Werkzeug Gebäude-Szenen-Layer-Inhalt erstellen
- Geben Sie das Szenen-Layer-Paket (.slpk) frei mit dem Werkzeug Paket freigeben
- Ersetzen Sie den ursprüngliche Gebäude-Szenen-Layer durch den aktualisierten Layer mit dem Werkzeug.Web-Layer ersetzen
Code-Beispiel
## Replace the prior version of the Building Scene Layer
### Define Variables
# The web layer that will be replaced.
currentItemId = “YOURCURRENTITEMID”
### Replace Web Layer
results = arcpy.server.ReplaceWebLayer(
target_layer = currentItemId,
archive_layer_name = f”{dataset_name}_archive_{time.strftime(‘%Y%m%d’)}”, update_layer = serviceItemId, replace_item_info = “REPLACE”, create_new_item = “TRUE”
)
print(f”Successfully replaced web layer at {results[0]}.”)
Die neue Version des Gebäude-Szenen-Layer erhält dieselbe Element-ID und denselben Namen wie der in Stufe 1 erstellte Layer, so dass die Szene auf dem neuesten Stand bleibt.
In einem realen Szenario würden Sie den gleichen Workflow der Stufe 2 befolgen, wenn Ihr Projekt fortschreitet und die Informationen für die Fertigstellungsgrade 90 Prozent und 100 Prozent verfügbar werden.
Zusammenfassung
Wenn Sie diese Schritte befolgt haben, können Sie nun die Freigabe von Gebäude-Szenen-Layern für ArcGIS Online automatisieren und die Produktionszeit mit den aktuellsten Projektdaten, die von den Projektbeteiligten benötigt werden, minimieren. Viel Spaß beim Anwenden!
Hier können Sie das ArcGIS Notebook herunterladen.
Die Beispieldaten stehen Ihnen hier zum Download zur Verfügung.
Dieser Beitrag ist eine Übersetzung des amerikanischen Original-Beitrags.
Hier geht es zum Original-Beitrag!