Zusammenfassung
Gibt die Namen aller Schemavorlagen in Beziehung mit einem Netzwerk zurück.
Verwendung
Bei Verwendung eines Utility Network-Service wird dieses Werkzeug nicht unterstützt. Sie müssen entweder ein Versorgungs- oder Verfolgungsnetz in einer File-Geodatabase oder eine Datenbankverbindung zu einem Versorgungsnetz in einer Enterprise-Geodatabase verwenden. Wenn Sie mit einer Enterprise-Geodatabase arbeiten, muss die Verbindung über den Besitzer des Datenbank-Versorgungsnetzes hergestellt werden.
Das Netzwerkdaten-Element, das im Parameter "Eingabe-Netzwerk" angegeben wurde, muss aus einem Versorgungs- oder Verfolgungsnetz in einer File-Geodatabase oder einer Datenbankverbindung zu einem Versorgungsnetz in einer Enterprise-Geodatabase stammen.
Mit diesem Werkzeug werden in erster Linie Schemavorlagen beim Ausführen in ModelBuilder oder Python in Schleifen ausgeführt.
Syntax
GetDiagramTemplateNames(in_utility_network)
Parameter | Erklärung | Datentyp |
in_utility_network | Das Versorgungsnetz oder Verfolgungsnetz, mit dem die Namen der Schemavorlagen in einer Beziehung stehen. | Utility Network; Trace Network |
Abgeleitete Ausgabe
Name | Erklärung | Datentyp |
out_template_names | Die Namen der Ausgabe-Schemavorlagen. | Zeichenfolge |
Codebeispiel
Mit diesem Beispielskript werden die Definitionen aller Schemavorlagen in Beziehung mit einem gegebenen Netzwerk exportiert.
Mit dem folgenden Skriptwerkzeug wird die Liste der Schemavorlagen in Beziehung mit einem Netzwerk abgerufen. Außerdem werden die Definitionen für jede Vorlage in .ndbd- und .ndld-Dateien in einen gegebenen Ordner exportiert.
Zum Hinzufügen und Konfigurieren dieses Skriptwerkzeugs führen Sie die folgenden Schritte aus:
- Kopieren Sie das folgende Skript in eine Python-IDE, und speichern Sie es mit der Erweiterung .py.
- Starten Sie ArcGIS Pro mit einem neuen leeren Projekt oder einem vorhandenen Projekt.
- Fügen Sie eine neue Toolbox hinzu, oder klicken Sie im Bereich Katalog auf Projekt, und verwenden Sie die standardmäßige Projekt-Toolbox unter Toolboxes.
- Klicken Sie mit der rechten Maustaste auf diese Toolbox, und klicken Sie dann auf Neues > Skript.
- Führen Sie auf der Registerkarte Allgemein folgende Schritte durch:
- Name: ExportAllDiagramTemplateDefinitions eingeben.
- Beschriftung: Export All Diagram Template Definitions eingeben.
- Skriptdatei: die in Schritt 1 erstellte .py-Datei suchen und auswählen.
- Führen Sie auf der Registerkarte Parameter folgende Schritte durch:
- 1. Parameter
- Beschriftung: Input Network eingeben.
- Name: Den Standardnamen Input_Network beibehalten.
- Datentyp: Utility Network und Trace Network auswählen.
- Typ: Required auswählen.
- Richtung: Input auswählen.
- 2. Parameter
- Beschriftung: Definition Files Export Folder eingeben.
- Name: Den Standardnamen Definition_Files_Export_Folder beibehalten.
- Datentyp: Folder auswählen.
- Typ: Required auswählen.
- Richtung: Input auswählen.
- 1. Parameter
- Klicken Sie auf OK. Das Dialogfeld Skriptwerkzeug wird geschlossen.
Zum Ausführen des Skriptwerkzeugs führen Sie die folgenden Schritte aus:
- Erweitern Sie die Toolbox und doppelklicken Sie auf das Werkzeug, um es zu öffnen.
- Geben Sie den Parameter Eingabe-Netzwerk an, d. h. suchen Sie die Datenbankverbindungsdatei, die auf das Netzwerk verweist, von dem Sie alle Vorlagendefinitionen exportieren möchten, und wählen Sie diese aus.
- Geben Sie den Parameter Output Folder an, d. h. suchen Sie den Ausgabeordner, in den Sie die Vorlagendefinitionsdateien exportieren möchten, und wählen Sie diesen aus.
- Klicken Sie auf Ausführen.
# Name: ExportAllDiagramTemplateDefinitions.py
# Description: Export definitions of all diagram templates related to a given network.
# Import system modules
import arcpy
import os
import re
# Initialize variables
msgInputsErr = "Invalid arguments."
msgScriptErr = "Error during script operation."
ndbd_ext = ".ndbd"
ndld_ext = ".ndld"
# Set overwrite option
arcpy.env.overwriteOutput = True
# Decodes parameters
try:
input_Network = arcpy.GetParameterAsText(0)
input_Folder = arcpy.GetParameterAsText(1)
if input_Network == "" or input_Folder == "" :
raise Exception()
except Exception:
arcpy.AddError(msgInputsErr)
raise
# Main code
try:
arcpy.AddMessage("Retrieving the templates list...")
output_TemplateNames = arcpy.GetDiagramTemplateNames_nd(input_Network)
templateNamesList = re.split(';', str(output_TemplateNames))
arcpy.AddMessage("Looping on each template...")
for template in templateNamesList:
message = "Exporting template: {}".format(template)
arcpy.AddMessage(message)
arcpy.ExportDiagramTemplateDefinitions_nd(input_Network, template,
os.path.join(input_Folder, template + ndbd_ext),
os.path.join(input_Folder, template + ndld_ext))
except Exception:
arcpy.AddError(msgScriptErr)
raise
Umgebungen
Lizenzinformationen
- Basic: Nein
- Standard: Ja
- Advanced: Ja