Hello Wall - IfcWallElementedCase

Hi All,
I am new in blenderBIM and I am trying to create a wall using the IfcWallElementedCase specifically, I would like to create an internal wall stud. And I have some queries/biases that I would like to ask you.

As I understood, the IfcWallElementedCase is made up by:
IfcRelDefinesByType -> obj relation of the type in this case IfcWallType in this case ( is this a mandatory requirement? correct? )
IfcRelAggregates ** -> obj that defines the relation of the subcomponent of the wall like the panels, the insulation studs etc.
**IfcRelAssociatesMaterial
-> Am I correct to think that this element defines the association within the array's subcomponent of the wall and retrieve its material (https://standards.buildingsmart.org/IFC/DEV/IFC4_3/RC1/HTML/link/ifcrelconnectswithrealizingelements.htm) "" The IfcRelAssociatesMaterial relationship is a special type of the IfcRelAssociates relationship. It can be applied to subtypes of IfcElement and subtypes of IfcElementType.

The IfcElement has an inverse relation to its material definition by the HasAssociations attribute, inherited from IfcObject.
The IfcElementType has an inverse relation to its material definition by the HasAssociations attribute, inherited from IfcPropertyDefinition.

"

InBlender BIM the IfcRelAggregates is this ? also, I have the feeling that in the dropdown trees there is quite messy

Thank you in advance,
Gian Claudio :)

«1

