Ifc goes half way with parametric elements. It's possible to define profiles and extrusions and booleans, but you can not assign variables to these parameters, or define explicit calculations (imagine Revit family editor without the parameters window).
So everytime you change a parameter (e.g. ifcDoor OverallHeight) your application has to guess what should all change with it (clearheight, panel geometry, frame geometry, door handle position (?)) and do the changes in the ifc file. This follows the general principle in ifc, where properties, quantities and geometry all exist independently, even though in reality they often depend on each other.
There were many discussions on how to handle this. My favourite idea is to create a generic independent parametric library, which takes object parameters as input and spits out non-parametric objects which are then used in a project. (This is how Dion created the first Bonsai ifc library nad since it has a python base, you should relatively easily be able to feed it also sverchok or freecad or solvespace definitions)
Best place to start:
https://community.osarch.org/discussion/1192/ifctype-furnishing-set-for-plan
https://community.osarch.org/discussion/793/blenderbim-parametric-based-ifc-types-doors-windows-etc
https://community.osarch.org/discussion/328/geometry-nodes-in-blender
https://community.osarch.org/discussion/113/cad-blocks-for-blender
https://community.osarch.org/discussion/488/making-blenderbim-revit-friends
See this as an example of my solution:
https://community.osarch.org/discussion/1501/bbim-landscape-elements-ifc-libary#Comment_18471
I made a generic parametric python definition of a low poly tree and used a jupyter nb to punlish it. You can just download it, feed it any parameters and have it create trees for you.
https://github.com/JanFilipec/IFC-library-generator/blob/main/CSV%20Library%20generator/test/Low%20Poly%20Tree.ipynb