### Symbol layer model for dimensioning:

The dimension symbols (arrows, etc.) should be stored in a layer with the following fields:

- a real number field to store dimension text rotation (degree counterclockwise where zero = horizontal to the right, use expression “360-rotation_field”)

Optional fields:

- a character field to store the symbol name
- a real number field to store the symbol scale
- a character field (2 characters) field to store the punctual object type according to the following scheme:
  "B1" = first arrow block ("Block 1")
  "B2" = second arrow block ("Block 2")
  "LB" = leader arrow block ("Leader Block")
  "AB" = arc symbol ("Arc Block")
  "D1" = dimension point 1
  "D2" = dimension point 2
  (required if you want to use the editing features of an existing dimension)
- an integer number field to store the unique ID of the dimension (necessary if you want to group the objects of a dimension, and implement the erasing and editing features of an existing dimension)

An SQL example to create a PostGIS table and indexes for dimension symbol:

CREATE TABLE qad_dimension.dim_symbol

(

name character varying(50),

scale double precision,

rot double precision,

color character varying(10),

type character varying(2) NOT NULL,

id_parent bigint NOT NULL,

geom geometry(Point,3003),

id serial NOT NULL,

CONSTRAINT dim_symbol_pkey PRIMARY KEY (id)

)

WITH (

OIDS=FALSE

);

CREATE INDEX dim_symbol_id_parent

ON qad_dimension.dim_symbol

USING btree

(id_parent);

CREATE INDEX sidx_dim_symbol_geom

ON qad_dimension.dim_symbol

USING gist

(geom);

The symbol layer must be defined with a style set as follows:

- <Style>-<Single Symbol> option enabled
- <Style>-<map units> option enabled
- Set the size of the symbol so that the width of the arrow is 1 map unit (tab <Style>)
- The rotation must be read by a real number field that stores the symbol rotation through the formula "360-<field that stores the rotation>" (degree counterclockwise where zero = horizontal to the right, <Style>- option "rotation"-<Expression>)
- The scale can be read by a real number field that stores the scale of the symbol (<Style>-<Advanced>-option <Size>-“ field that stores the scale”)

The arrow symbol when inserted with rotation = 0 must be horizontal with the arrow pointing to the right and its insertion point should be on the tip of the arrow.