Création d'objets (Scripting)

Il est recommandé de créer un objet directement à partir de la collection sous l'objet parent en utilisant la méthode CreateNew(). La méthode CreateObject(type) est également disponible sur les objets de modèle.

Ce script crée une classe dans un MOO, définit certaines des ses propriétés, puis crée un attribut sous la classe, dans chaque cas la création des objets s'effectue dans des collections :
Dim MonModele
Set MonModele = ActiveModel
Dim MaClasse
' Création d'une classe
Set MaClasse = MonModele.Classes.CreateNew()
If MaClasse is nothing Then
  ' Affichage d'un message d'erreur
   msgbox "Impossible de créer une classe", vbOkOnly, "Error" 
Else
  output "La classe a été créée."  
  ' Définition des attributs Nom, Code, Sétéréotype et Finale
  MaClasse.SetNameAndCode "Client", "cli"
  MaClasse.Comment = "Créée par script"
  MaClasse.Stereotype = "MonStereotype"
  MaClasse.Final = true
  ' Création d'un attribut dans la classe
  Dim MonAttr
  Set MonAttr = MaClasse.Attributes.CreateNew()
  If not MonAttr is nothing Then
   output "L'attribut a été créé."
   MonAttr.SetNameAndCode "Name", "custName"
   MonAttr.DataType = "String"
  ' Redéfinition de la variable pour éviter les fuites de mémorie
  End If
 End If
Vous pouvez également créer des objets en utilisant la méthode CreateObject(type). Ce script crée une classe dans un MOO et définit certaines de ses propriétés :
Dim MonModele
Set MonModele = ActiveModel
Dim MaClasse
' Création d'une classe
Set MaClasse = MonModele.CreateObject(cls_Class)
MaClasse.SetNameAndCode "Autre classe", "Classe2"
MaClasse.Comment = "Créée par CreateObject"
Lorsque vous créez un objet lien, vous devez définir ses extrémités. Ce script crée deux classes et les joint au moyen d'un lien d'association :
Dim MonModele
Set MonModele = ActiveModel
Dim MaPremiereClasse, MaSecondeClasse, MyAssociation
' Create classes
Set MaPremiereClasse = MonModele.Classes.CreateNew()
MaPremiereClasse.SetNameAndCode "Classe1", "C1"
Set MaSecondeClasse = MonModele.Classes.CreateNew()
  MaSecondeClasse.SetNameAndCode "Classe2", "C2"
' Création d'une association
Set MonAssociation = MonModele.Associations.CreateNew()
MonAssociation.Name = "A1"
' Définition de ses extrémités
Set MonAssociation.Object1 = MaPremiereClasse
Set MonAssociation.Object2 = MaSecondeClasse