Adding Properties to Your Metamodel
This tutorial picks up where Creating Your First Metamodel left off. You have a working Farquind Org Map metamodel with Person, Team, and System element types. Now you’ll add typed properties and enumerations so that model elements carry structured data.
Prerequisites: You’ve completed Creating Your First Metamodel and have the Farquind Org Map metamodel in your project.
What you’ll build: Typed properties on Person (Title, Department), an enumeration on System (System Status), and a property on the Belongs To relationship.
1. Add Properties to Person
Section titled “1. Add Properties to Person”Properties are defined on M2 element types and appear as editable fields on every M1 instance of that type.
Title (String)
Section titled “Title (String)”- Select the Person element type in the Explorer (under Farquind Org Map > Element Types > People & Teams)
- In the Properties panel, find the properties section
- Click to add a new property
- Rename it to Title
- Set the type to String
- Set the multiplicity to 0..1 (optional — not every person needs a title in the model)
Department (String)
Section titled “Department (String)”- Add another property on Person
- Name it Department
- Type: String
- Multiplicity: 0..1
2. Create an Enumeration
Section titled “2. Create an Enumeration”Enumerations define a fixed set of named values — ideal for properties where the value must come from a controlled list.
System Status
Section titled “System Status”- Right-click on the Enumerations package in your metamodel
- Select New Enumeration
- Rename it to System Status
- In the Properties panel, add literal values:
| Name | Value |
|---|---|
| Planned | planned |
| Active | active |
| Retiring | retiring |
These represent the lifecycle stages of a digital system at Farquind.
3. Use the Enumeration as a Property Type
Section titled “3. Use the Enumeration as a Property Type”- Select the System element type (under Technology)
- Add a new property
- Name it Status
- Set the type to System Status — your custom enumeration appears in the type picker alongside primitive types like String and Integer
- Set the multiplicity to 0..1
- Optionally set a default value of active — new System instances will start with this value
4. Add a Property to a Relationship Type
Section titled “4. Add a Property to a Relationship Type”Relationship types can have properties too — useful for capturing metadata about the connection itself.
Start Date on Belongs To
Section titled “Start Date on Belongs To”- Select the Belongs To relationship type
- Add a new property
- Name it Start Date
- Type: Date
- Multiplicity: 0..1
This records when a person joined a team — metadata about the relationship, not about either endpoint.
5. Test Property Values on M1 Instances
Section titled “5. Test Property Values on M1 Instances”Switch to your M1 Farquind Organisation model and verify the properties work.
Set values on Person instances
Section titled “Set values on Person instances”- Select Chase Martin on the diagram or in the Explorer
- In the Properties panel, you’ll see the new Title and Department fields
- Set Title to CEO, Department to Executive
- Select Theo Gibson — set Title to CTO, Department to Software & Digital
- Select Maya Hawn — set Title to VP Engineering, Department to Engineering
Set values on System instances
Section titled “Set values on System instances”- Select FQ Vessels
- The Status field appears as a dropdown with your enumeration values
- Select Active
- Select FQ Manufacturing — set Status to Active
Set values on relationships
Section titled “Set values on relationships”- Select the Theo Gibson Belongs To Software & Digital relationship (click the edge or find it in the Explorer)
- The Start Date field appears
- Enter a date
6. Verify in a Catalog
Section titled “6. Verify in a Catalog”Properties really shine in catalogs. Create a quick catalog to see all your property values at a glance:
- Right-click on M1 Farquind Organisation > New Catalog
- Name it People Catalog
- Add columns for Title and Department
- You should see all Person instances with their property values in a sortable table
This is the M2-to-M1 property flow in action: you define the structure once at M2, and every M1 instance automatically carries the fields.
What You’ve Learned
Section titled “What You’ve Learned”- How to add typed properties (String, Date) to element types
- How to create enumerations with named literal values
- How to use an enumeration as a property type with dropdown selection
- How to set default values on properties
- How to add properties to relationship types
- How to set and view property values on M1 instances
- That properties defined at M2 automatically appear on all M1 instances
Next Steps
Section titled “Next Steps”- Advanced Metamodel Features — Generalization, owned elements and compartments, display templates, and multiplicities
- Glossary — Look up any term: property, enumeration, classifier, multiplicity, etc.