External Reference Files
Reference files can be read in two ways. In order to read the supported elements stored in reference files, the keyword READ_XREF_FILES has to be set to yes. The default is no. For this method of reading the following is true: All the reference files inherit the working units and offsets from the parent file and their respective units and offsets are ignored. The V8 reader can read both v7 and v8 references, whereas V7 will read only V7 references. Both V7 and V8 can read nested references. The nesting can be restricted to specific levels by setting the keyword READ_XREF_NEST_DEPTH. References from the root dataset are considered level 1, and nested references are considered further levels.
Alternatively or in addition, when the keyword READ_XREFS_AS_ELEMENTS
is set to yes, the V8 reader is able to read reference files as individual features with an igds_type
of igds_xref
. These features are a non-graphical representation of the XREF elements themselves, not the elements stored within the referenced files.
An external reference file is referred to by a path. If the V8 reader is unable to find a reference file at the path that is stored, it will make a secondary check for a file of the same name in the same folder as the source dataset, which may then be read as the reference file. The value of the igds_xref_file_path
attribute reflects the path that is actually used, not the path that was stored. In contrast, the igds_linkage{}.string
attribute, which generally exists for external reference file elements, is not altered on read, and will reflect the path which is stored in the file, regardless of whether it exists.
The V8 writer is able to create external reference elements in two ways. When the V8 writer uses a seed file, the external reference file elements in the seed file are preserved and put into the destination dataset. Additionally, when features with an igds_type
of igds_xref
are given to the V8 writer, it will create an XREF element to establish an external reference for the destination dataset. If the same external reference file is to be created by both a feature and the seed file, the V8 writer will prefer the element from the seed file.
The IGDS V7 writer will also preserve external reference elements from the seed file to the destination dataset. It does not support writing of igds_xref elements from FME features.
Note that it is not required for features with igds_type of igds_xref to be written, if they are referenced by the seed file or its references. It is also not required for such reference features to be written if they are nested references from root level external references. Basically, if the root level external references are written or kept in a destination dataset from a seed file, all levels of external references will exist in the destination. In fact, nested reference features which do not have an igds_xref_parent_path which indicate that it represents a root level reference, then the feature will be skipped for writing.
An external reference element has the attributes shown below.
Attribute Name |
Contents |
igds_xref_camera_focal_len |
The focal length value for the camera used for the view of the external file reference data. Range: Real Number Default: 0.0 |
igds_xref_camera_pos_x |
The position in the x dimension for the camera used for the view of the external reference file data. Range: Real Number Default: 0.0 |
igds_xref_camera_pos_y |
The position in the y dimension for the camera used for the view of the external reference file data. Range: Real Number Default: 0.0 |
igds_xref_camera_pos_z |
The position in the z dimension for the camera used for the view of the external reference file data. Range: Real Number Default: 0.0 |
igds_xref_desc |
The description of the external reference file. Range: String Default: No default |
igds_xref_file_build_opts |
The file builder option mask for the external reference file. Range: Integer Default: 15 |
igds_xref_file_disp_opts |
The file displayer option mask for the external reference file. Range: Integer Default: 73858 |
igds_xref_file_name |
The filename of the external reference file. This is a basename and extension, not a path. This attribute is also added to elements read from external reference files, to identify their source file. This attribute is required for writing external reference file elements. Range: String Default: No default |
igds_xref_file_num |
The file number for the external reference file. Range: Integer Default: 1 |
igds_xref_group_id |
The number of the group to which this external reference file belongs. Range: Integer Default: 0 |
igds_xref_master_origin_x |
The x dimension value for the origin of the external reference file position in master file UORs. Range: Real Number Default: 0.0 |
igds_xref_master_origin_y |
The y dimension value for the origin of the external reference file position in master file UORs. Range: Real Number Default: 0.0 |
igds_xref_master_origin_z |
The z dimension value for the origin of the external reference file position in master file UORs. Range: Real Number Default: 0.0 |
igds_xref_model_name |
The name of the model of the external reference file. This value may be empty for the default model. Range: String Default: No default |
igds_xref_name |
The logical name of the external reference file. This value may distinguish between multiple references to the same reference file. Range: String Default: No default |
igds_xref_nest_depth |
The depth of nested reference of the external reference file. Range: 0..65536 Default: 0 |
igds_xref_parent_attach_id |
The id of the parent attachment of the external reference file. Range: Numeric string Default: “0” |
igds_xref_parent_file_path (V8 only) |
The file path of the parent file for an external reference file. It is added to features which represent external reference file elements (those with the an igds_type of igds_xref). This attribute is also added to elements read from an external reference file, to identify which file has referenced the external reference file. This attribute affects the writing of elements which represent external reference files. If this attribute value matches the value of igds_dataset of a feature with an igds_type of igds_xref, then an external reference file element will be written. Otherwise, it is not a root level reference, and will be skipped on write. Range: String Default: No default |
igds_xref_path |
The file path of the external reference file. This attribute is also added to elements read from external reference files, to identify their source file. This attribute is required for writing external reference file elements. Note that on write, this attribute takes precedence over any linkage string that similarly represents the an xref path. Range: String Default: No default |
igds_xref_reference_origin_x |
The x dimension value for the origin of the external reference file position in reference UORs. Range: Real Number Default: 0.0 |
igds_xref_reference_origin_y |
The y dimension value for the origin of the external reference file position in reference UORs. Range: Real Number Default: 0.0 |
igds_xref_reference_origin_z |
The z dimension value for the origin of the external reference file position in reference UORs. Range: Real Number Default: 0.0 |
igds_xref_rotation |
The rotation value for the external reference file. Range: Real Number Default: 0.0 |
igds_xref_scale |
The conversion factor value for the external reference file. Range: Real Number Default: 1.0 |
igds_xref_version |
The version number value for the external reference file. Range: Integer Default: 1 |
igds_xref_z_back |
The back z clip value for the external reference file. Range: Real Number Default: 0.0 |
igds_xref_z_front |
The front z clip value for the external reference file. Range: Real Number Default: 0.0 |