You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Partially, and the parts that exist don't connect to each other. IEC 81346's three structure-identifier aspects each have some representation in QET today, but they're three disconnected pieces of data rather than one composite reference designation.
What exists today, and where it stops short
"=" (functional/installation aspect) and "+" (location aspect): both exist as diagram-level fields — TitleBlockProperties::plant/locmach (titleblockproperties.h:58-59), keyed as DIA_PLANT/DIA_LOCMACH (qetinformation.h:103-104), with UI labels that literally say tr("Installation (=)") / tr("Localisation (+)") (qetinformation.cpp:240-241) — the IEC 81346 notation is already named correctly in the UI. But grepping every use of DIA_PLANT/DIA_LOCMACH across the codebase, the only hits are the key-list registration and that tooltip string — these diagram-level values are never read anywhere else. They're not substituted into any formula, and they're never consulted as a default for an element's own plant/location.
Element-level "=" / "+": separately, %{plant}/plant-and-locmach-typed NumStrategy parts are functional — substituted into formulas (assignvariables.cpp:218,585-588) and usable in element auto-numbering. But an element's own plant/locmach info is independent of the diagram's — nothing inherits the folio-level "=" / "+" default down to elements placed on it, so every element needs these typed in individually even when an entire folio (or the whole project) shares one installation/location.
"-" (product/component aspect): the classic single-letter reference-designation prefix (K for a relay, Q for a breaker, etc.) already exists and is functional — Element::setPrefix()/m_prefix, populated via autonum::elementPrefixForLocation() (assignvariables.cpp:642-658) and used throughout auto-numbering.
No composite identifier: nowhere in the codebase do these three aspects get concatenated into one proper IEC 81346 structure identifier (=E1+A2-K3-style). Each is a separate field/formula token; there's no builder that combines plant + locmach + prefix + number into a single reference designation string.
Proposed scope
Have an element's plant/locmach fall back to the containing diagram's DIA_PLANT/DIA_LOCMACH when the element's own value is empty, the same three-tier priority (manual element value → [structural default] → folio value) already discussed and agreed on in principle in the original terminal-block-generator forum thread, just never implemented for these two fields specifically.
Add a combined structure-identifier formula token (e.g. %{structure_id} or similar) that assembles =<plant>+<locmach>-<prefix><number> from the pieces above using standard IEC 81346 separator characters, so labels/titleblocks can show the full reference designation as one value instead of the user manually concatenating the existing separate %{plant}/%{locmach}/prefix/number tokens by hand in every formula that wants one.
Leave deeper multi-level/hierarchical aspects (nested sub-installations, =E1.1+A2.3-style dotted structure) out of scope for a first pass — the flat single-level case covers the immediate gap and matches what's already partially wired up.
Happy to build this if the scope above sounds right.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
Checked: is this already done?
Partially, and the parts that exist don't connect to each other. IEC 81346's three structure-identifier aspects each have some representation in QET today, but they're three disconnected pieces of data rather than one composite reference designation.
What exists today, and where it stops short
TitleBlockProperties::plant/locmach(titleblockproperties.h:58-59), keyed asDIA_PLANT/DIA_LOCMACH(qetinformation.h:103-104), with UI labels that literally saytr("Installation (=)")/tr("Localisation (+)")(qetinformation.cpp:240-241) — the IEC 81346 notation is already named correctly in the UI. But grepping every use ofDIA_PLANT/DIA_LOCMACHacross the codebase, the only hits are the key-list registration and that tooltip string — these diagram-level values are never read anywhere else. They're not substituted into any formula, and they're never consulted as a default for an element's own plant/location.%{plant}/plant-and-locmach-typedNumStrategyparts are functional — substituted into formulas (assignvariables.cpp:218,585-588) and usable in element auto-numbering. But an element's ownplant/locmachinfo is independent of the diagram's — nothing inherits the folio-level "=" / "+" default down to elements placed on it, so every element needs these typed in individually even when an entire folio (or the whole project) shares one installation/location.Element::setPrefix()/m_prefix, populated viaautonum::elementPrefixForLocation()(assignvariables.cpp:642-658) and used throughout auto-numbering.=E1+A2-K3-style). Each is a separate field/formula token; there's no builder that combines plant + locmach + prefix + number into a single reference designation string.Proposed scope
plant/locmachfall back to the containing diagram'sDIA_PLANT/DIA_LOCMACHwhen the element's own value is empty, the same three-tier priority (manual element value → [structural default] → folio value) already discussed and agreed on in principle in the original terminal-block-generator forum thread, just never implemented for these two fields specifically.%{structure_id}or similar) that assembles=<plant>+<locmach>-<prefix><number>from the pieces above using standard IEC 81346 separator characters, so labels/titleblocks can show the full reference designation as one value instead of the user manually concatenating the existing separate%{plant}/%{locmach}/prefix/number tokens by hand in every formula that wants one.=E1.1+A2.3-style dotted structure) out of scope for a first pass — the flat single-level case covers the immediate gap and matches what's already partially wired up.Happy to build this if the scope above sounds right.
All reactions