Structural Framing Get Connected Elements

Hello Dynamites,
I’m looking to retrieve a list of elements connected to a beam. You know how, when you hover over a beam and press the Tab key, it magically reveals all the connected elements? Well, I’m curious if there’s a Dynamo solution that can replicate this.

Now, for MEP elements, there’s this MEPover package that gets the job done. But when it comes to structural elements, I’m in the dark. :milky_way: Is there a package or perhaps a method hiding in the Revit API that I don’t know about? If you’ve got the inside scoop, I’m all ears!"

Thanks in Advance
Untitled

Hello, here may be a path to explore (there is surely perhaps a simpler one) based on this post (my problem was to find the interconnected walls)

Cordially
christian.stan

1 Like

This post that you have shared looks promising. I will definitely give it a try to solve my problem.

Thanks
Nirmal

1 Like

Assuming you are wanting to get all elements that are joined to the selected element, Rhythm’s Element.GetJoinedElements will work.

1 Like

@staylor
It does not work.
[video-to-gif output image]
I believe my problem is different. I will now give Christian’s post a try.

1 Like

If you can’t get Christian’s post to work, post your sample model here so we can take a look.

1 Like

Element.GetJoinedElements did not seem to work for structural framing when I tried it.

I used distanceto for start and end points to the curve of the other element as a workaround. If zero it should be joined.

Hi, the example is for all the elements connected to it, here I think we need to make a recurring function (it’s a chapter that I read, it doesn’t fit for the moment) step by step .
Sorry I can’t do better at this stage.
Sincerely
christian.stan

Hi @NIRMAL not sure at all, but here is an idea, could probably work in some cases…

Revit_o2fQ6cyBak

2 Likes

Just to be clear, the “magic” Tab-Select functionality does not get all elements connected to a particular Structural Framing element. It selects all Structural Framing that share a common endpoint.

Also, “Structural Joins” are different from geometric joins (as a structure person, I think of concrete elements as an example of geometric joins) that cut geometry of one element from another. They control a number of behaviors such as how the elements move in relation to one another and cut back (for steel or wood). I don’t know how the different joins are handled programmatically or in the API, but I would guess that is why the Rhythm node is not working on the steel beams in your example.

That doesn’t help answer your question, but it may help others trying to provide an answer.

Joe

2 Likes

Hi @sovitek

Thanks for showing this graph. Please share the package name so that I can access this node in my system.

Regards
Nirmal

Hi @christian.stan
I tried your example but I didn’t get well along with that because I was getting some errors.
First one was this


I fixed it by searching here in the forum itself by modifying this line from your code
c=IntersectionResultArray() to this c=clr.Reference[IntersectionResultArray]() and the StrongBox error was removed
But I couldn’t handle the second error which is happenng at this line( if d[0] == None: )of the function

def Inter(el1,el2):
    a=el1.Location.Curve
    b=el2.Location.Curve
    c=clr.Reference[IntersectionResultArray]()
    d=a.Intersect(b,c)
    if d[0] == None:
        pass
    else:
        return el1

Agreed!

Think it was dynamep, and for select it was rie, but can befound in many package i guess…btw it will only work in some cases as its actuelly just create a scaled BB box in the first selection…not sure at all but Genius Loci have a node "select joined element, havent tried but probably it could help, but will never be as tab select