Mettre à jour le diagramme (Schematics)

Niveau de licence :De baseStandardAvancé

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

Syntaxe

UpdateDiagram_schematics (in_diagram, {in_data}, {builder_options})
ParamètreExplicationType 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 :

  • Pour les modèles de diagrammes qui fonctionnent avec le générateur standard configuré en vue de gérer les requêtes personnalisées, aucune table en entrée n'est requise.
  • Pour les modèles de diagrammes qui fonctionnent avec le générateur XML, le paramètre Données en entrée doit faire référence à un fichier XML.
  • Pour les modèles de diagrammes qui fonctionnent avec le générateur de jeu de données réseau, vous devez spécifier les données en entrée. Elles doivent faire référence à une seule couche d'analyse du réseau. Le cas échéant, Schematics essaie d'exécuter l'analyse de réseau correspondante avant d'utiliser la couche d'analyse résolue en entrée.
  • Pour les modèles de diagrammes utilisés avec le générateur standard configuré pour fonctionner à partir d'un réseau géométrique ou d'un jeu de données réseau, lorsque le paramètre Données en entrée n'est pas spécifié, l'outil Mettre à jour le diagramme s'exécute : soit à partir du jeu initial d'entités/objets de réseau servant à générer le diagramme, soit à partir du résultat du parcours de réseau géométrique mis à jour en fonction des paramètres de traçage qui ont été conservés dans la base de données schématique si le diagramme a été généré à partir d'un traçage en surbrillance. Lorsqu'il est spécifié, le paramètre Données en entrée doit faire référence à au moins une couche d'entités, une classe d'entités ou une table d'objets pour que la mise à jour porte sur ces données conformément à la valeur Options du générateur.

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é :

  • Diagrammes générés à partir de requêtes personnalisées (générateur standard) : KEEP_MANUAL_MODIF, NO_KEEP_MANUAL_MODIF ouREFRESH.
  • Diagrammes générés à partir de données XML (générateur XML) : KEEP_MANUAL_MODIF ou NO_KEEP_MANUAL_MODIF.
  • Diagrammes générés à partir des résultats du solveur sur des jeux de données réseau (générateur de jeu de données réseau) : NO_MERGE_NODES;KEEP_MANUAL_MODIF, NO_MERGE_NODES;NO_KEEP_MANUAL_MODIF, MERGE_NODES;KEEP_MANUAL_MODIF ou MERGE_NODES;NO_KEEP_MANUAL_MODIF.
  • Diagrammes générés à partir d'entités organisées sous forme de réseau géométrique ou de jeu de données réseau (générateur standard) :
    • lorsque le paramètre Données en entrée n'est pas spécifié - KEEP_MANUAL_MODIF, NO_KEEP_MANUAL_MODIF ou REFRESH
    • lorsque le paramètre Données en entrée est spécifié - REBUILD;KEEP_MANUAL_MODIF, REBUILD;NO_KEEP_MANUAL_MODIF, APPEND;KEEP_MANUAL_MODIF, APPEND;NO_KEEP_MANUAL_MODIF, APPEND_QUICK;KEEP_MANUAL_MODIF ou APPEND_QUICK;NO_KEEP_MANUAL_MODIF

  • KEEP_MANUAL_MODIFOption par défaut pour le diagramme basé sur le générateur XML ou le générateur standard si aucune donnée en entrée n'est spécifiée. Cette option permet de synchroniser le contenu du diagramme en entrée avec la sélection/le traçage/la requête d'origine utilisés pour la génération initiale de ce diagramme (diagramme standard) ou à partir d'une version mise à jour des données en entrée XML ayant initialement servi à le générer (diagramme XML), tandis que les entités schématiques qui ont pu être manuellement supprimées/réduites/reconnectées sont conservées dans le diagramme mis à jour.
  • NO_KEEP_MANUAL_MODIFOption disponible pour les diagrammes basés sur le générateur XML ou le générateur standard lorsque aucune donnée en entrée n'est spécifiée. Cette option permet de synchroniser le contenu du diagramme en entrée avec la sélection/le traçage/la requête d'origine utilisés pour la génération initiale de ce diagramme (diagramme standard) ou à partir d'une version mise à jour des données en entrée XML ayant initialement servi à le générer (diagramme XML), tandis que les entités schématiques qui ont pu être manuellement supprimées/réduites/reconnectées sont restaurées dans le diagramme mis à jour.
  • REFRESHOption disponible pour les diagrammes basés sur le générateur standard lorsque aucune donnée en entrée n'est spécifiée. Utilisez-la simplement pour actualiser les attributs de toutes les entités schématiques du diagramme en entrée en fonction de l'état actuel des entités de réseau associées dans le réseau géométrique ou dans les classes d'entités de jeux de données réseau.
  • REBUILD;KEEP_MANUAL_MODIFOption par défaut disponible pour les diagrammes basés sur le générateur standard lorsque des données en entrée sont spécifiées. Utilisez cette option pour entièrement reconstruire le diagramme en entrée en fonction des couches d'entités, classes d'entités ou tables d'objets en entrée spécifiées, tandis que les entités schématiques qui ont pu être manuellement supprimées/réduites/reconnectées sont conservées dans le diagramme mis à jour.
  • REBUILD;NO_KEEP_MANUAL_MODIFOption disponible pour les diagrammes basés sur le générateur standard lorsque des données en entrée sont spécifiées. Utilisez cette option pour entièrement reconstruire le diagramme en entrée en fonction des couches d'entités, classes d'entités ou tables d'objets en entrée spécifiées, tandis que les entités schématiques qui ont pu être manuellement supprimées/réduites/reconnectées sont restaurées dans le diagramme mis à jour.
  • APPEND;KEEP_MANUAL_MODIFOption disponible pour les diagrammes basés sur le générateur standard lorsque des données en entrée sont spécifiées. Utilisez cette option pour ajouter les entités schématiques associées aux couches d'entités, classes d'entités ou tables d'objets en entrée spécifiées avec une synchronisation complète du contenu du diagramme en entrée, tandis que les entités schématiques qui ont pu être manuellement supprimées/réduites/reconnectées sont conservées dans le diagramme mis à jour.
  • APPEND;NO_KEEP_MANUAL_MODIFOption disponible pour les diagrammes basés sur le générateur standard lorsque des données en entrée sont spécifiées. Utilisez cette option pour ajouter les entités schématiques associées aux couches d'entités, classes d'entités ou tables d'objets en entrée spécifiées avec une synchronisation complète du contenu du diagramme en entrée, tandis que les entités schématiques qui ont pu être manuellement supprimées/réduites/reconnectées sont restaurées dans le diagramme mis à jour.
  • APPEND_QUICK;KEEP_MANUAL_MODIFOption disponible pour les diagrammes basés sur le générateur standard lorsque des données en entrée sont spécifiées. Utilisez cette option pour ajouter les entités schématiques associées aux couches d'entités, classes d'entités ou tables d'objets en entrée spécifiées avec une synchronisation partielle du contenu du diagramme en entrée, tandis que les entités schématiques qui ont pu être manuellement supprimées/réduites/reconnectées sont conservées dans le diagramme mis à jour.
  • APPEND_QUICK;NO_KEEP_MANUAL_MODIFOption disponible pour les diagrammes basés sur le générateur standard lorsque des données en entrée sont spécifiées. Utilisez cette option pour ajouter les entités schématiques associées aux couches d'entités, classes d'entités ou tables d'objets en entrée spécifiées avec une synchronisation partielle du contenu du diagramme en entrée, tandis que les entités schématiques qui ont pu être manuellement supprimées/réduites/reconnectées sont restaurées dans le diagramme mis à jour.
  • NO_MERGE_NODES;KEEP_MANUAL_MODIFOption par défaut pour les diagrammes basés sur le générateur de jeu de données réseau. Utilisez cette option pour mettre à jour le diagramme en entrée à partir de la couche d'analyse de réseau résolue spécifiée sans fusionner les nœuds définis plusieurs fois dans cette couche, tandis que les entités schématiques qui ont pu être manuellement supprimées/réduites/reconnectées sont conservées dans le diagramme mis à jour.
  • NO_MERGE_NODES;NO_KEEP_MANUAL_MODIFOption disponible pour les diagrammes basés sur le générateur de jeu de données réseau. Utilisez cette option pour mettre à jour le diagramme en entrée à partir de la couche d'analyse de réseau résolue spécifiée sans fusionner les nœuds définis plusieurs fois dans cette couche, tandis que les entités schématiques qui ont pu être manuellement supprimées/réduites/reconnectées sont restaurées dans le diagramme mis à jour.
  • MERGE_NODES;KEEP_MANUAL_MODIFOption disponible pour les diagrammes basés sur le générateur de jeu de données réseau. Utilisez-la pour mettre à jour le diagramme en entrée à partir de la couche d'analyse de réseau résolue spécifiée et fusionner les nœuds définis plusieurs fois dans cette couche, tandis que les entités schématiques qui ont pu être manuellement supprimées/réduites/reconnectées sont conservées dans le diagramme mis à jour.
  • MERGE_NODES;NO_KEEP_MANUAL_MODIFOption disponible pour les diagrammes basés sur le générateur de jeu de données réseau. Utilisez-la pour mettre à jour le diagramme en entrée à partir de la couche d'analyse de réseau résolue spécifiée et fusionner les nœuds définis plusieurs fois dans cette couche, tandis que les entités schématiques qui ont pu être manuellement supprimées/réduites/reconnectées sont restaurées dans le diagramme mis à jour.
