Search Criteria Format/de: Difference between revisions

From Vectorworks Developer
Jump to navigation Jump to search
Line 191: Line 191:
</code>  
</code>  


The record and field names are STRING values and should be enclosed in single quotes. Any one of the optional
Die Datenbank- und Feldnamen sind STRING-Werte und sollten in einfache Anführungszeichen gesetzt werden. Jeder der optionalen
comparison operators can be used to focus the search on a specific subset of items which have the attached record. For example:
Vergleichsoperatoren kann verwendet werden, um die Suche auf eine bestimmte Teilmenge von Elementen zu fokussieren, die mit der Datenbank verknüpft sind. So wird zum Beispiel mit


<code lang="pas">
<code lang="pas">
('Assembly Data'.'Base Cost' < 250.00)
('Montagedaten'.'Grundkosten' < 250.00)
</code>  
</code>  


will search for any items with the attached record whose base cost is less than 250.00 dollars.
nach Elementen gesucht, die mit der Datenbank verknüpft sind und deren Grundkosten weniger als 250.00 betragen.


[CMP] undocumented but very useful feature: wildcards ? and * can be used in search values. e.g.
[CMP] undokumentierte, aber sehr nützliche Funktion: Die Wildcards ? und * können in Suchwerten verwendet werden. So findet zum Beispiel


<code lang="pas">
<code lang="pas">
('Device'.'Name' = 'VJF_*')
('Gerät'.'Name' = 'VJF_*')
</code>  
</code>  


will match all fields whose values begin with VJF_. My tests show that you can have multiple instances of * and ? in a search term and thet behave quite intelligently. So you can search for strings containing a sub string for example.
alle Felder, deren Werte mit "VJF_" beginnen. Meine Tests haben gezeigt, dass mehrere Instanzen von * und ? in einem Suchbegriff verwendet werden können und dass diese sich ziemlich intelligent verhalten. So kann zum Beispiel nach Strings gesucht werden, die einen Teilstring enthalten.


=== Search Symbol Instances (INSYMBOL)===
=== Search Symbol Instances (INSYMBOL)===

Revision as of 15:10, 15 December 2021

Filterkriterienformat

Syntax

Filterkriterien in Skripten bestehen aus zwei Teilen: dem Suchattribut-Typ und dem Suchwert. Der Suchattribut-Typ gibt an, welches Attribut zum Filtern von Objekten im Dokument verwendet wird; der Suchwert gibt den Wert an, der durch den Filtervorgang gefunden und abgeglichen werden soll. So gibt z. B. der Filterkriterien-Ausdruck

(C=’Wand’)

an, dass nach allen Objekten gesucht werden soll, deren Klasse Wand ist. Im Filterkriterien-Ausdruck gibt der Attributtyp C an, dass die Suche nach dem Klassenattribut von Objekten im Dokument durchgeführt werden soll. Der Suchwert Wand gibt an, welche Klasse beim Filtern als übereinstimmend gewertet wird.

Die allgemeine Syntax für Filterkriterien-Ausdrücke lautet:

(<Suchattribut Type> = <Suchwert>)

Klammern werden üblicherweise verwendet, um einzelne Filter-Ausdrücke einzuschließen und zu kennzeichnen; sie sind nicht erforderlich.

Mehrfache Filterkriterien

Es können mehrere Kriterien angegeben werden, um den Suchvorgang auf eine spezifischere Untergruppe von Objekten einzuschränken. Mehrere Filterkriterien werden mit dem Operator & erstellt, um einzelne Filterkriterien zu verketten. Im Ausdruck

((L='Neue Bebauung') & (C='Phase 1'))

werden zwei Suchbegriffe kombiniert, um nach einer bestimmten Gruppe von Objekten zu filtern, in diesem Fall nach allen Objekten auf der Ebene Neue Bebauung, deren Klasse Phase 1 ist. Um die Suche noch weiter einzugrenzen, fügen Sie einfach weitere Suchbegriffe hinzu:

((L='Neue Bebauung') & (C='Phase 1') & (SEL=TRUE))

Im Beispiel wurde der Attributtyp "Aktivierungsstatus" hinzugefügt, so dass jetzt nur aktivierte Objekte der Klasse "Phase 1" auf der Ebene "Neue Bebauung" der Suche entsprechen.

Mehrfache Suchwerte

Es ist auch möglich, anhand von Filterkriterien nach mehreren übereinstimmenden Werten zu filtern. Mehrere übereinstimmende Werte verwenden die folgende Syntax:

