Résumé
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
arcpy.schematics.CreateDiagram(out_location, out_name, diagram_type, {in_data}, {builder_options})
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éé. | Schematic Dataset;Schematic Folder |
out_name | Nom du diagramme schématique à créer. | String |
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 :
| 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
Exemple 1 d'utilisation de l'outil CreateDiagram et du générateur standard basé sur des données du réseau géométrique (script Python autonome)
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: ArcGIS Schematics extension
# import system modules
import arcpy
msgNoLicenseAvailable = "ArcGIS Schematics extension license required"
try:
# Checks out the ArcGIS Schematics extension 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 ArcGIS Schematics extension 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)
Exemple 2 d'utilisation de l'outil CreateDiagram et du générateur de jeu de données réseau (script Python autonome)
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: ArcGIS Schematics extension,ArcGIS Network Analyst extension
# import system modules
import arcpy
msgNoLicenseSchematicsAvailable = "ArcGIS Schematics extension license required"
msgNoLicenseNetworkAnalystAvailable = "ArcGIS Network Analyst extension license required"
try:
# Checks out the ArcGIS Schematics extension licence
if arcpy.CheckExtension("Schematics") == "Available":
arcpy.CheckOutExtension("Schematics")
else:
raise Exception(msgNoLicenseSchematicsAvailable)
# Checks out the ArcGIS Network Analyst extension 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)
Exemple 3 d'utilisation de l'outil CreateDiagram et du générateur XML (script Python autonome)
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: ArcGIS Schematics extension
# import system modules
import arcpy
msgNoLicenseAvailable = "ArcGIS Schematics extension license required"
try:
# Checks out the ArcGIS Schematics extension 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 ArcGIS Schematics extension 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)
Exemple 4 d'utilisation de l'outil CreateDiagram et du générateur standard fonctionnant à partir de requêtes personnalisées (script Python autonome)
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 Entrée.ArcGIS Schematics extension
# Name: CreateDiagramCustomQuery.py
# Description: Create a schematic diagram from custom queries
# Requirement:
# import system modules
import arcpy
msgNoLicenseAvailable = "ArcGIS Schematics extension license required"
try:
# Checks out the ArcGIS Schematics extension 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 ArcGIS Schematics extension 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)
Environnements
Informations de licence
- Basic: Requiert Schematics
- Standard: Requiert Schematics
- Advanced: Requiert Schematics