Boundingbox confusion


#1

So I’m running 0.8.0 and noticed a few things.

There seem to be a few nodes that have different names but appear to do the same thing. Ex:

a) Geometry.BoundingBox [Geometry>Geometry>Query>BoundingBox]

b) BoundingBox.ByGeometry [Geometry>Bounding Box>ByGeometry(geom: Geometry)]

c) BoundingBox.ByGeometry [Geometry>Bounding Box>ByGeometry(geom: Geometry[])]

b) & c) are almost identical even in description, but they have slightly different icons. a) still appears to do the same job though. Am I missing something?

The search is not returning what I expect. If I type in “Geometry.BoundingBox”, I expect that to be at the top of the list, yet the first hit is “BoundingBox.IsEmpty” and “Geometry.BoundingBox” is way down. Huh?

I’m also having a hard time understanding what BoundingBox.ByGeometryCoordinateSystem does. It doesn’t seem to accept a coordinate system (or I am misinterpreting the input?). I used a BoundingBox.ContextCoordinateSystem node to pull the coordinate system of another bounding box, then fed it to this node but it still won’t accept the input (. Any ideas? I’m just trying to figure out whether I can align the bounding box to the object or one of the surfaces/planes instead of always getting a bounding box aligned to the global X & Y axes. Thanks.

BBcoords

 

 

 


#2

the error that you are getting is purely of input mismatch. You noticed how it says that it couldnt find a version that takes inputs of two arrays or lists. That means that its expecting a single item rather than a list. Your ContextCoordinateSystem node is outputing a list with a single item on it. Use get item at index node to get just that one item and feed that in. That should solve this issue.

The difference between B and C is that input to B is a single item ByGeometry(geom: Geometry) while input for C will accept a list: ByGeometry(geom: Geometry[]). If input has square brackets [] at the end that means it accepts a list of items. if it has []…[] that means it will take a list of lists or so called 2d array. Personally, I think its stupid that this still exists in Dynamo as separate nodes because its quite easy to check if input is a single item, a list or nested list and proceed accordingly.

Also, A will get a bounding box from a piece of geometry while B and C will create a new bounding box around geometry. This makes me think that its just an omission or the first one was for Revit elements only while other two are for DS geometry.

search is pretty bad at this moment. Nothing really works. It’s actually been consistently getting worse. It will only get worse before it gets better…or so they say.


#3

Thanks Konrad for the explanation, I understand why there are two nodes b) & c) and wholeheartedly agree that these should be compressed into one. I’ll file an issue on GitHub and point to this thread.

I thought one could create a bounding box aligned to geometry (ex: to a face of an object) by using the node BoundingBox.ByGeometryCoordinateSystem but couldn’t figure out how to do it. I can use a node to acquire a surface, but then to create a coordinate system by plane, you need to somehow turn that surface into a plane (even though the surface I picked is already planar). I got stuck on doing that with ootb nodes. Maybe there’s missing functionality, or maybe it’s my knowledge that is missing!