Aide MicroStation CONNECT Edition

Mots-clés de comparaison

Les descriptions de mot-clé suivantes incluent une brève description de la fonction du mot-clé, les types d'éléments que le mot-clé affecte (le cas échéant), les types de données admises (le cas échéant) ainsi qu'un exemple d'utilisation du mot-clé.

Remarque : Les mots-clés characters de la rubrique "Mots-clés d'affectations" peuvent s'utiliser dans les instructions de comparaison. Reportez -vous à la section "Mots-clés d'affectations" pour plus d'informations sur les mots-clés characters.

angle

Le mot-clé angle précise l'angle de types d'éléments cellule, nœud de texte, ellipse, arc et texte. Pour les autres types d'élément, la valeur d'angle est 0,0.

Type de données : nombre réel de la plage 0.0 à 360.0

Exemple :

!
! Modifiez la couleur des éléments de texte
! ayant pivoté de 90 degrés.
!
if ((type == text) and (angle == 90.0)) then
	 color = 2
endif

area_fill

Le mot-clé area_fill vérifie si l'élément actuel est rempli.

Type de données : constante (true ou false)

Exemple :

!
!     Changer la couleur de remplissage de tous les éléments remplis.
! Ne modifiez pas les éléments qui ne sont pas remplis.
!
if (area_fill == true) then
	 fill_color = 10
endif

cellname

Le mot-clé cellname indique le nom de la cellule si l'élément actuel est un en-tête de cellule ou un composant d'une cellule. Pour les composants imbriqués dans une ou plusieurs cellules, le mot-clé cellname indique le nom de la cellule la plus à l'extérieur, hormis si le composant est un en-tête de cellule imbriquée. Dans ce cas, le mot-clé cellname est le nom de la cellule imbriquée. Si l'élément actuel n'est ni un en-tête de cellule ni un composant d'une cellule, la valeur de cellname est "NO_CELL". On peut se servir des caractères spéciaux dans les comparaisons d'égalité ou inégalité de chaînes.

Remarque : Pour rechercher le nom de cellule le plus à l'intérieur, utilisez le mot-clé nested_cellname.

Type de données : chaîne

Exemple :

!
! Modifiez la couleur de tous les composants de la cellule
! nommée "border ».
!
if (cellname == "border") then
	 color = (200,200,200)
endif

characters

Le mot-clé characters désigne la chaîne contenue dans l'élément si l'élément actuel est un élément de texte. On peut se servir des caractères spéciaux dans les comparaisons d'égalité ou inégalité de chaînes.

Type de données : chaîne

Exemple 1 :

!
!Mettez en surbrillance toutes les chaînes de texte qui contiennent la chaîne 
!'School' or 'Hospital'.
!
if ((type == text) and (characters =='*School*')) then
	color = (0,0,255)
else if ((type == text) and (characters =='*Hospital*')) then
	color = (255,0,0)
endif

Exemple 2 :

!
!Supprime le texte "preliminary" s'il apparaît dans le fichier
!"border".
!
if ((lname=="border") and (characters=="preliminary")) then
	 ignore_element=true
endif

classe

Le mot-clé class indique le type de classe de l'élément actuel. La classe de l'élément actuel peut par exemple être utilisée dans un script de conception pour déterminer si l'élément actuel fait partie d'une cote ou d'un motif.

Type de données : entier de la plage 0 à 6, ou l'une des constantes suivantes :

0 principal
1 composant_modèle
2 construction
3 dimension
4 règle_principale
5 modèle_linéaire
6 règle_construction

Exemple :

!
!Ne tracez pas les éléments des classes pattern et dimension.
if ((class == pattern_component) ou (class == dimension)) then
	 ignore_element = true
endif

cls_end_width

Le mot-clé cls_end_width teste la largeur de fin, en unités du fichier de conception principal, du style de trait personnalisé associé à l'élément actuel. Si l'élément actuel n'a pas de style de trait personnalisé associé, la valeur de cls_end_width est 0,0.

Type de données : nombre réel

Exemple :

!
! Modifiez la couleur de tous les éléments avec
! un style de trait personnalisé dont la largeur de fin
! est supérieure à 2 unités de conception principales.
!
if (cls_end_width > 2.0) then
	 color = 5
