> ## Documentation Index
> Fetch the complete documentation index at: https://docs.abbyy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Hypothesen für alle Elementtypen

> Gemeinsame Hypotheseneigenschaften für alle FlexiLayout-Elemente: IsNull, Region, FuzzyRect, Grenzen und Seitenmethoden, mit einem ausgearbeiteten Nullhypothesenbeispiel.

Eine Hypothese für ein Element kann entweder gefunden oder nicht gefunden werden. Eine gefundene Hypothese wird typischerweise auf Grundlage eines oder mehrerer Bildobjekte oder ihrer Fragmente gebildet (eine Ausnahme ist das Element **White Gap**, das überhaupt keine Bildobjekte enthalten kann).

<div id="hypothesis-regions-and-boundaries">
  ## Hypothesenregionen und -grenzen
</div>

Eine gefundene Hypothese für ein einfaches Element ist immer eine zusammenhängende Region. Hypothesen für die Elemente **White Gap**, **Separator** und **Barcode** sind immer einzelne Rechtecke.

Wenn eine Hypothese auf Grundlage einer Menge erkannter Bildobjekte gebildet wird, z. B. eine Hypothese für ein **Paragraph**-Element, wird die Region der Hypothese auf Grundlage des Arrays von Rechtecken der erkannten Objekte erstellt. Die auf diese Weise erstellte Region kann mit der Methode `Region` der Hypothese abgerufen werden.

Wenn die Region der Hypothese im Bild angezeigt wird oder wenn auf Grundlage der Hypothese ein Block erstellt wird, folgen die Grenzen der Region nicht exakt den Grenzen der einzelnen Rechtecke. Stattdessen werden die Grenzen des Suchbereichs zur besseren Visualisierung geglättet. Eine auf diese Weise erstellte Region kann mit der Methode `SimplifiedRegion` der Hypothese abgerufen werden.

Die Methoden `Region` und `SimplifiedRegion` können entweder im Feld **Erweiterte Vor-Suchbeziehungen** auf der Registerkarte **Erweitert** (beim Beschreiben des Suchbereichs des Elements) oder im Feld **Regionsausdruck** beim Beschreiben der Eigenschaften des Blocks und bei Verwendung der bereits gefundenen Elemente verwendet werden.

Wenn eine Hypothese nicht gefunden wurde, entspricht sie dem Fuzzy-Rectangle ihres Suchbereichs. Wenn eine nicht gefundene Hypothese im Bild angezeigt wird, zeichnet FlexiLayout Studio das äußere Rechteck des Fuzzy-Rectangles.

Die Grenzen `Left`, `top`, `Right` und `Bottom` jeder Hypothese sind Bereiche. Bei jeder gefundenen Hypothese reduziert sich der Bereich auf einen Punkt, d. h. `Left.Start = Left.End`, `top.Start = top.End` usw. Bei einer nicht gefundenen Hypothese entsprechen die Bereiche der Grenzen den Bereichen ihres Suchbereichs.

<div id="hypothesis-access-in-flexilayout-code">
  ## Zugriff auf Hypothesen im FlexiLayout-Code
</div>

Der Zugriff auf generierte Hypothesen und ihre Eigenschaften im Code der entsprechenden Dialogfelder von Blöcken und Elementen bietet zusätzliche Tools zum Einrichten des FlexiLayout. Auf Elementhypothesen kann über die Namen der Elemente zugegriffen werden. Um im Feld [Erweiterte Nach-Suchbeziehungen](/de/flexi-capture/fls/template/advanced-post-search) auf eine Hypothese für das aktuelle Element zuzugreifen, können Sie nur den Namen der Eigenschaft verwenden.

