A custom filter rule for Gramps that matches people who share a biological ancestor with a chosen person.
What "biological" means here. Gramps records each child's link to a parent with a child-reference type — Birth, Adopted, Foster, Stepchild or Sponsored — shown in the relationship drop-down on the child reference. This rule treats only the Birth links as biological and follows those alone. Wherever this document says biological, it means "connected through a Birth child-reference". (Gramps' own term for the link is Birth; this addon calls the resulting line biological because that is what the traversal captures.)
Gramps ships with the rule "People with a common ancestor with <person>".
When it walks up the family tree it follows every parent link, regardless of
whether a child is a birth, adopted, foster or step child. As a result, adopted
and foster children are treated as blood relatives of their adoptive/foster
family's ancestors.
This rule does the same job, but follows a parent link only when the child's relationship to that parent is "Birth". Adopted, foster, step and sponsored children are therefore included only if they are also recorded as a birth child in a biological family. A child that appears solely in an adoptive or foster family is given no ancestors beyond itself and will not match through that family.
Close Gramps.
Extract the downloaded ZIP archive.
Copy or extract the project folder into your Gramps user plugin folder.
Keep the complete folder structure unchanged, including any locale folder
included with the project.
The user plugin folder is normally located here:
%AppData%\gramps\gramps<version>\plugins\~/.gramps/gramps<version>/plugins/~/Library/Application Support/gramps/gramps<version>/plugins/Replace <version> with the Gramps version folder used on your system.
Start Gramps again.
Check that the installed filter, rule, gramplet or tool is available where described in the project documentation.
If the project does not appear or fails to load, check Help → Plugin Manager for an error message.
Because the project was installed only in the user plugin folder, removing that folder removes the test installation without changing the original Gramps program files.
<person>".The rule can be combined with other rules exactly like the built-in one, and the resulting filter can be used for reports, exports and tags.
The rule relies entirely on the child reference relationship type (Birth / Adopted / Foster / …) recorded on each child, for both the father and the mother side. If an adopted or foster child is left with the default "Birth" relationship, it will still be counted as biological. It is worth checking that these relationship types are set correctly — especially on blended families, those that mix birth and non-birth children.
For this purpose I have created a companion rule,
"People recorded as a non-birth child" (HasNonBirthChildRelation), which
lists every child recorded with a non-birth relationship so you can review them:
https://myown-project.dk/tools/gramps-filter-rules/non-birth-child-relation
GNU General Public License, version 2 or later — same as Gramps. The full text
is in the accompanying LICENSE file.
This addon ships with a Danish translation and is ready for more languages. Layout:
<addon folder>/
*.py *.gpr.py
po/
template.pot # all translatable strings (source)
da.po # Danish translation (source)
locale/
da/LC_MESSAGES/addon.mo # compiled Danish catalog (used at runtime)
Gramps loads locale/<lang>/LC_MESSAGES/addon.mo automatically when the
interface is set to that language, and falls back to English otherwise. The
.mo filename must be exactly addon.mo.
To add another language, e.g. German:
po/template.pot to po/de.po and translate each msgstr.locale/de/LC_MESSAGES/addon.mo. With GNU gettext:
msgfmt po/de.po -o locale/de/LC_MESSAGES/addon.mo
(or use the Python polib package: pofile('po/de.po').save_as_mofile(...)).Only strings unique to this addon are translated here; standard Gramps terms (category names, "ID:", the relationship-type names in the drop-down, etc.) come from Gramps' own translations automatically.