endif

cls_name

Le mot-clé cls_name teste le nom du style de trait personnalisé associé à l'élément actuel. Pour les éléments sans style de trait personnalisé associé, la valeur de cls_name est "NONE".

Type de données : chaîne

Exemple :

!
! Changer la couleur de tous les éléments utilisant le style.
! Attribuez le style de trait personnalisé "origin" à tous
! les autres éléments.
!
if (cls_name == '{ Diamond }') then
	 color = 2
else
	 cls_name = "origin"
endif

cls_origin_width

Le mot-clé cls_origin_width teste la largeur de début, en unités du fichier de conception principal, du style de trait personnalisé associé à l'élément actuel. Si l'élément actuel n'a pas de style de trait personnalisé associé, la valeur de cls_origin_width est 0,0.

Type de données : nombre réel

Exemple :

!
! Modifiez la couleur de tous les éléments avec
! un style de trait personnalisé dont la largeur de début
! est supérieure à 2 unités de conception principales.
!
if (cls_origin_width > 2.0) then
	 color = 5
endif

cls_scale

Le mot-clé cls_scale teste le facteur d'échelle appliqué au style de trait personnalisé associé à l'élément actuel. Si l'élément actuel n'a pas de style de trait personnalisé associé, la valeur de cls_scale est 1,0.

Type de données : nombre réel

Exemple :

!
! Modifiez la couleur de tous les éléments avec
! un style de trait personnalisé dont l'échelle est 2.
!
if (cls_scale == 2.0) then
	 color = 5
endif

cls_shift_distance

Le mot-clé cls_shift_distance teste la distance de décalage, en unités du fichier de conception principal, appliquée au style de trait personnalisé associé à l'élément actuel. Si l'élément actuel n'a pas de style de trait personnalisé associé, la valeur de cls_shift_distance est 0,0.

Type de données : nombre réel

Exemple :

!
! Modifiez la couleur de tous les éléments avec
! un style de trait personnalisé dont la distance de décalage
! est égale à 0.5 unité de conception principale.
!
if (cls_shift_distance == 0.5) then
	 color = 5
endif

cls_shift_fraction

Le mot-clé cls_shift_fraction teste la fraction de décalage appliquée au style de trait personnalisé associé à l'élément actuel. Si l'élément actuel n'a pas de style de trait personnalisé associé, la valeur de cls_shift_fraction est 0,0.

Type de données : nombre réel

Exemple :

!
! Modifiez la couleur de tous les éléments avec
! un style de trait personnalisé dont la fraction de décalage
! est égale à 0.25.
!
if (cls_shift_fraction == 0.25) then
	 color = 5
endif

color

Le mot-clé color indique l'indice de couleur de l'élément actuel.

Type de données : entier de la plage 0 à 255

Exemple :

! 
 ! Remplir les formes avec une surface, avec l'indice de couleur 1. 
 !
  if ((color == 1) and (type == shape)) then 
	 area_fill = true 
 endif

envr_value

Le mot-clé envr_value permet de comparer la valeur d'une variable d'environnement de définition d'impression sélectionnée en définissant le mot-clé d'affectation envr_variable. Si la variable n'a pas été définie ou n'est pas une variable valide, envr_value est défini comme chaîne de longueur nulle.

Type de données : chaîne

Exemple :

! 
 !Obtenir la valeur de variable d'environnement de définition d'impression
 !ARCHITECT. Recherchez les éléments de texte avec les caractères
!égaux à "$Architect$" et modifiez la valeur du texte
!en "Designed by <nom>" si ARCHITECT est égal à 
!"Owner1" ou "Owner2." Sinon, modifiez la valeur du texte
! en une chaîne vide.
!
envr_variable = "ARCHITECT"
if((type ==text) and (characters == "$ARCHITECT$")) then
 if (envr_value .IN. "Owner1", "Owner2") then
		 characters = "Designed by " + envr_value
	else
		 characters = "" 
	endif
endif

envr_value_num

Le mot-clé envr_value_num permet de comparer la valeur d'une variable d'environnement de définition d'impression sélectionnée en définissant le mot-clé d'affectation envr_variable. Si envr_variable n'a pas été défini ou n'est pas une variable valide, envr_value renvoie le nombre réel zéro.

