Assembly boundary - Assembly area/volume

Hi everybody

I got a bit of a situation.

Does anyone have any experience with collecting an assembly boundary? That can point me in the right direction? :slight_smile:

I want to collect the largest surface area from an assembly.

I tried several different methods, with boundary box, element solids and cuboid and trying to calculate my way out of it, but it dosent work properly.

Thanks in advance.

Mathias M.

Screenshots of what you tried with some explanation would be useful…

Here is a simple screenshot.

Method 1. is my primary solution. But I keep getting null values or empty list.

What am I doing wrong?

Method 2. I think I can filter the largest components and then collect the corner xyz-points and then use some vector in space calculation. I don’t think this method is the best way, becuase we need this area information on all projects.

1 Like

You need to get the member elements of the AssemblyInstance before passing through the Element.Solids node :slight_smile: Clockwork package has a node Assembly.Members that will work

1 Like

Thanks for you respons.

Here is another picture of what i meant.
I meant the surface area of the whole assembly area like i sketched.

Do you have any ideas on how i can achieve that? :slight_smile:

Thanks again.

Ah yes, sorry I misunderstood from the screenshot you shared :slight_smile: get rid of the List.MaximumItem node at the end and replace it with a Math.Sum node and set the values input @L2 (I think that should work but am not on a computer with dynamo to test)

If I understand, you want to get the footprint of the assembly? Following @awilliams example:

  1. Get assembly members and its bounding box.

  2. Create cuboids out of them and combine them.

  3. Getting its bounding box and its min and max points.

  4. Create the corner points playing with min and max points coordinates.

    maxPt = bBox.MaxPoint;
    minPt = bBox.MinPoint;
    corner1 = minPt;
    corner2 = Autodesk.Point.ByCoordinates(minPt.X, maxPt.Y, minPt.Z);
    corner3 = Autodesk.Point.ByCoordinates(maxPt.X, maxPt.Y, minPt.Z);
    corner4 = Autodesk.Point.ByCoordinates(maxPt.X, minPt.Y, minPt.Z);
    {corner1, corner2,corner3,corner4};

  5. Create rectangle by corners.

The only flaw of this process is that if assemblies are not parallel to X and Y axis, the bounding box is not exact and then the surface is wrong. I believe this was sorted on other topics on the forum, cannot remember where now.

2 Likes

Thanks for all the different input. :slight_smile:

I manage to get it working now.

I allso created a container object, that allways return the largest area surface as an workaround, until I find the post/topic whit the solution for assemblies that is not parallel to X and Y axis.

Hi @mbm2PCT9,

I’m not sure but maybe @alvpickmans was referring to the below topic.
https://forum.dynamobim.com/t/trouble-with-boundingbox-tocuboid-node/15448/5?u=mjb-online

Kind regards,
Mark

1 Like