Affichage, mise en forme et positionnement des symboles (Scripting)

Lorsque vous créez un objet, celui-ci ne s'affiche pas dans un diagramme, sauf si vous utilisez la méthode AttachObject() ou AttachLinkObject(). Les symboles sont des objets de plein droit qui ne sont accessibles que via des collections sur l'objet ou diagramme parent. Vous pouvez positionner un symbole en utilisant la méthode Position() et changer son format en utilisant LineWidth et d'autres attributs de format.

Le script suivant crée deux classes, les joint par un lien, et affiche les trois symboles dans le diagramme actif :
Dim MonModele, MonDiagramme, C1, C2, A1 Set MonModele = ActiveModel Set MonDiagramme =
    ActiveDiagram ' Création des classes Set C1 = MonModele.Classes.CreateNew() C1.SetNameAndCode
    "C1", "C1" Set C2 = MonModele.Classes.CreateNew()   C2.SetNameAndCode "C2", "C2" '
    Affichage de symboles de classe MonDiagramme.AttachObject(C1) MonDiagramme.AttachObject(C2) '
    Création de l'association Set A1 = MonModele.Associations.CreateNew() A1.SetNameAndCode =
    "A1", "A1" ' Définition de ses extrémités Set A1.Object1 = C1 Set A1.Object2 = C2 '
    Affichage du symbole d'association MonDiagramme.AttachLinkObject(A1)
Le script suivant crée un MAE et quatre zones d'architecture, les aligne dans un carré, et met en forme la partie supérieure gauche :
Dim MouveauModele, idx, obj, sym
set MouveauModele = CreateModel(PdEAM.Cls_Model, "Diagram=CityPlanningDiagram")
MouveauModele.SetNameAndCode "MonMAE" , "MonMAE"
For idx = 1 to 4
   Set obj=MouveauModele.ArchitectureAreas.CreateNew()
   obj.SetNameAndCode "A" & idx, "A" & idx
   Set sym=ActiveDiagram.AttachObject (obj)
   sym.width=30000
   sym.height=20000
Next
dim A1, A2, A3, A4, X1, Y1
set A1 = MouveauModele.FindChildByName("A1",cls_architecturearea).Symbols.Item(0)
set A2 = MouveauModele.FindChildByName("A2",cls_architecturearea).Symbols.Item(0)
set A3 = MouveauModele.FindChildByName("A3",cls_architecturearea).Symbols.Item(0)
set A4 = MouveauModele.FindChildByName("A4",cls_architecturearea).Symbols.Item(0)
X1 = A1.Position.X
Y1 = A1.Position.Y
' Déplacement des symboles pour les rendre adjacents
A2.Position = NewPoint(X1 + A1.Width, Y1)
A3.Position = NewPoint(X1, Y1 - A1.Height)
A4.Position = NewPoint(X1 + A1.Width, Y1 - A1.Height)
A1.DashStyle = 2
A1.LineWidth = 3