Type de données : réel

Exemple :

! 
 !Obtenir la valeur de variable d'environnement de définition d'impression
 !MYCOLOR. Si la valeur de « MYCOLOR » est supérieure à
!5, définissez le poids sur 2.
!
envr_variable = "MYCOLOR" 
if(envr_value_num gt 5) then
		 weight = 2
endif

file

Le mot-clé fichier indique le numéro d'attachement de fichier du fichier traité. En principe, le fichier principal est l'attachement numéro 0. Générer un métafichier à partir de la ligne de commande imprime le nom du fichier et son numéro d'attachement pour chaque fichier en référence.

Type de données : entier

Exemple :

! Si l'élément actuel est dans le fichier principal
! (index 0), modifiez sa couleur en 2.
!
if (file == 0) then
	 color = 2
endif

fill_color

Le mot-clé fill_color indique l'indice de couleur de remplissage de l'élément actuel. Si l'élément n'est pas rempli, fill_color renvoie une valeur de -1.

Type de données : entier de la plage -1 à 255

(-1 indique l'absence de couleur de remplissage pour l'élément)

Exemple :

!
! Les formes avec un index de couleur de remplissage égal à 1
! seront tracées en rouge.
!
if ((fill_color == 1) and (type == shape)) then
	 fill_color = 'red'
endif

Exemple :

!
! Ne tracez pas des formes qui ne soient pas
! remplies.
!
if ((fill_color == –1) and (type == shape)) then
	 ignore_element = true
endif

first_time

Le mot-clé de comparaison first_time permet d'exécuter un segment d'un script de conception une fois. Ce mot-clé (flag) est TRUE la première fois où le script de conception est appelé, puis la valeur est définie sur FALSE. La valeur ne peut pas être réinitialisée. Une bonne utilisation de ce mot-clé consiste à spécifier un modèle de signet. Consultez l'exemple à la fin de cette section.

Remarque : Quand le système traite un script de conception, chaque élément du fichier de conception est traité selon une séquence de haut en bas, jusqu'à ce que chaque élément soit traité. Si le premier élément du fichier de conception exécute l'extrait de code first_time, les éléments restants seront traités, mais ils ignoreront l'extrait de code first_time.

police

Pour le texte et les nœuds de texte, le mot-clé font contient le numéro de police de l'élément actuel. Pour les éléments autres que texte et nœuds de texte, le numéro de police est zéro.

Type de données : entier de la plage 0 à 255

Exemple :

! 
 ! Ne pas tracer les éléments texte qui utilisent la police 10. 
  if ((type == text) and (font == 10)) then        
	 ignore_element = true 
 endif

font_name

Pour le texte et les nœuds de texte, le mot-clé font_name contient le numéro de police de l'élément actuel. Pour les éléments autres que texte et nœuds de texte, le nom de police est "NO_FONT_NAME".

Type de données : Chaîne

Exemple :

! 
 ! Changer la couleur de tous les texte 
 ! qui utilisent la police "architectural". 
 if ((type == text) and (font_name == 'architectural')) then        
	 color = 'gris' 
 endif

header_level

Le mot-clé de comparaison header_level renvoie le niveau parent le plus élevé des éléments qui sont des composants d'un élément complexe. Par exemple, supposons que vous ayez deux instances d'une seule cellule partagée dans un fichier de conception : une placée au niveau 2, l'autre au niveau 3. La définition de cellule partagée contient un élément de forme unique au niveau 1. La seule façon de distinguer les deux parties de la géométrie est le niveau parent. Vous pouvez utiliser le mot-clé header_level dans un script de conception pour appliquer une couleur nommée "rouge" à la cellule partagée du niveau 2.

Type de données : entier

Exemple :

! 
 ! Changer la couleur d'une cellule partagée du niveau 2. 
 ! 
 if ((header_type == shared_cell) and (header_level == 2)) then        
	 color = 'rouge'
 endif

header_level_name

