-
Notifications
You must be signed in to change notification settings - Fork 0
Property Actuator
Writes a graphic attribute — Color or Level — from a custom property's value: the reverse of every other ARES property engine (which all read an attribute into a property). If Property Calculation keeps a value up to date across a group, Property Actuator reflects that value back onto the elements' own appearance.
Property Actuator is a pure reaction: it never scans a group and never attaches anything itself (attaching is Custom Properties' job). It only reads its own pilot property and, if different, writes its own Color or Level attribute.
Unlike every other ARES engine, there is nothing to pick or name here. Property Actuator always reads exactly two reserved properties:
-
ARES_Color→ drives the element's own Color attribute. -
ARES_Lvl→ drives the element's own Level attribute.
Both must be authored as ItemTypes in the ARES DGNLib (via OpenPropertyLibrary) like any other custom property, and are otherwise ordinary properties: they must be attached (Custom Properties) before Property Actuator does anything with them, and they need a value, which normally comes from a Property Calculation rule.
Three things, in order:
-
Attach the pilot property, through an existing (or new) tagging rule using the
|multi-property grammar — for example, addARES_Colorto a rule that already attaches something else:Lvl[WALLS]=Commune|ARES_Color -
Give it a value, with a calculation rule in
ARES_Calc_Rules. TheProp[...]wrapper is mandatory — a common mistake is writing the target bare, copying the look of a tagging condition:Prop[ARES_Color]=CellColor[TRIG*]Any Property Calculation source that yields a plausible color index or level name works — a matching cell's own color (
CellColor[pattern]), a matching level's own color (LvlColor[pattern], when the group's authority is a plain geometry on a named level rather than a named cell), a fixedValue[...], and so on. -
Turn the switch on —
ARES_Actuate_Colorand/orARES_Actuate_Level, both off by default.
From then on, whenever an element carrying ARES_Color/ARES_Lvl gets a fresh value — directly, or pushed to it as a group member by Property Calculation — its own Color/Level attribute follows, compare-before-write (no rewrite when it already matches).
-
Never paints its own source. An element that is itself the authority a rule reads from (a trigger cell for
CellColor[pattern], or a trigger element forLvlColor[pattern]) is never painted by the value it produces — painting it would make the source chase its own output. Likewise, a pilot property whose calculation rule reads the very attribute being actuated (Prop[ARES_Color]=Coloron the same element) is refused. - Never touches a locked or reference-owned element.
- On a cell, only the sub-elements that still matched the header's own attribute right before the write are repainted — a sub-element already holding a deliberately different color is left alone.
- A repeated write failure (locked file, rights) disables actuation for the rest of the session rather than retrying every pass or spamming the status bar.
Property Actuator shares its options panel with Property Rendering — there is no separate command. Open it via:
macro vba run [ARES]EditPropertyRenderingOptions
The two "Actuate" checkboxes (Color, Level) sit under their own section of that panel.
| Variable | Default | Purpose |
|---|---|---|
ARES_Actuate_Color |
False | Master switch: reflect ARES_Color onto the element's own Color attribute. |
ARES_Actuate_Level |
False | Master switch: reflect ARES_Lvl onto the element's own Level attribute. |
ARES Wiki
🇬🇧 English
- Home
- Zoning
- Zone Export
- Region Split
- Custom Properties
- Property Calculation
- Property Rendering
- Property Actuator
- System & Config
- Configuration Variables
🇫🇷 Français