Every Record in Family Historian has a numeric Record Identifier which is unique within its type of record. Records of different types may share the same identifier, but this is a meaningless coincidence.
How are Record Identifiers Assigned?
- Identifiers are assigned automatically, starting from 1, and are never reused within a record type. Therefore, you cannot assume that they form an unbroken run — as soon as you delete a record, a gap appears in the sequence of Record Identifiers.
- One consequence of the existence of these gaps is that you cannot rely on the highest Record Id to help you determine how many records you have of a particular type. Instead us File > File Statistics…[ to view record counts.
- The maximum Record ID value is 2,147,483,647 = 231 – 1, so in practice, there will never be a point at which a ProjectA Project is a Windows folder, created by Family Historian, which contains all your Family Tree information recorded in Family Historian. Normally located in the Documents\Family Historian Projects folder. runs out of Records IDs.
Displaying Record IDs
- By default, Records IDs are not visible on the Focus WindowThe Focus Window is the primary workspace window. It displays information about a chosen person, called the 'Focus Person'., but you can use Tools > Preferences, go to the Focus Window tab and tick the option to show Record Ids.
- Records IDs are shown by default in the Record Window and in the header of a Property BoxThe Property Box is the primary window for data entry and for viewing details of stored records. It is used with records of all types. . If you know the Record ID of a record you wish to view, the Records Windows has a Go To: option to find that record quickly.
- They also appear in the All tab of a property box for associated records (e.g. the parents of an individual).
- In a Diagram or Query, you can use a functionA 'function' is an expression which returns values based on computations. Typically, functions require data to be supplied to them as 'parameters'. A function in Family Historian is similar to a 'function' as used in spreadsheet applications (such as MS such as
=RecordId(%INDI%
), or=RecordId(%FAM%)
or=RecordId(%SOUR%)
to display a Record ID.
Custom IDs
- In addition to the Record ID assigned by ƒh, most records can also have a Custom IDs, i.e. alphanumeric identifier assigned by the user. These can be useful if you need to cross reference a record with one or more external system (perhaps another genealogy database, or an online tree).
- By default, these can be added on the All tab of the Property Box: right-click the record Name and use Add Miscellaneous then Add Custom Id, or for some records just Add Custom Id.
- Once added, they are visible on the All tab, but you can also customise the Main tab so that you can view and edit them directly:
- Use the menu button
and choose Customize Data Entry… Find Custom Id in the left hand pane and use the > button
to add it to the Selected items in the right hand pane. Click OK.
- Use the menu button
- The Custom Id can also be customised into a Records WindowThe Records Window provides a comprehensive view of all the information stored within a Family Historian project. column via Lists > Configure Record Window Columns, and sorted into order. The default ExpressionExpressions are composed from two technical features: Data References and Functions; they also often involve Operators to compare values. is
%INDI.REFN%
which will sort alpha-numerically. To sort purely numeric Custom Id then edit the column Expression to use=TextToNumber(%INDI.REFN%)
. Similar Expressions can be used in Diagrams, Reports, QueriesQuerying is a very powerful feature that allows you to specify and save criteria for identifying a set of records of a given record type., etc. - Every record that allows a Custom Id actually allows an unlimited quantity of them such as
%INDI.REFN[1]%
and%INDI.REFN[2]%
. Also each Custom Id offers a subsidiary classification Type field such as%INDI.REFN[1].TYPE%
. As described above, all these fields can be customised into the Property Box, Records Window, etc, and the Type field tested to conditionally include classes of Custom Id, e.g.=TextIf(%INDI.REFN[1].TYPE%="Prime",%INDI.REFN[1]%,"")
.
Renumbering Records
There is a method of modifying Record Ids, but generally the Record Id should be left alone because of the possible impact on saved Charts or Diagrams, Reports, Websites, and Internet Data Matching. Only experienced users who are happy that their actions will not cause corruption should proceed beyond this point.
Procedure
Use Tools > Record Identifiers… to display the Work with Record Identifiers dialog.
Click the Help button for the explanation of each item.
Choose the Record Type you want to manipulate.
The simplest option is to renumber all records starting from 1.
To selectively renumber particular records takes the following steps, and relies on the Custom Id field being unused in every record. This can be used to back fill missing Record Ids caused by deleting or merging records.
- Select Copy existing record ids into the Custom Id field, then Perform Task and Close dialogue.
- Open the Property Box of a record to be selectively renumbered. On its All tab, edit the Custom Id field to hold the desired Record Id number, which must be unique. Repeat for each record to be renumbered.
- Select Generate new record ids by copying Custom Id values, then Perform Task and Close dialogue.
- To clear the Custom Id fields will require a Custom Query to display all the records with the Custom Id field, so that the entire column of values can be deleted. However, if this process is to be repeated regularly, then leave the values in placeAccording to GEDCOM, a Place should hold "The jurisdictional name of the place where the event took place…" , so the first step above can be omitted.
Use the Find Duplicate Custom ID’s pluginPlugins are small programs that allow new features to be added without upgrading Family Historian itself; some plugins are written by Calico Pie and others are written by users. to ensure all your Custom Ids are unique.