Elementfilter

Der Elementfilter ist ein Werkzeug zur Filterung von Elementen nach Kategorien und/oder Parametern, das aus Filteralgorithmen und einer Einstellungsoberfläche besteht (im Folgenden als „Werkzeug“ bezeichnet). Das Werkzeug wird in vielen Plugins verwendet, beispielsweise in den Plugins Bearbeitungsbereiche, Parametrisierung, Elemente einfärben und anderen.

Das Werkzeug besteht aus zwei Filtern – einem Kategoriefilter und einem Parameterfilter. In manchen Plugins kann nur einer der beiden Filter verwendet werden. Beispielsweise verwendet das Plugin Himmelsrichtung nur den Parameterfilter.

In der Plugin-Oberfläche kann das Werkzeug horizontal dargestellt werden:

1

oder vertikal:

2

Wenn beide Filter verwendet werden, befindet sich zwischen ihnen der logische Operator UND/ODER. Der Operator UND bedeutet, dass ein Element die Filterbedingungen erfüllt, wenn es die Bedingungen beider Filter erfüllt. Der Operator ODER bedeutet entsprechend, dass ein Element die Filterbedingungen erfüllt, wenn es die Bedingungen mindestens eines der beiden Filter erfüllt.

Die Kategorienliste des Kategoriefilters und die Bedingungenliste des Parameterfilters können über das mit der rechten Maustaste aufgerufene Kontextmenü in die Zwischenablage kopiert und aus dieser eingefügt werden.

Kategoriefilter

Der Kategoriefilter ist eine baumartige Liste zulässiger Kategorien. Die Bearbeitung der Kategorienliste erfolgt in einem Dialogfenster, das über das übergeordnete Fenster (Plugin-Fenster) geöffnet wird:

3

Im oberen Bereich des Dialogfensters befindet sich ein Feld für die Kategoriesuche. Die Suche erfolgt sowohl nach dem angezeigten Kategorienamen als auch nach dem eindeutigen programminternen Namen. Mit den darunter angeordneten Schaltflächen können bestimmte Gruppen von Kategorien nach ihrem Kategorietyp gefiltert werden.

Die Schaltflächen rechts neben der Liste gelten für die aktuell ausgewählte Kategoriegruppe. Mit ihnen kann die Auswahl aller Kategorien aufgehoben checkbox multiple blank circle outline, können alle Kategorien erweitert arrow expand und reduziert arrow collapse, nur die ausgewählten Kategorien angezeigt eye check outline oder Kategorien ausgewählt werden, deren Elemente in der aktuellen Ansicht vorhanden sind shape plus outline. Die ausgewählten Kategorien können als Sätze gespeichert arrow right bold werden, um sie später sowohl im aktuellen Plugin als auch in anderen Plugins zu verwenden, die den Kategoriefilter nutzen.

7

Ein Kategoriensatz kann mit der Schaltfläche arrow left bold geladen werden. Dabei werden die Kategorien des ausgewählten Satzes markiert.

Parameterfilter

Der Parameterfilter ist eine Liste von Bedingungen, die durch den logischen Operator UND oder ODER verknüpft sind. Im Filterfeld werden die Bedingungen in einer speziellen Syntax dargestellt, in der folgende Symbole für Vergleichsoperatoren verwendet werden:

= – Gleich
< – Kleiner als
<= – Kleiner oder gleich
> – Größer als
>= – Größer oder gleich
<> – Nicht gleich
~ – Enthält
!~ – Enthält nicht

Die Bearbeitung der Bedingungen erfolgt in einem separaten Fenster:

4

Im oberen Bereich des Fensters befinden sich die Links Einfache Bedingung und Gruppenbedingung, mit denen die entsprechenden Bedingungen hinzugefügt werden können. Bedingungen können umgeordnet, dupliziert und gelöscht werden. Der Link Löschen entfernt alle Bedingungen.

