A modeling tool provides the ability to create a stereotype, which uses different icons depending on a stereotype “kind." For example, PseudoState can be represented by different notations that depend on PseudoStateKind.
To apply different icons on the same stereotype
Create an Enumeration (in our example, supercarKind) to define all stereotype “kinds."
Apply the «iconHolder» stereotype to the enumeration.
Create as many EnumerationLiterals of as many different kinds as you need (in our example, it is “ferrari” and “audi”).
Apply stereotypes with different icons to every EnumerationLiteral (in our example, «ferrari» and «audi»).
Create a Stereotype (in our example, supercar) with a property (tag definition), with type enumeration (supercarKind). You could also select a default value.
Assign the created stereotype to an element and select one of the enumeration values in tags. A stereotyped element will change its icon to the enumeration value.