diff --git a/projects/common/models/page.ts b/projects/common/models/page.ts
index df8fcda487911a3c9cc9a4709684d1d8d8e874f9..13071c28480deb654836ba0f48a2d6141598751d 100644
--- a/projects/common/models/page.ts
+++ b/projects/common/models/page.ts
@@ -1,6 +1,6 @@
 import { Section } from 'common/models/section';
 import { IDManager } from 'common/util/id-manager';
-import { UIElement } from 'common/models/elements/element';
+import { SchemerData, UIElement } from 'common/models/elements/element';
 
 export class Page {
   [index: string]: unknown;
@@ -27,4 +27,8 @@ export class Page {
   getAllElements(elementType?: string): UIElement[] {
     return this.sections.map(section => section.getAllElements(elementType)).flat();
   }
+
+  getSchemerData(dropLists: UIElement[]): SchemerData[] {
+    return this.sections.map(section => section.getSchemerData(dropLists)).flat();
+  }
 }
diff --git a/projects/common/models/section.ts b/projects/common/models/section.ts
index c7612b91f712c575e6ed55c12b20465f1e0f1796..b0e3b9febb2770758fc5526a6626cdd8f9d2c6d3 100644
--- a/projects/common/models/section.ts
+++ b/projects/common/models/section.ts
@@ -1,6 +1,12 @@
 import { Type } from '@angular/core';
 import { IDManager } from 'common/util/id-manager';
-import { PositionedUIElement, UIElement, UIElementValue } from 'common/models/elements/element';
+import {
+  InputElement,
+  PositionedUIElement,
+  SchemerData,
+  UIElement,
+  UIElementValue
+} from 'common/models/elements/element';
 import { ButtonElement } from 'common/models/elements/button/button';
 import { TextElement } from 'common/models/elements/text/text';
 import { TextFieldElement } from 'common/models/elements/input-elements/text-field';
@@ -97,4 +103,13 @@ export class Section {
     }
     return allElements;
   }
+
+  getSchemerData(dropLists: UIElement[]): SchemerData[] {
+    return this.getAllElements()
+      .filter(element => element.hasSchemerData())
+      .map(element =>
+        (element.type === 'drop-list' || element.type === 'drop-list-simple') ?
+          (element as InputElement).getSchemerData(dropLists) :
+          (element as InputElement | TextElement).getSchemerData());
+  }
 }
diff --git a/projects/common/models/unit.ts b/projects/common/models/unit.ts
index f23bcd99d4f7b2e9d2423a4e916a8769c4e6a765..b02b2c1db835262f8a825935fe9e889913c731be 100644
--- a/projects/common/models/unit.ts
+++ b/projects/common/models/unit.ts
@@ -1,7 +1,7 @@
 import packageJSON from '../../../package.json';
 import { Page } from 'common/models/page';
 import { IDManager } from 'common/util/id-manager';
-import { UIElement } from 'common/models/elements/element';
+import { SchemerData, UIElement } from 'common/models/elements/element';
 
 export class Unit {
   type = 'aspect-unit-definition';
@@ -16,4 +16,12 @@ export class Unit {
   getAllElements(elementType?: string): UIElement[] {
     return this.pages.map(page => page.getAllElements(elementType)).flat();
   }
+
+  getSchemerData(): SchemerData[] {
+    const dropLists = [
+      ...this.getAllElements('drop-list'),
+      ...this.getAllElements('drop-list-simple')
+    ];
+    return this.pages.map(page => page.getSchemerData(dropLists)).flat();
+  }
 }