Regeln zur Erstellung und Prüfung von Bedingungen:

  1. Im Feld „Werte“ können mehrere zulässige Werte eingegeben werden, die durch Kommas getrennt sind. Ein Parameter erfüllt die Bedingung, wenn sein Wert mit mindestens einem der zulässigen Werte übereinstimmt.
  2. Damit ein Komma nicht als Trennzeichen interpretiert wird, muss es mit einem Backslash maskiert werden. Zum Beispiel „Wert 1\,5“.
  3. Die Bedingung „Vorhandensein eines Parameters“ bedeutet, dass ein Element verarbeitet wird, wenn der angegebene Parameter vorhanden ist, unabhängig von seinem Wert.
  4. Die Bedingung „Fehlender Parameter“ bedeutet, dass ein Element verarbeitet wird, wenn der angegebene Parameter nicht vorhanden ist.
  5. Die Bedingung „Schreibgeschützt“ mit dem Wert „Nein“ bedeutet, dass ein Element verarbeitet wird, wenn der Parameter bearbeitet werden kann. Die Bedingung „Schreibgeschützt“ mit dem Wert „Ja“ bedeutet, dass ein Element verarbeitet wird, wenn der Parameter nicht bearbeitet werden kann. Ein Parameter kann beispielsweise nicht bearbeitbar sein, wenn es sich um einen unveränderlichen Systemparameter handelt (z. B. den Parameter „Volumen“), sich das Element in einem nicht zugänglichen Bearbeitungsbereich befindet oder andere Einschränkungen vorliegen.
  6. Zeichenfolgenparameter werden nur mit den Bedingungen „Gleich“, „Nicht gleich“, „Enthält“ und „Enthält nicht“ geprüft.
  7. Die Bedingung „Enthält“ prüft, ob der Parameter des Elements mindestens einen der zulässigen Werte enthält. Die Bedingung „Enthält nicht“ prüft entsprechend, ob der Parameter mindestens einen der angegebenen Werte nicht enthält.
  8. Um die Bedingung „Beginnt mit“ zu verwenden, wählen Sie „Enthält“ und fügen am Ende des Wertes das Zeichen „*“ hinzu. Zum Beispiel „Wall*“.
  9. Um die Bedingung „Endet mit“ zu verwenden, wählen Sie „Enthält“ und fügen am Anfang des Wertes das Zeichen „*“ hinzu. Zum Beispiel „*Wall“.
  10. Um die Bedingung „Beginnt nicht mit“ zu verwenden, wählen Sie „Enthält nicht“ und fügen am Ende des Wertes das Zeichen „*“ hinzu. Zum Beispiel „Wall*“.
  11. Um die Bedingung „Endet nicht mit“ zu verwenden, wählen Sie „Enthält nicht“ und fügen am Anfang des Wertes das Zeichen „*“ hinzu. Zum Beispiel „*Wall“.
  12. Zeichenfolgenwerte werden standardmäßig unter Berücksichtigung der Groß- und Kleinschreibung geprüft – Option Aa. Für die Bedingungen „Gleich“, „Nicht gleich“, „Enthält“ und „Enthält nicht“ kann die Option aa ausgewählt werden, um die Groß- und Kleinschreibung bei der Prüfung nicht zu berücksichtigen. In der Zeichenfolgendarstellung des Filters wird eine solche Bedingung durch ein „?“ nach dem Parameternamen gekennzeichnet, beispielsweise: Marke?=A-1.
  13. Ja/Nein-Parameter werden als Ganzzahlen geprüft: 0 – ausgeschaltet, 1 – eingeschaltet.
  14. Bei der Prüfung des speziellen Parameters „Group“ (übergeordnete Gruppe) bestimmen die Bedingungen „Vorhandensein eines Parameters“ und „Fehlender Parameter“, ob ein Element zu einer Gruppe gehört. „Vorhandensein eines Parameters“ wird als Prüfung „Element muss zu einer Gruppe gehören“ interpretiert, während „Fehlender Parameter“ als Prüfung „Element darf zu keiner Gruppe gehören“ interpretiert wird. Jede andere Bedingung prüft, sofern das Element zu einer Gruppe gehört, den Gruppennamen nach den Regeln für Zeichenfolgen.
  15. Bei der Prüfung des speziellen Parameters „Assembly“ (übergeordnete Baugruppe) bestimmen die Bedingungen „Vorhandensein eines Parameters“ und „Fehlender Parameter“, ob ein Element zu einer Baugruppe gehört. „Vorhandensein eines Parameters“ wird als Prüfung „Element muss zu einer Baugruppe gehören“ interpretiert, während „Fehlender Parameter“ als Prüfung „Element darf zu keiner Baugruppe gehören“ interpretiert wird. Jede andere Bedingung prüft, sofern das Element zu einer Baugruppe gehört, den Namen der Baugruppe nach den Regeln für Zeichenfolgen.
  16. Bei der Prüfung des speziellen Parameters „Curtain“ (ob eine Wand eine Fassadenwand ist) bestimmen die Bedingungen „Vorhandensein eines Parameters“ und „Fehlender Parameter“, ob es sich bei der Wand um eine Fassadenwand handelt. „Vorhandensein eines Parameters“ wird als Prüfung „Die Wand muss eine Fassadenwand sein“ interpretiert, während „Fehlender Parameter“ als Prüfung „Die Wand darf keine Fassadenwand sein“ interpretiert wird.
  17. Bei der Prüfung des speziellen Parameters „Nested“ (ob eine Familie verschachtelt ist) bestimmen die Bedingungen „Vorhandensein eines Parameters“ und „Fehlender Parameter“, ob eine Familie verschachtelt ist. „Vorhandensein eines Parameters“ wird als Prüfung „Die Familie muss verschachtelt sein“ interpretiert, während „Fehlender Parameter“ als Prüfung „Die Familie darf nicht verschachtelt sein“ interpretiert wird.
  18. Bei der Prüfung des speziellen Parameters „Parent“ (ob eine Familie eine übergeordnete Familie ist) bestimmen die Bedingungen „Vorhandensein eines Parameters“ und „Fehlender Parameter“, ob eine Familie übergeordnet ist, also verschachtelte Familien enthält. „Vorhandensein eines Parameters“ wird als Prüfung „Die Familie muss eine übergeordnete Familie sein“ interpretiert, während „Fehlender Parameter“ als Prüfung „Die Familie darf keine übergeordnete Familie sein“ interpretiert wird.
  19. Bei Verwendung der speziellen Parameter „BottomZ“ und „TopZ“ werden die niedrigste bzw. höchste Höhenkote der Elementgeometrie geprüft. Die speziellen Parameter „BottomZ“ und „TopZ“ gelten als numerisch und werden mit den entsprechenden Bedingungen geprüft. Die Höhenwerte werden in Millimetern angegeben und auf drei Dezimalstellen gerundet. Im Feld „Wert“ können Ebenennamen angegeben werden: Wird die angegebene Ebene gefunden, wird ihre Höhenkote in Millimetern, auf drei Dezimalstellen gerundet, verwendet.
  20. Der spezielle Parameter „AreaScheme“ gibt den Namen des Flächenschemas zurück, zu dem eine Fläche gehört. Der Wert des speziellen Parameters „AreaScheme“ wird nach den Regeln für Zeichenfolgen geprüft. Wenn das Element keine Fläche ist, wird die Bedingung ignoriert und liefert immer „wahr“.
  21. Bei der Prüfung des speziellen Parameters „InMEPSystem“ (ob ein Element zu einem Gebäudetechniksystem gehört) bestimmen die Bedingungen „Vorhandensein eines Parameters“ und „Fehlender Parameter“, ob das Element Teil eines Gebäudetechniksystems ist. „Vorhandensein eines Parameters“ wird als Prüfung „Das Element ist Teil eines Gebäudetechniksystems“ interpretiert, während „Fehlender Parameter“ als Prüfung „Das Element ist nicht Teil eines Gebäudetechniksystems“ interpretiert wird.
  22. Bei der Prüfung des speziellen Parameters „InRebarSystem“ (ob Bewehrung zu einem Bewehrungssystem gehört) bestimmen die Bedingungen „Vorhandensein eines Parameters“ und „Fehlender Parameter“, ob die Bewehrung Teil eines Bewehrungssystems ist. „Vorhandensein eines Parameters“ wird als Prüfung „Die Bewehrung ist Teil eines Bewehrungssystems“ interpretiert, während „Fehlender Parameter“ als Prüfung „Die Bewehrung ist nicht Teil eines Bewehrungssystems“ interpretiert wird.
  23. Der spezielle Parameter „DocumentTitle“ gibt den Namen des aktuellen Dokuments zurück. Der Wert des speziellen Parameters „DocumentTitle“ wird nach den Regeln für Zeichenfolgen geprüft. Wenn das Dokument nicht gespeichert oder vom Zentralmodell getrennt wurde, wird der Standardwert oder eine leere Zeichenfolge zurückgegeben.
  24. Alle verschachtelten einfachen Bedingungen einer Gruppenbedingung werden mit dem Operator „UND“ geprüft. Das bedeutet, dass alle verschachtelten Bedingungen erfüllt sein müssen.
  25. Anstelle eines Parameternamens kann die GUID eines gemeinsam genutzten Parameters oder der Systemname eines integrierten Parameters angegeben werden.

