User-defined point connection between structural elements (structural-analysis-domain)

Hi all,

I have been working for a while with the structural analysis domain models, with the intention to extract all the structural information from a structural ifc model into a json file and then to use Code_Aster, an open-source finite element solver, for the analysis; a study that is now part of the IfcOpenShell and the BlenderBIM project.

My question is on the point connection implementation between two or more elements. It looks like there is no way to explicitly define the connection of each of the elements to the structural node. I wonder if this interpretation is correct, though, thus my first post in the forum.

Let’s consider for example a corner in a frame building where two beams and two columns meet at the same geometric point. The associated IfcStructuralPointConnection will have an attribute called ConnectsStructuralMembers with a list of the associated structural members, while it may or may not have an AppliedCondition attribute with a list of specified boundary conditions. To my understanding this applied condition refers to an external support (ground support or an djacet structure) while all the members are rigidly connected (structurally we can consider a single shared node in the finite element model). But what if I want to consider that one of the elements is pinned-connected to the node, so that it does not transfer for example bending moments? One could say that there is the IfcStructuralCurveTypeEnum definition for the IfcStructuralCurveMember but (i) a value of PIN_JOINED_MEMBER would apply to both ends of the element, whereas this may not be the case, (ii) it still does not allow for any flexibility in choosing the degrees-of-freedom (DOFs) to constrain (maybe a moment release only in one direction is desired). There is a USERDEFINED value available but I do not understand what that means and how it can be used.

If my interpretation is correct I think it is really a pity because I believe it would suffice to have an AppliedCondition attribute assigned to each element connecting to the node to have a very general implementation where one could specify either which DOFs to consider and could even assign an elastic internal connection using a numerical value instead of a boolean. Honestly, when I started working on this aspect I thought that was the case and it was something that I implemented in the finite element implementation, where each element has its own node and I can then dictate the relationships between the coincident nodes of the elements.

Can somebody provide some help to verify or not my interpretation? And to share if there is a way to consider user-defined point connections between elements?

Ping @jonm - who has a structural background and is also an implementor, who might be able to answer this one.

1 Like

Some more examples and improvements to the documentation might help, but here’s my understanding.
If you refer to https://standards.buildingsmart.org/IFC/RELEASE/IFC4_1/FINAL/HTML/link/ifcrelconnectsstructuralmember.htm
then the AppliedCondition attribute does indeed nominate the connection behaviour (ie release or hinge).
The concept IfcBoundaryCondition is reused for restraints, but is used in different relationships.
The predefinedtype IfcStructuralCurveMemberTypeEnum can inform the behavior of the member, but doesn’t override explicit releases (if one end is hinged and not the other).

Hope this helps.

1 Like

Thank you @jonm for your help, I had somehow overlooked the AppliedCondition attr. in IfcRelConnectsStructuralMember. I also did not see it implemented in any of the files I have.

This means that there is pretty much all the flexibility to define, rigid or elastic, internal and external constraints. It sounds great.

I have only found one portal frame structure regarding the structural analysis domain. It would be helpful to have some more examples. I would be willing to contribute on that aspect once I have sufficient knowledge and skills.