Hi, does anyone know if the column reference axis can be saved in an IFC file?
Do you mean for structural analysis?
If I understand you correctly, you might be looking for the “Axis” representation context of a column. Some BIM authoring programs store this information, some do not.
IfcAxis3Placement3D) can do, but as @Moult mentioned it seems that “some BIM authoring programs store this information, some do not”
Also, are you looking for a structural analysis axis? As @jwouellette asked?
scroll down, where geometry and cardinal points are discussed. There you find the axis representation and how to use cardinal points to offset your profile from the axis.
Hi, thank you all for answering,
I am not asking for the structural analysis axis. What I look for is the point from which the column change its dimensions:
The point does not change its position.
I am going to try to see if ArhiCAD and CYPECAD save that information.
IfcCardinalPointReference is for profiles, so is there such a “reference” point that doesn’t change and is not dependent on the paradigms?
This post was flagged by the community and is temporarily hidden.
Hi, I don’t really understand what you are asking. What I meant is a point from which the column changes its dimension. So, for example, this is a column, in several stories:
I am not sure, but I don’t think that ArchiCAD nor CYPECAD are using IfcCardinalPointReference.
Thank you for your explanation,
I totally understood
I think IFC doesn’t have an index/reference point, line/carve, plane, etc to use them for all paradigms without care about the paradigm, which is important in some methods, for instance, Shape Grammar, or Inverse Shape Grammar, …
I think you are asking for the “origin point” of the column’s extruded profile? This depends on the exact geometry representation of the column.
If your column is represented using a swept solid, such as an
IfcExtrudedAreaSolid, then there are a few things to look at. There is the profile coordinate system, the swept solid coordinate system, and the column object’s coordinate system. The object’s coordinate system is the most straightforward, it is the
ObjectPlacement of your
IfcColumn. This is then offset by the swept solid’s coordinate system. If it is an
IfcExtrudedAreaSolid, this is the
Position attribute described here. The profile then may or may not have its own additional coordinate system, described here. If the profile is parameterised, like a rectangle, then it has a
Position attribute, which further offsets from the swept area’s position, like described here.
This diagram from the docs shows how profiles can have a position for a rectangle:
This diagram from the docs shows how the profile’s position (green axis) is offset from the swept area coordinates (blue axis), which is offset from the object’s placement (black axis).
If your column is not a swept solid, then this answer does not apply. Can you let us know what representation your column is, or even better, provide a sample IFC of just that column?
Hi, thank you all very much for answering. All this is quite new for me, I have so much to study.
The columns, I think, they are swept solid, in both software: CYPECAD (structural analysis), and ArchiCAD. Here you can find IFC from both software.
In both software, I define the “fix point” of the column:
As you can see, the “origin” of your
IfcColumn named “P1” is at
-.175,-.175,0. You have three columns in your file, each with the same XY, but the Z is increased by 3m each time. This coincides with the
ObjectPlacement attribute of your column. I have pasted the relevant lines in the IFC file that define this coordinate.
#99= IFCCOLUMN('2E8TTf6Rn2ZvtqXkW85M4i',#2,'P1 (35x35)','Rectangular. Hormig\X2\00F3\X0\n armado','35x35',#97,#101,$, .COLUMN.); #97= IFCLOCALPLACEMENT(#78,#96); #96= IFCAXIS2PLACEMENT3D(#95,#62,#63); #95= IFCCARTESIANPOINT((-0.175,-0.175,0.));
So that point defines where the column as a whole has its origin. That is the object coordinate system. Let’s investigate the swept solid coordinate system now:
#113= IFCEXTRUDEDAREASOLID(#112,#64,#62,3.); #64= IFCAXIS2PLACEMENT3D(#61,#62,#63); #61= IFCCARTESIANPOINT((0.,0.,0.));
As the point is
(0,0,0), the swept solid coordinate system coincides with the object coordinate system. Now let’s investigate the profile coordinate system. Your column has a parametric rectangular profile:
#112= IFCRECTANGLEPROFILEDEF(.AREA.,$,#110,0.35,0.35); <-- Width and height of 0.35m #110= IFCAXIS2PLACEMENT2D(#109,#111); #109= IFCCARTESIANPOINT((0.175,0.175)); <-- Centerpoint XY coordinate of rectangular profile
As you can see, 0.35m square profile actually has a centerpoint coordinate of
(0.175,0.175) (which is 0.35/2). This offset explains why the object placement appears at the bottom left corner of the rectangular column. This is relative to the swept solid coordinate system (0,0,0) and the object coordinate system (-.175,-.175,0), which, in absolute coordinates, turns out to be the origin point of (0,0,0). This is correct, as shown in the screenshot of BlenderBIM - you can see the column centered of the red X and green Y axis.
Note that for a rectangular profile in IFC, the profile always is defined from a center coordinate as shown in the diagram of my previous post. This is hard-coded.
ARCHICAD 23_COLUMN.ifc file follows the exact same concept, but with different numbers. In that file, the lowermost column has an object coordinate of (19.5926972053,-10.0306519034,0), has a swept solid coordinate of (0,0,0), and a rectangular profile coordinate of (0,0). Because the rectangular profile does not have an offset, the object center and the profile center are aligned:
Hope the explanation helped.
Your explanation helps, thanks a lot. I have just installed Blender, but I am trying to open an IFC file, and I can’t. I am trying to enable the “Import-export Blender Bim” but it has an error.
I am not sure if I am understanding, because it seems to me, that CYPECAD and ArchiCAD doesn’t work in the same way.
It seems to me, that the IFC generated in CYPECAD, the IfcCartesianPoint of the IfcColumn is “the fix point” or origin.
Maybe I am mistaken because all this is new for me, but in ArchiCAD, it seems to me that its behaviour is different. You can see in your second image, that the orange point in Blender is not placed in the edge of the column, even if the configuration in ArchiCAD is this:
So, I am not sure if ArchiCAD is exporting that information, as it does CYPECAD.
I am sorry, I should have model the column in ArchiCAD in the (0,0).
It is likely that the import fails in the latest version of the BlenderBIM Add-on because there are a few bugs in the last release that I missed. The next release should work
Correct, your CYPECAD and ArchiCAD exports are slightly different. CYPECAD contains a profile coordinate offset, but ArchiCAD does not. This is what causes the perceived
ObjectPlacement of the column in CYPECAD to be in the corner, but to be in the center in ArchiCAD.
It looks as though you are correct that ArchiCAD does not export that relationship.
This is the answer from ArchiCAD:
"In short, this is a limitation of ARCHICAD. The reason for that is, ARCHICAD deals with architectural models only, which means that it converts structural analysis models into architectural models as well.
The entity IfcRelConnectsWithEccentricity adds the definition of eccentricity to the connection between a structural member and a structural connection (representing either a node or support), which presents in the structural analysis but not architectural models.
In the future, we are working on connection between ARCHICAD’s model and Structural Analysis Model. I hope that this feature will come soon to provide better support for communicating between the architect and structural engineer."
I am not sure if this ArchiCAD future feature will help me because my structural software is quite special: it works with physical model and it generates itself the analytical model, internally.
Thanks for all the information!