"Bounding box", level to level


#1

Hello I need to do measures on the overall pipe lenghts. I’ve done it for horizontal piping systems, it’s fairly easy, but when it comes to vertical pipes it’s a whole other world. Thanks to another user that gave me the idea to make a bounding box, from level to level, and then intersect with the pipe and “cut” it doing measures only inside that box. It’s a way to solve the problem.
I0m trying to make the bounding box, and i’ve query dynamo for the elevation of the levels. Is there any way to make a geometry with only 2 elevations?


#2

You have a couple of ways to do this. You can create a solid and get it’s bounding box or manually modify the bounding box geometry. Basically, you need to get the building extents (a basic rectangle is fine) and the elevations of each level. Group the levels/elevations for each floor (lower and upper bounds) then either extrude your geometry to match those elevations or modify the bounding box corners to match the elevations.


#3

But I need to build the rectangle right? Is it a way of doing it wihout drawing the rectangle? So i can apply it in a generic way? Basically, get the bounding of the building?


#4

Another bounding box :slight_smile:


#5

Looks like you can actually use the Springs node Geometry.SplitRecursively to cut the building bounding box with the planes of your levels. So all you need now is the levels in your project and the bounding box geometry of your building.


#6

Doesn’t the Element.Location node pull the line of the pipes? If so splitting those lines at the intersection of the levels may be faster than working bounding boxes.


#7

thanks for the suggestion! I managed to retrieve only the pipes I want, got the intersection node, but I just don’t know how to “build” a geometry to be intersected with level elevation. Sure, I could just Watch the nodes vector and subtract the elevation but that seems a little tricky ad confused when we talk about several vertical pipes. Do you know a way to build that plane/geometry with only an elevation?


#8

Didn’t know anything about the bounding box nodes, it seems very interesting. But i got some problems managing them. It seems Dynamo “builds” the bounding box for elements like doors and such, and i still managed to build one for the pipes, altough it got a little messy. But building the bounding box for the whole project, i just can’t figure it out. I was thinking about and “infinity” bounding box, limited only for the top and the bottom, but it seems it is impossible to do that. :frowning:


#9

Try this out. Due to the age some nodes have been renamed since then, but it’s doable still. Be patient and experiment and you will get there.

I believe there is also a node for this but I can’t recall the name or package off the top of my head.


#10

Among different possibilities, I wonder if Atmos.XY.frameExtents (Atmos package) would not be of help here. The description of the node is this one:
"Gathers the maximum and minimum points from a selection of model lines to create an extent frame. Output gives you the frame rectangle, corner points, centre points of frame and centroid of shape. "

Translating the corner points and creating a BoundingBox.ByCorners would follow…

Zhukoven has also a node called 3DSectionBox.Points whose description is this:
Extract section boxes from desired 3D views, and convert them into Dynamo Min & Max points. Use these points with “BoundingBox.ByCorners” OOTB node to get the bounding box element.”


#11

My original thought was to just get the bounding box of all walls in the project, but really all you need is the extents of the pipe systems. So your “project bounding box” could be a bounding box for all pipes. There’s a Clockwork node called Level.Plane that will give you the plane of a Level. This can be used as your “cutting geometry” to cut the solid created from your bounding box.


#12

I got it, I was able to do the plane with the rhythm package


#13

Thanks to all for the suggestions. It seems there are several ways to solve my problem, I went for a more direct approach. I will still look into the bounding box concept, seems interesting @Nick_Boyts


#14

The best part of Dynamo is that there is always more than one way to solve the problem, and each time you learn a new way you learn something which could be of use next time out. Let us know when you’ve the bounding box done so we can consider the pros and cons for each method.


#15

It’s easier to use the geometry nodes, in this particular case of the pipes, because to do the bounding box I needed to “transform” the pipes into geometry with custom nodes of Rhythm (I think). In case of walls, it should be easier once the “bounding box wall” node already exists.
I could only do the plane for a level at a time, trying to figure it out how to do planes for all the levels in one node :wink:


#16

You should be able to send the list of levels into the Level.Plane node.
This is what I was using as a test. (Should have used GetLocation instead of Element.Geometry.)


This would get you geometry for every level (floor to floor).


#17

thanks, will try that! I can make a plane for a level, but maybe this will solve the problem I have doing multiple levels planes so I can get them all at once


#18

That “element Geometry” is giving me just empty lists, I think he can’t make the geometry to the level :frowning:


#19

Can you show an image of what you’re describing?


#20