(<Attribut Type> IN [<Suchwert>,<Suchwert>,...])

Wenn ein Suchbegriff auf diese Weise angegeben wird, werden Objekte, die mit einem beliebigen Wert in der durch Komma getrennten Werteliste übereinstimmen, in die Liste der Objekte aufgenommen, die der Suche entsprechen. Zum Beispiel:

(R IN ['Bauteildaten','Baugruppendaten','Montagedaten'])

Eine Suche mit dem oben gezeigten Filterkriterien-Ausdruck führt zu allen Objekten mit einer verknüpften Datenbank, der mit einer der Datenbanken in der Suchliste übereinstimmen.

Attribut-Typen

Diese Standard-Attribut-Typen sind für die Verwendung in Suchbegriffen verfügbar.

Attribut Tastenkürzel Beschreibung Bemerkungen
Datenbank (R) Mit dem Attribut "Datenbank" wird nach Objekten gesucht, denen die angegebene Datenbank zugeordnet ist.

Das Attribut "Datenbank" erfordert die Verwendung des Mehrfachkriterienformats zur Angabe des Datenbanknamens. Um zum Beispiel nach Objekten zu suchen, mit denen die Datenbank "Bauteildaten" verknüpft ist, würde der Suchbegriff lauten:

 (R IN ['Bauteildaten']) 

Der Datenbankname muss ein literaler STRING-Wert sein.

