How to populate an EnumeratedSetOfClass?

latest update 24 Febr. 2015

From time to time I stumbled on the same question, found the answer, and over time forgot that answer again. The question how to populate an instance of EnumeratedSetOfClass is one of those questions. That's why I write it down here.

The answer can be seen from the diagram below.


Population of an EnumeratedSetOfClass

Part 2 tells us:

An EnumeratedSetOfClass is a that is an enumerated set of the instances of Class. Enumerated means that the full set of members is specified.

EXAMPLE {Plastic, 1.2kg, frame} is an EnumeratedSetOfClass. More generally {{A,B,C},{B,C,D},{C,D,E}} is an EnumeratedSet OfClass. Also "electrical engineering classes for ERDL V1.1" is an EnumeratedSetOfClass.

EXPRESS specification

    ENTITY enumerated_set_of_class  

        SUBTYPE OF (class_of_class);  


EnumeratedSetOfClass is a ClassOfClass, so you can classify a Class (or its many subtypes) with it, such as ArithmeticNumber, Property, ClassOfInanimatePhysicalObject, etc.

The sequence of the enumerated classes in the set is random. In case the sequence is important, go to the topics on MultidimensionalObject


Part 7 defines the template for this in a totally different way, by defining a reference class called SetOf2Classes in the RDL (Reference Data Library), thus dictating the number of classes in the set in a different way:

More practical is to use n instances of the the template EnumerationOfClass: