Convertir le diagramme en entités (Schematics)

Niveau de licence :De baseStandardAvancé

Récapitulatif

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.

RemarqueRemarque :

Reportez-vous à la section Exemple de code pour obtenir un exemple d'outil de script qui permet de convertir tous les diagrammes contenus dans un jeu de données schématique ou dans un dossier schématique.

Utilisation

Syntaxe

ConvertDiagram_schematics (in_diagram, out_location, {reuse_fc}, {export_related_attributes}, {container_geometry}, {config_keyword})
ParamètreExplicationType 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 est converti. Ce conteneur doit déjà exister au préalable.

Workspace;Feature Dataset
reuse_fc
[reuse_fc,...]
(Facultatif)

Indique si la couche de diagrammes schématiques en entrée est 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.

  • REUSE_FCCe paramètre doit être utilisé pour convertir le diagramme spécifié dans les mêmes classes d'entités/fichiers de formes standard étant donné que les autres diagrammes basés sur le même modèle ont déjà été ou seront convertis. Dans ce cas, selon l'emplacement en sortie sélectionné, le diagramme spécifié est converti :
    • en jeu de données d'entité dont le nom correspond au nom du modèle de diagramme, chaque nom de classe d'entités correspondant au nom des classes d'entités schématiques,
    • en dossier dont le nom correspond au nom du modèle de diagramme, chaque nom de fichier de formes correspondant au nom des classes d'entités schématiques.
    Il s'agit de l'option par défaut.
  • NO_REUSE_FCCe paramètre convertit le diagramme en entrée dans un nouveau jeu de données d'entité/dossier dont le nom est la concaténation du nom du modèle de diagramme en entrée et du nom du diagramme, chaque nom de classe d'entités/fichier de formes correspondant à la concaténation du nom de la classe d'entités schématiques et du nom du diagramme.
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.

  • NO_RELATED_ATTRIBUTESChaque entité schématique contenue dans le diagramme en entrée est convertie avec uniquement les attributs contenus dans sa classe d'entités schématiques. Il s'agit de l'option par défaut.
  • EXPORT_RELATED_ATTRIBUTESChaque entité schématique contenue dans le diagramme en entrée est convertie avec les attributs contenus dans sa classe d'entités schématiques et tous les attributs en rapport avec son entité réelle associée.
RemarqueRemarque :

Si aucune table/classe d'entités associée n'est spécifiée pour une classe d'entités schématiques, aucun attribut d'entité ne peut être converti.

RemarqueRemarque :

Lors de l'utilisation de REUSE_FC et EXPORT_RELATED_ATTRIBUTES, la structure doit déjà exister avec les champs d'entité associés pour que les attributs associés soient convertis.

Boolean
container_geometry
[container_geometry,...]
(Facultatif)

Indique le type de géométrie des entités créées pour les conteneurs schématiques convertis du diagramme en entrée.

  • POLYGONChaque conteneur du diagramme en entrée est converti en entité surfacique. Il s'agit de l'option par défaut.
  • POLYLINEChaque conteneur du diagramme en entrée est converti en entité polyligne.
  • POINTChaque conteneur du diagramme en entrée est converti en entité ponctuelle.
RemarqueRemarque :

Si vous utilisez l'option Réutiliser la structure existante et que la structure existe déjà avec les classes d'entités POLYGON (POLYLINE ou POINT) créées pour les entités schématiques de conteneur, vous ne pouvez pas modifier le type de classe d'entités en POLYLINE ou POINT (POLYGON) pour les prochaines conversions.

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

  1. Copiez le script suivant dans un éditeur de texte et enregistrez le fichier texte avec l'extension .py.
  2. Démarrez ArcCatalog et ouvrez la fenêtre ArcToolbox.
  3. 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 :
      1. +++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
      2. +++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
      3. +++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
      4. +++Nom complet : Filtre de classe de diagrammes, Type de données : Chaîne ; Propriété du type =Facultatif, Propriété Direction=Entrée
      5. +++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

Paramètres en entrée requis : conteneur de schématique en entrée (jeu de données ou dossier) + emplacement en sortie (géodatabase, jeu de données d'entité ou dossier pour les fichiers de formes)

Arguments facultatifs : balise récursive + filtre de classe de diagrammes

Emplacement dérivé en sortie : espace de travail ou jeu de données d'entité

# Name: ConvertDiagrams.py
# Description: Convert schematic diagrams
# Requirement: Extension ArcGIS Schematics

# import arcpy, sys, math
import arcpy, sys, math
msgInputsErr = "Invalid arguments."
msgParseErr = "Cannot parse input arguments."
msgConvertErr = "Error during conversion."

msgNoLicenseAvailable = "Extension ArcGIS Schematics 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 Extension ArcGIS Schematics 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 Extension ArcGIS Schematics licence
    arcpy.CheckInExtension("Schematics")

except:
    arcpy.AddError(msgConvertErr)
    raise

Environnements

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