diff --git a/Documentation/ProjectFile/boundary_condition/t_geometrical_set.md b/Documentation/ProjectFile/boundary_condition/t_geometrical_set.md
deleted file mode 100644
index 751623a80a24f1f9cd4da52013cbc32319868be2..0000000000000000000000000000000000000000
--- a/Documentation/ProjectFile/boundary_condition/t_geometrical_set.md
+++ /dev/null
@@ -1,2 +0,0 @@
-The name of the geometrical set (see \ref ogs_file_param__gml__name) in which
-the \ref ogs_file_param__boundary_condition__geometry "geometry" is defined.
diff --git a/Documentation/ProjectFile/boundary_condition/Dirichlet/c_Dirichlet.md b/Documentation/ProjectFile/prj/process_variables/process_variable/boundary_conditions/boundary_condition/Dirichlet/c_Dirichlet.md
similarity index 100%
rename from Documentation/ProjectFile/boundary_condition/Dirichlet/c_Dirichlet.md
rename to Documentation/ProjectFile/prj/process_variables/process_variable/boundary_conditions/boundary_condition/Dirichlet/c_Dirichlet.md
diff --git a/Documentation/ProjectFile/boundary_condition/Dirichlet/t_parameter.md b/Documentation/ProjectFile/prj/process_variables/process_variable/boundary_conditions/boundary_condition/Dirichlet/t_parameter.md
similarity index 100%
rename from Documentation/ProjectFile/boundary_condition/Dirichlet/t_parameter.md
rename to Documentation/ProjectFile/prj/process_variables/process_variable/boundary_conditions/boundary_condition/Dirichlet/t_parameter.md
diff --git a/Documentation/ProjectFile/boundary_condition/Neumann/c_Neumann.md b/Documentation/ProjectFile/prj/process_variables/process_variable/boundary_conditions/boundary_condition/Neumann/c_Neumann.md
similarity index 100%
rename from Documentation/ProjectFile/boundary_condition/Neumann/c_Neumann.md
rename to Documentation/ProjectFile/prj/process_variables/process_variable/boundary_conditions/boundary_condition/Neumann/c_Neumann.md
diff --git a/Documentation/ProjectFile/boundary_condition/Neumann/t_parameter.md b/Documentation/ProjectFile/prj/process_variables/process_variable/boundary_conditions/boundary_condition/Neumann/t_parameter.md
similarity index 100%
rename from Documentation/ProjectFile/boundary_condition/Neumann/t_parameter.md
rename to Documentation/ProjectFile/prj/process_variables/process_variable/boundary_conditions/boundary_condition/Neumann/t_parameter.md
diff --git a/Documentation/ProjectFile/boundary_condition/Robin/c_Robin.md b/Documentation/ProjectFile/prj/process_variables/process_variable/boundary_conditions/boundary_condition/Robin/c_Robin.md
similarity index 100%
rename from Documentation/ProjectFile/boundary_condition/Robin/c_Robin.md
rename to Documentation/ProjectFile/prj/process_variables/process_variable/boundary_conditions/boundary_condition/Robin/c_Robin.md
diff --git a/Documentation/ProjectFile/boundary_condition/Robin/t_alpha.md b/Documentation/ProjectFile/prj/process_variables/process_variable/boundary_conditions/boundary_condition/Robin/t_alpha.md
similarity index 100%
rename from Documentation/ProjectFile/boundary_condition/Robin/t_alpha.md
rename to Documentation/ProjectFile/prj/process_variables/process_variable/boundary_conditions/boundary_condition/Robin/t_alpha.md
diff --git a/Documentation/ProjectFile/boundary_condition/Robin/t_u_0.md b/Documentation/ProjectFile/prj/process_variables/process_variable/boundary_conditions/boundary_condition/Robin/t_u_0.md
similarity index 100%
rename from Documentation/ProjectFile/boundary_condition/Robin/t_u_0.md
rename to Documentation/ProjectFile/prj/process_variables/process_variable/boundary_conditions/boundary_condition/Robin/t_u_0.md
diff --git a/Documentation/ProjectFile/boundary_condition/c_boundary_condition.md b/Documentation/ProjectFile/prj/process_variables/process_variable/boundary_conditions/boundary_condition/i_boundary_condition.md
similarity index 100%
rename from Documentation/ProjectFile/boundary_condition/c_boundary_condition.md
rename to Documentation/ProjectFile/prj/process_variables/process_variable/boundary_conditions/boundary_condition/i_boundary_condition.md
diff --git a/Documentation/ProjectFile/boundary_condition/t_component.md b/Documentation/ProjectFile/prj/process_variables/process_variable/boundary_conditions/boundary_condition/t_component.md
similarity index 100%
rename from Documentation/ProjectFile/boundary_condition/t_component.md
rename to Documentation/ProjectFile/prj/process_variables/process_variable/boundary_conditions/boundary_condition/t_component.md
diff --git a/Documentation/ProjectFile/prj/process_variables/process_variable/boundary_conditions/boundary_condition/t_geometrical_set.md b/Documentation/ProjectFile/prj/process_variables/process_variable/boundary_conditions/boundary_condition/t_geometrical_set.md
new file mode 100644
index 0000000000000000000000000000000000000000..a8d82d7b1b79920c828d1baeca48b17a388a6e23
--- /dev/null
+++ b/Documentation/ProjectFile/prj/process_variables/process_variable/boundary_conditions/boundary_condition/t_geometrical_set.md
@@ -0,0 +1,4 @@
+The name of the geometrical set (see \ref ogs_file_param__gml__name) in which
+the \ref
+ogs_file_param__prj__process_variables__process_variable__boundary_conditions__boundary_condition__geometry
+"geometry" is defined.
diff --git a/Documentation/ProjectFile/boundary_condition/t_geometry.md b/Documentation/ProjectFile/prj/process_variables/process_variable/boundary_conditions/boundary_condition/t_geometry.md
similarity index 100%
rename from Documentation/ProjectFile/boundary_condition/t_geometry.md
rename to Documentation/ProjectFile/prj/process_variables/process_variable/boundary_conditions/boundary_condition/t_geometry.md
diff --git a/Documentation/ProjectFile/boundary_condition/t_type.md b/Documentation/ProjectFile/prj/process_variables/process_variable/boundary_conditions/boundary_condition/t_type.md
similarity index 100%
rename from Documentation/ProjectFile/boundary_condition/t_type.md
rename to Documentation/ProjectFile/prj/process_variables/process_variable/boundary_conditions/boundary_condition/t_type.md
diff --git a/Documentation/ProjectFile/prj/process_variables/process_variable/boundary_conditions/t_boundary_condition.md b/Documentation/ProjectFile/prj/process_variables/process_variable/boundary_conditions/t_boundary_condition.md
deleted file mode 100644
index fcf9ace11720b05f89de0d1cceadf9ef42b71d63..0000000000000000000000000000000000000000
--- a/Documentation/ProjectFile/prj/process_variables/process_variable/boundary_conditions/t_boundary_condition.md
+++ /dev/null
@@ -1,3 +0,0 @@
-Specifies a single boundary condition.
-
-See \ref ogs_file_param__boundary_condition.
diff --git a/ProcessLib/BoundaryCondition/BoundaryCondition.cpp b/ProcessLib/BoundaryCondition/BoundaryCondition.cpp
index a5c96137a50c68d955a164b018274892672ec7f5..8e9645759ee1d347d74b28b8e9db44720dc8b0bf 100644
--- a/ProcessLib/BoundaryCondition/BoundaryCondition.cpp
+++ b/ProcessLib/BoundaryCondition/BoundaryCondition.cpp
@@ -31,7 +31,7 @@ std::unique_ptr<BoundaryCondition> BoundaryConditionBuilder::createBoundaryCondi
     MeshGeoToolsLib::BoundaryElementsSearcher boundary_element_searcher(
         mesh, mesh_node_searcher);
 
