Geometric position in the model of individual elements

I would like to know if there is a way to output the location of individual elements from Revit. I envision that I have elements, such as the material layers of a wall construction, and I can output the location of these.
Does anyone know of a solution for this or have ideas on how I can implement this using Dynamo?
Thanks!

Yeah, sure, you can get the geometric location of pretty much all things in revit (I’m assuming here by location you mean coordinates). There are many threads on here about getting location of elements and also in different coordinate systems too.

As for the layers of a walls construction, I’m curious why would want to schedule each layer? I mean, a walls buildup are layers which are all relative offsets to the centreline/plane of the wall, so just schedule the centreline and give a buildup schedule/detail. But, having said that, this is also possible, you can get centreline and translate the endpoints perpendicular to the walls centreline by the offset value.

Hi @Daniel_Woodcock1

thank you very much for your answer. That is already good news.

Assuming I don’t know how my wall construction is built, for example, I would like this to be known by the coordinates. In addition, I would also like to output other elements such as the columns of a wooden stud construction or even screws that are not part of my wall construction defined in Revit, but are located directly in the same place and are therefore actually part of the wall.

Do you have any tips on how I could output the coordinates? I am missing the starting point here unfortunately. Or possibly other helpful threads on this topic? Thank you very much.

OK, if you really want to get the coordinates that’s cool. :slightly_smiling_face:

Yup, starting point is use the search bar in the forum and search for “coordinates” or “get coordinates” or “wall coordinates” etc. Getting the coordinates of an element is a very popular topic on the forum and is usually one of the first things people do with Dynamo. I personally recommend the Location+ node from clockwork package, it is pretty robust in handling different types of cases.

Great! Thank you very much for your advice!

To further process the filtered data I thought of Excel, or would you have a hint here which software is suitable? I would like to import the processed data back into Revit later, probably automatically via Dynamo.

Yup, excel is a good choice for storing the data outside of Revit. You could also store inside Revit with Parameters and then export the schedules… or do both. Up to you! :slight_smile:

Great, thanks!

I just tried to get the coordinates using the Location+ node from clockwork package. Now I get the point list of my walls, but not of other elements or the subcomponents of the wall. With my result, I want to get an idea of which wall layers are intersected by screw for example, or which material layers are neighbors . So I wonder if the points are the best choice, because I assume that they are defined by the center point. Since the center points are distributed in such a way that then the coordinates do not intersect, a wrong result could be shown.

Yeah, you need to search for “get wall layers”… It’s all in the forum search. Once you get the wall layers you should be able to offset your line (assuming line is centreline) by the wall thicknesses. Then you have a bunch of lines that represent each layer and you can schedule these.

Here is something to get you started…

1 Like

Hi @lavinia.l,

You can retrieve all the wall layers locations with the Wall CompoundStructureLayersLocation node of the Genius Loci package and get the wall layers materials with the Get Compound Layers node.

1 Like

Dear @Daniel_Woodcock1 and dear @Alban_de_Chasteigner

I have already implemented the wall thicknesses. My idea now is to output the center points and add the thicknesses automatically to check in Excel, for example, whether elements intersect or touch each other.

My current problem is that with the Element.Location+ node only the wall points are output, but not the individual wall layers or the other elements such as column or screw. Also the Wall CompoundStructureLayers Location node isn’t working. Anyway, the other elements away from the wall would be missing here.


I was mistaken, it seems that in fact only the supports are output as points (see screenshot). The walls are displayed as lines or curves (see screenshot). Nevertheless, the problem remains that the subelements of the wall are not displayed. Here the Wall CompoundStructureLayersLocation would be helpful, if it would work (see screenshot).

Hi Lavinia,

The input required in the Wall CompoundStructureLayers Location node must be a wall element and not a wall type. It’s not possible to find the geometric coordinates of a wall type not yet drawn.

Hey @Alban_de_Chasteigner

do you know the appropriate node for a wall elemen as input? I am looking for it in vain.

Probably the SelectByCateOrType node.

Great, that works. Thank you.

The X and Y coordinates are output. Z is always set equal to 0, why is that? Would you have a tip on how to output the height as well?

The location of the wall is a projection on the ground.
You can find the height of the wall in its parameters and use the Geometry.Translate node to perform an offset.

Since I theoretically don’t know at what height my elements are, I would have to move my wall in tight increments along the Z-axis and thus get a lot of data. Therefore I wonder if there is a second possibility, where maybe the X axis is always 0.

I have another question of principle. Is it at all possible that I can output the Z-axis of an element?

The projection puts all materials on plane Z=0, although this does not apply to all elements. This applies, for example, to a wall with a different vertical structure. Also here the materials, which are actually further up in the wall, are projected on plane Z=0.

This gives rise to my next question, whether Revit can distinguish the position of the materials here and assign them to the corresponding Z layer or whether vertical layers with different materials are combined.

Why do you need to move your wall? Your wall has a position in 3D space, or to be exact it has a line and vertical extents. If your line is at z=0 use the Level.Elevation and offset at base values to move it up.

I’m not sure what you mean here… If they are modelled then you know where they are. If they are not then I’m not sure what you are trying to achieve.