Elementfilter
Der Elementfilter ist ein Werkzeug zur Filterung von Elementen nach Kategorien und/oder Parametern, bestehend aus Filteralgorithmen und einer Einstellungsoberfläche (im Folgenden "Werkzeug" genannt). Das Werkzeug wird in vielen Plugins verwendet. Zum Beispiel in den Plugins Arbeitssets, Werte kopieren, Elemente einfärben und anderen
Das Werkzeug besteht aus zwei Filtern – einem Kategoriefilter und einem Parameterfilter. In manchen Plugins kann nur einer der Filter verwendet werden. Zum Beispiel verwendet das Plugin Himmelsrichtung nur den Parameterfilter
In der Plugin-Oberfläche kann das Werkzeug eine horizontale Form haben:
Oder eine vertikale Form:
Wenn beide Filter verwendet werden, befindet sich zwischen ihnen ein logischer 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 mindestens eine der beiden Filterbedingungen erfüllt
Die Kategorienliste aus dem Kategoriefilter und die Bedingungen aus dem Parameterfilter können in die Zwischenablage kopiert und über das Kontextmenü, das mit der rechten Maustaste geöffnet wird, eingefügt werden
Kategoriefilter
Der Kategoriefilter ist eine baumartige Liste zulässiger Kategorien. Die Bearbeitung der Kategorienliste erfolgt im Dialogfenster des übergeordneten Fensters (Plugin-Fenster):
Oben im Dialog befindet sich ein Suchfeld für Kategorien. Die Suche erfolgt sowohl nach dem angezeigten Kategorienamen als auch nach dem eindeutigen Programmnamen. Wenn ein Sternchen (*) in das Suchfeld eingegeben wird, werden alle ausgewählten Kategorien angezeigt. Die Schaltflächen rechts neben der Liste ermöglichen es, alle Kategorien abzuwählen , alle Kategorien aufzuklappen
oder zuzuklappen
, nur ausgewählte Kategorien anzuzeigen
oder Kategorien zu markieren, deren Elemente in der aktuellen Ansicht vorhanden sind
. Markierte Kategorien können als Sets gespeichert
und später sowohl in diesem Plugin als auch in anderen Plugins, die den Kategoriefilter verwenden, angewendet werden
Ein Kategorienset kann mit der Schaltfläche geladen werden
Parameterfilter
Der Parameterfilter ist eine Liste von Bedingungen, die durch den logischen Operator UND oder ODER getrennt sind. Im Filterfeld werden die Bedingungen in einer speziellen Syntax geschrieben, in der die Vergleichsoperatoren die folgenden Symbole verwenden:
= | – gleich |
< | – kleiner als |
<= | – kleiner oder gleich |
> | – größer als |
>= | – größer oder gleich |
<> | – ungleich |
~ | – enthält |
!~ | – enthält nicht |
Die Bearbeitung der Bedingungen erfolgt in einem separaten Fenster:
Regeln zur Erstellung von Bedingungen:
- Im Feld "Werte" können mehrere zulässige Werte durch Kommas getrennt eingegeben werden. Ein Parameter gilt als erfüllt, wenn sein Wert mindestens einem zulässigen Wert entspricht
- Um ein Komma nicht als Trennzeichen zu interpretieren, muss es mit einem Backslash maskiert werden, z. B. "Wert 1\,5"
- Die Bedingung "Parameter vorhanden" bedeutet, dass ein Element verarbeitet wird, wenn dieser Parameter vorhanden ist, unabhängig vom Wert
- Die Bedingung "Parameter fehlt" bedeutet, dass ein Element verarbeitet wird, wenn dieser Parameter nicht vorhanden ist
- Zeichenkettenparameter werden nur mit den Bedingungen "Gleich", "Ungleich", "Enthält" und "Enthält nicht" geprüft
- Die Bedingung "Enthält" prüft, ob im Parameter mindestens einer der zulässigen Werte enthalten ist. Die Bedingung "Enthält nicht" prüft entsprechend, dass keiner der Werte enthalten ist
- Um die Bedingung "Beginnt mit" zu verwenden, wählen Sie "Enthält" und fügen Sie am Ende des Werts ein Sternchen (*) hinzu, z. B. "Wall*"
- Um die Bedingung "Endet mit" zu verwenden, wählen Sie "Enthält" und fügen Sie am Anfang des Werts ein Sternchen (*) hinzu, z. B. "*Wall"
- Um die Bedingung "Beginnt nicht mit" zu verwenden, wählen Sie "Enthält nicht" und fügen Sie am Ende des Werts ein Sternchen (*) hinzu, z. B. "Wall*"
- Um die Bedingung "Endet nicht mit" zu verwenden, wählen Sie "Enthält nicht" und fügen Sie am Anfang des Werts ein Sternchen (*) hinzu, z. B. "*Wall"
- Die Überprüfung von Zeichenkettenwerten erfolgt unter Berücksichtigung der Groß-/Kleinschreibung
- Parameter vom Typ "Ein/Aus" werden als ganze Zahl geprüft (0 – aus, 1 – an)
- Die Bedingungen "Parameter vorhanden" und "Parameter fehlt" prüfen bei dem Schlüsselparameter "Group" (übergeordnete Gruppe), ob ein Element in einer Gruppe ist oder nicht. Die Bedingung "Parameter vorhanden" entspricht "Element muss in Gruppe sein", die Bedingung "Parameter fehlt" entspricht "Element darf nicht in Gruppe sein". Andere Bedingungen prüfen bei Gruppenelementen den Gruppennamen gemäß den Regeln für Zeichenketten
- Die Bedingungen "Parameter vorhanden" und "Parameter fehlt" prüfen bei dem Schlüsselparameter "Assembly" (übergeordnete Baugruppe), ob ein Element in einer Baugruppe ist oder nicht. Die Bedeutung ist analog zu "Group"
- Die Bedingungen "Parameter vorhanden" und "Parameter fehlt" prüfen bei dem Schlüsselparameter "Curtain" (Vorhangfassade), ob eine Wand eine Vorhangfassade ist oder nicht. Die Bedingung "Parameter vorhanden" bedeutet "Wand muss Vorhangfassade sein", die Bedingung "Parameter fehlt" bedeutet "Wand darf keine Vorhangfassade sein". Wenn das Element keine Wand ist, wird die Bedingung ignoriert (immer wahr)
- Die Bedingungen "Parameter vorhanden" und "Parameter fehlt" prüfen bei dem Schlüsselparameter "Nested" (eingebettete Familie), ob eine Familie eingebettet ist oder nicht. Die Bedingung wird ignoriert, wenn das Element keine Familie ist (immer wahr)
- Die Bedingungen "Parameter vorhanden" und "Parameter fehlt" prüfen bei dem Schlüsselparameter "Parent" (Elternfamilie), ob eine Familie eine Elternfamilie ist oder nicht (enthält verschachtelte Familien). Die Bedingung wird ignoriert, wenn das Element keine Familie ist (immer wahr)
- Bei Verwendung der Schlüsselparameter "BottomZ" und "TopZ" wird die jeweils niedrigste bzw. höchste Höhe der Elementgeometrie geprüft. Die Werte der Schlüsselparameter gelten als numerisch und werden mit den entsprechenden Bedingungen geprüft. Die Höhenwerte werden in Millimetern mit einer Genauigkeit von drei Nachkommastellen angegeben. Im Feld "Wert" können auch Ebenennamen angegeben werden, deren Höhenwerte dann verwendet werden
- Der Schlüsselparameter "AreaScheme" gibt den Namen des Zonierungsschemas an, zu dem die Zone gehört. Der Wert wird gemäß den Regeln für Zeichenketten geprüft. Wenn das Element keine Zone ist, wird die Bedingung ignoriert (immer wahr)
- Alle einfachen Bedingungen innerhalb einer Gruppenbedingung werden mit dem Operator "UND" geprüft, d. h. alle verschachtelten Bedingungen müssen erfüllt sein
- Statt des Parameternamens kann die GUID eines gemeinsamen Parameters oder der technische Name eines eingebauten Parameters verwendet werden
Rechts befinden sich zwei Links, die als Schaltflächen funktionieren und es ermöglichen, eine neue einfache oder Gruppenbedingung hinzuzufügen
Im Eingabefeld für den Parameterbezeichner kann eine Schaltfläche erscheinen, mit der ein Parameter aus einer Liste ausgewählt werden kann:
Diese Schaltfläche erscheint, wenn im Kategoriefilter Kategorien ausgewählt sind. Wenn im aktuellen Dokument Exemplare von Elementen dieser Kategorien vorhanden sind, sind zwei Listen verfügbar – Instanzparameter und Typparameter. Wenn keine Exemplare vorhanden sind, aber Typen vorhanden sind, steht nur eine Liste mit Typparametern zur Verfügung
Als Parameterbezeichner kann der Name des Parameters, die GUID eines gemeinsamen Parameters oder der technische Name eines eingebauten Parameters verwendet werden
Neben Parametern können in den Bedingungen auch Element-ID, Typ-ID sowie übergeordnete Gruppe (Group) und übergeordnete Baugruppe (Assembly) verwendet werden, sofern vorhanden
Eine Gruppenbedingung ist eine Liste von einfachen Bedingungen. Alle einfachen Bedingungen innerhalb einer Gruppenbedingung werden mit dem logischen Operator UND geprüft. Das bedeutet, ein Element erfüllt die Gruppenbedingung, wenn es alle verschachtelten einfachen Bedingungen erfüllt. In der Filterzeile wird eine Gruppenbedingung in eckigen Klammern hervorgehoben
Unten im Fenster befindet sich eine Auswahlliste Element passt, wenn, die den logischen Operator bestimmt, der zwischen allen Bedingungen verwendet wird. Der Wert alle Bedingungen erfüllen entspricht dem logischen Operator UND, und der Wert mindestens eine Bedingung erfüllt entspricht dem logischen Operator ODER
Das Beispiel aus dem obigen Screenshot sieht im Filterfeld folgendermaßen aus:
Dies bedeutet, dass eine Wand passt, wenn sie im Parameter "Marke" den Wert "C-1" hat oder wenn sie im Parameter "Marke" den Wert C-2 hat und im Parameter "Tragende Konstruktionen" den Wert "1"
Die Suche nach Parametern im überprüften Element erfolgt nach dem Parameternamen. Der Parameter wird zuerst in der Liste der Instanzparameter gesucht und dann (falls nicht gefunden) in der Liste der Typparameter
Bei der Überprüfung von Zeichenkettenparametern mit den Operatoren "Gleich", "Ungleich", "Enthält" und "Enthält nicht" wird die Groß-/Kleinschreibung berücksichtigt