Le mot-clé de comparaison header_level_name renvoie le niveau parent le plus élevé des éléments qui sont des composants d'un élément complexe. Par exemple, supposons que vous ayez deux instances d'une seule cellule partagée dans un fichier de conception : une placée au niveau A, l'autre au niveau B. La définition de cellule partagée contient un seul élément de forme au niveau C. La seule façon de distinguer les deux éléments géométriques est le niveau parent. Vous pouvez utiliser le mot-clé header_level_name dans un script de conception pour appliquer une couleur nommée "rouge" à la cellule partagée du niveau A.

Type de données : chaîne

Exemple :

! 
 ! Changer la couleur d'une cellule partagée au niveau A. 
 ! 
 if ((header_type == shared_cell) and (header_level_name == 'Niveau A')) then        
	 color = 'rouge'
 endif

header_type

Le mot-clé header_type détermine le type d'en-tête complexe le plus à l'extérieur pour les éléments qui sont des composants d'une cellule ou d'une cellule partagée. Si l'élément actuel ne fait pas partie d'une cellule ou d'une cellule partagée, la valeur du mot-clé header_type est identique au type de l'élément.

Type de données : entiers qui correspondent aux types d'élément d'en-tête valides ou l'une des constantes suivantes : cellule ou cellule partagée

Exemple 1 :

! 
 ! Si l'élément actuel est un composant d'une cellule, 
 ! régler son épaisseur sur to 2. 
 ! 
 if (header_type == cell) then        
	 weight = 2 
 endif

ip_scale_num

Le mot-clé ip_scale_num obtient l'échelle de définition d'impression sous forme de nombre. Le nombre est toujours renvoyé sous forme d'unités principales/unités d'impression, quelle que soit la façon dont MS_PLT_SCALE_METHOD est défini. Par exemple, si le rapport d'échelle affiché dans la boîte de dialogue d'impression est unités principales : unités d'impression, et que votre échelle est définie sur 2:1, le facteur d'échelle numérique à valeur unique serait 2.0/1.0 ou 2.0.

Type de données : nombre réel

Exemple :

!
! Tracez l'épaisseur du trait en fonction de l'échelle de définition de l'impression.
!
if (ip_scale_num ==2) then
!large drawing use thick lines
	thickness = (weight +1) * .02
else
!small drawing use thinner lines
	 thickness = (weight +1) * .01
endif

ip_xsize_num

Le mot-clé ip_xsize_num obtient la taille en X de la définition d'impression sous forme de nombre.

Type de données : nombre réel

Exemple :

!
! Tracez l'épaisseur du trait en fonction de la définition d'impression xsize.
!
if (ip_xsize_num > 17) then
	 !large drawing use thick lines
	 thickness = (weight +1) * .02
else
	 !small drawing use thinner lines
	 thickness = (weight +1) * .01
endif

ip_ysize_num

Le mot-clé ip_ysize_num obtient la taille en Y de la définition d'impression sous forme de nombre.

Type de données : nombre réel

Exemple :

!
! Tracez l'épaisseur du trait en fonction de la définition d'impression ysize.
!
if (ip_ysize_num > 17) then
	 !large drawing use thick lines
	 thickness = (weight +1) * .02
else
	 !small drawing use thinner lines 
	 thickness = (weight +1) * .01
endif

level

Le mot-clé level contient le numéro de niveau de l'élément actuel.

Type de données : entier supérieur ou égal à zéro

Exemple :

!
! Définissez la couleur de l'élément en fonction de son niveau.
!
if (level == 1) then
	color = 1
else if (level == 2) then
	 color = 2
endif

level_name

Le mot-clé level_name contient le nom de niveau de l'élément actuel. On peut se servir des caractères spéciaux dans les comparaisons d'égalité ou inégalité de chaînes.

Type de données : chaîne

Exemple :

!
! Définissez la couleur de l'élément en fonction de son niveau.
!
if (level_name == "floor1") then
	 color = 1
else if (level_name == "floor2") then
	 color = 2
endif

lname

Si l'élément actuel se trouve dans un fichier en référence, le mot-clé lname contient le nom logique du fichier en référence. Si l'élément actuel se trouve dans le fichier principal, le mot-clé lname donne une chaîne vide (""). On peut se servir des caractères spéciaux dans les comparaisons d'égalité ou inégalité de chaînes.

Type de données : chaîne

Exemple :

