You can explore the structure of the PowerDesigner metamodel as a standalone model or starting from object instances in your model.
For general information about accessing and navigating in the metamodel, see The PowerDesigner Public Metamodel. Metaclasses (such as CheckModelInternalMessage and FileReportItem) that are not accessible by script are visible in Metamodel.oom, but bear the <<notScriptable>> stereotype and are not listed in the Metamodel Object Help file.
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 nextThe following script locates the BaseClass root and shows the first two levels of inheritance under it:
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 nextThe following script obtains a table in a PDM, and then shows the metaclass of which the object is an instance, the parent metaclass and metalibrary to the metaclass, and all the attributes and collections that are available on that metaclass:
Dim object Set object = ActiveModel.FindChildByName("myTable",cls_Table) Output "Object: " + object.Name Dim metaclass Set metaclass = object.MetaClass Output "Metaclass: " + metaclass.PublicName Output "Parent: " + metaclass.Parent.PublicName Output "Metalibrary: " + metaclass.Library.PublicName Output "Attributes:" For each attr in metaclass.attributes Output " - " + attr.PublicName Next Output "Collections:" For each coll in metaclass.collections Output " - " + coll.PublicName Next
Properties and collections are read-only for all metamodel objects.