0

I have a beam which intersects two columns . I would like to get the minimum point of the beam bounding box which is not inside the two supporting columns. I know that beam has a start point and an end point and I also know how to get its bounding box. However, it retrieves the bounding box of the whole beam and also those parts of the beam which are supported by the column.

Is this possible?

skeletank
  • 2,880
  • 5
  • 43
  • 75

1 Answers1

0

I believe this is a tricky problem: both columns and beams may not be "well behaved" solids, like a simple bar, but can be in L or I or U shapes, or many others. So the intersection point can be on any face.

Assuming a complex scenario, you may first need to find if both elements intersect somehow (see a sample here on how find intersection bounding box). Now that 2 elements are intersecting, for each face, call Face.Intersect to all faces on the other element that are close. If the face intersect, get each edge/curve and call against curves on the other solid. That should return XYZ points that you're looking for. The closest point to the actual node (intersection point of the Analytical Model) should be what you originally asked.

Sorry I don't have examples and cannot test this, but sounds reasonable :-)

Augusto Goncalves
  • 8,493
  • 2
  • 17
  • 44
  • Hello Augusto , since I posted this question I made the following algorithm : I take the upper face of the column and intersect with the analytical model of the column which contains start point ( I found the column exactly as it is mentioned in that link ) and then I translate it on Z axis with beam height . I know that it's in the middle of the column , but it makes what I want. The simplest method was to get the bounding box of rotated beam on xy plane but BeamElement.get_boundingBox(null) doesn't contain only the beam . Thanks for the answer – Daniel MoonLight Oct 21 '15 at 07:12