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