Résumé
Convertit un diagramme schématique en classes d'entités ou fichiers de formes standard.
Les diagrammes schématiques sont tous stockés dans des classes d'entités masquées spécifiques à Schematics et nécessitent le reste des informations et tables de configuration schématiques. Cet outil permet de partager des diagrammes avec d'autres utilisateurs sans fournir l'intégralité du jeu de données schématique (tous les diagrammes et toute la configuration). Si vous prévoyez de convertir plusieurs diagrammes, vous pouvez choisir de tous les placer dans le même jeu de fichiers de formes ou de classes d'entités standard ou de placer chacun d'eux dans un jeu distinct.
Utilisation
Pour convertir une couche de diagrammes schématiques en classes d'entités standard, recherchez puis sélectionnez un jeu de données de géodatabases/d'entité pour le paramètre d'emplacement en sortie spécifié. Pour convertir une couche de diagrammes schématiques en fichiers de formes, recherchez puis sélectionnez un dossier.
Pour convertir plusieurs diagrammes dans les mêmes classes d'entités/fichiers de formes standard, sélectionnez l'option Réutiliser la structure existante. Pour convertir plusieurs diagrammes en classes d'entités/fichiers de formes standard différents, désactivez l'option Réutiliser la structure existante.
Sélectionnez l'option Exporter tous les attributs d'entités associés si vous voulez ajouter tous les attributs des classes d'entités "réelles" aux enregistrements schématiques pendant la conversion.
L' option Exporter tous les attributs d'entités associés s'applique uniquement aux classe d'entités schématiques dont la valeur du champ Table/classe d'entités associée est connue. Si aucune table/classe d'entités associée n'est spécifiée pour une classe d'entités schématique, ses attributs d'entités associés ne peuvent pas être exportés.
Sélectionnez POLYGON dans Géométrie du conteneur si vous souhaitez que tous les conteneurs du diagramme schématique en entrée soient convertis en entités surfaciques. Pour convertir ces conteneurs en entités polylignes (ou ponctuelles), sélectionnez POLYLINE (ou POINT).
La couche de diagramme schématique en entrée qui a déjà été convertie dans l'emplacement en sortie spécifié sera supprimée avant d'être recréée.
Syntaxe
arcpy.schematics.ConvertDiagram(in_diagram, out_location, {reuse_fc}, {export_related_attributes}, {container_geometry}, {config_keyword})
Paramètre | Explication | Type de données |
in_diagram | Couche de diagrammes schématiques à convertir | Schematic Layer |
out_location | Espace de travail ou jeu de données d'entité dans lequel le diagramme schématique sera converti. Ce conteneur doit déjà exister au préalable. | Workspace;Feature Dataset |
reuse_fc (Facultatif) | Indique si la couche de diagrammes schématiques en entrée sera convertie dans les mêmes classes d'entités/fichiers de formes standard que les autres diagrammes basés sur le même modèle.
| Boolean |
export_related_attributes (Facultatif) | Indique si tous les attributs stockés dans les classes d'entités réelles/tables d'objets associées aux classes d'entités schématiques seront également convertis.
| Boolean |
container_geometry (Facultatif) | Indique le type de géométrie des entités qui seront créées pour les conteneurs schématiques convertis du diagramme en entrée.
| String |
config_keyword (Facultatif) | Mot-clé de configuration qui détermine les paramètres de stockage de la table dans un système de gestion de bases de données relationnelles (SGBDR). Pour géodatabase d’entreprise, de groupe de travail et de bureau uniquement. | String |
Exemple de code
Exemple d'outil de script ConvertDiagram
Le script ci-dessous illustre l'utilisation de la fonction ConvertDiagram dans un outil de script. L'outil de script s'exécute sur tous les diagrammes contenus dans un conteneur schématique en entrée, à savoir un jeu de données schématique ou un dossier schématique, puis les convertit en fichiers de formes ou entités standard dans un emplacement en sortie.Procédure de création et de configuration de cet outil de script :
- Copiez le script suivant dans un éditeur de texte et enregistrez le fichier texte avec l'extension .py.
- Démarrez ArcCatalog et ouvrez la fenêtre ArcToolbox.
- Ajoutez un nouveau script :
- Saisissez un nom (ConvertDiagramsTool, par exemple).
- Pour le paramètre Script File, spécifiez le fichier .py que vous venez de créer.
- Définissez ensuite les cinq paramètres suivants :
- Nom complet : Conteneur de schématique en entrée, Type de données : Jeu de données schématique ou Dossier schématique ; Propriété du type =Requis, Propriété Direction=Entrée
- Nom complet : Emplacement en sortie, Type de données : Espace de travail ou Jeu de données d'entité ; Propriété du type =Requis, Propriété Direction=Entrée
- Nom complet : Récursif, Type de données : Booléen ; Propriété du type =Requis, Propriété Direction=Entrée, Valeur par défaut=Vrai
- Nom complet : Filtre de classe de diagrammes, Type de données : Chaîne ; Propriété du type =Facultatif, Propriété Direction=Entrée
- Nom complet : Emplacement en sortie dérivé, Type de données : Espace de travail ou Jeu de données d'entité ; Propriété du type =Dérivé, Propriété Direction=Sortie, Obtenu à partir de=Output_Location
# Name: ConvertDiagrams.py
# Description: Convert schematic diagrams
# Requirement: ArcGIS Schematics extension
# import arcpy, sys, math
import arcpy, sys, math
msgInputsErr = "Invalid arguments."
msgParseErr = "Cannot parse input arguments."
msgConvertErr = "Error during conversion."
msgNoLicenseAvailable = "ArcGIS Schematics extension license required"
# Recursively searches for schematic diagrams in the folders
def RecursiveSearch(inCont, bRecursive):
try:
childs = inCont.Children
dataset = None
for dataset in childs:
if dataset.DataType == "SchematicFolder" and bRecursive:
RecursiveSearch(dataset, bRecursive)
elif dataset.DataType == "SchematicDiagram":
if diagramClassFilter == "" or diagramClassFilter == dataset.DiagramClassname:
pathList.append(dataset.CatalogPath)
except:
raise
try:
# Checks out the ArcGIS Schematics extension license
if arcpy.CheckExtension("Schematics") == "Available":
arcpy.CheckOutExtension("Schematics")
else:
raise Exception(msgNoLicenseAvailable)
except Exception as exc:
print exc
raise
arcpy.env.overwriteOutput = True
# Decodes parameters
try:
inputContainer = arcpy.GetParameterAsText(0)
outputLocation = arcpy.GetParameterAsText(1)
recursive = arcpy.GetParameterAsText(2)
if recursive == "false":
recursive = None
diagramClassFilter = arcpy.GetParameterAsText(3)
if inputContainer == "":
raise Exception()
except:
print msgParseErr
arcpy.AddError(msgParseErr)
raise
# Main code
try:
pathList = [] # List for diagram names to convert
arcpy.SetProgressorLabel("Searching diagrams to convert...")
RecursiveSearch(arcpy.Describe(inputContainer), recursive)
arcpy.SetProgressor("step", "Converting...", 0, len(pathList), 1)
for path in pathList:
# Execute convert
mes = "Converting Schematic Diagram : " + path
# Set the progressor label
arcpy.SetProgressorLabel(mes)
arcpy.AddMessage(mes)
arcpy.ConvertDiagram_schematics(path, outputLocation, "REUSE_FC", "NO_RELATED_ATTRIBUTES", "#")
arcpy.SetProgressorPosition()
# Returns the ArcGIS Schematics extension licence
arcpy.CheckInExtension("Schematics")
except:
arcpy.AddError(msgConvertErr)
raise
Environnements
Informations de licence
- Basic: Requiert Schematics
- Standard: Requiert Schematics
- Advanced: Requiert Schematics