Vous pouvez créer des extensions à l'aide de script afin de définir des propriétés supplémentaires, de nouvelles métaclasses, des formulaires, et tout autre type d'extension du métamodèle standard.
Dim MonModele, MonExt, MonStereotype, MonAttribEtendu, MonFormulaire, FormDef set MonModele = CreateModel(PdEAM.Cls_Model,"Diagram=TechnologyInfrastructureDiagram") MonModele.SetNameAndCode "MonMAE" , "MonMAE" 'Création de l'extension Set MyExt = MonModele.ExtendedModelDefinitions.CreateNew() MyExt.Name = "MonExtension" MyExt.Code = "MonExtension" 'Création du stéréotype Set MonStereotype = MonExt.AddMetaExtension(PdEAM.Cls_MobileDevice, Cls_StereotypeTargetItem) MonStereotype.Name = "Tablette" MonStereotype.UseAsMetaClass = true 'Création d'attribut étendu Set MyExAtt = MonStereotype.AddMetaExtension(Cls_ExtendedAttributeTargetItem) MyExAtt.Name = "TypeTablette" MyExAtt.Label = "Type" MyExAtt.DataType = "12" ' (String) Pour obtenir la liste des valeurs, ' voir ExtendedAttributeTargetItem dans l'Aide sur les objets du métamodèle MyExAtt.ListOfValues = "iPad;Android;Playbook;Windows8" MyExAtt.Value = "iPad" 'Création d'un formulaire pour remplacer l'onglet Général Set MonFormulaire = MyStype.AddMetaExtension(Cls_FormTargetItem) MonFormulaire.Name = "RemplaceGeneral" MonFormulaire.FormType = "GENERAL" 'Assemblage de la définition du formulaire FormDef = "<Form><StandardNameAndCode Attribute=""NameAndCode"" />" & vbcrlf FormDef = FormDef + "<StandardAttribute Attribute=""Comment"" />" & vbcrlf FormDef = FormDef + "<ExtendedAttribute Attribute=""TabletType"" />" & vbcrlf FormDef = FormDef + "<StandardAttribute Attribute=""KeywordList"" /></Form>" MyForm.Value = FormDef
Dim col, obj
'La collection de tablettes n'est pas directement accessible
set col = ActiveModel.GetCollectionByStereotype("Tablette")
'Création d'un tableau pour contenir les valeurs à affecter aux propriétés de tablette
Dim myArray(3)
myArray(0) = "Tablette1, T1, PlayBook"
myArray(1) = "Tablette2, T2, Android"
myArray(2) = "Tablette3, T3, iPad"
myArray(3) = "Tablette4, T4, iPad"
CreateObjects col, myArray
'Procédure pour affecter des valeurs aux propriétés
Sub CreateObjects(compColl, dataArray)
For Each line In dataArray
Dim mesProps
mesProps = split(line, ",")
set obj = compColl.CreateNew()
obj.Name = mesProps(0)
obj.Code = mesProps(1)
'Syntaxe spéciale pour définir l'attribut étendu
obj.SetExtendedAttribute "MONEXT.TypeTablette", mesProps(2)
Next
End Sub