9

Erstellte Bedingungen können als Sätze arrow up bold für die spätere Verwendung gespeichert werden. Beim Speichern muss ein Name angegeben werden. Optional kann eine Beschreibung hinzugefügt werden. Außerdem muss der Gültigkeitsbereich des Satzes ausgewählt werden:

  • Für Plugin speichern – der Satz steht im aktuellen Plugin zur Verfügung
  • Global speichern – der Satz steht auch in anderen Plugins zur Verfügung, die den Parameterfilter verwenden.

Ein zuvor gespeicherter Bedingungssatz kann mit der Schaltfläche arrow down bold geladen werden.

Im Eingabefeld für den Parameterbezeichner kann eine Schaltfläche vorhanden sein, mit der ein Parameter aus einer Liste ausgewählt werden kann:

5

Diese Schaltfläche erscheint, wenn im Kategoriefilter Kategorien festgelegt sind. Wenn im aktuellen Dokument Exemplare von Elementen dieser Kategorien vorhanden sind, stehen zwei Listen zur Verfügung: Exemplarparameter und Typparameter. Wenn im Modell keine Exemplare vorhanden sind, aber Typen existieren, wird nur die Liste der Typparameter angezeigt.

Als Parameterbezeichner kann der Parametername, die GUID eines gemeinsam genutzten Parameters oder der Systemname eines integrierten Parameters verwendet werden.