String

Exemple de code

Exemple 1 d'utilisation de l'outil UpdateDiagram et du générateur standard fonctionnant à partir de requêtes personnalisées (script Python autonome)

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 :

  1. Démarrez ArcCatalog ou ArcMap avec une carte vierge.
  2. Copiez et collez le script suivant dans la fenêtre Python.
  3. 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 environment settings
    arcpy.env.overwriteOutput = True
    arcpy.env.workspace = "C:\ArcGIS\ArcTutor\Schematics\Schematics_In_ArcMap\ElecDemo.gdb"

    # UpdateDiagram by only refreshing the attributes on schematic features contained in the input diagram; builder_options=REFRESH
    arcpy.UpdateDiagram_schematics("ElecDemo\Inside Plants\Substation 08", "#", "REFRESH")

    # UpdateDiagram by fully synchronizing the diagram content regarding the custom queries; no udpate parameters required
    arcpy.UpdateDiagram_schematics("ElecDemo\Inside Plants\Substation 08")

    # 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)
Exemple 2 d'utilisation de l'outil UpdateDiagram et du générateur standard basé sur des données du réseau géométrique (script Python autonome)

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 :

  1. Démarrez ArcCatalog ou ArcMap avec une carte vierge.
  2. Copiez et collez le script suivant dans la fenêtre Python.
  3. 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 environment settings
    arcpy.env.overwriteOutput = True
    arcpy.env.workspace = "C:\ArcGIS\ArcTutor\Schematics\Schematics_In_ArcMap\ElecDemo.gdb"

    # Creates some new diagrams that will be used to exemplify the UpdateDiagram command:
    arcpy.CreateDiagram_schematics("ElecDemo", "FeederDiagram", "GeoSchematic", "ElectricNetwork\Feeder")
    arcpy.CreateDiagram_schematics("ElecDemo", "FeederDiagramBIS", "GeoSchematic", "ElectricNetwork\Feeder")
    arcpy.CreateDiagram_schematics("ElecDemo", "WholeElectricNetworkDiagram", "GeoSchematic", "ElectricNetwork\PrimaryLine;ElectricNetwork\SecondaryLine")
    InputLayer = arcpy.MakeFeatureLayer_management("ElectricNetwork\PrimaryLine","PrimaryLineLayer", "PHASECODE =135")
    arcpy.CreateDiagram_schematics("ElecDemo", "PrimaryLinesDiagram", "GeoSchematic", InputLayer)


    # UpdateDiagram by fully synchronizing the diagram content regarding the original network features that were used to initially generate it; no udpate parameters required
    arcpy.UpdateDiagram_schematics("ElecDemo\Feeders\Feeder 0801-Rice Creek")

    # UpdateDiagram by only refreshing the attributes on schematic features contained in the input diagram; builder_options=REFRESH
    arcpy.UpdateDiagram_schematics("ElecDemo\Feeders\Feeder 0802-Goldmine", "#", "REFRESH")

    # UpdateDiagram by rebuilding the input diagram from a feature class; builder_options=REBUILD;KEEP_MANUAL_MODIF or REBUILD;NO_KEEP_MANUAL_MODIF
    arcpy.UpdateDiagram_schematics("ElecDemo\WholeElectricNetworkDiagram", "ElectricNetwork\PrimaryLine", "REBUILD;KEEP_MANUAL_MODIF")

    # UpdateDiagram by appending new features to the input diagram with a partial synchronization of the diagram content; builder_options=APPEND_QUICK;KEEP_MANUAL_MODIF or APPEND_QUICK;NO_KEEP_MANUAL_MODIF
    arcpy.UpdateDiagram_schematics("ElecDemo\FeederDiagram", "ElectricNetwork\Substation", "APPEND_QUICK;KEEP_MANUAL_MODIF")

    # UpdateDiagram by appending new features to the input diagram with a full synchronization of the diagram content; builder_options=APPEND;KEEP_MANUAL_MODIF or APPEND;NO_KEEP_MANUAL_MODIF
    arcpy.UpdateDiagram_schematics("ElecDemo\FeederDiagramBIS", "ElectricNetwork\ServiceLocation", "APPEND;KEEP_MANUAL_MODIF")

    # UpdateDiagram by rebuilding the input diagram from an input layer; builder_options=REBUILD;KEEP_MANUAL_MODIF or REBUILD;NO_KEEP_MANUAL_MODIF
    arcpy.UpdateDiagram_schematics("ElecDemo\PrimaryLinesDiagram", InputLayer, "REBUILD;KEEP_MANUAL_MODIF")
	
    # 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)
