Vous pouvez explorer la structure du métamodèle PowerAMC sous la forme d'un modèle autonome ou en partant des instances d'objet contenues dans votre modèle.
Pour obtenir des informations générales sur l'accès au métamodèle et la navigation dans le métamodèle, voir Métamodèle public PowerAMC. Les métaclasses (telles que CheckModelInternalMessage et FileReportItem) qui ne sont pas accessibles par script sont visibles dans Metamodel.moo, mais portent le stéréotype <<notScriptable>> et ne sont pas répertoriées dans le fichier d'Aide sur les objets du métamodèle.
for each l in MetaModel.Libraries for each c in l.Classes if c.Abstract = false then Output l.PublicName + "." + c.PublicName end if next nextLe script suivant localise la racine BaseClass et montre les deux premiers niveaux d'héritage située au-dessous :
set root = MetaModel.GetMetaClassByPublicName("PdCommon.BaseObject") for each c in root.Children output c.PublicName for each cc in c.Children output " " + cc.PublicName next nextLe script suivant obtient une table dans un MPD, puis montre la métaclasse dont l'objet est une instance, la métaclasss parent et la métabibliothèque de la métaclasse, ainsi que toutes les attributs et toutes les collections qui sont disponibles pour cette métaclasse :
Dim object Set object = ActiveModel.FindChildByName("myTable",cls_Table) Output "Objet: " + object.Name Dim metaclass Set metaclass = object.MetaClass Output "Métaclasse : " + metaclass.PublicName Output "Parent : " + metaclass.Parent.PublicName Output "Métabibliothèque : " + metaclass.Library.PublicName Output "Attributs :" For each attr in metaclass.attributes Output " - " + attr.PublicName Next Output "Collections :" For each coll in metaclass.collections Output " - " + coll.PublicName Next
Les propriétés et les collections sont en lecture seule pour tous les objets du métamodèle.