Crée un diagramme (Schematics)
Récapitulatif
Crée un diagramme schématique.
La création de diagrammes peut reposer sur des couches d'entités, des classes d'entités, des tables d'objets, une couche d'analyse de réseau ou des données XML, selon le générateur schématique utilisé.
Utilisation
-
Si le nom du diagramme schématique en sortie existe déjà, il risque d'être supprimé avant d'être recréé. Pour éviter cette suppression, vous pouvez désactiver la case Remplacer les résultats des opérations de géotraitement dans la boîte de dialogue Options de géotraitement.
-
Selon le générateur schématique associé au modèle de diagramme spécifié pour le diagramme à créer, le paramètre Données en entrée est requis ou non :
- Le paramètre est obligatoire pour un modèle de diagramme basé sur 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. Les tables en entrée spécifiées peuvent être des couches d'entités, des classes d'entités ou des tables d'objets.
- Vous devez spécifier une couche d'analyse de réseau unique comme paramètre Données en entrée pour un modèle de diagramme basé sur le générateur de jeu de données réseau.
- Vous devez spécifier un fichier XML unique comme paramètre Données en entrée pour un modèle de diagramme basé sur le générateur XML.
- Aucune donnée en entrée n'est requise pour un modèle de diagramme basé sur le générateur standard lorsqu'il est configuré en vue de gérer les requêtes personnalisées.
Syntaxe
Paramètre | Explication | Type de données |
out_location |
Jeu de données schématique ou dossier schématique dans lequel le diagramme sera créé. Attention : Ce conteneur doit déjà exister au préalable. | Schematic Dataset;Schematic Folder |
out_name |
Nom du diagramme schématique à créer. | String |
diagram_type [diagram_type,...] |
Modèle de diagramme schématique du diagramme schématique à créer. | String |
in_data [in_data,...] (Facultatif) |
Données en entrée permettant de générer le diagramme. Le paramètre Données en entrée indique les éléments sur lesquels repose la création des diagrammes. Vous devez le définir pour la plupart des générateurs schématiques prédéfinis :
Attention : Pour les modèles de diagrammes qui fonctionnent avec le générateur XML, le générateur de jeu de données réseau, ainsi que le générateur standard configuré en vue d'être utilisé à partir d'un réseau géométrique ou d'un jeu de données réseau, le diagramme ne peut pas être généré si aucune donnée en entrée n'est spécifiée. | Table View;Data Element;Layer |
builder_options (Facultatif) |
Paramètres de création du générateur schématique. Ces paramètres sont obligatoires uniquement pour les diagrammes basés sur le générateur de jeu de données réseau. Ils indiquent si les nœuds seront fusionnés.
| String |
Exemple de code
Créez des exemples de diagrammes schématiques à l'aide d'entités SIG 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: CreateDiagramStd.py
# Description: Create schematic diagrams sample from GIS 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"
out_schDataset="ElecDemo"
out_diagAName="FeederDiagram"
out_diagBName="ElectricMainNetworkDiagram"
out_diagTempName="GeoSchematic"
input_FC1="ElectricNetwork/Feeder"
input_FC2="ElectricNetwork/PrimaryLine"
input_LayerName="PrimaryLineLayer"
input_Filter="PHASECODE=135"
# Sets environment settings
arcpy.env.overwriteOutput = True
arcpy.env.workspace = dataLocation + "/" + gdbName
# CreateDiagram from a feature class, Feeder
arcpy.CreateDiagram_schematics(out_schDataset, out_diagAName, out_diagTempName, input_FC1)
# CreateDiagram from a feature layer
# 1) Creates a layer with the selection
InputLayer = arcpy.MakeFeatureLayer_management(input_FC2, input_LayerName, input_Filter)
# 2) Uses the layer as input of CreateDiagram
arcpy.CreateDiagram_schematics(out_schDataset, out_diagBName, out_diagTempName, InputLayer)
# 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)
Créez des exemples de diagrammes schématiques à partir d'une couche d'analyse de réseau résolue.
Procédure d'exécution 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.
- Appuyez sur Entrée.
# Name : CreateDiagramNDS.py
# Description : Create a schematic diagram from 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"
out_schDataset="NA_SchematicDataset"
out_diagAName="DiagramTour_MERGED"
out_diagBName="DiagramTour_NOTMERGED"
out_diagTempName="NADiagrams"
in_NALayerName="Routes/Tour1"
option1="MERGE_NODES"
option2="NO_MERGE_NODES"
# Sets environnement settings
arcpy.env.overwriteOutput = True
arcpy.env.workspace = dataLocation + "/" + gdbName
# CreateDiagram from a solved route network analysis layer
# 1) Solves the route network analysis layer, Tour1
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 (option1)
arcpy.CreateDiagram_schematics(out_schDataset, out_diagAName, out_diagTempName, in_NALayerName, option1)
# b - A diagram where N nodes are created to represent a GIS point crossed N times along this route (option2)
arcpy.CreateDiagram_schematics(out_schDataset, out_diagBName, out_diagTempName, in_NALayerName, 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 occured on line %i" % tb.tb_lineno
print str(e)
Créez 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: CreateDiagramXML.py
# Description: Create a sample schematic diagram 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"
out_schDataset="XMLDataset"
out_diagName="XMLDiagramSample"
out_diagTempName="XMLDiagrams"
input_XmlFile="SampleNetworkData.xml"
# Sets environment settings
arcpy.env.overwriteOutput = True
arcpy.env.workspace = dataLocation + "/" + gdbName
# CreateDiagram from a XML file, SampleNetworkData.xml file
arcpy.CreateDiagram_schematics(out_schDataset, out_diagName, out_diagTempName, dataLocation + "/" + input_XmlFile)
# 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)
Créez un exemple de diagramme schématique à partir de requêtes personnalisées.
Procédure d'utilisation de cet exemple de script Python :
- Lancez ArcCatalog.
- Ce script est exécuté sur une copie de la géodatabase de démonstration ElecDemo pour éviter d'écraser le diagramme Inside Plant d'origine :
- Accédez au dossier C:\ArcGIS\ArcTutor\Schematics\Schematics_In_ArcMap dans l'arborescence du catalogue.
- Copiez et collez la géodatabase ElecDemo. L'exemple de script va être exécuté sur cette nouvelle géodatabase ElecDemo_1.
- Copiez et collez le script suivant dans la fenêtre Python d'ArcCatalog ou d'ArcMap.
- Appuyez sur ENTREE.Extension ArcGIS Schematics
# Name: CreateDiagramCustomQuery.py
# Description: Create a schematic diagram from custom queries
# Requirement:
# 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_1.gdb"
out_schDataset="ElecDemo"
out_schFolder="Inside Plants"
out_diagName="Substation 08"
out_diagTempName="InsidePlants"
# Sets environment settings
arcpy.env.overwriteOutput = True
arcpy.env.workspace = dataLocation + "/" + gdbName
# CreateDiagram from a diagram template configured from custom queries
arcpy.CreateDiagram_schematics(out_schDataset + "/" + out_schFolder, out_diagName, out_diagTempName)
# 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)