Auf Hypothesen und ihre Eigenschaften wird im Nur-Lese-Modus zugegriffen. Auf Hypothesen für Elemente kann in den Feldern [Erweiterte Vor-Suchbeziehungen](/de/flexi-capture/fls/template/advanced-pre-search) und **Erweiterte Nach-Suchbeziehungen** auf der Registerkarte **Erweitert** im Dialogfeld **Eigenschaften** des Elements sowie im Feld [Regionsausdruck](/de/flexi-capture/fls/template/search-constraints) im Dialogfeld **Eigenschaften** des Blocks zugegriffen werden.

In **Erweiterte Vor-Suchbeziehungen** können Sie auf die generierten Hypothesen (und ihre Eigenschaften) für alle Elemente zugreifen, die sich im FlexiLayout-Baum oberhalb des aktuellen Elements befinden. In **Erweiterte Nach-Suchbeziehungen** können Sie auf die generierten Hypothesen für die Elemente zugreifen, die sich im FlexiLayout-Baum oberhalb des aktuellen Elements befinden, sowie auf die Hypothese für das aktuelle Element selbst.

In **Regionsausdruck** können Sie auf die Hypothesen (und ihre Eigenschaften) für alle Elemente zugreifen.

<div id="properties-of-hypotheses-for-all-element-types">
  ## Eigenschaften von Hypothesen für alle Elementtypen
</div>

Die folgende Tabelle enthält die Eigenschaften von Hypothesen für alle Elementtypen.

| Eigenschaft                                 | Beschreibung                                                                                                                                                                                                                                                                                                                                                                                                          |
| ------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `Logic IsNull()`                            | Gibt an, ob es sich um eine Nullhypothese handelt (wenn das Element nicht erkannt wurde, ist die Eigenschaft `IsNull` der Hypothese `True`).                                                                                                                                                                                                                                                                          |
| `Logic IsFound()`                           | Gibt an, ob die Hypothese nicht null ist (wenn das Element nicht erkannt wurde, ist die Eigenschaft `IsFound` der Hypothese `False`). Entspricht `not IsNull`.                                                                                                                                                                                                                                                        |
| `XInterval Left()`                          | Die linke Begrenzung der Hypothese, horizontaler Bereich in globalen Koordinaten.                                                                                                                                                                                                                                                                                                                                     |
| `YInterval top()`                           | Die obere Begrenzung der Hypothese, vertikaler Bereich in globalen Koordinaten.                                                                                                                                                                                                                                                                                                                                       |
| `XInterval Right()`                         | Die rechte Begrenzung der Hypothese, horizontaler Bereich in globalen Koordinaten.                                                                                                                                                                                                                                                                                                                                    |
| `YInterval Bottom()`                        | Die untere Begrenzung der Hypothese, vertikaler Bereich in globalen Koordinaten.                                                                                                                                                                                                                                                                                                                                      |
| `XInterval XCenter()`                       | Die X-Koordinate des Zentrums der Hypothese, horizontaler Bereich in globalen Koordinaten.                                                                                                                                                                                                                                                                                                                            |
| `YInterval YCenter()`                       | Die Y-Koordinate des Zentrums der Hypothese, vertikaler Bereich in globalen Koordinaten.                                                                                                                                                                                                                                                                                                                              |
| `DistInterval Width()`                      | Die Breite der Hypothese in globalen Koordinaten, Bereich von Abständen.                                                                                                                                                                                                                                                                                                                                              |
| `DistInterval Height()`                     | Die Höhe der Hypothese in globalen Koordinaten, Bereich von Abständen.                                                                                                                                                                                                                                                                                                                                                |
| `FuzzyRect FuzzyRect()`                     | Das Fuzzy-Rectangle der Hypothese in globalen Koordinaten.                                                                                                                                                                                                                                                                                                                                                            |
| `Rect Rect()`                               | Das die Hypothese umschließende Rechteck in globalen Koordinaten. Es stimmt mit dem äußeren Rechteck des Fuzzy-Rectangles überein.                                                                                                                                                                                                                                                                                    |
| `Region Region()`                           | Die Region der Hypothese in globalen Koordinaten. Die Methode wird für **Group**-Elemente nicht unterstützt.                                                                                                                                                                                                                                                                                                          |
| `Region SimplifiedRegion()`                 | Die Region der Hypothese in globalen Koordinaten, vereinfacht für eine bessere visuelle Darstellung. Die Methode wird für **Group**-Elemente nicht unterstützt.                                                                                                                                                                                                                                                       |
| `ImageObjectSet Set()`                      | Die Bildobjekte, die Teil der Hypothese sind.                                                                                                                                                                                                                                                                                                                                                                         |
| `ImageObjectSet ExcludeSet()`               | Die Bildobjekte, die sich in der Region befinden, die durch Methoden vom Typ `Exclude` aus dem Suchbereich ausgeschlossen wird.                                                                                                                                                                                                                                                                                       |
| `RectArray Rects()`                         | Das Array der in der Hypothese enthaltenen Rechtecke. Bei den meisten Elementen stimmt es mit dem Array der Rechtecke überein, die erkannte Objekte umschließen. Für **White Gap**- und **Region**-Elemente sind keine Objekte verfügbar.                                                                                                                                                                             |
| `Int HypothesesCount()`                     | Die Anzahl der Hypothesen, die für das Element im Suchbereich formuliert werden können.<br /><br />**Wichtig!** Die Funktion kann nur verwendet werden, wenn die maximale und die minimale Seitenanzahl im Dokument auf 1 gesetzt sind, das heißt, das erkannte Dokument hat nur eine Seite. Wenn Sie diese Funktion für ein mehrseitiges Dokument verwenden, gibt der Abgleich des FlexiLayouts einen Fehler zurück. |
| `PageInterval Pages()`                      | Der Seitenbereich, in dem die Hypothese zu finden ist.                                                                                                                                                                                                                                                                                                                                                                |
| `PageArea PageAreaGlobal( Int PageNumber )` | Gibt den Teil der Hypothese zurück, der sich auf der angegebenen Seite in globalen Koordinaten befindet.                                                                                                                                                                                                                                                                                                              |
| `PageArea PageAreaLocal( Int PageNumber )`  | Gibt den Teil der Hypothese zurück, der sich auf der angegebenen Seite in den lokalen Koordinaten der Seite befindet.                                                                                                                                                                                                                                                                                                 |