Exemple 3 d'utilisation de l'outil UpdateDiagram et du générateur XML (script Python autonome)

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 :

  1. Lancez ArcCatalog.
  2. 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.
  3. Copiez et collez le script suivant dans la fenêtre Python d'ArcCatalog ou d'ArcMap.
  4. 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 environment settings
    arcpy.env.overwriteOutput = True
    arcpy.env.workspace = "C:\ArcGIS\ArcTutor\Schematics\Schematics_Configuration\XML_Data\GISDatabaseForXML.gdb"

    # CreateDiagram from a XML file, SampleNetworkFeeder1.xml
    arcpy.CreateDiagram_schematics("XMLDataset", "XMLDiagramFeeder1", "XMLDiagrams", "C:\ArcGIS\ArcTutor\Schematics\Schematics_Configuration\XML_Data\SampleNetworkFeeder1.xml")

    # Updates the XMLDiagramFeeder1 diagram from another XML file, SampleNetworkUpdatedFeeder1.xml
    arcpy.UpdateDiagram_schematics("XMLDataset\XMLDiagramFeeder1", "C:\ArcGIS\ArcTutor\Schematics\Schematics_Configuration\XML_Data\SampleNetworkUpdatedFeeder1.xml")

    # 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)
Exemple 4 d'utilisation de l'outil UpdateDiagram et du générateur de jeu de données réseau (script Python autonome)

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 :

  1. Démarrez ArcMap.
  2. Ouvrez le fichier ParisTours.mxd enregistré dans le répertoire C:\ArcGIS\ArcTutor\Schematics\Schematics_Configuration\Network_Dataset.
  3. Cliquez sur Géotraitement > Options de géotraitement.
  4. Désactivez l'option Activer dans la section Traitement en arrière-plan, puis cliquez sur OK.
  5. 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 environment settings
    arcpy.env.overwriteOutput = True
    arcpy.env.workspace = "C:\ArcGIS\ArcTutor\Schematics\Schematics_Configuration\Network_Dataset\NetworkAnalyst_Schematics.gdb"

    # UpdateDiagram from a solved route network analysis layer
    # 1) Solves the route network analysis layer, 
    arcpy.Solve_na("Routes\Tour2")
    # 2) Creates diagrams from this solved route network analysis layer
    # a - DiagramTour_A diagram, created with merged nodes to represent network junctions which are crossed several times along the resultant route (MERGE_NODES option)
    arcpy.CreateDiagram_schematics("NA_SchematicDataset", "DiagramTour2_A", "NADiagrams", "Routes\Tour2", "MERGE_NODES")
    # b - DiagramTour_B diagram, without merged nodes (NO_MERGE_NODES option)
    arcpy.CreateDiagram_schematics("NA_SchematicDataset", "DiagramTour2_B", "NADiagrams", "Routes\Tour2", "NO_MERGE_NODES")
    # 3) Updates those diagrams from the same solved route network analysis layer by changing the merge nodes option
    arcpy.UpdateDiagram_schematics("NA_SchematicDataset\DiagramTour2_A", "Routes\Tour2", "NO_MERGE_NODES;KEEP_MANUAL_MODIF")
    arcpy.UpdateDiagram_schematics("NA_SchematicDataset\DiagramTour2_B", "Routes\Tour2", "MERGE_NODES;KEEP_MANUAL_MODIF")

    # 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)

Environnements

Cet outil n'utilise aucun environnement de géotraitement

Thèmes connexes

Informations de licence

ArcGIS for Desktop Basic : Requis Schematics
ArcGIS for Desktop Standard : Requis Schematics
ArcGIS for Desktop Advanced : Requis Schematics
9/12/2013