Comments

  • I would also like to how to create an IfcWallElementedCase

  • IfcWallElementedCase seems to be deprecated from IFC4 onwards, and afaik BlenderBIM is not superfocused on IFC2x3.

    On a side note regarding bSI website, I find when something's deprecated, there could be a brief statement as of why, and what is the alternative in the modern version of the schema.

    CoenAceJohannes990
  • Thank you all,
    I have been trying and failing. However, I am starting to understand the logic of the "IfcRel..."
    I found insightful those videos...
    and when I am digging in the GitHub repo, there are a lot of features on the ifcopenshell (some still #TODO) . This is definitely a game-changer for the ACEO Might really good as well for the OPEX level... , hopefully, I can be a bit better at my coding skill to support this!

    I will keep you posted when I find a solution :)

  • I will keep you posted when I find a solution :)

    Did you already found a solution? I would like to IfcRelAggregate this together, no idea on how to do it:

  • can you share the file? :)

  • @theoryshaw said:
    can you share the file? :)

    Yes ofcourse, it's an autogenerated ifc by the way.

    Trying to create this for myself as an blenderbim/ifcopenshell add-on exercise.

    theoryshawArv
  • ChatGPT gave this as an example to create an IfcRelAggregate

    rel_aggregates = ifc_file.createIfcRelAggregates('1AEAi$cjvFNxxkPAdOIzkr', global_id_list)
    
    # set the Name attribute of the IfcRelAggregates object
    rel_aggregates.Name = "Example Aggregation"
    
     # add the IfcRelAggregates object to the IFC file
    ifc_file.add(rel_aggregates)
    

    Is it really that simple?

  • oh, sorry, you're asking how to do it programmatically. I should have known. :\
    Not sure, then. :)

  • @theoryshaw said:
    oh, sorry, you're asking how to do it programmatically. I should have known. :\
    Not sure, then. :)

    Not per se, I also would like how to know to do it with the UI :-)

  • edited April 2023

    Well in that case. :)
    https://www.dropbox.com/s/gcte90r6zv7ucrb/2023-04-15_12-55-10_Blender_blender.mp4?dl=0
    Collection instances, toward the end of the video, is not current possible with NativeIFC , but wouldn't 'typed aggregates' be awesome!? :)

    Coen
  • oh wow thanks! that is really cool, no idea that was possible with Blender.

    is not current possible with NativeIFC , but wouldn't 'typed aggregates' be awesome!? :)

    YES!

    I think @RaphaëlVouilloz also has experience with this creating rafters?

  • @theoryshaw said:
    Well in that case. :)
    https://www.dropbox.com/s/gcte90r6zv7ucrb/2023-04-15_12-55-10_Blender_blender.mp4?dl=0
    Collection instances, toward the end of the video, is not current possible with NativeIFC , but wouldn't 'typed aggregates' be awesome!? :)

    Can an IfcRelAggregate behave as an IfcWall? For example be cut by IfcOpeningElements?

  • #411=IFCRELVOIDSELEMENT('3bNLdeB6f6Ex$aF98udllc',$,$,$,#323,#395);
      /*#323=IFCELEMENTASSEMBLY('292LoKrmD52eRjgEo2VhWv',$,'Assembly',$,$,#333,$,$,$,$);*/
        /*#333=IFCLOCALPLACEMENT($,#332);*/
          /*#332=IFCAXIS2PLACEMENT3D(#329,#330,#331);*/
            /*#329=IFCCARTESIANPOINT((0.,0.,0.));*/
            /*#330=IFCDIRECTION((0.,0.,1.));*/
            /*#331=IFCDIRECTION((1.,0.,0.));*/
      /*#395=IFCOPENINGELEMENT('0PR_7_fYz08Q9xGb4pLpwF',$,'Opening',$,$,#416,#410,$,$);*/
        /*#416=IFCLOCALPLACEMENT(#333,#415);*/
          /*#333=IFCLOCALPLACEMENT($,#332);*/
            /*#332=IFCAXIS2PLACEMENT3D(#329,#330,#331);*/
              /*#329=IFCCARTESIANPOINT((0.,0.,0.));*/
              /*#330=IFCDIRECTION((0.,0.,1.));*/
              /*#331=IFCDIRECTION((1.,0.,0.));*/
          /*#415=IFCAXIS2PLACEMENT3D(#412,#413,#414);*/
            /*#412=IFCCARTESIANPOINT((1980.76593875885,1339.77329730988,57.8264072537422));*/
            /*#413=IFCDIRECTION((0.,0.,1.));*/
            /*#414=IFCDIRECTION((1.,0.,0.));*/
        /*#410=IFCPRODUCTDEFINITIONSHAPE($,$,(#429));*/
          /*#429=IFCSHAPEREPRESENTATION(#11,'Body','SweptSolid',(#428));*/
            /*#11=IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Body','Model',*,*,*,*,#10,$,.MODEL_VIEW.,$);*/
              /*#10=IFCGEOMETRICREPRESENTATIONCONTEXT($,'Model',3,1.E-05,#9,$);*/
                /*#9=IFCAXIS2PLACEMENT3D(#6,#7,#8);*/
                  /*#6=IFCCARTESIANPOINT((0.,0.,0.));*/
                  /*#7=IFCDIRECTION((0.,0.,1.));*/
                  /*#8=IFCDIRECTION((1.,0.,0.));*/
            /*#428=IFCEXTRUDEDAREASOLID(#430,#426,#427,499.999970197677);*/
              /*#430=IFCARBITRARYCLOSEDPROFILEDEF(.AREA.,$,#432);*/
                /*#432=IFCINDEXEDPOLYCURVE(#431,(IFCLINEINDEX((3,2)),IFCLINEINDEX((2,1)),IFCLINEINDEX((1,4)),IFCLINEINDEX((4,3))),.F.);*/
                  /*#431=IFCCARTESIANPOINTLIST2D(((-1184.55135822296,-249.999985098839),(521.828413009644,-249.999985098839),(521.828413009644,1302.30855941772),(-1184.55135822296,1302.30855941772)));*/
              /*#426=IFCAXIS2PLACEMENT3D(#423,#424,#425);*/
                /*#423=IFCCARTESIANPOINT((0.,0.,-249.999985098839));*/
                /*#424=IFCDIRECTION((0.,-0.,-1.));*/
                /*#425=IFCDIRECTION((-1.,0.,0.));*/
              /*#427=IFCDIRECTION((0.,0.,-1.));*/
    
  • The following could be a way to create beam systems with different types of (nonrectanlinar) shapes.
    https://www.dropbox.com/s/6x3k3j9j8y54jta/2023-04-15_22-50-39_Blender_blender.mp4?dl=0
    Would be cool if the 'IFC Array' tool created aggregates, by which you could apply these ifcopenelement outlines.

  • Nice! I see it cuts through 3x IfcCovering + 1xIfcMember. This could be used for cavity walls as well. But how would one then parametrically drive the height and length of an IfcRelAggregate?

  • @theoryshaw said:
    The following could be a way to create beam systems with different types of (nonrectanlinar) shapes.
    https://www.dropbox.com/s/6x3k3j9j8y54jta/2023-04-15_22-50-39_Blender_blender.mp4?dl=0
    Would be cool if the 'IFC Array' tool created aggregates, by which you could apply these ifcopenelement outlines.

    It looks cool and useful, but I don't understand what you are doing here. I never used that tool

  • Just out of curiosity, is it possible to IfcRelAggregates two seperate IfcRelAggregates? Can't think of a usecase for this. but who knows.

  • edited April 2023

    Is it possible to add an IfcRelAggregate to an IfcProjectLibrary? How would I do that using the Blender UI?

  • Just thinking out loud, if you could have a seperate Blender session in which you could parametrically create objects, then some button which 'bakes' an IfcRelAggregates the IFC into an IfcProjectLibrary, load into your 'main' modelling Blender sessions. You could have a same workflow as Revit with families? Then how would one swap all the IfcRelAggregates when they are updated in the main model?

  • Final question ?, is possible to tranform an IfcRelAggregate? Rotate the entire object using ifcopenshell?

  • It looks cool and useful, but I don't understand what you are doing here. I never used that tool

    It's just any ifcopenelement. Same approach as the original video, but with a outer profile and an inner profile.

    Coen
  • @Coen said:
    Just out of curiosity, is it possible to IfcRelAggregates two seperate IfcRelAggregates? Can't think of a usecase for this. but who knows.

    Yes, you can do nested aggregates.

    Coen
  • @Coen said:
    oh wow thanks! that is really cool, no idea that was possible with Blender.

    is not current possible with NativeIFC , but wouldn't 'typed aggregates' be awesome!? :)

    YES!

    I think @RaphaëlVouilloz also has experience with this creating rafters?

    Yes here: https://enac-cnpa.github.io/BlenderBIM-Tutoriel-Villa-Le-Sextant/5_modelisation-ifc.html#IfcRoof & IFC Aggregate (=%20Assembly)
    As there is no way for the moment in the BIM Tool, I had identified these problems to make "typed aggregates" by copying a first instance:
    -with an array: in Blender an empty simply does not have a Modifiers menu...
    -duplicating a whole collection is not saved in the IFC by BlenderBIM
    -duplicating in the scene keeps the relationship of the parts with the first assembly, so you have to manually edit all the aggregation relationships with the second assembly. This is my solution for now :)

    Coen
  • @theoryshaw said:

    @Coen said:
    Just out of curiosity, is it possible to IfcRelAggregates two seperate IfcRelAggregates? Can't think of a usecase for this. but who knows.

    Yes, you can do nested aggregates.

    Yes this works well, for example I have made an IfcRoof composed of IfcElementAssemblies, composed themselves of IfcMembers.
    You have to aggregate the empty (eg IfcElementAssembly) of the first Collection to the second empty (eg IfcRoof).

    Coen
  • I was looking at this code:
    https://blenderbim.org/docs-python/autoapi/ifcopenshell/api/aggregate/assign_object/index.html

    Is there any code example in which you could IfcRelAggregate IFC elements with a list of globalids?

  • @theoryshaw

    Would be cool if the 'IFC Array' tool created aggregates, by which you could apply these ifcopenelement outlines.

    Trying to experiment with it now, but with no succes :(

  • Is there a step by step tutorial somewhere on how to add a void to an IfcElementAssembly?
    I'm really struggling with the order of selection and clicking buttons:

  • Thanks, I see at the end how to modify the geometry of the void, this was not clear to me.

Sign In or Register to comment.