Mettre à jour le diagramme (Schematics)
Récapitulatif
Met à jour un diagramme schématique.
La mise à jour de diagrammes peut reposer sur des couches d'entités, des classes d'entités, des tables d'objets, une analyse de réseau résolue ou un fichier XML, selon le générateur schématique utilisé.
Utilisation
-
Le paramètre Données en entrée est obligatoire pour les diagrammes fonctionnant avec le générateur de jeu de données réseau et le générateur XML. Il est facultatif pour les diagrammes utilisés avec le générateur standard lorsqu'il est configuré en vue de fonctionner à partir d'un réseau géométrique ou d'un jeu de données réseau. Il ne doit pas être spécifié pour les diagrammes qui fonctionnent avec le générateur standard configuré en vue de gérer les requêtes personnalisées.
-
Lorsque vous exécutez l'outil Mettre à jour le diagramme sur des diagrammes implémentés par le générateur standard qui ont été générés à partir d'un parcours de réseau géométrique, la mise à jour s'effectue à partir du résultat du traçage mis à jour en fonction des paramètres de traçage qui ont été conservés dans le jeu de données schématique la première fois que le diagramme a été généré à partir d'un traçage en surbrillance.
-
Lorsque la mise à jour doit s'effectuer à partir des entités qui composent un réseau géométrique ou un jeu de données réseau, il n'est pas nécessaire de spécifier toutes les couches d'entités dans le paramètre Données en entrée. Si les propriétés du générateur standard sont définies par l'option Ajouter les nœuds connectés, seules les couches d'entités associées aux tronçons ou aux éléments de réseau de tronçon peuvent être spécifiées, même si toutes les couches d'entités associées au réseau géométrique ou au jeu de données réseau (jonctions et tronçons) seront utilisées dans le cadre d'une mise à jour.
-
Si une mise en page particulière a été enregistrée pour le diagramme schématique spécifié, les entités schématiques déjà contenues dans le diagramme avant la mise à jour sont affichées en conservant leur dernière position enregistrée, et les nouvelles entités schématiques introduites pendant la mise à jour sont placées sur leurs coordonnées géographiques.
Syntaxe
Paramètre | Explication | Type de données |
in_diagram |
Couche de diagrammes schématiques à mettre à jour. | Schematic Layer |
in_data [in_data,...] (Facultatif) |
Données en entrée sur lesquelles sera basée la mise à jour du diagramme. Le paramètre Données en entrée n'est pas obligatoire pour tous les générateurs prédéfinis :
| Table View;Data Element;Layer |
builder_options [builder_options,...] (Facultatif) |
Options de mise à jour du créateur schématique. Les options de mise à jour sont facultatives. Elles dépendent du générateur associé au modèle de diagramme qui implémente le diagramme schématique spécifié :
| String |
Exemple de code
Met à jour un exemple de diagramme schématique généré intégralement à partir de requêtes personnalisées. Dans ce cas, seul le paramètre de nom de diagramme est requis.
Procédure d'exécution de cet exemple de script Python :
- Démarrez ArcCatalog ou ArcMap avec une carte vierge.
- Copiez et collez le script suivant dans la fenêtre Python.
- Appuyez sur Entrée.
# Name: UpdateDiagramCustomQuery.py
# Description: Update a schematic diagram entirely built from custom queries
# Requirement: Extension ArcGIS Schematics
# import system modules
import arcpy
msgNoLicenseAvailable = "Extension ArcGIS Schematics license required"
try:
# Checks out the Extension ArcGIS Schematics license
if arcpy.CheckExtension("Schematics") == "Available":
arcpy.CheckOutExtension("Schematics")
else:
raise Exception(msgNoLicenseAvailable)
# Sets Schematics general settings
dataLocation="C:/ArcGIS/ArcTutor/Schematics/Schematics_In_ArcMap"
gdbName="ElecDemo.gdb"
in_schDataset="ElecDemo"
in_schFolder="Inside Plants"
in_diagName="Substation 08"
builder_option1="REFRESH"
# Sets environment settings
arcpy.env.overwriteOutput = True
arcpy.env.workspace = dataLocation + "/" + gdbName
# UpdateDiagram by only refreshing attributes on the input diagram's schematic features
arcpy.UpdateDiagram_schematics(in_schDataset + "/" + in_schFolder + "/" + in_diagName, "#", builder_option1)
# UpdateDiagram by fully synchronizing the input custom queries-based diagram (no parameters required)
arcpy.UpdateDiagram_schematics(in_schDataset + "/" + in_schFolder + "/" + in_diagName)
# Returns the Extension ArcGIS Schematics license
arcpy.CheckInExtension("Schematics")
print "Script completed successfully"
except Exception as e:
# If an error occurred, print line number and error message
import traceback, sys
tb = sys.exc_info()[2]
print "An error occurred on line %i" % tb.tb_lineno
print str(e)
Met à jour des exemples de diagrammes schématiques générés à partir d'entités organisées dans un réseau géométrique.
Procédure d'exécution de cet exemple de script Python :
- Démarrez ArcCatalog ou ArcMap avec une carte vierge.
- Copiez et collez le script suivant dans la fenêtre Python.
- Appuyez sur Entrée.
# Name: UpdateDiagramStd.py
# Description: Update schematic diagrams built from features organized into a geometric network
# Requirement: Extension ArcGIS Schematics
# import system modules
import arcpy
msgNoLicenseAvailable = "Extension ArcGIS Schematics license required"
try:
# Checks out the Extension ArcGIS Schematics license
if arcpy.CheckExtension("Schematics") == "Available":
arcpy.CheckOutExtension("Schematics")
else:
raise Exception(msgNoLicenseAvailable)
# Sets Schematics general settings
dataLocation="C:/ArcGIS/ArcTutor/Schematics/Schematics_In_ArcMap"
gdbName="ElecDemo.gdb"
in_schDataset="ElecDemo"
in_schFolder="Feeders"
in_diagTempName="GeoSchematic"
# Sets variables used for the A/ UpdateDiagram sample
in_diagAName="Feeder 0801-Rice Creek"
# Sets variables used for the B/ UpdateDiagram sample
in_diagBName="Feeder 0802-Goldmine"
# Sets variables used for the C/ UpdateDiagram sample
in_diagCName="WholeElectricNetworkDiagram"
input_ForCDiag="ElectricNetwork/PrimaryLine;ElectricNetwork/SecondaryLine"
input_FC1="ElectricNetwork/PrimaryLine"
# Sets variables used for the D/ UpdateDiagram sample
in_diagDName="FeederDiagram"
input_ForDDiag="ElectricNetwork/Feeder"
input_FC2="ElectricNetwork/Substation"
# Sets variables used for the E/ UpdateDiagram sample
in_diagEName="FeederDiagramBIS"
input_ForEDiag="ElectricNetwork/Feeder"
input_FC3="ElectricNetwork/ServiceLocation"
# Sets variables used for the F/ UpdateDiagram sample
input_LayerName="PrimaryLineLayer"
input_Filter="PHASECODE=135"
in_diagFName="PrimaryLinesDiagram"
# Sets builder_options variables for diagram Update
# - For simply refreshing the diagram's attributes only
U_option1="REFRESH"
# - For rebuilding the diagram from a different input
U_option2="REBUILD;KEEP_MANUAL_MODIF"
U_option2BIS="REBUILD;NO_KEEP_MANUAL_MODIF"
# - For appending new features to the diagram with a partial synchronization of its content
U_option3="APPEND_QUICK;KEEP_MANUAL_MODIF"
U_option3BIS="APPEND_QUICK;NO_KEEP_MANUAL_MODIF"
# - For appending new features to the diagram with a full synchronization of its content
U_option4="APPEND;KEEP_MANUAL_MODIF"
U_option4BIS="APPEND;NO_KEEP_MANUAL_MODIF"
# Sets environment settings
arcpy.env.overwriteOutput = True
arcpy.env.workspace = dataLocation + "/" + gdbName
# Creates some new diagrams that will be used to exemplify the C/, D/, E/ and F/ UpdateDiagram samples
arcpy.CreateDiagram_schematics(in_schDataset, in_diagCName, in_diagTempName, input_ForCDiag)
arcpy.CreateDiagram_schematics(in_schDataset, in_diagDName, in_diagTempName, input_ForDDiag)
arcpy.CreateDiagram_schematics(in_schDataset, in_diagEName, in_diagTempName, input_ForEDiag)
InputLayer = arcpy.MakeFeatureLayer_management(input_FC1, input_LayerName, input_Filter)
arcpy.CreateDiagram_schematics(in_schDataset, in_diagFName, in_diagTempName, InputLayer)
# A/ UpdateDiagram by fully synchronizing the diagram content; no udpate parameters required
arcpy.UpdateDiagram_schematics(in_schDataset + "/" + in_schFolder + "/" + in_diagAName)
# B/ UpdateDiagram by only refreshing attributes on the input diagram's schematic features
arcpy.UpdateDiagram_schematics(in_schDataset + "/" + in_schFolder + "/" + in_diagBName, "#", U_option1)
# C/ UpdateDiagram by rebuilding the input diagram from a feature class
arcpy.UpdateDiagram_schematics(in_schDataset + "/" + in_diagCName, input_FC1, U_option2)
# D/ UpdateDiagram by appending new features to the input diagram with a partial synchronization
arcpy.UpdateDiagram_schematics(in_schDataset + "/" + in_diagDName, input_FC2, U_option3)
# E/ UpdateDiagram by appending new features to the input diagram with a full synchronization
arcpy.UpdateDiagram_schematics(in_schDataset + "/" + in_diagEName, input_FC3, U_option4)
# F/ UpdateDiagram by rebuilding the input diagram from an input layer
arcpy.UpdateDiagram_schematics(in_schDataset + "/" + in_diagFName, InputLayer, U_option2)
# Returns the Extension ArcGIS Schematics license
arcpy.CheckInExtension("Schematics")
print "Script completed successfully"
except Exception as e:
# If an error occurred, print line number and error message
import traceback, sys
tb = sys.exc_info()[2]
print "An error occurred on line %i" % tb.tb_lineno
print str(e)
Met à jour un exemple de diagramme schématique basé sur le générateur XML.
Procédure d'exécution de cet exemple de script Python :
- Lancez ArcCatalog.
- Créez et configurez le jeu de données schématique utilisé dans l'exemple de script :
- Accédez au dossier C:\ArcGIS\ArcTutor\Schematics\Schematics_Configuration\XML_Data dans l'arborescence du catalogue.
- Cliquez avec le bouton droit de la souris sur la géodatabase GISDatabaseForXML, pointez sur Nouveau, puis cliquez sur Jeu de données schématique.
- Nommez le nouveau jeu de données schématique "XMLDataset", puis appuyez sur Entrée.
- Cliquez avec le bouton droit sur le jeu de données schématique XMLDataset, puis sélectionnez Modifier.
- Dans l'arborescence de l'éditeur de jeu de données, cliquez avec le bouton droit sur l'entrée XMLDataset et sélectionnez Nouveau modèle de diagramme schématique.
- Tapez XMLDiagrams dans la zone de texte Nom.
- Sélectionnez Générateur XML dans la section Générateur schématique.
- Cliquez sur Propriétés du créateur schématique et cochez la case Création automatique de la classe d'entités schématiques.
- Fermez la boîte de dialogue Propriétés du créateur.
- Cliquez sur OK.
- Dans la barre d'outils Editeur de jeu de données schématique, cliquez sur Enregistrer, puis fermez l'éditeur de jeu de données schématique.
- Copiez et collez le script suivant dans la fenêtre Python d'ArcCatalog ou d'ArcMap.
- Appuyez sur Entrée.
# Name: UpdateDiagramXML.py
# Description: Update schematic diagrams based on the XML builder
# Requirement: Extension ArcGIS Schematics
# import system modules
import arcpy
msgNoLicenseAvailable = "Extension ArcGIS Schematics license required"
try:
# Checks out the Extension ArcGIS Schematics license
if arcpy.CheckExtension("Schematics") == "Available":
arcpy.CheckOutExtension("Schematics")
else:
raise Exception(msgNoLicenseAvailable)
# Sets Schematics general settings
dataLocation="C:/ArcGIS/ArcTutor/Schematics/Schematics_Configuration/XML_Data"
gdbName="GISDatabaseForXML.gdb"
in_schDataset="XMLDataset"
in_diagName="XMLDiagramFeeder1"
in_diagTempName="XMLDiagrams"
input_XmlFile1="SampleNetworkFeeder1.xml"
input_XmlFile2="SampleNetworkUpdatedFeeder1.xml"
# Sets environment settings
arcpy.env.overwriteOutput = True
arcpy.env.workspace = dataLocation + "/" + gdbName
# CreateDiagram from a XML file, SampleNetworkFeeder1.xml
arcpy.CreateDiagram_schematics(in_schDataset, in_diagName, in_diagTempName, dataLocation + "/" + input_XmlFile1)
# Updates the XMLDiagramFeeder1 diagram from another XML file, SampleNetworkUpdatedFeeder1.xml
arcpy.UpdateDiagram_schematics(in_schDataset + "/" + in_diagName, dataLocation + "/" + input_XmlFile2)
# Returns the Extension ArcGIS Schematics license
arcpy.CheckInExtension("Schematics")
print "Script completed successfully"
except Exception as e:
# If an error occurred, print line number and error message import traceback, sys
tb = sys.exc_info()[2]
print "An error occured on line %i" % tb.tb_lineno
print str(e)
Met à jour des diagrammes schématiques basés sur le générateur de jeu de données réseau.
Procédure d'utilisation de cet exemple de script Python :
- Démarrez ArcMap.
- Ouvrez le fichier ParisTours.mxd enregistré dans le répertoire C:\ArcGIS\ArcTutor\Schematics\Schematics_Configuration\Network_Dataset.
- Cliquez sur Géotraitement > Options de géotraitement.
- Désactivez l'option Activer dans la section Traitement en arrière-plan, puis cliquez sur OK.
- Copiez et collez le script suivant dans la fenêtre Python.
# Name: UpdateDiagramNDS.py
# Description: Update sample schematic diagrams based on the Network Dataset builder
# Requirement: Extension ArcGIS Schematics,Extension ArcGIS Network Analyst
# import system modules
import arcpy
msgNoLicenseSchematicsAvailable = "Extension ArcGIS Schematics license required"
msgNoLicenseNetworkAnalystAvailable = "Extension ArcGIS Network Analyst license required"
try:
# Checks out the Extension ArcGIS Schematics licence
if arcpy.CheckExtension("Schematics") == "Available":
arcpy.CheckOutExtension("Schematics")
else:
raise Exception(msgNoLicenseSchematicsAvailable)
# Checks out the Extension ArcGIS Network Analyst licence
if arcpy.CheckExtension("Network") == "Available":
arcpy.CheckOutExtension("Network")
else:
raise Exception(msgNoLicenseNetworkAnalystAvailable)
# Sets general settings
dataLocation="C:/ArcGIS/ArcTutor/Schematics/Schematics_Configuration/Network_Dataset"
gdbName="NetworkAnalyst_Schematics.gdb"
in_schDataset="NA_SchematicDataset"
in_diagAName="DiagramTour2_A"
in_diagBName="DiagramTour2_B"
in_diagTempName="NADiagrams"
in_NALayerName="Routes/Tour2"
# builder_options variables for diagram Generation and Update
G_option1="MERGE_NODES"
G_option2="NO_MERGE_NODES"
U_option1="NO_MERGE_NODES;KEEP_MANUAL_MODIF"
U_option2="MERGE_NODES;KEEP_MANUAL_MODIF"
# Sets environment settings
arcpy.env.overwriteOutput = True
arcpy.env.workspace = dataLocation + "/" + gdbName
# UpdateDiagram from a solved route network analysis layer
# 1) Solves the route network analysis layer,
arcpy.Solve_na(in_NALayerName)
# 2) Creates diagrams from this solved route network analysis layer
# a - A diagram where a single node is created to represent a GIS point crossed N times along this route (G_option1)
arcpy.CreateDiagram_schematics(in_schDataset, in_diagAName, in_diagTempName, in_NALayerName, G_option1)
# b - A diagram where N nodes are created to represent a GIS point crossed N times along this route (G_option2)
arcpy.CreateDiagram_schematics(in_schDataset, in_diagBName, in_diagTempName, in_NALayerName, G_option2)
# 3) Updates those diagrams from the same solved route network analysis layer by changing the merge nodes option
arcpy.UpdateDiagram_schematics(in_schDataset + "/" + in_diagAName, in_NALayerName, U_option1)
arcpy.UpdateDiagram_schematics(in_schDataset + "/" + in_diagBName, in_NALayerName, U_option2)
# Returns the licences
arcpy.CheckInExtension("Schematics")
arcpy.CheckInExtension("Network")
print "Script completed successfully"
except Exception as e:
# If an error occurred, print line number and error message
import traceback, sys
tb = sys.exc_info()[2]
print "An error occurred on line %i" % tb.tb_lineno
print str(e)