Klasse (C) Mit dem Attributtyp "Klasse" wird nach Objekten gesucht, die der angegebenen Klasse zugeordnet sind. Der Suchwert sollte ein STRING-Wert mit einer Länge von bis zu 64 Zeichen sein. (Literale und Variablen werden unterstützt.)
Füllhintergrundfarbe (FB) Mit dem Attributtyp "Füllhintergrundfarbe" wird nach Objekten gesucht, die die angegebene Füllhintergrundfarbe aufweisen. Der Suchwert sollte ein Standard-Vectorworks-Farbindexwert sein. (Diesen können Sie erhalten mit RGBToColorIndex).
Füllvordergrundfarbe (FF) Mit dem Attributtyp "Füllvordergrundfarbe" wird nach Objekten gesucht, die die angegebene Füllvordergrundfarbe aufweisen. Der Suchwert sollte ein Standard-Vectorworks-Farbindexwert sein. (Diesen können Sie erhalten mit RGBToColorIndex).
Füllmuster (FP) Mit dem Attributtyp "Füllmuster" wird nach Objekten gesucht, die das angegebene Füllmuster aufweisen. Der Suchwert sollte ein Standardwert der Vectorworks Füllmuster-Auswahl sein. (in einem Bereich von 0 – 71)
Ebene (L) Mit dem Attributtyp "Ebene" wird nach Objekten auf der angegebenen Ebene gesucht. Der Suchwert sollte ein STRING-Wert mit einer Länge von bis zu 64 Zeichen sein. (Literale und Variablen werden unterstützt.)
Linienstil (LS) Mit dem Attribut "Linienstil" wird nach Objekten gesucht, die den angegebenen Stiftstil aufweisen. (Solid, Stiftmuster, Stiftart etc.). Der Suchwert sollte ein Standardwert der Linienstil-Auswahl sein.
Linienart (LT) Mit dem Attribut "Linienart" wird nach Objekten gesucht, die die angegebene Linienart aufweisen. Der Suchwert sollte ein STRING-Wert mit einer Länge von bis zu 64 Zeichen sein. (Literale und Variablen werden unterstützt.)
Liniendicke (LW) Mit dem Attribut "Liniendicke" wird nach Objekten gesucht, die die angegebene Liniendicke aufweisen. Der Suchwert sollte ein INTEGER-Wert sein, der die Liniendicke angibt.
Pfeiltyp (AR) Der Attributtyp "Pfeiltyp" sucht nach dem angegebenen Pfeiltyp. Der Suchwert sollte einer der unterstützten Pfeiltyp-Flag-Auswahlwerte sein. (in einem Bereich von 0 – 27)
Name (N) Mit dem Attribut "Name" wird nach dem Objekt gesucht, dem der angegebene Objektname zugeordnet ist. Der Suchwert sollte ein STRING-Wert mit einer Länge von bis zu 64 Zeichen sein. (Literale und Variablen werden unterstützt.)
Objekttyp (T) Mit dem Attribut "Objekttyp" wird nach Objekten gesucht, die dem angegebenen Objekttyp entsprechen. Der Suchwert muss einer der vordefinierten Objekttypen in der Auswahl sein. (Eine vollständige Liste finden Sie in der Tabelle am Ende dieses Abschnitts.)
Deckkraft (OPA) Mit dem Attribut "Deckkraft" wird nach Objekten mit dem angegebenen Deckkraft-Prozentsatz gesucht.
Stifthintergrundfarbe (PB) Mit dem Attributtyp "Stifthintergrundfarbe" wird nach Objekten gesucht, die die angegebene Stifthintergrundfarbe aufweisen. Der Suchwert sollte ein Standard-Vectorworks-Farbindexwert sein. (Diesen können Sie erhalten mit RGBToColorIndex).
Stiftvordergrundfarbe (PF) Mit dem Attributtyp "Stiftvordergrundfarbe" wird nach Objekten gesucht, die die angegebene Stiftvordergrundfarbe aufweisen. Der Suchwert sollte ein Standard-Vectorworks-Farbindexwert sein. (Diesen können Sie erhalten mit RGBToColorIndex).
Stiftmuster (PP) Mit dem Attributtyp "Stiftmuster" wird nach Objekten gesucht, die das angegebene Stiftmuster aufweisen. Der Suchwert sollte ein Standardwert der Stiftmuster-Auswahl sein.
Aktivierungsstatus (SEL) Der Auswahlstatus-Spezifikator sucht nach aktivierten oder nicht aktivierten Objekten. Der Suchwert ist ein BOOLEAN-Wert, der den Aktivierungsstatus angibt. (WAHR für aktiviert, FALSCH für nicht aktiviert).
Boden/Deckenstil (SLST) (Design Suite erforderlich) Der Attributtyp "Boden/Deckenstil" sucht nach Boden/Deckenstilen mit dem angegebenen Namen. Der Suchwert sollte ein STRING-Wert mit einer Länge von bis zu 64 Zeichen sein. (Literale und Variablen werden unterstützt.)
Geschoss (STO) (Design Suite erforderlich) Mit dem Attributtyp "Geschoss" wird nach Objekten auf dem angegebenen Geschoss gesucht. Der Suchwert sollte ein STRING-Wert mit einer Länge von bis zu 64 Zeichen sein. (Literale und Variablen werden unterstützt.)
Symbolname (S) Der Attributtyp "Symbolname" sucht nach Symbolen, die auf dem angegebenen Symbolnamen basieren. Der Suchwert sollte ein STRING-Wert mit einer Länge von bis zu 64 Zeichen sein. (Literale und Variablen werden unterstützt.)
Textstil (TSTY) Der Attributtyp "Textstil" sucht nach Textstilen mit dem angegebenen Namen. Der Suchwert sollte ein STRING-Wert mit einer Länge von bis zu 64 Zeichen sein. (Literale und Variablen werden unterstützt.)
Mosaik (TFI) Der Attributtyp "Mosaik" sucht nach Mosaiken mit dem angegebenen Namen. Der Suchwert sollte ein STRING-Wert mit einer Länge von bis zu 64 Zeichen sein. (Literale und Variablen werden unterstützt.)
Sichtbarkeitsstatus (V) Der Auswahlstatus-Spezifikator sucht nach Objekten aufgrund von deren Sichtbarkeitsstatus. Der Suchwert ist ein BOOLEAN-Wert, der den Aktivierungsstatus angibt. (WAHR für sichtbar, FALSCH für nicht sichtbar).

Spezialisiertes Filtern

Zusätzlich zu den Standard-Attributtypen, die für die Verwendung in Filterausdrücken zur Verfügung stehen, bieten Skripte auch spezielle Filter-Attributtypen für zusätzliche Flexibilität bei der Suche in einer Datei.

Werte in Datenbankfeldern

Datenbankfelder können mit Hilfe eines speziellen Attributtyps zur Abfrage des Feldwerts nach bestimmten übereinstimmenden Werten durchsucht werden. Die Syntax für die Abfrage von Datenbankfeldern lautet:

(<Datenbankname>.<Feldname>[< = |<> |> |>= |< |<= ><Suchwert>])

Die Datenbank- und Feldnamen sind STRING-Werte und sollten in einfache Anführungszeichen gesetzt werden. Jeder der optionalen Vergleichsoperatoren kann verwendet werden, um die Suche auf eine bestimmte Teilmenge von Elementen zu fokussieren, die mit der Datenbank verknüpft sind. So wird zum Beispiel mit

('Montagedaten'.'Grundkosten' < 250.00)

