Datenmaskenobjekt-Filter
Seit HiCAD 2001 gibt es im R+I die Datenmaskenobjekte (DMOs). Diese sind spezielle Symbole ohne grafische Darstellung. Im Wesentlichen dienen sie als Vorlage, auf die sich andere Symbole beziehen können. Dieser Bezug kann z.B. mithilfe des Textschlüssels %DMO hergestellt werden.
Mit den Datenmaskenobjekt-Filtern (DMO-Filter) gibt es nun einen weitern Mechanismus, mit dem auf die Daten in den DMOs zugegriffen werden kann.
Der Bereich Datenmaskenobjekt-Filter enthält die folgenden Kapitel:
- DMO-Filter bearbeiten
- Verhalten beim Einbau eines Symboles
- DMO-Filter auf Symbole anwenden
- DMO-Filter einer DMO-Bibliothek hinzufügen
- Kontextmenü für Datenmaskenobjekt-Filter
DMO-Filter bestehen aus Dialogtypen, die als Suchmuster interpretiert werden. Ein DMO-Filter verweist in der Regel auf ein reguläres DMO. Ein solches DMO, auf das ein DMO-Filter verweist, nennen wir Vorlagen-DMO. Beides ist hier zu sehen:
Wird nun ein Symbol einem R+I-Blatt hinzugefügt, so werden alle im Projekt vorhandenen DMO-Filter mit diesem Symbol abgeglichen. Findet sich ein DMO-Filter, dessen Suchmuster mit den Dialogtypen des einzubauenden Symboles übereinstimmen, so werden die Einträge dieses Symboles aus dem Vorlagen-DMO ergänzt. Für obiges Filter/Vorlagen-Paar bedeutet dies, dass bei jedem Abzweig, der einem R+I-Blatt hinzugefügt wird, der Dialogtyp Ort auf ISD gesetzt wird. Die folgende Abbildung veranschaulicht den Vorgang:
In einem DMO-Filter werden drei Dialogtypen verwendet, um auf ein Vorlagen-DMO zu verweisen. Das wichtigste ist dabei Vorlagen-DMO-ID. Dieser Dialogtyp enthält die DMO-ID des Vorlagen-DMOs. Jedes DMO bekommt beim Einfügen in das Projekt eine solche eindeutige Kennung.
Da DMO-Filter genau wie DMOs in Bibliotheken verwaltet werden können, in denen DMO-IDs nicht existieren, gibt es zwei weitere Dialogtypen, die ein Vorlagen-DMO anhand seines Namens und seiner Bibliothek identifizieren, nämlich Vorlagen-DMO-Bibliothek und Vorlagen-DMO. Diese beiden Dialogtypen werden beim Einbau eines DMO-Filters aus einer Bibliothek dazu verwendet, zusätzlich das passende Vorlagen-DMO automatisch ins Projekt einzufügen.
Zusammen mit den beiden Kommentar-Dialogtypen und den beiden DMO-Dialogtypen gibt es insgesamt sieben Dialogtypen, die ein DMO-Filter immer aufweist und die nicht für Suchmuster zur Verfügung stehen:
- DMO-ID
- DMO-Name
- Vorlagen-DMO-ID
- Vorlagen-DMO-Bibliothek
- Vorlagen-DMO
- Kommentar (1)
- Kommentar (2)
Die übrigen Dialogtypen können die üblichen Suchmuster aufnehmen, wie sie z.B. aus dem Symbol-Editor des 3D-Anlangenbaus oder auch dem Windows-Explorer bekannt sind. Es werden die Platzhalter * und ? unterstützt, wobei * für eine beliebige (auch leere) Zeichenkette steht, während ? exakt ein beliebiges Zeichen repräsentiert.
.
Beispielsweise würden sowohl 91?0001 als auch 91* gleichzeitig auf die Bauteilartkennungen von Behältern (9100001) und Pumpen (9110001) passen.
R+I-Symbol > Symbol > PullDown-Menü DMO > DMO-Filter
DMO-Filter bearbeiten
Aktiviert man die Funktion DMO-Filter, erscheint ein Dialog, mit dem man die Liste der im Projekt vorhandenen DMO-Filter verwalten kann:
Die DMO-Filter-Verwaltung zeigt eine Liste der im Projekt vorhandenen DMO-Filter. Im konkreten Beispiel finden sich zwei Filter im Projekt. Der Filter F1 wurde direkt im Projekt definiert und verweist auf das Vorlagen-DMO mit der DMO-ID D1. Der Filter F2 wurde aus einer Bibliothek eingebunden und verweist auf kein Vorlagen-DMO.
Es stehen die folgen Operationen zur Verfügung:
- Einfügen: Fügt einen neuen DMO-Filter hinzu. Dieser kann entweder aus eine Bibliothek stammen oder direkt definiert werden.
- Editieren: Editiert die Dialogtypen und die Datenmaske des DMO-Filters.
- Löschen: Entfernt den DMO-Filter aus dem Projekt.
- Vorlage setzen: Zeigt eine Auswahl-Liste der im Projekt vorhandenen DMOs. Wählt man eines dieser DMOs, so wird es als Vorlagen-DMO in die entsprechenden Dialogtypen des DMO-Filters eingetragen.
- Vorlage zeigen: Zeigt einen Masken-Editor mit dem das Vorlagen-DMO editiert werden kann.
- Vorlage entf.: Entfernt den Verweis auf ein Vorlagen-DMO, indem die entsprechenden Dialogtypen des DMO-Filters geleert werden.
- Testen: Testet den DMO-Filter. Siehe folgender Abschnitt.
DMO-Filter testen
Der Test eines DMO-Filters prüft für alle Symbole in allen im Projekt vorhandenen Bibliotheken, ob der DMO-Filter auf diese zutrifft. Im Anschluss wird eine Liste der Treffer angezeigt. Für den Filter F1, dessen Suchmuster für die Bauteilerkennung 3* (= alle Abzweige) ist, sähe das Ergebnis bswp. so aus:
Es stehen im Projekt also zwei Abzweige zur Auswahl. Wählt man nun einen Eintrag aus dieser Trefferliste aus, so werden die Änderungen angezeigt, die der Filter beim Einbau dieses Symboles vornehmen würde, z.B.
Es würde also für den Dialogtyp Ort der Eintrag ISD vorgenommen. Die Dialogtyp-Texte haben hier die folgende Form:
- Text -> Text (Eintrag wäre überschrieben worden)
- -> Text (Ein Eintrag in einen leeren Dialogtypen wäre vorgenommen worden)
- Text (Der Text stammt aus dem Bibliotheks-Symbol. Es gab keine Änderung.)
Bei Überschreibungen wird zusätzlich gewarnt. Falls das Vorlagen DMO z.B. Einträge für die Anschluss-Kennungen enthielte, gäbe es die folgende Meldung:
Ähnliche Warnungen gibt es, falls das Vorlagen-DMO nicht gesetzt wurde oder nicht mehr im Projekt vorhanden wäre.
Verhalten beim Einbau eines Symboles
Wird einem R+I-Blatt ein neues Symbol hinzugefügt, so werden alle DMO-Filter gesucht, deren Suchmuster auf das neue Symbol passen. Die Vorlagen-DMOs dieser DMO-Filter bestimmen nun, welche Werte in das neue Symbol eingetragen werden.
Der Vorgang ähnelt dem, was beim oben beschriebenen Testen vor sich geht, mit folgenden Abweichungen:
- Es wird niemals eine Dialogtyp-Vorgabe aus einer Bibliothek überschrieben. Definiert ein Vorlagen-DMO einen Dialogtyp-Wert, der bereits in der Bibliothek für das neue Symbol gesetzt wurde, so erscheint eine Warnung.
- Es können mehrere DMO-Filter zum Symbol passen. In diesem Fall füllen die Vorlagen-DMOs die jeweils vorhandenen Dialogtypen. Definieren zwei Vorlagen-DMOs den selben Dialogtyp, so erscheint eine Warnung und der entsprechende Dialogtyp wird nicht belegt.
Treten mehrere Konflikte auf, so werden diese gemeinsam in einer Warnung angezeigt. Die folgende Meldung weist z.B. auf einen Konflikt beim Dialogtyp Ort sowie auf potenzielle Überschreibungen bei den Anschluss-Dialogtypen hin:
DMO-Filter auf Symbole anwenden
Es gibt zwei Attribut-Typen, die es erleichtern, Datenmaskenobjekt-Filter auf spezifische Symbole anzuwenden.
Werden Datenmaskenobjekt-Filter verwendet, so wird beim Einbau eines Symboles in ein R+I-Schema geprüft, ob die Suchmuster auf den Attributen des Filters zu den Attributen des eingebauten Symboles passen. Wenn dies der Fall ist, so werden die Attributwerte der Vorlage, die zum Filter gehört, auf das Symbol kopiert.
Im Filter wird also spezifiziert, auf welche Symbole die Attribute einer Vorlage kopiert werden. Die neuen Attribut-Typen Ziel-Symbol-Name und Ziel-Symbol-Typ erleichtern das Einschränken eines Filters auf einen bestimmten Kreis von Symbolen.
In Ziel-Symbol-Name kann direkt der Name eines Symboles oder ein passendes Suchmuster eingetragen werden. Beispielsweise gilt ein Filter, der als Wert für Attribut Ziel-Symbol-Name das Suchmuster ?EMSR? enthält für die EMSR-Symbole aus der mitgelieferten Bibliothek ISDDINSYM1_GER.sza.
Das Attribut Ziel-Symbol-Name erfährt zudem eine Sonderbehandlung. Da der Name ein sehr spezifisches Attribut eines Symboles ist, wird davon ausgegangen, dass die Vorlagen-Attribute Vorrang vor anderen Vorlagen-Attributen haben und diese überschreiben können, ohne dass dies zu Konflikten führt.
In Ziel-Symbol-Typ kann ein Symboltyp festgelegt werden, auf den ein Datenmaskenobjekt-Filter wirken soll, also beispielsweise nur auf Rohrleitungsteil-Symbole. Die verfügbaren Symboltypen könne aus einer Combo-Box ausgewählt werden:
DMO-Filter einer DMO-Bibliothek hinzufügen
In der Bibliothek ISDREFSYM, in der allgemeine Symbolvorlagen zu finden sind, gibt es eine Vorlage für DMO-Filter:
Beim Anlegen einer DMO-Bibliothek, die DMO-Filter enthalten soll, kann dieses Symbol als Vorlage verwendet werden. Die DMO-Filter-Vorlage enthält die folgenden Dialogtypen:
Es können natürlich beliebige weitere Dialogtypen hinzugefügt werden, die dann wie die beiden grün umrandeten Beispiel-Dialogtypen gehandhabt werden.
Kontextmenü für Datenmaskenobjekt-Filter in Symbolbibliotheken
Wenn Sie Datenmaskenobjekt-Filter in Symbolbibliotheken mit der rechten Maustaste aktivieren, erscheint das folgende Kontextmenü:
Für Datenmaskenobjekt-Filter enthält das Kontextmenü zwei weitere Einträge im neuen Abschnitt Vorlagen-DMO, nämlich Vorlage setzen und Vorlage zeigen.
Diese erleichtern die Belegung der Attribute Vorlagen-DMO und Vorlagen-DMO-Bibliothek:
Die beiden Attribute werden beim Hinzufügen eines Datenmasken-Filters zu einem R+I-Schema verwendet, um automatisch das passende Vorlagen-Datenmaskenobjekt zu finden, dieses ebenfalls hinzuzufügen und mit dem Datenmasken-Filter über einen Verweis auf die DMO-ID zu verknüpfen.
Die Funktion Vorlage setzen erwartet die Auswahl eines Datenmaskenobjekt-Symboles. Dessen Name wird dann in das Attribut Vorlagen-DMO eingetragen. In das Attribut Vorlagen-DMO-Bibliothek wird die aktuell bearbeitete Bibliothek eingetragen. Falls versehentlich kein Datenmaskenobjekt gewählt wurde, erscheint die Meldung: Bitte wählen Sie ein Datenmaskenobjekt.
Die Funktion Vorlage zeigen wertet die Attribute Vorlagen-DMO und Vorlagen-DMO-Bibliothek aus, sucht das dazu passende Datenmaskenobjekt und hebt dieses sowohl in der Szene als auch im ICN hervor. Falls der Filter via Vorlagen-DMO-Bibliothek auf eine andere Bibliothek verweist, erscheint die folgende Meldung: DMO-Filter verweist auf eine Vorlage aus einer anderen Bibliothek.
Falls das eingetragene Datenmaskenobjekt nicht gefunden werden konnte, erscheint die folgende Meldung: DMO-Filter verweist auf keine Vorlage.
Bibliothekssymbole verwalten und bearbeiten (R+I) • Neues Bibliothekssymbol (R+I) • Verwaltung von konfigurierbaren allgemeinen Datenmasken in Datenmaskenobjekten DMO (R+I)