Multilines

igds_type: igds_line

The multilines are stored with their igds_type as igds_line, but the fact that they are multilines can be detected from igds_element_type, which is stored as type 36.

The multilines are stored as lines, therefore they are written as lines when performing a DGN-to-DGN translation. Currently, the multilines are imported with their centerlines only. However, the attributes such as offset and symbology (style, weight, color) of the pieces are stored in the list attribute igds_multiline{}. When reading multilines from a V7 dataset, the multilines are ignored if they are part of a cell. In addition, if the keyword READ_BYTE_OFFSET is set to true in the underlying mapping file, then it gets ignored for multilines.

A multiline has the attributes shown below.

Attribute Name

Contents

igds_mlineStyle{#}.offset

igds_mlineStyle{#}.style

igds_mlineStyle{#}.color

igds_mlineStyle{#}.weight

igds_mlineStyle{#}.level

Where offset is the perpendicular distance of the piece from the centerline, and {}.style, {}.color, {}.weight and {}.level are the line styles, color, weight and level of the individual pieces.

igds_mlinehdr_num_lines

Number of pieces of the multiline.

Range: Any real number > 0

Default: No default

igds_mlinehdr_num_breaks

Number of breaks of the multiline.

Range: Any real number > 0

Default: No default

igds_mlinehdr_num_nodes

Number of nodes of the multiline.

Range: Any real number > 0

Default: No default

igds_mlinehdr_startcap_angle

Angle in degrees of the start cap.

Range: -360.0..360.0

Default: 0

igds_mlinehdr_endcap_angle

Angle in degrees of the end cap.

Range: -360.0..360.0

Default: 0

igds_mlinehdr_freeze_group

Multiline header attribute - value is always 0 (for internal use by the toolkit)

igds_mlinehdr_version

Multiline header version - currently it is 3 (for internal use by the toolkit)

igds_mlinehdr_closed

Whether or not multiline is closed.

Range: 0 or 1

Default: No default

igds_mlinehdr_arc_cap_by_profile_
line

Multiline header flags (for internal use by the toolkit)

igds_mlinehdr_offset_model_valid

Multiline header flags (for internal use by the toolkit)

igds_mlinehdr_offset_mode

Multiline header flags (for internal use by the toolkit)

igds_mlinehdr_placement_offset

Global offset from definition points.

Range: Real Number

Default: No default

igds_mlinehdr_style_id.lo

igds_mlinehdr_style_id.hi

ID of multiline style element.

Range: Integer

Default: No default

igds_mlinehdr_styleScale

Scale of multiline style element.

Range: Real Number

Default: No default

igds_mlinehdr_updv.x

igds_mlinehdr_updv.y

igds_mlinehdr_updv.z

Up direction vector for 3D to determine side orientation.

Range: Real Number

Default: No default

igds_mlattrib_startcap.usestyle

igds_mlattrib_startcap.useweight

igds_mlattrib_startcap.usecolor

igds_mlattrib_startcap.cap_on_arc

igds_mlattrib_startcap.cap_out_arc

igds_mlattrib_startcap.cap_line

igds_mlattrib_startcap.use_class

igds_mlattrib_startcap.customstyle

igds_mlattrib_startcap.cap_color_
from_segment

igds_mlattrib_startcap.construction_
class

 

The same list of attributes is repeated for end_cap and joint; for example:

igds_mlattrib_endcap.usestyle etc.

and

igds_mlattrib_joint.usestyle etc.

Flags specifying the properties of the multiline.

Range: 0 or 1

Default: No default

 

igds_mlattrib_startcap.style

Style of start cap.

Range: 0..7

Default: 0

igds_mlattrib_startcap.weight

Weight of start cap.

Range: 0..31

Default: 0

igds_mlattrib_startcap.color

Color of start cap.

Range: 0..254

Default: 0

igds_mlattrib_endcap.style

Style of end cap.

Range: 0..7

Default: 0

igds_mlattrib_endcap.weight

Weight of end cap.

Range: 0..31

Default: 0

igds_mlattrib_endcap.color

Color of end cap.

Range: 0..254

Default: 0

igds_mlattrib_joint.style

Style of joint cap.

Range: 0..7

Default: 0

igds_mlattrib_joint.weight

Weight of joint cap.

Range: 0..31

Default: 0

igds_mlattrib_joint.color

Color of joint cap.

Range: 0..254

Default: 0

igds_mlineStyle{#}.offset

Offset of each member of multiline

Default: No Default

igds_mlineStyle{#}.lineattrib.usestyle

igds_mlineStyle{#}.lineattrib.useweight

igds_mlineStyle{#}.lineattrib.usecolor

igds_mlineStyle{#}.lineattrib.cap_on_arc

igds_mlineStyle{#}.lineattrib.cap_out_arc

igds_mlineStyle{#}.lineattrib.cap_line

igds_mlineStyle{#}.lineattrib.use_class

igds_mlineStyle{#}.lineattrib.customstyle

igds_mlineStyle{#}.lineattrib.cap_color_from_segment

igds_mlineStyle{#}.lineattrib.construction_class

Values defining the flag of line attribute

Default: No Default

igds_mlineStyle{#}.lineattrib.style

Style of line attribute

Range: 0..7

Default: 0

igds_mlineStyle{#}.lineattrib.weight

Weight of line attribute

Range: 0..31

Default: 0

igds_mlineStyle{#}.lineattrib.color

Color of line attribute

Range: 0..254

Default: 0

igds_mlineStyle{#}.lineattrib.level

Level of line attribute

Default: 0

igds_mlinenode_props

If a multiline has a large number of nodes, which is very likely, it will need to be cleaned up before viewing it in the Universal Viewer. Store these two attributes as strings with comma-separated values. This will be the protocol

b_index1, bCount1, b_index2, bCount2, ...... b_indexn, bCountn

The writer will parse them in the same order and use them.

Default: No default

igds_mlinebreak{#}.segmask

Mask bit set for each line that is broken.

Default: No default

igds_mlinebreak{#}.from_joint

igds_mlinebreak{#}.to_joint

Flags setting the line break properties

Default: No default

igds_mlinebreak{#}.point_offset

Offset from point

Default: No default

igds_mlinebreak{#}.length

Break length

Default: No default

igds_mlinebreak{#}.angle

Reserved - should be 0.0

Default: No default