nach Elementen gesucht, die mit der Datenbank verknüpft sind und deren Grundkosten weniger als 250.00 betragen.

[CMP] undokumentierte, aber sehr nützliche Funktion: Die Wildcards ? und * können in Suchwerten verwendet werden. So findet zum Beispiel

('Gerät'.'Name' = 'VJF_*')

alle Felder, deren Werte mit "VJF_" beginnen. Meine Tests haben gezeigt, dass mehrere Instanzen von * und ? in einem Suchbegriff verwendet werden können und dass diese sich ziemlich intelligent verhalten. So kann zum Beispiel nach Strings gesucht werden, die einen Teilstring enthalten.

Search Symbol Instances (INSYMBOL)

The INSYMBOL attribute specifier will cause the search to enter any symbols encountered and perform a search on the symbols’ definition. For example, suppose you are laying out a large office and wish to count the total number of desk components that will need to be purchased. Your document contains a mixture of individual desk and desk return symbols, plus symbols which are comprised of a combination of the two desk components. A search using the term

(S IN ['3660 Desk','3660 LH Return'])

will return an inaccurate count, as it does not include instances of those symbols which are themselves inside another symbol. Adding the INSYMBOL type specifier to the term:

((S IN ['3660 Desk','LH Return']) & (INSYMBOL))

will force the search to enter any symbols encountered and detect any nested instances of the symbols in the search term.

Search Plug-in Objects (INOBJECT)

The INOBJECT specifier causes the search to enter plug‐in objects and also evaluate their component objects. Normally, components of plug‐in objects and symbols are ignored by search criteria. The INSYMBOL and INOBJECT specifiers affect the traversal of the drawing and cause more objects to be evaluated against the search criteria.

For example, to count the number of rectangles in the drawing, including rectangles that are inside symbols and plug‐in objects, use the following:

COUNT(INSYMBOL & INOBJECT & (T=RECT))

Search Viewport Instances (INVIEWPORT)

The INVIEWPORT attribute specifier will cause the search to enter the annotation space of any viewports encountered and perform a search. For example, you may wish to search for drawing labels, or perhaps dimensions, within the annotation space. A search using the term

(S IN [T=DIMENSION])

will return an inaccurate count, as it does not include viewport instances. Adding the INVIEWPORT type specifier to the term:

(S IN (INVIEWPORT)&(T=DIMENSION))

will force the search to detect any dimensions in the annotation space of viewports.

In a similar way, you can exclude non‐referenced design layer viewports with the specifier NOTINDLVP and exclude referenced design layer viewports with NOTINREFDLVP.

(S IN (NOTINDLVP)&(PON='Door'))

finds all doors that are not in non‐referenced design layer viewports.

(S IN (NOTINREFDLVP)&(PON='Door'))

finds all doors that are not in referenced design layer viewports.

Location (LOC)

The LOC specifier finds objects that are located within the bounds of a named object, like a fence.

Symbol Flip Status (ISFLIPPED)

The ISFLIPPED attribute specifier will check the flipped status of symbols or other objects. For example, to perform a count of all flipped instances of a particular symbol:

((S=’3680 Door’) & (ISFLIPPED))

will find only those instances of the symbol which have been flipped. The ISFLIPPED specifier is useful for determining orientation of objects for editing or related tasks.

All Objects (ALL)

Using the ALL attribute type specifier will select all the objects in the document.

Search Criteria Tables

The script criteria attribute specifiers are listed in the following table.

Attribute Type Type Selector Example
All objects ALL n/a
Attached Record R 64 character STRING
Class C C=“Millwork”
Descend into plug‐in objects INOBJECT (T=RECT) & INOBJECT
Descend into symbols INSYMBOL & (INSYMBOL)
Descend into viewport annotations INVIEWPORT & (INVIEWPORT)
Do not descend into non‐referenced design layer viewports NOTINDLVP & (NOTINDLVP)
Do not descend into referenced design layer viewports NOTINREFDLVP & (NOTINREFDLVP)
Fill Background FB Color index value
Fill Foreground FF Color index value
Fill Pattern FP FP=4
Flipped status ISFLIPPED n/a
Font FOT FOT=“Arial”
Font Size FSZ FSZ=10
Gradient Fill GFI GFI=“Fall”
Hatch Fill HFI HFI=“Stipple Dark”
Image Fill IFI IFI=“Stones”
Layer L L=”First Floor”
Line Style LS INTEGER value
Line Type LT LT=”Line Type‐1”
Line Weight LW INTEGER value
Location is contained within boundary of a named object LOC (LOC=‘MyRoom’)
Marker AR INTEGER selector value
Marker Size ASZ ASZ=0.125
Object Name N 64 character STRING
Object Type T Type selector (see table)
Opacity OPA OPA=70
Pen Background PB Color index value
Pen Foreground PF Color index value
Pen Pattern PP PP=3
Selected status SEL BOOLEAN value
Sketch Style SST SST=“Rough”
Slab Style SLST SLST=”SlabStyle‐1”
Story STO STO = “Second Floor”
Symbol Name S 64 character STRING
Texture TX TX=“Glass”
Text Style TSTY TSTY=”Text Style‐1”
Tile Fill TFI TFI=”Tile‐1”
Visibility status V BOOLEAN value
Wall Style WST WST=“Wallstyle‐1”


