In SystemWeaver, every object, e.g., items, parts, users, libraries, etc., is identified by a 64-bit identification number, unique within the specific SystemWeaver database. 


Although the identifier described in Identification in SystemWeaver is the core identifier concept, SystemWeaver supports additional means of identification which can be of use when performing continuous export and import in one direction between a source and target database. These additional IDs are explained in this article. 

  • Ancestor ID
  • Foreign ID
  • Foreign Ancestor ID


All versions of an item or part share a common Ancestor ID (which happens to be the ID of the first version). The Ancestor ID is normally of no interest to the user of SystemWeaver, and cannot be seen in any of the views of the swExplorer client. For special purposes, it can be observed by the use of the Field code "AncestorHandle".


In this structure tree grid example, you can see that the Ancestor ID of "Fun: Adaptive cruise control" version 2 is different from it's own ID whereas the Ancestor ID of "Fun: Climate Control" version 1 is the same as its own ID since it is version 1. 


For the purpose of repeated exchange of data between a SystemWeaver database and some other source - which could be a different SystemWeaver database - SystemWeaver also manages the Foreign ID and Foreign Ancestor ID properties.


The Foreign ID represents an original ID, as used in the source database. In repeated imports from such a source database, the Foreign ID can be used for identifying and matching the corresponding items in the source database - and the corresponding XML file - and the target database.

The Foreign Ancestor ID is used in the same way, and for a similar purpose, for matching items based on the ID of the same ancestor item.


The format of these identifiers is free, any string can be used, up to a (generous) maximum length. As an example, the name of an item could be used as a Foreign ID, as long as it's unique within the exchange.


The figure below illustrates the principles of Ancestor ID, Foreign ID and Foreign Ancestor ID, for a source (leftmost) and target (rightmost) database.