Writing Levels in V8 (DEF Line Parameters)
In V8, the feature type is always taken as the level name. When the Write Tags parameter is set to Yes in the Workbench writer parameters (as shown below), then the feature type will also be the tagset name. (For more information, see Tags.)
Levels are created with this name and the level numbers are assigned from the DEF line. However, for backward compatibility, a feature’s igds_level and igds_level_name overwrite the level_number and feature_type.
The following protocol is used when processing levels:
- If the level is already provided in the seed file, then it is left as-is. For cells or shared cells to be written, the related members will also be written to the seed file level.
- If the feature type has a corresponding DEF line parameter, and if that level is not already in the seed file, then that level is created with symbology as defined on the DEF line. This allows users to create levels with the desired symbology. Note that in order to apply the level symbology to the features belonging to the level, the attributes igds_color_set_bylevel, igds_style_set_bylevel and igds_weight_set_bylevel must be set to Yes. If none of the above are provided, then symbology of the first feature appearing in a level is assigned as its symbology.
For cells or shared cells to be written, the related members will either be written to the default level of 0, if specified, or they will be written to levels that will be created in the destination to match the levels in the cell definitions in the cell library.
- If the feature type has a corresponding DEF line parameter, and if the value of idgs_level is undefined and the feature type (level Name) is not “Default”, then the DGN writer assigns it level number 1.
The DEF line parameters (and corresponding Workbench Format Parameters) for defining levels are as follows:
Parameter Name |
Corresponding |
Contents |
---|---|---|
igds_level |
Level Number | The level number corresponding to the feature type. Note that feature type is treated as level name. |
igds_level_comment |
Level Comment | The comment of the destination level. |
igds_level_color |
Level Color |
The color of the destination level. Used for elements which set their color 'by level'. |
igds_level_style |
Level Style |
The style of the destination level. Used for elements which set their style 'by level'. |
igds_level_weight |
Level Weight |
The weight of the destination level. Used for elements which set their weight 'by level'. |
igds_level_display |
Level Display |
The display property of the level to be created, which affects the display or visibility of the elements on it. |
igds_level_freeze |
Level Freeze |
The freeze property of the level to be created, which affects the display or visibility of the elements on it, including nested or complex elements which may have their own level information. |
igds_level_lock |
Level Lock |
The lock property of the level to be created, which affects the ability to manipulate the elements on it. |
igds_level_override_color | Level Override Color |
The color of the additional symbology, called override symbology, for the destination level. This is set in combination with igds_use_level_override_color, which flags this override for use. If set to 'From_Seed_File', the override color is taken from the value for level override color in the seed file. If this value is not found in the seed file, the default seed file level is used. |
igds_use level_override_color |
Use Level Override Color |
The flag which indicates that override color should be used as a part of level override symbology. This is set in combination with igds_level_override_color parameter, which specifies the override color value. If set to 'From_Seed_File', the override color flag is taken from the default level in the seed file. |
igds_level_override_style | Level Override Style |
The style of the additional symbology, called override symbology, for the destination level. This is set in combination with igds_use_level_override_style, which flags this override for use. If set to 'From_Seed_File', the override style is taken from the value for level override style in the seed file. If this value is not found in the seed file, the default seed file level is used. |
igds_use level_override_style |
Use Level Override Style |
The flag which indicates that override style should be used as a part of level override symbology. This is set in combination with igds_level_override_style parameter, which specifies the override style value. If set to 'From_Seed_File', the override style flag will be taken from the default level in the seed file. |
igds_level_override_weight | Level Override Weight |
The weight of the additional symbology, called override symbology, for the destination level. This is set in combination with igds_use_level_override_weight, which flags this override for use. If set to 'From_Seed_File', the override weight is taken from the value for level override weight in the seed file. If this value is not found in the seed file, the default seed file level is used. |
igds_use level_override_weight |
Use Level Override Weight |
The flag which indicates that override weight should be used as a part of level override symbology. This is set in combination with igds_level_override_weight parameter, which specifies the override weight value. If set to 'From_Seed_File', the override weight flag is taken from the default level in the seed file. |
Example
Open the Feature Type dialog.
In this case, the level was set with the level name test2, and set with the corresponding level number of 4, comment, and symbology as defined above.
Note that if any feature being written to this level is intended to have symbology by_level, then the attributes igds_color_set_bylevel, igds_style_set_bylevel, and igds_weight_set_bylevel must be exposed in the Format Attributes tab:
The level override values on the DEF line are separate from the feature attributes. They form an additional symbology for a written level, which is used with the Level symbology setting, taken from the seed file.
Note: Destination feature types are treated differently for V7 and V8. Version 7 always sees the destination feature types as level numbers, whereas V8 sees them as level names. For V8, the feature attribute igds_level_name overwrites feature_type, and feature attribute igds_level overwrites DEF line parameter igds_level.
Workspaces in Version 7 and Version 8
A workspace originally created using a V8 seed file can only be used to write to V8. A workspace originally created using a V7 seed file can be used to write to both V7 (although there will be a difference in the way destination feature types are handled) or V8. Two additional limitations are applied to V8:
- Limitation of level numbers from 1 to 63 will also be applied to V8.
- Feature types will always be generated as level numbers just like V7, but those level numbers will be treated as level_names by V8. For instance, if you tried to write to level_number 3, the level would be written as level number 3 for V7, but the level name would be written as “3” for V8 (when its number may or may not be 3). This can be overcome by specifying values for igds_level_name and igds_level.