!
! Modifiez le poids de tous les éléments dans le fichier de référence
! avec le nom logique de 
! "border" ayant un poids égal à 2. Les éléments du
! fichier principal et autres fichiers de référence
! ne seront pas changés.
!
if (lname == 'border') then
	 weight = 2
endif

model_format

Le mot-clé model_format permet d'agir sur des éléments à l'intérieur des formats de modèle suivants : DGN7, DGN8, DWG ou DWF.

Type de données : constantes (DGN7, DGN8, DWG ou DXF)

Exemple :

!
! Appliquez un pourcentage de filtrage différent pour
! chaque format de modèle.
!
if (model_format == DGN7) then
	 screening = 20
else if (model_format == DGN8) then
	 screening = 30
else if (model_format == DWG) then
	 screening = 40
else if (model_format == DXF) then
	 screening = 50
endif

nested_cellname

Si l'élément actuel est un en-tête de cellule ou un composant d'une cellule, le mot-clé nested_cellname indique le nom de la cellule. Pour les composants imbriqués dans une ou plusieurs cellules, le mot-clé nested_cellname indique le nom de la cellule la plus intérieure. Si l'élément actuel n'est ni un en-tête de cellule ni un composant d'une cellule, la valeur du mot-clé nested_cellname est "NO_CELL". On peut se servir des caractères spéciaux dans les comparaisons d'égalité ou inégalité de chaînes.

Remarque : Pour rechercher le nom de cellule le plus à l'extérieur, utilisez le mot-clé cellname.

Type de données : chaîne

Exemple :

!
! Modifiez le poids de tous les composants de la cellule imbriquée
! nommée "FRAME."
!
if (nested_cellname == 'FRAME') then
	 weight = 3
endif

properties

Le mot-clé properties propose deux méthodes pour déterminer si les bits dans le mot properties de l'élément sont définis. Par exemple, les deux expressions relationnelles suivantes sont équivalentes :

if(hole == true) then if(properties == hole) then
. .
. .
. .
endif endif

Type de données : l'une des constantes suivantes :

attributs
hole
locked
modified
new_element
nonplanar
nonsnappable
screen_relative

Exemple :

!
! Ne tracez aucun élément avec le bit screen_relative
! défini dans le mot des propriétés.
!
if (properties == screen_relative) then
	 ignore_element=true
endif

taille

Pour les éléments texte, le mot-clé size est la hauteur de la chaîne de texte. Pour tous les autres éléments, la taille est la plus grande des étendues X, Y ou Z de l'élément.

Type de données : unités de travail

Exemple :

!
! Modifiez la couleur des éléments de texte dont la hauteur est 
! supérieure à 4 sous-unités.
!
if ((type == text) and (size > 0:4:0)) then
	 color = 3
endif

style

Le mot-clé style contient la valeur du style de trait de l'élément actuel. Si le style a été défini plus tôt dans le script de conception par le mot-clé style, style donnera le nouveau style au lieu du style original de l'élément. En outre, si un style nommé ou des transitions ont été utilisées pour définir le style d'un élément, le mot-clé de comparaison style ne le reflètera pas. Il donnera l'indice de style actuel.

Type de données : entier de la plage 0 à 7

Exemple :

!
! Modifiez la couleur de tout élément de niveau autre que 1 
! qui a une style de trait égal à 7.
!
if ((level<>1) and (style == 7)) then
	 color = 2
endif

mots-clés tag

Les mots-clés tag vérifient les données de label associées à l'élément actuel. Si les données de label ne sont pas attachées à l'élément actuel, le mot-clé TAG_CHARACTER donne "NO_TAG_CHARACTER", alors que TAG_INTEGER et TAG_REAL donnent NO_TAG_NUM.

Ci-après figurent les brèves descriptions, les types de données et des exemples des mots-clés tags.

Tag_display vérifie si un type particulier de label s'affiche.
Tag_character teste la valeur du label réel.
Tag_integer teste la valeur du label réel.
Tag_real teste la valeur du label réel.
Remarque : Le mots-clés de comparaison tag_character, tag_integer et tag_real doivent être utilisés avec les mots-clés d'affectation tag_set et tag_name.

Types de données :

tag_character chaîne
tag_display constante (vrai ou faux)
tag_integer entier
tag_real nombre réel