Object Type Type Selector Example
2D Locus LOCUS T=LOCUS
3D Locus LOCUS3D T=LOCUS3D
3D Polygon POLY3D T=POLY3D
Arc ARC T=ARC
Bitmap Image BITMAP T=BITMAP
Component Index
(objects that have components;
available only in IFC mapping formulas)
INDEX T=INDEX
Cone, Sphere, Pyramid SOLID T=SOLID
CSG Solid CSGSOLID T=CSGSOLID
Dimension DIMENSION T=DIMENSION
Extrude XTRD T=XTRD
Freehand FHAND T=FHAND
Group GROUP T=GROUP
Layer Link LAYERLINK T=LAYERLINK
Line LINE T=LINE
Mesh MESH T=MESH
Multiple Extrude MXTRD T=MXTRD
Oval OVAL T=OVAL
PICT Image PICT T=PICT
Plug-in Object PLUGINOBJECT T=PLUGINOBJECT
Polygon POLY T=POLY
Polyline POLYLINE T=POLYLINE
Quarter Arc QARC T=QARC
Rectangle RECT T=RECT
Roof ROOF T=ROOF
Roof Element ROOFELEMENT T=ROOFELEMENT
Roof Face, Floor, Column SLAB T=SLAB
Round Wall ROUNDWALL T=ROUNDWALL
Rounded Rectangle RRECT T=RRECT
Sub Type
(all objects except plug-in objects;
available sub types are listed in
VS:Search_Criteria#Search Criteria Sub Types )
ST ST=CONE
Sub Type (plug-in object names only) PON PON=“DOOR”
Sweep SWEEP T=SWEEP
Symbol SYMBOL T=SYMBOL
Text TEXT T=TEXT
Wall WALL T=WALL
Worksheet SPRDSHEET T=SPRDSHEET

Search Criteria Sub Types

When using the ST object type selector for objects other than plug‐in objects, the following sub types are available.

Object Sub Type Object Type Sub Type Selector Example
Directional Light Light DIRLIGHT ST=DIRLIGHT
Spot Light Light SPOTLIGHT ST=SPOTLIGHT
Point Light Light POINTLIGHT ST=POINTLIGHT
Custom Light Light CUSTLIGHT ST=CUSTLIGHT
Area Light Light AREALIGHT ST=AREALIGHT
Line Light Light LINELIGHT ST=LINELIGHT
Regular Viewport Viewport REGVIEWPORT ST=REGVIEWPORT
Section Viewport Viewport SECTVIEWPORT ST=SECTVIEWPORT
Floor Floor FLOOR ST=FLOOR
Roof Face Roof face ROOFFACE ST=ROOFFACE
Pillar Pillar PILLAR ST=PILLAR
Cone Solid CONE ST=CONE
Sphere Solid SPHERE ST=SPHERE
Hemisphere Solid HEMISPHERE ST=HEMISPHERE
Circle Arc CIRCLE ST=CIRCLE
Opened Arc Arc OPENEDARC ST=OPENEDARC
Solid Subtraction CSG Solid CSGSUBTR ST=CSGSUBTR
Solid Addition CSG Solid CSGADD ST=CSGADD
Solid Intersection CSG Solid CSGINTER ST=CSGINTER
Solid Section CSG Solid CSGSECT ST=CSGSECT
Shell CSG Solid CSGSHELL ST=CSGSHELL
Chamfer CSG Solid CSGCHAMFER ST=CSGCHAMFER
Fillet CSG Solid CSGFILLET ST=CSGFILLET
Control Point Based NURBS Surface NURBS Surface NURBSSURFCTRLP ST=NURBSSURFCTRLP
Interpolated NURBS Surface NURBS Surface NURBSSURFINTERP ST=NURBSSURFINTERP