Record Identifiers

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 Project runs out of Records IDs.

Displaying Record IDs

  • By default, Records IDs are not visible on the Focus Window, 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 Box. 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 function 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.
  • The Custom Id can also be customised into a Records Window column via Lists > Configure Record Window Columns, and sorted into order. The default Expression 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, Queries, 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.


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 place, so the first step above can be omitted.

Use the Find Duplicate Custom ID’s plugin to ensure all your Custom Ids are unique.


Last update: 22 Feb 2024