<div id="example-check-for-a-null-hypothesis-before-accessing-properties">
  ## Beispiel: Vor dem Zugriff auf Eigenschaften prüfen, ob eine Nullhypothese vorliegt
</div>

Bevor Sie auf die Eigenschaften einer Hypothese für ein einfaches oder **Group**-Element zugreifen, stellen Sie sicher, dass die Hypothese, auf die zugegriffen werden soll, keine Nullhypothese ist (rufen Sie ihre Eigenschaft `IsNull` auf). Der Zugriff auf eine Eigenschaft einer Nullhypothese (die einem nicht erkannten Element entspricht) führt zu einem Fehler.

Sehen Sie sich ein Beispiel an, das das Projekt aus Sample 1 verwendet, das auf der Programm-CD-ROM zu finden ist.

Angenommen, auf Ihrem Dokument befindet sich ein Bezeichner in Form eines Barcodes, und Sie möchten, dass Ihr FlexiLayout nur diejenigen Dokumente abgleicht, bei denen der Wert des Barcodes `1556897142240` ist.

Schreiben Sie im Abschnitt **Erweiterte Nach-Suchbeziehungen** des Elements, das die Eigenschaften und Suchbedingungen des Barcodes beschreibt (Element `IdentityNumber` in Sample 1), den folgenden Code:

```text theme={null}
if value != "1556897142240" then Quality: 0;
```

