How to get footing element id that is attached to a column or vice versa?


I am trying to change the columns base offset based on the attached footing thickness, so that all footings base(s) are on the same level. Is that possible ?




From what I can tell, footings and columns do not have a logical connection similar to other hosted elements. That means there is no easy way to query one by the other.

I’d say one alternative would be to query the location of your columns and your footings and interact with the two by matching location.

You could also try Julien Benoit’s excellent node called “Tool.GetSurroundingElelements” from the custom package “SteamNodes”. That will group your footings and columns into sublists:



Perfect ! thanks a lot.

Now i’ll work on creating a formula to set the column base offset based on the thickness of the nearby footing. Hope it works.


What I was trying to solve is to automate a repetitive task that I have in almost every project, which is setting the base offset of all columns so that the bottom of the footing is attached to the “Excavation” level. The align tool doesn’t work since the footing will move back to the joined column, so the only way was change the column bottom offset value for each column based on the footing thickness and the distance between the column base level and the excavation level.

This script works fine except for a small problem which looks very simple. When extracting the level elevation via the get parameter by name, it shows a length (ex. 0.45m) which needs to be converted to a number so that I can work it in the formula with the numbers from the bounding box.

Another problem is to get the column base level name, then get that base level elevation then convert the output to a number not a length.



If you want to convert an SI unit to a double, you could try “SIUnit.Value”. To convert it back, you could try a method like “Length.FromDouble”. Another option would be to use the nodes under Units>SIUnit>Actions to perform operations on SI units without stripping them to doubles.


That’s great. One more question, when I get the base level name parameter from the columns, it gives out the level id. How can I get the corresponding level elevation?




You’ll need to convert the ID back into an element (in your case a level). There are a number of custom nodes that will do this, e.g. Id to Element (package or Element.ByID (package Clockwork).


Thanks Andreas :slight_smile: