Document the 21 missing child-element pages

Fills in every page the sidebar previously linked to but that was never
written, so the two XML formats are now documented down to their children.

Element side (children of <description>):
  line, polygon, rect, ellipse/circle, arc, text, dynamic_text, terminal

Project side (children of <diagram>):
  properties + property, defaultconductor, elements, conductors, inputs,
  images, shapes, elementautonumfoliosequentials + its unit/ten/hundred
  children, and collection's category

Everything is taken from the writer in the source rather than guessed --
PartLine/PartPolygon/PartRectangle/PartEllipse/PartArc/PartText/
PartDynamicTextField::toXml(), TerminalData::toXml(), Diagram::toXml() and
folioSequentialsToXml() -- and cross-checked against a corpus of 185 real
.qet files plus the .elmt collection. Examples are copied from real files.

Notable details that were not documented anywhere:
- a square ellipse is written as <circle diameter=...>, not <ellipse>
- the rectangle tag is <rect>, not <rectangle>
- polygon's closed="false" is written only when the shape is open, so an
  absent attribute means closed
- <arc> angles are stored internally in 1/16 degree but written in degrees
- <text> alignment attributes are written only when non-default
- <properties> occurs both under <project> and under <diagram>, and
  <inputs> both under <diagram> and inside each <element>

Also rewrites elements_child_description as an index of its children -- it
was a stub with duplicated entries, blank examples and empty attribute
lists -- and restores the sidebar nesting now that the targets exist.

