Feature Graphics
LIDS feature graphics consists of master graphics and optional graphic tags. While master graphics is the main graphical representation of a feature, the graphic tags represent auxiliary graphical information, e.g. displayable attributes or cross-sections.
The definition of any graphics consists of geometry definition and symbology definition.
Master Graphics
As master graphics is the main graphical representation of a feature, each graphic feature type must specify its master graphics. It can be either primitive or collection graphics.
The master graphics can be set as mandatory (nillable=false) or optional (nillable=true). It means mandatory or optional at feature instance level. If master graphics is set as mandatory (nillable=false), every feature of this feature type must have its master graphics created.
Primitive Master Graphics
The most of features have primitive master graphics, i.e. graphics with primitive geometry type. There are four primitive geometry types in LIDS, point, curve, surface, text.
Example: Defining primitive master graphics for Main Pipeline segment.
<ber:model>
<ber:featureTypeArray>
...
<ber:featureType id="ft_5012100" name="Main pipeline segment"
parentId="ft_5012000">
<ber:description>Segments of the main water network</ber:description>
<ber:masterGraphics nillable="true">
<ber:curveGraphicType>
<ber:symbology>
...
</ber:symbology>
</ber:curveGraphicType>
</ber:masterGraphics>
<ber:featureAttributeArray>
...
</ber:featureAttributeArray>
</ber:featureType>
</ber:featureTypeArray>
</ber:model>
Collection Master Graphics
Some special features have collection master graphics, i.e. their master graphics is a collection of primitive graphic components. Dimensions, dense area zooms, and dense area references are the special features with collection master graphics.
Graphic collections represent general framework for extending LIDS system graphic functionality. Standard LIDS system core provides basic collections handling – defining in metadata, storing to DB, providing to clients, rendering and dynamic resymbolizing. But the system core is not able to do any active manipulations with graphic collections. It is a job for system extensions. Every collection graphic type belongs to one graphic type class. The graphic type class identifies the system extension that is responsible for active handling with features of this graphic type.
Example: Defining collection master graphics – Dimension.
<ber:model>
...
<ber:system id="0">
...
<ber:graphicTypeClassArray>
<ber:graphicTypeClass id="Dimension" name="Standard dimensions">
<ber:description>Features with graphics of this type are used for
standard dimensioning</ber:description>
</ber:graphicTypeClass>
</ber:graphicTypeClassArray>
</ber:system>
...
<ber:featureTypeArray>
...
<ber:featureType id="ft_5031000" name="Dimension"
parentId="ft_5030000">
<ber:description>MicroStation dimension</ber:description>
<ber:masterGraphics nillable="false">
<ber:class refId="Dimension"/>
<ber:collectionGraphicType>
<ber:graphicTypeComponentArray>
<ber:graphicTypeComponent id="gtc_01" name="Dimension Line"
roleId="dimLine">
<ber:curveGraphicType>
<ber:symbology>
...
</ber:symbology>
</ber:curveGraphicType>
</ber:graphicTypeComponent>
<ber:graphicTypeComponent id="gtc_02" name="Extension Line"
roleId="extLine">
<ber:curveGraphicType>
<ber:symbology>
...
</ber:symbology>
</ber:curveGraphicType>
</ber:graphicTypeComponent>
<ber:graphicTypeComponent id="gtc_03" name="Dimension Text"
roleId="text">
<ber:textGraphicType>
<ber:symbology>
...
</ber:symbology>
</ber:textGraphicType>
</ber:graphicTypeComponent>
<ber:graphicTypeComponent id="gtc_04" name="Symbol – arrow"
roleId="symbArrow">
<ber:pointGraphicType>
<ber:symbology>
...
</ber:symbology>
</ber:pointGraphicType>
</ber:graphicTypeComponent>
</ber:graphicTypeComponentArray>
</ber:collectionGraphicType>
</ber:masterGraphics>
</ber:featureType>
</ber:featureTypeArray>
</ber:model>
-
graphicTypeClassArray – Defines graphic type classes recognized by currently installed system extensions.
-
collectionGraphicType – Defines collection graphic type. It says that the collection graphics can consist of the defined component types.
Graphic Tags
Graphic tags are auxiliary graphic objects with following characteristics:
-
They are attached to graphic features.
-
They do not represent real world object.
-
Multiple graphic tags of the same type can be attached to one feature.
Displayable attributes are examples of graphic tags. Graphic tag types are collection graphic types. They are defined in special part of metadata and referred from feature type definitions.
Example: Defining graphic tags – Displayable Attribute.
<ber:model>
...
<ber:system id="0">
...
<ber:graphicTypeClassArray>
<ber:graphicTypeClass id="DA" name="Displayable attributes">
<ber:description>This graphic type is used for displayable
attributes</ber:description>
</ber:graphicTypeClass>
</ber:graphicTypeClassArray>
</ber:system>
...
<ber:graphicTypeArray>
<ber:graphicType id="gtda_5012102" name="W_DA_5012102">
<ber:class refId="DA"/>
<ber:collectionGraphicType>
<ber:symbology>
...
</ber:symbology>
<ber:graphicTypeComponentArray>
<ber:graphicTypeComponent id="gtda_5012102_2" name="Label Line"
roleId="labelLine">
<ber:curveGraphicType>
...
</ber:curveGraphicType>
</ber:graphicTypeComponent>
<ber:graphicTypeComponent id="gtda_5012102_1" name="DA Text"
roleId="text">
<ber:textGraphicType>
<ber:symbology>
...
</ber:symbology>
</ber:textGraphicType>
</ber:graphicTypeComponent>
</ber:graphicTypeComponentArray>
</ber:collectionGraphicType>
</ber:graphicType>
</ber:graphicTypeArray>
...
<ber:featureTypeArray>
...
<ber:featureType id="ft_5012100" name="Main pipeline segment"
parentId="ft_5012000" abstract="false">
<ber:description>Segments of the main water network</ber:description>
<ber:masterGraphics nillable="true">
<ber:curveGraphicType>
<ber:symbology>
...
</ber:symbology>
</ber:curveGraphicType>
</ber:masterGraphics>
<ber:graphicTagTypeArray>
<ber:graphicTagType id="ft_5012100_gtda_5012102"
name="DA - Description">
<ber:graphics refId="gtda_5012102"/>
</ber:graphicTagType>
</ber:graphicTagTypeArray>
</ber:featureType>
</ber:featureTypeArray>
</ber:model>
-
graphicTypeArray – Defines graphic tag types. In this case one graphic tag type is defined. It is a collection graphic type (must be) of DA class. It can have components of two types – DA text and label line.
-
graphicTagTypeArray – Refers to formerly defined graphic tag types. Defines set of graphic tag types which can be attached to feature type.
Border line
A line feature can be displayed using its axis and two borders (closed or open). The line axis is constructed by the user; borders are automatically generated according to rules defined in metadata. The borders copy the shape of the axis, the distance of borders from the axis can be controlled by value of selected attribute, typically by specified diameter of the line. The change of the value of some control attribute, or of axis geometry automatically implies a corresponding change of borders. If more lines intersect, the system provides modification of their borders at the intersection so that the borders are connected.
Possible variants of the definition:
-
Only axis – no borders, no closing lines.
-
Axis with borders (one or two lines placed in a defined distance parallelly to the axis).
-
Axis with closing lines (two lines with a length equal to the defined borders distance, placed at the end of the axis perpendicularly to it).
-
Axis with both borders and closing lines.
Either a graphic type containing borders and / or closing lines components must be defined for the line feature type as its graphic tag or separate feature type with relation association to the axis can be defined (in model.xml). Further, the following must be specified in the option.xml file:
-
What feature type will be used in the role of the axis
-
How the generated borders are stored in the system
-
Graphic tag type and its components used in the role of the borders and / or closing lines
-
Feature type and relationAssoc type. Optionally, default values can be specified
-
-
Rule for counting the borders distance
Optionally, following conditions can be defined:
-
excludeFeatures – Condition for excluding features from the processing can be defined. If valid, the borders are not generated for such a feature. If borders already existed for such a feature, they are left untouched. Also, modification of the source geometry doesn’t cause any update on the generated borders
-
deleteBorderForFeatures – Condition for deleting the existing border. If valid, the border is not generated for such a feature and the existing border is deleted
There are following possibilities how to define the borders distance:
-
Directly a value of a feature attribute – this attribute must be of a number type. The user fills in directly the distance in meters
-
Codelist’s column – the user fills in the value by selecting a codelist entry. The distance is taken from a codelist column, which doesn’t need to be visible for the user.
-
A constant – the user can’t influence the distance
Possible definition of the border’s shape:
-
joinStyle – Style of the outer boundary at the internal vertices of the source geometry. Possible values:
-
mitre - Sharp line, represented by one vertex at each source vertex
-
round – Rounded line, represented by more vertexes at each source vertex
-
-
quadrantSegmentsCount – Smoothness of the outer boundary. Makes sense only in the combination with joinStyle=”rounded”. The resulting border never contains arcs, so this parameter defines, how many points in each quadrant are generated.
-
side – defines, if just one line is generated either on the right or left side of the axis.
Example: Defining graphic tags – Border line.
<ber:model>
...
<ber:system id="0">
...
<ber:graphicTypeClassArray>
<ber:graphicTypeClass id="BorderLine" name="Border line">
<ber:description>By server generated border lines, graphic tag</ber:description>
</ber:graphicTypeClass>
</ber:graphicTypeClassArray>
</ber:system>
...
<ber:graphicType id="gtda_5060002" name="Border line">
<ber:class refId="BorderLine"/>
<ber:collectionGraphicType>
<ber:graphicTypeComponentArray>
<ber:graphicTypeComponent id="gtda_5060002_1" name="Border line" roleId="borderLine">
<ber:curveGraphicType>
<ber:symbology>
<ber:lineSymbolizer>
<se:Stroke>
<se:GraphicStroke>
<se:Graphic>
<se:ExternalGraphic>
<se:OnlineResource xlink:href="resource.xml#ls_5"/>
<se:Format/>
</se:ExternalGraphic>
</se:Graphic>
</se:GraphicStroke>
<se:SvgParameter name="stroke-width">2</se:SvgParameter>
</se:Stroke>
</ber:lineSymbolizer>
</ber:symbology>
</ber:curveGraphicType>
</ber:graphicTypeComponent>
<ber:graphicTypeComponent id="gtda_5060002_2" name="Closing line" roleId="closingLine">
<ber:curveGraphicType>
<ber:symbology>
<ber:lineSymbolizer>
<se:Stroke>
<se:SvgParameter name="stroke-width">1</se:SvgParameter>
</se:Stroke>
</ber:lineSymbolizer>
</ber:symbology>
</ber:curveGraphicType>
</ber:graphicTypeComponent>
</ber:graphicTypeComponentArray>
</ber:collectionGraphicType>
</ber:graphicType>
option.xml:
<ber:lineBorder id="bod_3" name="Route">
<ber:inputAxis>
<ber:featureType xlink:href="model.xml#ft_e_route"/>
<ber:excludeFeatures>
<ogc:Filter> <!-- Material = 'Gold' -->
<ogc:PropertyIsEqualTo>
<ogc:PropertyName>ft_5012300/at_5012003</ogc:PropertyName>
<ogc:Literal>10</ogc:Literal>
</ogc:PropertyIsEqualTo>
</ogc:Filter>
</ber:excludeFeatures>
</ber:inputAxis>
<ber:outputLineBorder>
<ber:diameter>
<ogc:PropertyName>at_e5121006/ca_31903</ogc:PropertyName>
</ber:diameter>
<ber:graphicTagType xlink:href="model.xml#ft_e_route_gtda_5060002"/>
<ber:borderLine quadrantSegmentsCount="8">
<ber:graphicTypeComponent xlink:href="model.xml#gtda_5060002_1"/>
</ber:borderLine>
<ber:closingLine>
<ber:graphicTypeComponent xlink:href="model.xml#gtda_5060002_2"/>
</ber:closingLine>
</ber:outputLineBorder>
</ber:lineBorder>
<ber:lineBorder id="line_border_2" name="Just on right side">
<ber:inputAxis>
<ber:featureType xlink:href="model.xml#ft_axis"/>
<ber:deleteBorderForFeatures>
<ogc:Filter>
<ogc:Or>
<ogc:PropertyIsEqualTo>
<ogc:PropertyName>at_count</ogc:PropertyName>
<ogc:Literal>0</ogc:Literal>
</ogc:PropertyIsEqualTo>
<ogc:PropertyIsNull>
<ogc:PropertyName>at_count</ogc:PropertyName>
</ogc:PropertyIsNull>
</ogc:Or>
</ogc:Filter>
</ber:deleteBorderForFeatures>
</ber:inputAxis>
<ber:outputLineBorder>
<ber:diameter side="right">
<ogc:PropertyName>at_123/ca_456</ogc:PropertyName>
</ber:diameter>
<ber:featureType xlink:href="model.xml#ft_border"/>
<ber:relationAssoc xlink:href="model.xml#as_axis_border"/>
<ber:defaultAttValueArray>
<ber:defaultAttValue>
<ber:attribute xlink:href="model.xml#at_border_kind"/>
<ber:value>1</ber:value>
</ber:defaultAttValue>
</ber:defaultAttValueArray>
<ber:borderLine quadrantSegmentsCount="3"/>
</ber:outputLineBorder>
</ber:lineBorder>
Border polygon
There is a possibility to generate the buffer zone for a source feature. The source feature geometry can be line, polygon or point. It is constructed by the user; the buffer zone is generated by the system on the basis of a rule defined in metadata. The width of the area can be controlled by values of selected attribute. The change of the value of some control attribute, or of the source geometry implies a corresponding change of the buffer zone – automatically or on request.
Possible definitions of the resulting buffer zone:
-
graphicTagType – the resulting buffer zone is graphic tag of the source feature.
-
feature type sharing semantics with the source feature
-
feature type related by relationAssoc with the source feature
Optionally, following conditions can be defined:
-
excludeFeatures – Condition for excluding features from the processing can be defined. If valid, the buffer zone is not generated for such a feature. If buffer zone already existed for such a feature, it’s left untouched. Also, modification of the source geometry doesn’t cause any update on the generated border
-
deleteBorderForFeatures – Condition for deleting the existing border. If valid, the buffer zone is not generated for such a feature and the existing border is deleted
There are following possibilities how to define the buffer zone’s width:
-
Directly a value of a feature attribute – this attribute must be of a number type. The user fills in directly the width in meters
-
Codelist’s column – the user fills in the value by selecting a codelist entry. The width is taken from a codelist column, which doesn’t need to be visible for the user.
-
A constant – the user can’t influence the width
Possible definition of the buffer zone’s shape:
-
joinStyle – Style of the outer boundary at the internal vertices of the source geometry. Possible values:
-
mitre - Sharp line, represented by one vertex at each source vertex
-
round– Rounded line, represented by more vertexes at each source vertex
-
-
quadrantSegmentsCount – Smoothness of the outer boundary. Makes sense only in the combination with joinStyle=”rounded”. The resulting border never contains arcs, so this parameter defines, how many points in each quadrant are generated.
-
endCapStyle – Style at the end of the master geometry. Makes sense only if the master geometry is a line. Possible values:
-
flat – Simple perpendicular line created at the end of the source line
-
square – Simple perpendicular line created in the distance of buffer zone’s width from the source line
-
round – Line with more internal vertexes created in the distance of buffer zone’s width from the source line
-
-
side – Defines, if the buffer zone is generated on both sides of the source line. Possible values:
-
both – The buffer zone is generated on both sides of the source line. Default behavior.
-
left – The buffer zone is generated just on the left side of the source line. In this case the direction of the source line is considered.
-
right – The buffer zone is generated just on the right side of the source line. In this case the direction of the source line is considered.
-
Example: Defining graphic tags – Border Polygon.
<ber:model>
...
<ber:system id="0">
...
<ber:graphicTypeClassArray>
<ber:graphicTagType id="ft_5012100_gtbp_0001" name="Generated border polygon" drawPriority="10">
<ber:graphics refId="gtbp_0001"/>
</ber:graphicTagType>
</ber:graphicTypeClassArray>
</ber:system>
option.xml:
<ber:areaBorderArray>
<ber:areaBorder id="bod_4" name="Main pipeline segment - generated border polygon">
<!-- input data -->
<ber:inputAxis>
<ber:featureType xlink:href="model.xml#ft_5012100"/>
<ber:excludeFeatures>
<ogc:Filter> <!-- Material in 'Unknown', 'Wood' -->
<ber:PropertyIsIn>
<ogc:PropertyName>ft_5012300/at_5012003</ogc:PropertyName>
<ogc:Literal>-1</ogc:Literal>
<ogc:Literal>3</ogc:Literal>
</ber:PropertyIsIn>
</ogc:Filter>
</ber:excludeFeatures>
<ber:deleteBorderForFeatures>
<ogc:Filter> <!-- Supplying zone = 'Low pressure' -->
<ogc:PropertyIsEqualTo>
<ogc:PropertyName>ft_5012100/at_5010001</ogc:PropertyName>
<ogc:Literal>1</ogc:Literal>
</ogc:PropertyIsEqualTo>
</ogc:Filter>
</ber:deleteBorderForFeatures>
</ber:inputAxis>
<!-- output data -->
<ber:outputAreaBorder overlayEnabled="true">
<ber:graphicTagType xlink:href="model.xml#ft_5012100_gtbp_0001"/>
<ber:bufferZone quadrantSegmentsCount="5" joinStyle="round" endCapStyle="round" side="right">
<ber:width>
<ogc:PropertyName>at_5012000_diameter/ca_10503</ogc:PropertyName>
</ber:width>
</ber:bufferZone>
</ber:outputAreaBorder>
</ber:areaBorder>
</ber:areaBorderArray>
model.xml:
<ber:graphicTypeArray>
<ber:graphicType id="gtbp_0001" name="Border polygon">
<ber:class refId="BorderPolygon"/>
<ber:collectionGraphicType>
<ber:graphicTypeComponentArray>
<ber:graphicTypeComponent id="gtbp_0001_1" name="Border polygon" roleId="borderPolygon">
<ber:surfaceGraphicType>
<ber:symbology>
<ber:polygonSymbolizer>
<ber:fill>
<se:SvgParameter name="fill">#97F740</se:SvgParameter>
<se:SvgParameter name="fill-opacity">0.3</se:SvgParameter>
<ber:fillStyle>solid</ber:fillStyle>
</ber:fill>
<se:Stroke>
<se:SvgParameter name="stroke">#7F0000</se:SvgParameter>
<se:SvgParameter name="stroke-width">2</se:SvgParameter>
</se:Stroke>
</ber:polygonSymbolizer>
</ber:symbology>
</ber:surfaceGraphicType>
</ber:graphicTypeComponent>
</ber:graphicTypeComponentArray>
</ber:collectionGraphicType>
</ber:graphicType>
</ber:graphicTypeArray>
...
<ber:featureTypeArray>
...
<ber:featureType id="ft_5012100" name="Main pipeline segment"
parentId="ft_5012000" abstract="false">
<ber:description>Segments of the main water network</ber:description>
<ber:masterGraphics nillable="true">
<ber:curveGraphicType>
<ber:symbology>
...
</ber:symbology>
</ber:curveGraphicType>
</ber:masterGraphics>
<ber:graphicTagTypeArray>
<ber:graphicTagType id="ft_5012100_gtbp_0001" name="Generated border polygon" drawPriority="10">
<ber:graphics refId="gtbp_0001"/>
</ber:graphicTagType>
</ber:graphicTagTypeArray>
</ber:featureType>
</ber:featureTypeArray>
</ber:model>
Other classes
Example: Defining graphic tags – Simple Dimension. In this case, the dimension line is the master geometry which is created by standard functions. Symbols at both ends and the text are graphic tags.
<ber:model>
...
<ber:system id="0">
...
<ber:graphicTypeClassArray>
<ber:graphicTypeClass id="SimpleDimension" name="Simple dimension">
<ber:description>For light clients, graphic tag</ber:description>
</ber:graphicTypeClass>
</ber:graphicTypeClassArray>
</ber:system>
...
<ber:graphicType id="simpdim_01" name="Simple dimension 1">
<ber:class refId="SimpleDimension"/>
<ber:collectionGraphicType>
<ber:symbology>
<ber:derivedSymbolizer/>
</ber:symbology>
<ber:graphicTypeComponentArray>
<ber:graphicTypeComponent id="simpdim_01_symstart" name="Symbol at start" roleId="symbStart">
<ber:pointGraphicType>
<ber:symbology>
<ber:pointSymbolizer>
<se:Graphic>
<se:ExternalGraphic>
<se:OnlineResource xlink:href="resource.xml#ber_LIDSdemo/76/left-center"/>
<se:Format/>
</se:ExternalGraphic>
</se:Graphic>
<ber:rgbColor>#FF0000</ber:rgbColor>
<ber:symbolHeight>1</ber:symbolHeight>
</ber:pointSymbolizer>
</ber:symbology>
</ber:pointGraphicType>
</ber:graphicTypeComponent>
<ber:graphicTypeComponent id="simpdim_01_symend" name="Symbol at end" roleId="symbEnd">
<ber:pointGraphicType>
<ber:symbology>
<ber:pointSymbolizer>
<se:Graphic>
<se:ExternalGraphic>
<se:OnlineResource xlink:href="resource.xml#ber_LIDSdemo/76/left-center"/>
<se:Format/>
</se:ExternalGraphic>
</se:Graphic>
<ber:rgbColor>#FF0000</ber:rgbColor>
<ber:symbolHeight>1</ber:symbolHeight>
</ber:pointSymbolizer>
</ber:symbology>
</ber:pointGraphicType>
</ber:graphicTypeComponent>
<ber:graphicTypeComponent id="simpdim_01_text" name="Dimension text" roleId="dimText">
<ber:textGraphicType>
<ber:symbology>
<ber:textSymbolizer>
<se:Font>
<se:SvgParameter name="font-family">Courier</se:SvgParameter>
<se:SvgParameter name="font-style">italic</se:SvgParameter>
</se:Font>
<se:Fill>
<se:SvgParameter name="fill">#FF0000</se:SvgParameter>
</se:Fill>
</ber:textSymbolizer>
</ber:symbology>
<ber:defaultTextProperties>
<ber:anchorPoint>center-bottom</ber:anchorPoint>
</ber:defaultTextProperties>
</ber:textGraphicType>
</ber:graphicTypeComponent>
</ber:graphicTypeComponentArray>
</ber:collectionGraphicType>
</ber:graphicType>
Example: Defining graphic tags – Placed cross-section.
<ber:model>
...
<ber:system id="0">
...
<ber:graphicTypeClassArray>
<ber:graphicTypeClass id="PlacedCS" name="Placed cross-section">
<ber:description>Placed cross-section, graphic tag</ber:description>
</ber:graphicTypeClass>
</ber:graphicTypeClassArray>
</ber:system>
...
<ber:graphicType id="gtcs_0001" name="Cross-section 3">
<ber:class refId="PlacedCS"/>
<ber:collectionGraphicType>
<ber:symbology>
<ber:commonSymbolizer>
<ber:rgbColor>#FF0000</ber:rgbColor>
</ber:commonSymbolizer>
</ber:symbology>
<ber:graphicTypeComponentArray>
<ber:delegateGraphicTypeComponent id="gtcs_0001_01" name="Duct" roleId="duct">
<ber:pointGraphicType>
<ber:symbology>
<ber:pointSymbolizer>
<se:Graphic>
<se:ExternalGraphic>
<se:OnlineResource xlink:href="resource.xml#ber_LIDSdemo/64"/>
<se:Format/>
</se:ExternalGraphic>
</se:Graphic>
</ber:pointSymbolizer>
</ber:symbology>
</ber:pointGraphicType>
<ber:featureTypeDelegate refId="ft_e_protpipe"/>
</ber:delegateGraphicTypeComponent>
<ber:graphicTypeComponent id="gtcs_0001_02" name="CS Text" roleId="auxiliaryGraphics">
<ber:textGraphicType>
<ber:symbology>
<ber:textSymbolizer>
<ber:fontHeight>1</ber:fontHeight>
</ber:textSymbolizer>
</ber:symbology>
</ber:textGraphicType>
</ber:graphicTypeComponent>
<ber:graphicTypeComponent id="gtcs_0001_03" name="CS Border" roleId="auxiliaryGraphics">
<ber:curveGraphicType/>
</ber:graphicTypeComponent>
<ber:graphicTypeComponent id="gtcs_0001_04" name="Direction symbol left" roleId="leftDirection">
<ber:pointGraphicType>
<ber:symbology>
<ber:pointSymbolizer>
<se:Graphic>
<se:ExternalGraphic>
<se:OnlineResource xlink:href="resource.xml#ber_LIDSdemo/53/right-center"/>
<se:Format/>
</se:ExternalGraphic>
</se:Graphic>
</ber:pointSymbolizer>
</ber:symbology>
</ber:pointGraphicType>
</ber:graphicTypeComponent>
<ber:graphicTypeComponent id="gtcs_0001_05" name="Direction symbol right" roleId="rightDirection">
<ber:pointGraphicType>
<ber:symbology>
<ber:pointSymbolizer>
<se:Graphic>
<se:ExternalGraphic>
<se:OnlineResource xlink:href="resource.xml#ber_LIDSdemo/52/left-center"/>
<se:Format/>
</se:ExternalGraphic>
</se:Graphic>
</ber:pointSymbolizer>
</ber:symbology>
</ber:pointGraphicType>
</ber:graphicTypeComponent>
<ber:graphicTypeComponent id="gtcs_0001_06" name="Label line" roleId="labelLine">
<ber:curveGraphicType>
<ber:symbology>
<ber:lineSymbolizer>
<se:Stroke>
<se:SvgParameter name="stroke-width">1</se:SvgParameter>
</se:Stroke>
</ber:lineSymbolizer>
</ber:symbology>
</ber:curveGraphicType>
</ber:graphicTypeComponent>
</ber:graphicTypeComponentArray>
</ber:collectionGraphicType>
</ber:graphicType>
Example: Defining graphic tags – Cross-section reference.
<ber:model>
...
<ber:system id="0">
...
<ber:graphicTypeClassArray>
<ber:graphicTypeClass id="CSReference" name="Cross-section reference">
<ber:description>Cross-section reference for plot outputs, graphic tag</ber:description>
</ber:graphicTypeClass>
</ber:graphicTypeClassArray>
</ber:system>
...
<ber:graphicType id="gtcsr_01" name="Cross-section reference">
<ber:class refId="CSReference"/>
<ber:collectionGraphicType>
<ber:symbology>
<ber:commonSymbolizer>
<ber:rgbColor>#B9BC12</ber:rgbColor>
</ber:commonSymbolizer>
</ber:symbology>
<ber:graphicTypeComponentArray>
<ber:graphicTypeComponent id="gtcsr_01_1" name="Label line" roleId="labelLine">
<ber:curveGraphicType>
<ber:symbology>
<ber:lineSymbolizer>
<se:Stroke>
<se:SvgParameter name="stroke-width">1</se:SvgParameter>
</se:Stroke>
</ber:lineSymbolizer>
</ber:symbology>
</ber:curveGraphicType>
</ber:graphicTypeComponent>
<ber:graphicTypeComponent id="gtcsr_01_2" name="Label symbol" roleId="labelSymbol">
<ber:pointGraphicType>
<ber:symbology>
<ber:pointSymbolizer>
<se:Graphic>
<se:ExternalGraphic>
<se:OnlineResource xlink:href="resource.xml#ber_LIDSdemo/51"/>
<se:Format/>
</se:ExternalGraphic>
</se:Graphic>
<ber:symbolHeight>1</ber:symbolHeight>
</ber:pointSymbolizer>
</ber:symbology>
</ber:pointGraphicType>
</ber:graphicTypeComponent>
<ber:graphicTypeComponent id="gtcsr_01_3" name="Cross-section number" roleId="text">
<ber:textGraphicType>
<ber:symbology>
<ber:textSymbolizer>
<ber:fontHeight>1</ber:fontHeight>
</ber:textSymbolizer>
</ber:symbology>
<ber:defaultTextProperties>
<ber:anchorPoint>center-center</ber:anchorPoint>
</ber:defaultTextProperties>
</ber:textGraphicType>
</ber:graphicTypeComponent>
<ber:graphicTypeComponent id="gtcsr_01_4" name="Direction symbol left" roleId="leftDirection">
<ber:pointGraphicType>
<ber:symbology>
<ber:pointSymbolizer>
<se:Graphic>
<se:ExternalGraphic>
<se:OnlineResource xlink:href="resource.xml#ber_LIDSdemo/53/right-center"/>
<se:Format/>
</se:ExternalGraphic>
</se:Graphic>
<ber:rgbColor>#FF9000</ber:rgbColor>
</ber:pointSymbolizer>
</ber:symbology>
</ber:pointGraphicType>
</ber:graphicTypeComponent>
<ber:graphicTypeComponent id="gtcsr_01_5" name="Direction symbol right" roleId="rightDirection">
<ber:pointGraphicType>
<ber:symbology>
<ber:pointSymbolizer>
<se:Graphic>
<se:ExternalGraphic>
<se:OnlineResource xlink:href="resource.xml#ber_LIDSdemo/52/left-center"/>
<se:Format/>
</se:ExternalGraphic>
</se:Graphic>
<ber:rgbColor>#FF9000</ber:rgbColor>
</ber:pointSymbolizer>
</ber:symbology>
</ber:pointGraphicType>
</ber:graphicTypeComponent>
</ber:graphicTypeComponentArray>
</ber:collectionGraphicType>
</ber:graphicType>
Example: Defining graphic tags – Detail reference.
<ber:model>
...
<ber:system id="0">
...
<ber:graphicTypeClassArray>
<ber:graphicTypeClass id="DetailReference" name="Detail reference">
<ber:description>Detail reference for plot outputs, graphic tag</ber:description>
</ber:graphicTypeClass>
</ber:graphicTypeClassArray>
</ber:system>
...
<ber:graphicType id="gtdr_5070001" name="Red detail reference">
<ber:class refId="DetailReference"/>
<ber:collectionGraphicType>
<ber:symbology>
<ber:commonSymbolizer>
<ber:rgbColor>#AA0000</ber:rgbColor>
</ber:commonSymbolizer>
</ber:symbology>
<ber:graphicTypeComponentArray>
<ber:graphicTypeComponent id="gtdr_5070001_1" name="Label Line" roleId="labelLine">
<ber:curveGraphicType>
<ber:symbology>
<ber:lineSymbolizer>
<se:Stroke>
<se:SvgParameter name="stroke-width">1</se:SvgParameter>
</se:Stroke>
</ber:lineSymbolizer>
</ber:symbology>
</ber:curveGraphicType>
</ber:graphicTypeComponent>
<ber:graphicTypeComponent id="gtdr_5070001_2" name="Label Symbol" roleId="labelSymbol">
<ber:pointGraphicType>
<ber:symbology>
<ber:pointSymbolizer>
<se:Graphic>
<se:ExternalGraphic>
<se:OnlineResource xlink:href="resource.xml#ber_LIDSdemo/51"/>
<se:Format/>
</se:ExternalGraphic>
</se:Graphic>
<ber:symbolHeight>1</ber:symbolHeight>
</ber:pointSymbolizer>
</ber:symbology>
</ber:pointGraphicType>
</ber:graphicTypeComponent>
<ber:graphicTypeComponent id="gtdr_5070001_3" name="Detail Number" roleId="text">
<ber:textGraphicType>
<ber:symbology>
<ber:textSymbolizer>
<ber:fontHeight>1</ber:fontHeight>
</ber:textSymbolizer>
</ber:symbology>
<ber:defaultTextProperties>
<ber:anchorPoint>center-center</ber:anchorPoint>
</ber:defaultTextProperties>
</ber:textGraphicType>
</ber:graphicTypeComponent>
</ber:graphicTypeComponentArray>
</ber:collectionGraphicType>
</ber:graphicType>
Example: Defining graphic tags – Detail reference in map frame.
<ber:model>
...
<ber:system id="0">
...
<ber:graphicTypeClassArray>
<ber:graphicTypeClass id="DetailReferenceMap" name="Detail reference in map frame">
<ber:description>This graphic type is used for detail reference plot in map frame.</ber:description>
</ber:graphicTypeClass>
</ber:graphicTypeClassArray>
</ber:system>
...
<ber:graphicType id="gt_detRefMap1" name="Detail reference in map frame">
<ber:class refId="DetailReferenceMap"/>
<ber:collectionGraphicType>
<ber:symbology>
<ber:derivedSymbolizer/>
</ber:symbology>
<ber:graphicTypeComponentArray>
<ber:graphicTypeComponent id="gt_detRefMap1_1" name="Label Line" roleId="labelLine">
<ber:curveGraphicType>
<ber:symbology>
<ber:lineSymbolizer>
<se:Stroke>
<se:SvgParameter name="stroke-width">1</se:SvgParameter>
</se:Stroke>
</ber:lineSymbolizer>
</ber:symbology>
</ber:curveGraphicType>
</ber:graphicTypeComponent>
<ber:graphicTypeComponent id="gt_detRefMap1_2" name="Detail frame" roleId="detailFrame">
<ber:surfaceGraphicType>
<ber:symbology>
<ber:polygonSymbolizer>
<ber:fill>
<se:SvgParameter name="fill">#FFFFFE</se:SvgParameter>
<ber:fillStyle>solid</ber:fillStyle>
</ber:fill>
</ber:polygonSymbolizer>
</ber:symbology>
</ber:surfaceGraphicType>
</ber:graphicTypeComponent>
</ber:graphicTypeComponentArray>
</ber:collectionGraphicType>
</ber:graphicType>
Example: Defining graphic tags – Ghost symbol.
<ber:model>
...
<ber:system id="0">
...
<ber:graphicTypeClassArray>
<ber:graphicTypeClass id="GhostSymbol" name="Ghost symbol">
<ber:description>Graphic tag type consisting of one or more point symbols at the same coordinates as the main graphics</ber:description>
</ber:graphicTypeClass>
</ber:graphicTypeClassArray>
</ber:system>
...
<ber:graphicType id="ghostsymb_01" name="Ghost symbol 1">
<ber:description>Two additional point symbols</ber:description>
<ber:class refId="GhostSymbol"/>
<ber:collectionGraphicType>
<ber:graphicTypeComponentArray>
<ber:graphicTypeComponent id="ghostsymb_01_01" name="circle">
<ber:pointGraphicType>
<ber:symbology>
<ber:pointSymbolizer>
<se:Graphic>
<se:ExternalGraphic>
<se:OnlineResource xlink:href="resource.xml#ber_LIDSdemo/64/center-center"/>
<se:Format/>
</se:ExternalGraphic>
</se:Graphic>
<ber:rgbColor>#0099CC</ber:rgbColor>
<ber:symbolHeight>2</ber:symbolHeight>
</ber:pointSymbolizer>
</ber:symbology>
</ber:pointGraphicType>
</ber:graphicTypeComponent>
<ber:graphicTypeComponent id="ghostsymb_01_02" name="Rectangle">
<ber:pointGraphicType>
<ber:symbology>
<ber:pointSymbolizer>
<se:Graphic>
<se:ExternalGraphic>
<se:OnlineResource xlink:href="resource.xml#ber_LIDSdemoMask/74/center-center"/>
<se:Format/>
</se:ExternalGraphic>
</se:Graphic>
<ber:rgbColor>#FF9933</ber:rgbColor>
<ber:symbolHeight>0.9</ber:symbolHeight>
</ber:pointSymbolizer>
</ber:symbology>
</ber:pointGraphicType>
</ber:graphicTypeComponent>
</ber:graphicTypeComponentArray>
</ber:collectionGraphicType>
</ber:graphicType>
Example: Defining graphic tags – Free graphic tag.
<ber:model>
...
<ber:system id="0">
...
<ber:graphicTypeClassArray>
<ber:graphicTypeClass id="FreeGT" name="Free graphic tag">
<ber:description>Manually created graphic tag</ber:description>
</ber:graphicTypeClass>
</ber:graphicTypeClassArray>
</ber:system>
...
<ber:graphicType id="freegt_02" name="Scheme">
<ber:description>Scheme of devices inside</ber:description>
<ber:class refId="FreeGT"/>
<ber:collectionGraphicType>
<ber:graphicTypeComponentArray>
<ber:graphicTypeComponent id="freegt_02_01" name="Arrow">
<ber:pointGraphicType>
<ber:symbology>
<ber:pointSymbolizer>
<se:Graphic>
<se:ExternalGraphic>
<se:OnlineResource xlink:href="resource.xml#ber_LIDSdemo/45"/>
<se:Format/>
</se:ExternalGraphic>
</se:Graphic>
<ber:rgbColor>#CC0000</ber:rgbColor>
</ber:pointSymbolizer>
</ber:symbology>
</ber:pointGraphicType>
</ber:graphicTypeComponent>
<ber:graphicTypeComponent id="freegt_02_02" name="Arrow bold">
<ber:pointGraphicType>
<ber:symbology>
<ber:pointSymbolizer>
<se:Graphic>
<se:ExternalGraphic>
<se:OnlineResource xlink:href="resource.xml#ber_LIDSdemo/47"/>
<se:Format/>
</se:ExternalGraphic>
</se:Graphic>
<ber:rgbColor>#CC0000</ber:rgbColor>
<ber:symbolHeight>4</ber:symbolHeight>
</ber:pointSymbolizer>
</ber:symbology>
</ber:pointGraphicType>
</ber:graphicTypeComponent>
<ber:graphicTypeComponent id="freegt_02_03" name="Point full">
<ber:pointGraphicType>
<ber:symbology>
<ber:pointSymbolizer>
<se:Graphic>
<se:ExternalGraphic>
<se:OnlineResource xlink:href="resource.xml#ber_LIDSdemo/35"/>
<se:Format/>
</se:ExternalGraphic>
</se:Graphic>
<ber:rgbColor>#CC0000</ber:rgbColor>
</ber:pointSymbolizer>
</ber:symbology>
</ber:pointGraphicType>
</ber:graphicTypeComponent>
<ber:graphicTypeComponent id="freegt_02_04" name="Point empty">
<ber:pointGraphicType>
<ber:symbology>
<ber:pointSymbolizer>
<se:Graphic>
<se:ExternalGraphic>
<se:OnlineResource xlink:href="resource.xml#ber_LIDSdemo/51"/>
<se:Format/>
</se:ExternalGraphic>
</se:Graphic>
<ber:rgbColor>#CC0000</ber:rgbColor>
</ber:pointSymbolizer>
</ber:symbology>
</ber:pointGraphicType>
</ber:graphicTypeComponent>
<ber:graphicTypeComponent id="freegt_02_05" name="Polygon">
<ber:surfaceGraphicType>
<ber:symbology>
<ber:polygonSymbolizer>
<ber:fill>
<se:SvgParameter name="fill">#808080</se:SvgParameter>
<ber:fillStyle>solid</ber:fillStyle>
</ber:fill>
<se:Stroke>
<se:SvgParameter name="stroke">#CC0000</se:SvgParameter>
<se:SvgParameter name="stroke-opacity">0.5</se:SvgParameter>
<se:SvgParameter name="stroke-width">2</se:SvgParameter>
</se:Stroke>
</ber:polygonSymbolizer>
</ber:symbology>
</ber:surfaceGraphicType>
</ber:graphicTypeComponent>
<ber:graphicTypeComponent id="freegt_02_06" name="Line">
<ber:curveGraphicType>
<ber:symbology>
<ber:lineSymbolizer>
<se:Stroke>
<se:SvgParameter name="stroke">#CC0000</se:SvgParameter>
<se:SvgParameter name="stroke-width">2</se:SvgParameter>
</se:Stroke>
</ber:lineSymbolizer>
</ber:symbology>
</ber:curveGraphicType>
</ber:graphicTypeComponent>
<ber:graphicTypeComponent id="freegt_02_07" name="Text">
<ber:textGraphicType>
<ber:symbology>
<ber:textSymbolizer>
<se:Fill>
<se:SvgParameter name="fill">#CC0000</se:SvgParameter>
</se:Fill>
<ber:fontHeight>2</ber:fontHeight>
</ber:textSymbolizer>
</ber:symbology>
</ber:textGraphicType>
</ber:graphicTypeComponent>
</ber:graphicTypeComponentArray>
</ber:collectionGraphicType>
</ber:graphicType>
Example: Defining graphic tags – Direction symbol.
<ber:model>
...
<ber:system id="0">
...
<ber:graphicTypeClassArray>
<ber:graphicTypeClass id="DirectionSymbol" name="Direction symbol">
<ber:description>Symbol representing line direction, graphic tag</ber:description>
</ber:graphicTypeClass>
</ber:graphicTypeClassArray>
</ber:system>
...
<ber:graphicType id="dirsymb_02" name="Direction symbol 2">
<ber:description>Arrow without label line</ber:description>
<ber:class refId="DirectionSymbol"/>
<ber:collectionGraphicType>
<ber:symbology>
<ber:derivedSymbolizer/>
</ber:symbology>
<ber:graphicTypeComponentArray>
<ber:graphicTypeComponent id="dirsymb_02_01" name="Arrow" roleId="directionSymbol">
<ber:pointGraphicType>
<ber:symbology>
<ber:pointSymbolizer>
<se:Graphic>
<se:ExternalGraphic>
<se:OnlineResource xlink:href="resource.xml#ber_LIDSdemo/47/left-center"/>
<se:Format/>
</se:ExternalGraphic>
</se:Graphic>
<ber:symbolHeight>1</ber:symbolHeight>
</ber:pointSymbolizer>
</ber:symbology>
</ber:pointGraphicType>
</ber:graphicTypeComponent>
</ber:graphicTypeComponentArray>
</ber:collectionGraphicType>
</ber:graphicType>
Example: Defining graphic tags – Reduction - lines.
<ber:model>
...
<ber:system id="0">
...
<ber:graphicTypeClassArray>
<ber:graphicTypeClass id="BorderLineReduction" name="Reduction - lines">
<ber:description>This graphic type is used for reduction consisting of lines.</ber:description>
</ber:graphicTypeClass>
</ber:graphicTypeClassArray>
</ber:system>
...
<ber:graphicType id="reductionL_01" name="Reduction - lines 1">
<ber:description>Border lines and closing lines</ber:description>
<ber:class refId="BorderLineReduction"/>
<ber:collectionGraphicType>
<ber:symbology>
<ber:derivedSymbolizer/>
</ber:symbology>
<ber:graphicTypeComponentArray>
<ber:graphicTypeComponent id="reductionL_01_1" name="Border line" roleId="borderLine">
<ber:curveGraphicType/>
</ber:graphicTypeComponent>
<ber:graphicTypeComponent id="reductionL_01_2" name="Closing line" roleId="closingLine">
<ber:curveGraphicType/>
</ber:graphicTypeComponent>
</ber:graphicTypeComponentArray>
</ber:collectionGraphicType>
</ber:graphicType>
Example: Defining graphic tags – Reduction - polygon.
<ber:model>
...
<ber:system id="0">
...
<ber:graphicTypeClassArray>
<ber:graphicTypeClass id="BorderPolygonReduction" name="Reduction - polygon">
<ber:description>This graphic type is used for reduction consisting of polygon.</ber:description>
</ber:graphicTypeClass>
</ber:graphicTypeClassArray>
</ber:system>
...
<ber:graphicType id="reductionP_01" name="Reduction - polygon 1">
<ber:description>Reduction as polygon</ber:description>
<ber:class refId="BorderPolygonReduction"/>
<ber:collectionGraphicType>
<ber:symbology>
<ber:derivedSymbolizer/>
</ber:symbology>
<ber:graphicTypeComponentArray>
<ber:graphicTypeComponent id="reductionP_01_1" name="Border polygon">
<ber:surfaceGraphicType>
<ber:symbology>
<ber:polygonSymbolizer>
<ber:fill>
<se:SvgParameter name="fill-opacity">0.3</se:SvgParameter>
<ber:fillStyle>solid</ber:fillStyle>
</ber:fill>
</ber:polygonSymbolizer>
</ber:symbology>
</ber:surfaceGraphicType>
</ber:graphicTypeComponent>
</ber:graphicTypeComponentArray>
</ber:collectionGraphicType>
</ber:graphicType>
Mapping graphic tag types for change feature type function
Function change feature type enables preserving of defined graphic tags of the source feature after converting to target feature type. GraphicTagType definition is unique for every feature type and different feature types can’t share the same graphicTagType definition. That’s why some additional mapping is necessary. The mapping is defined in graphicTagTypeMappingArray in option.xml.
The rules for processing are different for individual graphicClasses:
-
BorderLineReduction, BorderPolygonReduction, DirectionSymbol – the mapping is defined for source and target graphicTagType only
-
if the mapping doesn’t exist, the graphicTag is deleted
-
if the mapping exists, individual components are mapped automatically using their roles
-
-
DA– the mapping is defined for source and target graphicTagType only
- if the mapping doesn’t exist, the system searches, if the source graphicTagType shares common definition with some graphicTagType of target feature type in displayableAttributeArray in option.xml
-
FreeGT – the mapping can include both source and target graphicTagType and also individual components
-
if the mapping doesn’t exist at all, the graphicTag is deleted
-
if the mapping exists for source and target graphicTagType, but is missing for particular component
-
and source and target graphicTagType refer the same graphicType -> component is preserved
-
and source and target graphicTagType refer different graphicType -> component is deleted
-
-
GhostSymbol, BorderLine, BorderPolygon, PlacedCS, CSReference, DetailReference, DetailReferenceMap
- graphic tags of these classes are not preserved after changing feature type
Example: Defining graphic tags mapping in option.xml.
<ber:graphicTagTypeMappingArray>
<ber:graphicTagTypeMapping id="m_1" name="DA 1">
<ber:graphicTagType xlink:href="model.xml#ft_A_da_1"/>
<ber:graphicTagType xlink:href="model.xml#ft_B_da_1"/>
</ber:graphicTagTypeMapping>
<ber:graphicTagTypeMapping id="m_2" name="DA 2">
<ber:graphicTagType xlink:href="model.xml#ft_A_da_2"/>
<ber:graphicTagType xlink:href="model.xml#ft_B_da_2"/>
<ber:graphicTagType xlink:href="model.xml#ft_C_da_2"/>
</ber:graphicTagTypeMapping>
<ber:graphicTagTypeMapping id="m_3" name="Direction symbols">
<ber:graphicTagType xlink:href="model.xml#ft_A_dirsymb_01"/>
<ber:graphicTagType xlink:href="model.xml#ft_A_dirsymb_02"/>
<ber:graphicTagType xlink:href="model.xml#ft_A_dirsymb_03"/>
<ber:graphicTagType xlink:href="model.xml#ft_B_dirsymb_01"/>
<ber:graphicTagType xlink:href="model.xml#ft_C_dirsymb_01"/>
</ber:graphicTagTypeMapping>
<ber:graphicTagTypeMapping id="m_4" name="Free graphic tags">
<ber:graphicTagType xlink:href="model.xml#ft_A_freegt_01"/>
<ber:graphicTagType xlink:href="model.xml#ft_A_freegt_02"/>
<ber:graphicTagType xlink:href="model.xml#ft_B_freegt_01"/>
<ber:graphicTagType xlink:href="model.xml#ft_C_freegt_01"/>
<ber:equivalentComponents>
<ber:graphicTypeComponent xlink:href="model.xml#freegt_01_01"/>
<ber:graphicTypeComponent xlink:href="model.xml#freegt_01_02"/>
<ber:graphicTypeComponent xlink:href="model.xml#freegt_01_03"/>
<ber:graphicTypeComponent xlink:href="model.xml#freegt_02_06"/>
</ber:equivalentComponents>
<ber:equivalentComponents>
<ber:graphicTypeComponent xlink:href="model.xml#freegt_01_04"/>
<ber:graphicTypeComponent xlink:href="model.xml#freegt_01_05"/>
<ber:graphicTypeComponent xlink:href="model.xml#freegt_01_06"/>
<ber:graphicTypeComponent xlink:href="model.xml#freegt_02_07"/>
</ber:equivalentComponents>
<ber:equivalentComponents>
<ber:graphicTypeComponent xlink:href="model.xml#freegt_01_07"/>
<ber:graphicTypeComponent xlink:href="model.xml#freegt_01_08"/>
<ber:graphicTypeComponent xlink:href="model.xml#freegt_01_09"/>
<ber:graphicTypeComponent xlink:href="model.xml#freegt_02_01"/>
<ber:graphicTypeComponent xlink:href="model.xml#freegt_02_02"/>
<ber:graphicTypeComponent xlink:href="model.xml#freegt_02_03"/>
<ber:graphicTypeComponent xlink:href="model.xml#freegt_02_04"/>
</ber:equivalentComponents>
<ber:equivalentComponents>
<ber:graphicTypeComponent xlink:href="model.xml#freegt_01_10"/>
<ber:graphicTypeComponent xlink:href="model.xml#freegt_01_11"/>
<ber:graphicTypeComponent xlink:href="model.xml#freegt_01_12"/>
<ber:graphicTypeComponent xlink:href="model.xml#freegt_02_05"/>
</ber:equivalentComponents>
</ber:graphicTagTypeMapping>
</ber:graphicTagTypeMappingArray>
Display order
Display order of various geometry data can be preconfigured in metadata or in saved settings. These definitions can usually be reconfigured by the user interactively depending on the particular client application functionality.
Feature types
Feature type order definition is different for various layer kinds:
-
layer defined by template setting – order of feature types is defined in a template definition.
-
layer defined by category (WMS / WMTS layer) – order of feature types is defined by the order of items in category definition in model.xml.
-
layer defined as a selection of individual features – order of feature types is set alphabetically by the the feature type name
Graphic tag types
Individual graphic tag types are ordered inside a feature type by the optional drawPriority attribute in model.xml:
-
smaller value moves the graphic tag type up in the order
-
bigger value moves the graphic tag type down
-
value 0 means the order of master graphics
Graphic tag and collection components
Order of individual components inside a graphic tag or master graphics collection is defined by the order of specifying graphicTypeComponent in graphicTypeComponentArray in model.xml.