diff --git a/SwiftMetaModelGenerator/templates/meta_model.stencil b/SwiftMetaModelGenerator/templates/meta_model.stencil
index 347277d16fa2bacc6b5e363dc9612b070ef3eff6..8830de7de34c381f277d2ff5ecc2fd7d6e75c255 100644
--- a/SwiftMetaModelGenerator/templates/meta_model.stencil
+++ b/SwiftMetaModelGenerator/templates/meta_model.stencil
@@ -30,6 +30,20 @@ extension {{class.name}}
             fatalError("Cannot set value for key \(key)")
         }
     }
+    
+    @objc {% if class.needsMethodOverride %} override {% endif %} func getValueByKey(key: String) -> Any?
+    {
+        switch key {
+        {% for variable in class.variables %}
+        {% if not variable.constant and not variable.privateVisibility and not variable.staticModifier and not variable.hasAccessor %}
+        case "{{variable.name}}":
+            return self.{{ variable.name }}
+        {% endif %}
+        {% endfor %}
+        default:
+            fatalError("Cannot set value for key \(key)")
+        }
+    }
 }
 
 {% endfor %}