Klicken Sie auf **Apply** oder **Check**. Der Compiler erkennt keine Syntaxfehler. Es sieht so aus, als sei der Code in Ordnung. Wenn Sie jedoch versuchen, das FlexiLayout mit einer beliebigen Seite aus Sample 1 abzugleichen, erscheint die folgende Fehlermeldung: `Error in element “MainGroup.IdentityNumber”, Advanced relations section: Attempt to access undefined hypothesis MainGroup.IdentityNumber`.

Der Grund für den Fehler ist folgender: FlexiLayout Studio findet eine Hypothese für das Barcode-Element. Anschließend vergleicht es den Wert des Barcodes mit dem im Code angegebenen Wert. Wenn die Werte unterschiedlich sind, setzt der Code `Quality: 0;` den Wert der Hypothese auf 0 zurück.

Dann wird für dieses Element eine Nullhypothese erzeugt, für die FlexiLayout Studio ebenfalls die Bedingung `value != "1556897142240"` prüft. Da der Zugriff auf den Wert einer Nullhypothese nicht zulässig ist (sie verfügt nicht über diese Eigenschaft), gibt FlexiLayout Studio die Fehlermeldung "...undefined hypothesis..." aus.

Passen Sie den Code daher wie folgt an:

```text theme={null}
if not IsNull then {
if value != "1556897142240" then Quality: 0;
}
```

Der obige Code funktioniert nur für ein erforderliches Element.

Für ein optionales Element passen Sie den Code wie folgt an:

```text theme={null}
if not IsNull then {
if value != "1556897142240" then Quality: 0;
}
else {Quality: 0;}
```

Andernfalls wird nur die Quality der tatsächlichen Hypothese auf 0 zurückgesetzt. Dadurch erzeugt FlexiLayout Studio eine Nullhypothese, für die die Bedingung `if not IsNull` nicht ausgeführt wird.

Daher bleibt die Quality der endgültigen (Null-)Hypothese unverändert und entspricht dem in den Eigenschaften des Elements angegebenen Wert (0,97, wenn der Standardwert beibehalten wurde), und FlexiLayout Studio setzt den Abgleich des FlexiLayouts auch ohne das betreffende Element fort.

Wenn Sie dem Code `else {Quality: 0;}` hinzufügen, wird die Anweisung für alle Hypothesen (einschließlich der Nullhypothese) ausgeführt, und der Abgleich des FlexiLayouts wird beendet, weil bei diesem Element auch die gesamte Kette von Hypothesen auf 0 zurückgesetzt wird.

<div id="region-and-simplifiedregion-methods-compared">
  ## Vergleich der Methoden Region() und SimplifiedRegion()
</div>

Die Methoden `Region Region()` und `Region SimplifiedRegion()` geben beide die Region eines Elements zurück, aber die Methode `Region Region()` gibt die exakte Region zurück:

<Frame>
  <img src="https://mintcdn.com/abbyy/lqYknuOmCa79141v/images/flexi-capture/fls/Region.gif?s=e46c1e1919cef7f966fcb472c25b1a2b" alt="Screenshot der exakten Hypothesenregion, die von der Methode Region() in ABBYY FlexiLayout Studio zurückgegeben wird und den Begrenzungen der erkannten Objekte folgt." width="190" height="159" data-path="images/flexi-capture/fls/Region.gif" />
</Frame>

Die Methode `Region SimplifiedRegion()` gibt das Rectangle zurück, das anhand der Koordinaten der Begrenzungen erstellt wurde:

<Frame>
  <img src="https://mintcdn.com/abbyy/lqYknuOmCa79141v/images/flexi-capture/fls/Simplified_Region.gif?s=5f6838ff02b0d119264bc09c42536cb7" alt="Screenshot der vereinfachten rechteckigen Hypothesenregion, die von der Methode SimplifiedRegion() in ABBYY FlexiLayout Studio zurückgegeben wird und auf den Koordinaten der Begrenzungen basiert." width="181" height="154" data-path="images/flexi-capture/fls/Simplified_Region.gif" />
</Frame>
