Skip to content

Calcul de Propriete

Asketyll edited this page Jul 30, 2026 · 4 revisions

Calcul de propriété

Calcule automatiquement la valeur d'une propriété personnalisée et l'écrit sur les éléments qui portent cette propriété — par exemple, tout le texte d'une cellule étiquette du groupe, les coordonnées de l'élément, ou une valeur fixe. Le Calcul de propriété est un moteur de valeur : il ne fait que remplir des valeurs, il n'attache jamais les propriétés lui-même (l'attache est le rôle des Propriétés personnalisées — il n'écrit que là où la propriété est déjà attachée). Il réutilise les propriétés personnalisées (Item Types) du DGNLib ARES partagé.

Fonctionnement — règles de calcul

La valeur de chaque propriété provient d'une règle de calcul dans ARES_Calc_Rules. Une règle s'écrit :

Prop[nom] [& condition]* = Source
  • Prop[nom] — la propriété cible (un seul nom, pas de joker). ARES écrit la valeur de cette propriété partout où elle est attachée.
  • & condition (optionnel) — les mêmes conditions que les règles d'attache : Lvl[niveau], Cell[nom], Type[type], combinées par & (ET), niées par !, avec les jokers * / ? (voir Propriétés personnalisées). La règle ne s'applique qu'aux éléments satisfaisant toutes les conditions.
  • = Source — d'où vient la valeur. L'une de :
Source Valeur
CellText[motif] Tout le texte d'une cellule du groupe graphique de l'élément dont le nom correspond à motif (jokers autorisés). Inclut l'élément lui-même — une cellule étiquette qui porte la propriété reçoit son propre texte ; une cellule correspondante non groupée reçoit aussi son propre texte.
Value[texte] Une valeur littérale fixe (ex. Value[Type-A]).
Coord ou Coord[n] Les coordonnées "X;Y" de l'élément (n = nombre de décimales ; défaut = ARES_Round). Recalculées quand l'élément est déplacé.
Id L'identifiant de l'élément.

Plusieurs règles pour la même propriété : la première qui correspond gagne. Les règles sont essayées dans l'ordre, donc placez les règles spécifiques avant les générales. Exemple :

Prop[Repere]&Cell[ETIREF]=Value[REF] ; Prop[Repere]=CellText[ETI*] ; Prop[XY]=Coord

Ici Repere vaut REF sur la cellule ETIREF (la première règle gagne), et le texte de la cellule ETI* du groupe ailleurs ; XY vaut les coordonnées de chaque élément. Séparez les règles par ;.

Le moteur réagit en direct : il remplit une propriété quand elle est attachée, recalcule Coord quand un élément bouge, suit le texte d'une cellule étiquette quand il est modifié, et vide une valeur quand sa cellule source est supprimée (ou, avec ARES_Calc_Detach_Empty activé, détache la propriété).

Édition des règles

La boîte d'options édite les règles de calcul une à la fois, exactement comme l'éditeur de règles d'attache des Propriétés personnalisées : une liste déroulante éditable (choisir une règle → éditer → valider remplace ; saisie libre + valider ajoute ; vide + valider supprime), avec un aperçu de syntaxe coloré en dessous (mots-clefs en gras, & bleu, ! orange, * / ? vert, une combinaison de conditions impossible en rouge). Une règle mal formée est refusée (un message dans la barre d'état, rien n'est enregistré). Les éditions en masse passent toujours par l'import/export .cfg.

Commandes

EditPropertyCalculationOptions

macro vba run [ARES]EditPropertyCalculationOptions

Ouvre les options du Calcul de propriété (l'interrupteur principal, l'option détacher-si-vide, et l'éditeur de règles de calcul). L'édition est en write-through — la config reste synchronisée, sans redémarrage.

Variables de configuration

Variable Défaut Rôle
ARES_Property_Calc False Interrupteur principal de la fonctionnalité (désactivée par défaut).
ARES_Calc_Rules (vide) Les règles de calcul : Prop[nom][&conditions]=Source ; … (Source = CellText[motif] / Value[texte] / Coord[n] / Id). La première règle qui correspond par propriété gagne.
ARES_Calc_Detach_Empty False Si active, une propriété dont la valeur calculée finit vide est détachée (le tagueur la retire) au lieu d'être conservée vide ; une règle qui l'impose encore la ré-attache (vide).

Clone this wiki locally