Ref: qelectrotech/qelectrotech-source-mirror#816

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019p83QJDMeFVz2k9ePUpTyb
ispyisail
2026-09-08 23:02:43 +12:00
parent f2b3fe3d6b
commit d096a83dc6
26 changed files with 537 additions and 68 deletions
+4 -4
@@ -16,7 +16,7 @@ reads and writes, plus pointers for developers building QET itself.
## Status
This wiki covers the core structure of both XML formats but not every child
element yet -- the sidebar only links to pages that actually exist. See
[contributing to this wiki](contributor_to_wiki_guidelines) if you'd like to
fill in a gap.
Both XML formats are now documented down to their child elements, verified
against the QET source and a corpus of real `.qet` and `.elmt` files. See
[contributing to this wiki](contributor_to_wiki_guidelines) if you spot a gap
or something that has drifted.
+21
@@ -7,6 +7,14 @@
* [name](elements_child_name)
* [informations](elements_child_informations)
* [description](elements_child_description)
* [line](elements_description_child_line)
* [polygon](elements_description_child_polygon)
* [rect](elements_description_child_rectangle)
* [ellipse / circle](elements_description_child_ellipse)
* [arc](elements_description_child_arc)
* [text](elements_description_child_text)
* [dynamic_text](elements_description_child_dynamic_text)
* [terminal](elements_description_child_terminal)
* [kindInformations](elements_child_kindInformations)
* [elementInformations](elements_child_elementInformations)
@@ -24,7 +32,20 @@
* [folio_autonums](project_newdiagrams_child_folio_autonums)
* [element_autonums](project_newdiagrams_child_element_autonums)
* [diagram](project_child_diagram)
* [properties](project_diagram_child_properties)
* [property](project_diagram_properties_child_property)
* [defaultconductor](project_diagram_child_defaultconductor)
* [elements](project_diagram_child_elements)
* [conductors](project_diagram_child_conductors)
* [inputs](project_diagram_child_inputs)
* [images](project_diagram_child_images)
* [shapes](project_diagram_child_shapes)
* [elementautonumfoliosequentials](project_diagram_child_elementautonumfoliosequentials)
* [elementunitfolioseq](project_diagram_elementautonumfoliosequentials_child_elementunitfolioseq)
* [elementtenfolioseq](project_diagram_elementautonumfoliosequentials_child_elementtenfolioseq)
* [elementhundredfolioseq](project_diagram_elementautonumfoliosequentials_child_elementhundredfolioseq)
* [collection](project_child_collection)
* [category](project_collection_child_category)
**[Developer tools](tools)**
+19 -58
@@ -1,4 +1,7 @@
### description
# description
Holds the drawing itself: every graphic primitive that makes up the element,
plus its connection points.
Example:
`<description>`
@@ -6,67 +9,25 @@ parent : [definition](elements_XML)
attribute : none
#### polygon
Example: `<polygon x1="-1" y2="4" x4="-1" x2="-1" style="line-style:normal;line-weight:normal;filling:black;color:black" y4="-4" y1="-4" antialias="true" x3="9" y3="0" closed="false"/>`
## child elements
parent : [description](elements_child_description)
Shapes -- all of these also carry the shared `style` and `antialias`
attributes described on each page:
attribute :
#### line
Example: `<line x1="9" y2="0" end1="none" length2="1.5" x2="12" end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black" length1="1.5" y1="0" antialias="false"/>`
* [line](elements_description_child_line)
* [polygon](elements_description_child_polygon)
* [rect](elements_description_child_rectangle) -- the tag is `rect`
* [ellipse / circle](elements_description_child_ellipse) -- a square ellipse is written as `<circle>`
* [arc](elements_description_child_arc)
parent : [description](elements_child_description)
Text:
attribute :
#### rectangle
Example: ``
* [text](elements_description_child_text) -- fixed text
* [dynamic_text](elements_description_child_dynamic_text) -- text taken from the element or project
parent : [description](elements_child_description)
Connections:
attribute :
#### ellipse
Example: ``
* [terminal](elements_description_child_terminal) -- where conductors attach
parent : [description](elements_child_description)
attribute :
#### polygon
Example: ``
parent : [description](elements_child_description)
attribute :
#### text
Example: ``
parent : [description](elements_child_description)
attribute :
#### arc
Example: ``
parent : [description](elements_child_description)
attribute :
#### dynamic_text
Example: `<dynamic_text text_from="UserText" Valignment="AlignTop" z="3" text_width="-1" font="Sans Serif,9,-1,5,50,0,0,0,0,0" x="-44" uuid="{8b32ab87-b8ec-4564-bdec-c3ea4036a492}" y="-11.5" Halignment="AlignLeft" frame="false" rotation="0">`
parent : [description](elements_child_description)
attribute :
##### text
Example: `<text>/</text>`
parent : dynamic_text
attribute : none
#### terminal
waar de verbinding gemaakt wordt.
Example: `<terminal name="" x="13" uuid="{6db93440-be5c-4e83-bae3-34a68cb24127}" y="0" orientation="e"/>`
parent : [description](elements_child_description)
attribute :
Order matters: parts are drawn in document order, so a later sibling paints over
an earlier one.
+29
@@ -0,0 +1,29 @@
# arc
An arc of an ellipse.
Example:
`<arc x="-3" y="-3" width="6" height="6" start="270" angle="180" style="line-style:normal;line-weight:normal;filling:none;color:black" antialias="true" />`
parent : [description](elements_child_description)
attribute :
* x, y -- top-left corner of the bounding box of the full ellipse
* width, height -- size of that full ellipse
* start -- start angle, **in degrees**
* angle -- span angle, in degrees; negative spans clockwise
Internally QET stores both angles in sixteenths of a degree (the Qt convention)
and divides by 16 on the way out, explicitly to stay compatible with older files.
## common attributes
All graphic parts also carry:
* `style` -- CSS-like string, always written in the order
`line-style:<normal|dashed|dotted|dashdotted>;line-weight:<none|thin|normal|hight|eleve>;filling:<name>;color:<name>`.
`hight` and `eleve` are the historical spellings for the two heaviest widths, and
`brun` is French for brown -- these are not typos.
* `antialias` -- `true` / `false`
Written by `CustomElementGraphicPart::stylesToXml()`,
`sources/editor/graphicspart/customelementgraphicpart.cpp`.
Written by `PartArc::toXml()`, `sources/editor/graphicspart/partarc.cpp`.
@@ -0,0 +1,31 @@
# dynamic_text
Text whose value can be taken from the element or the project rather than typed
in, and which the user can reposition on the folio. Compare the static
[text](elements_description_child_text).
Example:
`<dynamic_text x="-12" y="-11.5" z="3" text_width="-1" Halignment="AlignRight" Valignment="AlignTop" frame="false" rotation="0" text_from="ElementInfo" uuid="{8ec41ce2-...}" font="Liberation Sans,9,..."><text /><info_name>label</info_name></dynamic_text>`
parent : [description](elements_child_description)
attribute :
* x, y, z -- position and stacking order
* rotation -- degrees
* font -- serialised `QFont`
* uuid -- identifies this field, e.g. for text groups
* frame -- `true` / `false`, draw a box around the text
* text_width -- wrapping width; `-1` means no wrapping
* keep_visual_rotation -- `true` / `false`
* rotation_point_center -- `true` / `false`
* text_from -- where the value comes from: `UserText`, `ElementInfo` or `CompositeText`
* Halignment -- `AlignLeft`, `AlignRight` or `AlignHCenter`
* Valignment -- `AlignTop`, `AlignBottom` or `AlignVCenter`
## child elements
* `<text>` -- the literal text, as a text node (used when `text_from="UserText"`)
* `<info_name>` -- which element information to display (when `text_from="ElementInfo"`)
* `<composite_text>` -- the template string (when `text_from="CompositeText"`)
* `<color>` -- `#rrggbb`; written **only** when the colour is not black
Written by `PartDynamicTextField::toXml()`,
`sources/editor/graphicspart/partdynamictextfield.cpp`.
+29
@@ -0,0 +1,29 @@
# ellipse / circle
An ellipse. **Two different tags come out of one editor shape:** when width and
height are equal QET writes a `<circle>` with a single `diameter`; otherwise it
writes an `<ellipse>` with `width` and `height`. A reader must handle both.
Example:
`<ellipse x="-2" y="-2" width="4" height="4" style="line-style:normal;line-weight:normal;filling:black;color:black" antialias="false" />`
`<circle diameter="20" y="0" x="-190" antialias="false" style="line-style:normal;line-weight:normal;filling:black;color:black" />`
parent : [description](elements_child_description)
attribute :
* x, y -- top-left corner of the bounding box (not the centre)
* width, height -- `<ellipse>` only
* diameter -- `<circle>` only
## common attributes
All graphic parts also carry:
* `style` -- CSS-like string, always written in the order
`line-style:<normal|dashed|dotted|dashdotted>;line-weight:<none|thin|normal|hight|eleve>;filling:<name>;color:<name>`.
`hight` and `eleve` are the historical spellings for the two heaviest widths, and
`brun` is French for brown -- these are not typos.
* `antialias` -- `true` / `false`
Written by `CustomElementGraphicPart::stylesToXml()`,
`sources/editor/graphicspart/customelementgraphicpart.cpp`.
Written by `PartEllipse::toXml()`, `sources/editor/graphicspart/partellipse.cpp`.
+26
@@ -0,0 +1,26 @@
# line
A straight segment, optionally with a decorated end.
Example:
`<line x1="9" y1="0" x2="12" y2="0" end1="none" end2="none" length1="1.5" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" antialias="false" />`
parent : [description](elements_child_description)
attribute :
* x1, y1 -- first point, rounded to 2 decimals
* x2, y2 -- second point
* end1, end2 -- end decoration: `none`, `simple`, `triangle`, `circle`, `diamond`
* length1, length2 -- size of that decoration
## common attributes
All graphic parts also carry:
* `style` -- CSS-like string, always written in the order
`line-style:<normal|dashed|dotted|dashdotted>;line-weight:<none|thin|normal|hight|eleve>;filling:<name>;color:<name>`.
`hight` and `eleve` are the historical spellings for the two heaviest widths, and
`brun` is French for brown -- these are not typos.
* `antialias` -- `true` / `false`
Written by `CustomElementGraphicPart::stylesToXml()`,
`sources/editor/graphicspart/customelementgraphicpart.cpp`.
Written by `PartLine::toXml()`, `sources/editor/graphicspart/partline.cpp`.
+26
@@ -0,0 +1,26 @@
# polygon
An open polyline or a closed polygon.
Example:
`<polygon x1="-1" y1="-4" x2="-1" y2="4" x3="9" y3="0" antialias="true" style="line-style:normal;line-weight:normal;filling:none;color:black" />`
parent : [description](elements_child_description)
attribute :
* x1, y1, x2, y2, ... xN, yN -- the vertices, numbered from 1, one pair per point.
There is no count attribute: the number of points is however many `xN`/`yN` pairs are present.
* closed -- written **only** when the polygon is open, as `closed="false"`.
An absent `closed` attribute therefore means the shape is closed.
## common attributes
All graphic parts also carry:
* `style` -- CSS-like string, always written in the order
`line-style:<normal|dashed|dotted|dashdotted>;line-weight:<none|thin|normal|hight|eleve>;filling:<name>;color:<name>`.
`hight` and `eleve` are the historical spellings for the two heaviest widths, and
`brun` is French for brown -- these are not typos.
* `antialias` -- `true` / `false`
Written by `CustomElementGraphicPart::stylesToXml()`,
`sources/editor/graphicspart/customelementgraphicpart.cpp`.
Written by `PartPolygon::toXml()`, `sources/editor/graphicspart/partpolygon.cpp`.
@@ -0,0 +1,27 @@
# rect
A rectangle, optionally with rounded corners.
Note the tag is `rect`, not `rectangle`.
Example:
`<rect x="-15" y="-35" width="30" height="71" rx="0" ry="0" style="line-style:normal;line-weight:hight;filling:none;color:black" antialias="false" />`
parent : [description](elements_child_description)
attribute :
* x, y -- top-left corner
* width, height
* rx, ry -- corner radii; `0` means square corners
## common attributes
All graphic parts also carry:
* `style` -- CSS-like string, always written in the order
`line-style:<normal|dashed|dotted|dashdotted>;line-weight:<none|thin|normal|hight|eleve>;filling:<name>;color:<name>`.
`hight` and `eleve` are the historical spellings for the two heaviest widths, and
`brun` is French for brown -- these are not typos.
* `antialias` -- `true` / `false`
Written by `CustomElementGraphicPart::stylesToXml()`,
`sources/editor/graphicspart/customelementgraphicpart.cpp`.
Written by `PartRectangle::toXml()`, `sources/editor/graphicspart/partrectangle.cpp`.
+27
@@ -0,0 +1,27 @@
# terminal
A connection point. Conductors can only attach to an element at a terminal.
Example:
`<terminal uuid="{d7fd0bec-9f05-4651-a50b-29d7ffabeb41}" name="1" x="13" y="0" orientation="e" type="Generic" />`
parent : [description](elements_child_description)
attribute :
* x, y -- position
* uuid -- stable identity of this terminal, used by conductors and links
* name -- the terminal's label, e.g. `1`, `A2`
* orientation -- the direction a conductor leaves in: `n`, `e`, `s`, `w`
* type -- `Generic`, `Inner`, `Outer`, or for switch contacts
`No` (normally open), `Nc` (normally closed), `Common`
The following are written **only** when the terminal name is shown
(`show_name="true"`):
* label_x, label_y, label_rotation, label_font
* label_halign, label_valign -- Qt alignment flags, as integers
* label_frame -- only when true
* label_color -- only when not black
And only when the terminal overrides its master's label:
* use_master_label, master_label_index
Written by `TerminalData::toXml()`, `sources/properties/terminaldata.cpp`.
+25
@@ -0,0 +1,25 @@
# text
A fixed piece of text drawn in the element. For text that takes its value from
the project, see [dynamic_text](elements_description_child_dynamic_text) instead.
Example:
`<text text="PEN" x="7" y="33" rotation="0" font="Liberation Sans,5,-1,5,50,0,0,0,0,0,Regular" color="#000000" />`
parent : [description](elements_child_description)
attribute :
* text -- the string itself, held in an attribute rather than a text node
* x, y -- position
* rotation -- degrees, rounded to 1 decimal
* font -- a serialised `QFont` (family, size, then Qt's numeric fields)
* color -- `#rrggbb`
* Halignment -- `AlignRight` or `AlignHCenter`
* Valignment -- `AlignBottom` or `AlignVCenter`
The two alignment attributes are written **only** when they differ from the
historical default, so that existing `.elmt` files round-trip unchanged. Absent
means left / top.
Unlike the shapes, `<text>` carries no `style` or `antialias` attribute.
Written by `PartText::toXml()`, `sources/editor/graphicspart/parttext.cpp`.
+1 -1
@@ -7,5 +7,5 @@ parent : [project](project_XML)
attribute : none
## child elements
* category _(not yet documented)_
* [category](project_collection_child_category)
+8 -5
@@ -27,8 +27,11 @@ attribute :
* indexrev
* rowsize
## child elements
* defaultconductor _(not yet documented)_
* elements _(not yet documented)_
* conductors _(not yet documented)_
* inputs _(not yet documented)_
* [defaultconductor](project_diagram_child_defaultconductor)
* [elements](project_diagram_child_elements)
* [conductors](project_diagram_child_conductors)
* [inputs](project_diagram_child_inputs)
* [properties](project_diagram_child_properties)
* [images](project_diagram_child_images)
* [shapes](project_diagram_child_shapes)
* [elementautonumfoliosequentials](project_diagram_child_elementautonumfoliosequentials)
+21
@@ -0,0 +1,21 @@
# category
A folder in the project's embedded element collection. Categories nest, so a
category may contain further categories as well as elements.
Example:
`<category name="10_electric">`
parent : [collection](project_child_collection), or another `category`
attribute :
* name -- the folder's name, as it appears in the collection tree
## child elements
* `<names>` -- the translated display names of this category
* `<category>` -- nested sub-categories
* `<element>` -- the embedded elements themselves, each holding a full
`.elmt` [definition](elements_XML)
This is the copy of the element collection stored **inside** the project file,
which is what lets a `.qet` open on a machine that does not have those elements
installed.
+23
@@ -0,0 +1,23 @@
# conductors
Container for every conductor (wire) on the folio. Written only when the folio
has at least one conductor.
parent : [diagram](project_child_diagram)
attribute : none
## child elements
* `<conductor>`. Besides the full appearance vocabulary shared with
[defaultconductor](project_diagram_child_defaultconductor), each one records
what it connects:
* element1, element2 -- uuids of the two elements
* terminal1, terminal2 -- the terminals joined
* terminalname1, terminalname2 -- their names
* element1_name, element2_name, element1_label, element2_label -- cached labels
* x, y, userx, usery, rotation -- geometry of the conductor text
* freezeLabel -- `true` / `false`
Conductors are written in a stable sorted order derived from both endpoints, so
that saving twice produces byte-identical files.
Written by `Conductor::toXml()`, called from `Diagram::toXml()`.
@@ -0,0 +1,26 @@
# defaultconductor
The conductor properties a newly drawn conductor on this folio starts from.
Same attribute vocabulary as an individual
[conductor](project_diagram_child_conductors).
Example:
`<defaultconductor bicolor="false" condsize="1" displaytext="true" num="" type="multi" ... />`
parent : [diagram](project_child_diagram)
attribute :
* type -- `multi`, `single` or `bus`
* num, formula -- conductor text and the formula that generates it
* displaytext, onetextperfolio -- whether and how often the text is drawn
* numsize, condsize -- text size and conductor thickness
* color, color2, bicolor, dash-size -- line appearance
* text_color, horizrotatetext, vertirotatetext -- text appearance
* horizontal-alignment, vertical-alignment
* function, tension_protocol, conductor_color, conductor_section -- descriptive fields
* cable, bus -- identifiers
* ground, phase, neutral -- `true` / `false`, single-conductor markers
attribute : none of the above are required; QET writes the full set.
Written by `ConductorProperties::toXml()`, called from `Diagram::toXml()`,
`sources/diagram.cpp`.
@@ -0,0 +1,21 @@
# elementautonumfoliosequentials
Per-folio counters for element auto-numbering: the highest sequential value
reached on this folio, so numbering survives a save/reload.
parent : [diagram](project_child_diagram)
attribute : none
## child elements
* [elementunitfolioseq](project_diagram_elementautonumfoliosequentials_child_elementunitfolioseq)
* [elementtenfolioseq](project_diagram_elementautonumfoliosequentials_child_elementtenfolioseq)
* [elementhundredfolioseq](project_diagram_elementautonumfoliosequentials_child_elementhundredfolioseq)
Each of the three is written only if it holds anything, and the block as a whole
is omitted when all three are empty.
There is a parallel `<conductorautonumfoliosequentials>` block with the same
shape, holding `<conductorunitfolioseq>`, `<conductortenfolioseq>` and
`<conductorhundredfolioseq>`, for conductor numbering.
Written by `Diagram::toXml()`, `sources/diagram.cpp`.
+30
@@ -0,0 +1,30 @@
# elements
Container for every element placed on the folio. Written only when the folio
has at least one element.
Example:
`<elements><element x="140" y="90" type="..." uuid="{...}" /></elements>`
parent : [diagram](project_child_diagram)
attribute : none
## child elements
* `<element>`, with attributes:
* x, y, z -- position and stacking order
* type -- path of the element in the collection
* name -- display name
* uuid -- unique id of this instance
* orientation -- `0`..`3`, quarter turns
* prefix -- label prefix, e.g. `K`
* freezeLabel -- `true` / `false`
* each `<element>` in turn contains `<terminals>`, `<inputs>`,
`<elementInformations>`, `<dynamic_texts>`, `<texts_groups>`, and where the
element is embedded in the project, its full `<definition>`. Elements that
are cross-referenced also carry `<links_uuids>`, and auto-numbered ones
`<sequentialNumbers>`.
Elements are written in a stable sorted order so that saving twice produces
byte-identical files.
Written by `Diagram::toXml()`, `sources/diagram.cpp`.
+18
@@ -0,0 +1,18 @@
# images
Container for bitmap images dropped onto the folio.
parent : [diagram](project_child_diagram)
attribute : none
## child elements
* `<image>`, with attributes:
* x, y, z -- position and stacking order
* size -- scale factor
* rotation -- degrees
* is_movable -- `true` / `false`
The image data itself is stored base64-encoded as the text node of the
`<image>` element, so a project file stays self-contained.
Written only when the folio has at least one image, by `Diagram::toXml()`.
+22
@@ -0,0 +1,22 @@
# inputs
Container for free-standing text on the folio -- text not attached to any
element. In the code these are *independent texts*.
parent : [diagram](project_child_diagram)
attribute : none
## child elements
* `<input>`, with attributes:
* x, y -- position
* text -- the string
* font -- serialised `QFont`
* size -- legacy text size, kept for older files
* rotation, userrotation, rotate -- rotation and whether the user set it
* userx, usery -- user-moved offset
* tagg -- free-form tag
Written only when the folio has at least one such text, by `Diagram::toXml()`.
Note: `<inputs>` also appears **inside** each `<element>`, where it holds that
element's own texts. Same tag, different parent.
+20
@@ -0,0 +1,20 @@
# properties
Custom title-block fields for this folio: the user-defined variables a title
block template can display, over and above the fixed ones (author, title, date,
...) that live as attributes on [diagram](project_child_diagram) itself.
Example:
`<properties><property show="1" name="a-date">26/06/2015</property></properties>`
parent : [diagram](project_child_diagram)
attribute : none
## child elements
* [property](project_diagram_properties_child_property)
Written only when at least one custom field exists, by
`TitleBlockProperties::toXml()`, `sources/titleblockproperties.cpp`.
Note the project itself has a separate top-level
[properties](project_child_properties) block. Same tag name, different parent.
+22
@@ -0,0 +1,22 @@
# shapes
Container for free drawing on the folio -- lines, rectangles, ellipses and
polygons drawn directly on the diagram rather than belonging to an element.
parent : [diagram](project_child_diagram)
attribute : none
## child elements
* `<shape>`, with attributes:
* type -- `Line`, `Rectangle`, `Ellipse` or `Polygon`
* x1, y1, x2, y2 -- defining points
* rx, ry -- corner radii, for rectangles
* closed -- for polygons
* z -- stacking order
* is_movable -- `true` / `false`
These are diagram shapes and are **not** the same as the element drawing
primitives documented under [description](elements_child_description), even
though they draw similar figures.
Written only when the folio has at least one shape, by `Diagram::toXml()`.
@@ -0,0 +1,15 @@
# elementhundredfolioseq
The hundreds counter for element auto-numbering on this folio.
parent : [elementautonumfoliosequentials](project_diagram_child_elementautonumfoliosequentials)
attribute : none
## child elements
* `<hundredfolioseq>`, one per auto-numbering scheme, with attributes:
* title -- the name of the numbering scheme these values belong to
* seqhf_1, seqhf_2, ... seqhf_N -- the stored values, numbered from 1.
There is no count attribute; the number of values is however many
`seqhf_N` attributes are present.
Written by `Diagram::folioSequentialsToXml()`, `sources/diagram.cpp`.
@@ -0,0 +1,15 @@
# elementtenfolioseq
The tens counter for element auto-numbering on this folio.
parent : [elementautonumfoliosequentials](project_diagram_child_elementautonumfoliosequentials)
attribute : none
## child elements
* `<tenfolioseq>`, one per auto-numbering scheme, with attributes:
* title -- the name of the numbering scheme these values belong to
* seqtf_1, seqtf_2, ... seqtf_N -- the stored values, numbered from 1.
There is no count attribute; the number of values is however many
`seqtf_N` attributes are present.
Written by `Diagram::folioSequentialsToXml()`, `sources/diagram.cpp`.
@@ -0,0 +1,15 @@
# elementunitfolioseq
The units counter for element auto-numbering on this folio.
parent : [elementautonumfoliosequentials](project_diagram_child_elementautonumfoliosequentials)
attribute : none
## child elements
* `<unitfolioseq>`, one per auto-numbering scheme, with attributes:
* title -- the name of the numbering scheme these values belong to
* sequf_1, sequf_2, ... sequf_N -- the stored values, numbered from 1.
There is no count attribute; the number of values is however many
`sequf_N` attributes are present.
Written by `Diagram::folioSequentialsToXml()`, `sources/diagram.cpp`.
@@ -0,0 +1,16 @@
# property
One custom title-block variable.
Example:
`<property show="1" name="a-date">26/06/2015</property>`
parent : [properties](project_diagram_child_properties)
attribute :
* name -- the variable's key, as referenced from a title block template
* show -- `1` / `0`, whether the field is displayed
The value is the element's **text node**, not an attribute. It is written
trimmed, and may be empty.
Written by `DiagramContext::toXml()`, `sources/diagramcontext.cpp`.