Parametric families in IFC. Bonsai workflow?

Hi OSARCH,
I had a question about parametric constraints in my Bonsai demo.
This reminded me of an old question I've been asking myself.
If I understand correctly, IFC doesn't save parametric families but directly the different "final" types that could be extract from it and used in the model.
Does anyone have a workflow, or is there already a recommendation for reproducing this kind of modelling by parametric family (specific to Revit of course, but also to industry tools such as TopSolid)?
For example, for the same door with a different height each time: should we model it on Freecad using its sketcher and import each variation we want to use into the IFC library?

walpasteverugi

Comments

  • I think that IfcSverchok could be used to achieve that. However, it's been a while since I played with it, so I don't know how is it working with the latest releases of Bonsai.

    walpa
  • Yes I think something like a virtual supertype where you can define override for actual subtypes would be nice. I don't think it's the philosophy of the IFC schema though AFAIK.

    walpa
  • Ok thanks! I like sverchok but sometimes you want a sketcher more than nodes.
    In any case families in Revit or TopSolid are also external files to the main model.

  • There's this proof of concept of parametric IFC. While not available in the IFC standard, maybe it's possible to implement this for Bonsai native elements?

    RaphaëlVouillozcarlopav
  • edited February 20

    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 Library generator/test/Low Poly Tree.ipynb

    walpatheoryshawMassimotlangRaphaëlVouilloz
  • Another possibility is to use Geometry Nodes.
    My workflow for creating a pipe fittings library:

    • chatgpt to create the parameter dictionary from an image taken from an online catalog (pure laziness on my part!)
    • GN to create the parameterized base geometry
    • python to create the resulting geometries and ifc classification

    theoryshawsteverugiRaphaëlVouillozBedson
  • edited February 20

    Thanks for all these interesting links and ideas. I like the fact there is many solutions. I think drawing the family with parametric dimensions in Freecad, then import the types into the IFC, would be a very accessible workflow and pretty close to the one in Revit or TopSolid, I will test it.

  • When coming to parametric sketching i think freecad should be the tool. Ideally you could model a Part with different representations all based on the same parameters. And you could also assign the different configurations to a table.
    It would be helpful to have a script that then generates an ifclibrary.
    Ideally the IFC output could contain the informations to rebuild the parametric original model i think... Ping @yorik
    I Wish i have the time to show a proof of concept :)

    RaphaëlVouillozMassimotlangwalpa
  • edited February 22

    Here you have a really simple FreeCAD parametric door with 2 representations.

    MassimoRaphaëlVouillozemiliotasso
  • @RaphaëlVouilloz said:
    Thanks for all these interesting links and ideas. I like the fact there is many solutions. I think drawing the family with parametric dimensions in Freecad, then import the types into the IFC, would be a very accessible workflow and pretty close to the one in Revit or TopSolid, I will test it.

    Yes. I see it as a scale: on one side you have the user/architect friendly solutions (freecad sketch, revit family editor) in the middle nodes (sverchok or archicad nodes) and on the other side programmer friendly solutions (Archicad gdl, python as mentioned above).
    I've been all over the place on what I think is best. I learned gdl, always thought revit family editor was one of its greatest strengths, I thought Archicad nodes will make a great difference and now that I work with Revit on a larger scale I desperately wish it was more like gdl.

    RaphaëlVouillozcarlopavBedsonfurtonb
Sign In or Register to comment.