Neben Parametern können in den Bedingungen auch die Element-ID (ID), die Elementtyp-ID (TypeID) sowie die speziellen Parameter Group, Assembly, Curtain, Parent, Nested, BottomZ, TopZ, AreaScheme, InMEPSystem, InRebarSystem, DocumentTitle und weitere, sofern verfügbar, verwendet werden.

Bei Auswahl der Bedingungen „Gleich“ und „Nicht gleich“ wird eine Schaltfläche zum Suchen nach Parameterwerten magnify (black) verfügbar:

8

Die Suche erfolgt über alle Elemente und Elementtypen der angegebenen Kategorien. Im Suchfenster stehen folgende Suchbereiche zur Verfügung:

  • Projekt – sucht nach Parameterwerten im gesamten aktuellen Dokument
  • Aktuelle Ansicht – sucht nach Parameterwerten unter den Elementen der aktuellen Ansicht
  • Verknüpfte Dateien – sucht nach Parameterwerten in geladenen verknüpften Dateien. Für die Suche kann eine bestimmte verknüpfte Datei oder die Option Alle ausgewählt werden, um alle geladenen verknüpften Dateien gleichzeitig zu durchsuchen.

Eine Gruppenbedingung ist eine Liste einfacher Bedingungen. Alle einfachen Bedingungen innerhalb einer Gruppenbedingung werden mit dem logischen Operator UND geprüft. Ein Element erfüllt die Gruppenbedingung, wenn es alle verschachtelten einfachen Bedingungen erfüllt. Im Filterfeld wird eine Gruppenbedingung in eckige Klammern eingeschlossen.

Im unteren Bereich des Fensters befindet sich die Dropdown-Liste Element passt, wenn, mit der der logische Operator zwischen den Bedingungen festgelegt wird. Der Wert alle Bedingungen erfüllen entspricht dem logischen Operator UND, während mindestens eine Bedingung erfüllt dem logischen Operator ODER entspricht.

Das Beispiel aus dem obigen Screenshot sieht im Filterfeld folgendermaßen aus:

6

Dies bedeutet, dass eine Wand die Bedingungen erfüllt, wenn ihr Parameter „Marke“ den Wert „C-1“ enthält oder wenn ihr Parameter „Marke“ den Wert „C-2“ und ihr Parameter „Tragende Konstruktionen“ den Wert „1“ enthält.

Die Suche nach den erforderlichen Parametern im geprüften Element erfolgt anhand des Parameternamens. Zuerst wird der Parameter unter den Exemplarparametern gesucht. Wird er dort nicht gefunden, erfolgt die Suche unter den Typparametern.