Exemple :

!
! En partant de l'hypothèse que le fichier de conception utilise deux jeux de libellés, 
! « Adresse personnelle » et « Adresse professionnelle », chaque
! contenant un label de caractère nommé « Ville »,  
! modifie la couleur de tous les éléments dont les balises 
! indiquent comme adresse personnelle « Bordeaux » ou comme 
! adresse professionnelle « Toulouse »."
!
! Commencez par rechercher les indicateurs « City » appartenant à l'ensemble d'indicateurs
! "Home address".
!
tag_set = 'Home address'
tag_name = 'City'
if (tag_char == 'Huntsville') then
	 color = 4
endif
! Rechercher maintenant les libellés dans le jeu de libellés « Adresse professionnelle »
!.  Notez que le nom du label est toujours "Ville". 
 tag_set = 'Work address' 
 if (tag_char == 'Toulouse') then     
	 color = 4 
 endif

text_node_number

Le mot-clé de comparaison text_node_number permet de procéder à un test par rapport au numéro de nœud de texte d'un élément complexe de nœud de texte.

Type de données : entier

Exemple 1 :

!
! Modifiez la couleur du texte associé à un numéro de nœud de texte spécifique
!.
!
if (text_node_number eq 46) then
	 color = 3
endif

Exemple 2 :

!
! Ce script de conception définit un attribut de feuille de tracé
! d'après les caractères stockés dans un élément de nœud de texte
! du fichier de conception. Cet attribut de feuille peut être utilisé
! comme attribut date dans une archive numérique.
if (text_node_number eq 10) then
	 envr_variable = "Author"
	 envr_value = envr_value + " " + characters
else if (text_node_number eq 11) then
	 envr_variable = "Title"
	 envr_value = envr_value + " " + characters
endif

type

Le mot-clé type détermine le type de l'élément actuel.

Type de données : entiers qui correspondent aux types d'élément valides, ou l'une des constantes suivantes :

arc (type 16) line_string (type 4)
assoc_dim (type 33) mesh (type 105)
bspline_curve (type 27) multiline(type 36)
bsplne_surface(type 24) shape (type 6)
cell (type 2) shared_cell (type 35)
complex_shape (type 14) solid (type 19)
connected_string (type 12) surface (type 18)
curve (type 11) text (type 17)
ellipse (type 15) text_node (type 7)
line (type 3)  

Exemple :

!  
 !   ! Changer la couleur des lignes, lignes brisées, et courbes 
 ! au niveau 1 
 !  
 if ((type in 3,4,11) and (level == 1)) then       
	 color = 1 
 endif
Remarque : Pour les tests concernant les éléments de cotation multilignes et associatifs, utilisez header_type au lieu de type.

épaisseur

Le mot-clé weight contient la valeur de l'épaisseur de trait de l'élément actuel.

Type de données : entier de la plage 0 à 31

Exemple :

!
! Définissez la couleur de l'élément en fonction de son poids
!
units = inches
if (weight == 0) then
	  color = 1
else if (weight == 1) then
	  color = 2
else if (weight == 2) then
	 color = 3
else if (weight == 3) then
	 color = 4
else if (weight == 4) then
	 color = 5
else if (weight == 5) then
	 color = 6
endif

largeur

Le mot-clé width est uniquement valable pour les lignes 2D, lignes brisées, ellipses, arcs et chaînes connectées. Tous les autres éléments ainsi que les éléments 3D ont une valeur de largeur de 0. La valeur de largeur est extraite du champ d'étendue basse Z de l'élément et indique la largeur de trait de l'élément en unités de travail, par opposition à une valeur d'épaisseur.

Type de données : unités de travail

Exemple :

!
! Modifiez la couleur des lignes, lignes brisées, chaînes connectées
!, arcs et ellipses en fonction de leur largeur. 
!
units = inches
if (type .in. 3,4,12,15,16) then 
	if (width  == 0:0:050) then 
		 color = 1
	else if (width == 0:0:100) then 
		 color = 2
	else if (width == 0:0:150) then
		 color = (30,50,100)
	else if (width == 0:0:200) then
		 color = (100,0,0)
	else if (width > 0:0:300) then
		 color = (0,0,0)
 endif
endif