-    //! \ogs_file_param{boundary_condition__type}
+    //! \ogs_file_param{prj__process_variables__process_variable__boundary_conditions__boundary_condition__type}
     auto const type = config.config.peekConfigParameter<std::string>("type");
 
     if (type == "Dirichlet")
diff --git a/ProcessLib/BoundaryCondition/DirichletBoundaryCondition.cpp b/ProcessLib/BoundaryCondition/DirichletBoundaryCondition.cpp
index a3201f40c2e07838e172133ebab5d0d5b45031a0..9c5724c7e229a64eda9567556d9f0f885d36eee7 100644
--- a/ProcessLib/BoundaryCondition/DirichletBoundaryCondition.cpp
+++ b/ProcessLib/BoundaryCondition/DirichletBoundaryCondition.cpp
@@ -68,10 +68,10 @@ std::unique_ptr<DirichletBoundaryCondition> createDirichletBoundaryCondition(
     const std::vector<std::unique_ptr<ProcessLib::ParameterBase>>& parameters)
 {
     DBUG("Constructing DirichletBoundaryCondition from config.");
-    //! \ogs_file_param{boundary_condition__type}
+    //! \ogs_file_param{prj__process_variables__process_variable__boundary_conditions__boundary_condition__type}
     config.checkConfigParameter("type", "Dirichlet");
 
-    //! \ogs_file_param{boundary_condition__Dirichlet__parameter}
+    //! \ogs_file_param{prj__process_variables__process_variable__boundary_conditions__boundary_condition__Dirichlet__parameter}
     auto const param_name = config.getConfigParameter<std::string>("parameter");
     DBUG("Using parameter %s", param_name.c_str());
 
diff --git a/ProcessLib/BoundaryCondition/NeumannBoundaryCondition.cpp b/ProcessLib/BoundaryCondition/NeumannBoundaryCondition.cpp
index 7a4f13dfe295afcb166327c7c9e1d12afe519d00..afca654fcd69d2175d406b778430a94eb4b33bbb 100644
--- a/ProcessLib/BoundaryCondition/NeumannBoundaryCondition.cpp
+++ b/ProcessLib/BoundaryCondition/NeumannBoundaryCondition.cpp
@@ -23,10 +23,10 @@ std::unique_ptr<NeumannBoundaryCondition> createNeumannBoundaryCondition(
     std::vector<std::unique_ptr<ParameterBase>> const& parameters)
 {
     DBUG("Constructing Neumann BC from config.");
-    //! \ogs_file_param{boundary_condition__type}
+    //! \ogs_file_param{prj__process_variables__process_variable__boundary_conditions__boundary_condition__type}
     config.checkConfigParameter("type", "Neumann");
 
-    //! \ogs_file_param{boundary_condition__Neumann__parameter}
+    //! \ogs_file_param{prj__process_variables__process_variable__boundary_conditions__boundary_condition__Neumann__parameter}
     auto const param_name = config.getConfigParameter<std::string>("parameter");
     DBUG("Using parameter %s", param_name.c_str());
 
diff --git a/ProcessLib/BoundaryCondition/RobinBoundaryCondition.cpp b/ProcessLib/BoundaryCondition/RobinBoundaryCondition.cpp
index 6a3b9e40d168433dc165b1200b885e41a4f6ccbb..342f12344d8bcdbacac962d316914fc38048f17f 100644
--- a/ProcessLib/BoundaryCondition/RobinBoundaryCondition.cpp
+++ b/ProcessLib/BoundaryCondition/RobinBoundaryCondition.cpp
@@ -23,12 +23,12 @@ std::unique_ptr<RobinBoundaryCondition> createRobinBoundaryCondition(
     std::vector<std::unique_ptr<ParameterBase>> const& parameters)
 {
     DBUG("Constructing RobinBcConfig from config.");
-    //! \ogs_file_param{boundary_condition__type}
+    //! \ogs_file_param{prj__process_variables__process_variable__boundary_conditions__boundary_condition__type}
     config.checkConfigParameter("type", "Robin");
 
-    //! \ogs_file_param{boundary_condition__Robin__alpha}
+    //! \ogs_file_param{prj__process_variables__process_variable__boundary_conditions__boundary_condition__Robin__alpha}
     auto const alpha_name = config.getConfigParameter<std::string>("alpha");
-    //! \ogs_file_param{boundary_condition__Robin__u_0}
+    //! \ogs_file_param{prj__process_variables__process_variable__boundary_conditions__boundary_condition__Robin__u_0}
     auto const u_0_name = config.getConfigParameter<std::string>("u_0");
 
     auto const& alpha = findParameter<double>(alpha_name, parameters, 1);
diff --git a/ProcessLib/LIE/BoundaryCondition/NeumannBoundaryCondition.cpp b/ProcessLib/LIE/BoundaryCondition/NeumannBoundaryCondition.cpp
index 207150ac4ab063dd8c47290b952f2d51890425e1..bba2b759a8e8cd97e9f293b08e1dd5389210b904 100644
--- a/ProcessLib/LIE/BoundaryCondition/NeumannBoundaryCondition.cpp
+++ b/ProcessLib/LIE/BoundaryCondition/NeumannBoundaryCondition.cpp
@@ -33,10 +33,10 @@ std::unique_ptr<BoundaryCondition> createNeumannBoundaryCondition(
     FractureProperty const& fracture_prop)
 {
     DBUG("Constructing Neumann BC from config.");
-    //! \ogs_file_param{boundary_condition__type}
+    //! \ogs_file_param{prj__process_variables__process_variable__boundary_conditions__boundary_condition__type}
     config.checkConfigParameter("type", "Neumann");
 
-    //! \ogs_file_param{boundary_condition__Neumann__parameter}
+    //! \ogs_file_param{prj__process_variables__process_variable__boundary_conditions__boundary_condition__Neumann__parameter}
     auto const param_name = config.getConfigParameter<std::string>("parameter");
     DBUG("Using parameter %s", param_name.c_str());
 
diff --git a/ProcessLib/ProcessVariable.cpp b/ProcessLib/ProcessVariable.cpp
index 00b2c6739a81dffc18c48199cfc6156b7e433d81..53543d7cfc1703da7b8b3c0dd7e7c82fd1e30345 100644
--- a/ProcessLib/ProcessVariable.cpp
+++ b/ProcessLib/ProcessVariable.cpp
@@ -49,10 +49,10 @@ ProcessVariable::ProcessVariable(
              bcs_config->getConfigSubtreeList("boundary_condition"))
         {
             auto const geometrical_set_name =
-                    //! \ogs_file_param{boundary_condition__geometrical_set}
+                    //! \ogs_file_param{prj__process_variables__process_variable__boundary_conditions__boundary_condition__geometrical_set}
                     bc_config.getConfigParameter<std::string>("geometrical_set");
             auto const geometry_name =
-                    //! \ogs_file_param{boundary_condition__geometry}
+                    //! \ogs_file_param{prj__process_variables__process_variable__boundary_conditions__boundary_condition__geometry}
                     bc_config.getConfigParameter<std::string>("geometry");
 
             GeoLib::GeoObject const* const geometry =
@@ -69,7 +69,7 @@ ProcessVariable::ProcessVariable(
                 GeoLib::convertGeoTypeToString(geometry->getGeoType()).c_str());
 
             auto component_id =
-                //! \ogs_file_param{boundary_condition__component}
+                //! \ogs_file_param{prj__process_variables__process_variable__boundary_conditions__boundary_condition__component}
                 bc_config.getConfigParameterOptional<int>("component");
 
             if (!component_id)
diff --git a/scripts/doc/append-xml-tags.py b/scripts/doc/append-xml-tags.py
index 11f7a7a94fb59e72d9b6ee2a1a4d4e76b02b6254..3daea1acfd00ed32b626e0c6679fe00b0e4f04b2 100755
--- a/scripts/doc/append-xml-tags.py
+++ b/scripts/doc/append-xml-tags.py
@@ -36,7 +36,6 @@ docdir    = os.path.join(docauxdir, "dox", "ProjectFile")
 # used to expand documentation entry points to full xml tag paths
 # that are used in the prj file.
 tag_path_expansion_table = {
-    "boundary_condition": "process_variables.process_variable.boundary_conditions.boundary_condition",
     "linear_solver":      "linear_solvers.linear_solver",
     "process":            "processes.process",
     "parameter":          "parameters.parameter",
diff --git a/scripts/doc/linked-xml-file.py b/scripts/doc/linked-xml-file.py
index f598fff0aa5aedc074efe641c73bd7d5661eed13..6bd522d7e3c3e03cf02c9fbda97d6913bcb9e75e 100755
--- a/scripts/doc/linked-xml-file.py
+++ b/scripts/doc/linked-xml-file.py
@@ -34,7 +34,6 @@ docauxdir = os.path.abspath(docauxdir)
 outdir    = os.path.join(docauxdir, "dox", "CTestProjectFiles")
 
 tag_path_expansion_table = {
-    "prj__process_variables__process_variable__boundary_conditions__boundary_condition": "boundary_condition",
     "prj__linear_solvers__linear_solver":                                                "linear_solver",
     "prj__processes__process":                                                           "process",
     "prj__parameters__parameter":                                                        "parameter"