Outline objects using dynamo?

Hi, I was wondering if there is any way to produce an outline of certain objects/geometry in dynamo. I have a script that will place a circle around objects that have another object within a certain distance. I would like to take those circles and get an outline of all the circles that are intersecting therefore surrounding the group of objects. If anybody has any tips or recommendations it would be appreciated!!

Hello @Sean-cochrane - This is not the most computationally performant approach, but depending on size will get the job done:

  1. Collect objects (In my case Revit furniture families)
  2. Get their location (Point)
  3. Use that Point to generate a Circle and set radius
  4. Create Surfaces from each Circle
  5. Thicken them into Solids
  6. Union all the Solids into one single Solid
  7. Create a Plane from one of the furniture locations (Point) as Planes do not go on forever
  8. Intersect that Plane with the unioned Solid to get the intersecting Surface
  9. Get the Perimeter Curves of that intersecting Surface

Graph: Sean_Cochrane_PerimeterOfGroupedCircles.dyn (45.9 KB)

3 Likes

Thank you! Ill give that a shot. In the mean time, do you have an approach in mind that would be more computationally efficient? I am new to the space so still trying to learn the best practices.

Thanks Again!

  1. Get all the points.
  2. Create a circle for each point using a Circle.ByCenterPointRadius node.
  3. Patch the circles into surfaces.
  4. Union the surfaces into a PolySurface using a PolySurface.ByJoinedSurfaces node.
  5. Pull the perimeter curves of the resulting surface.

Bonus: if you want to pull the ‘available surface area’ that hasn’t been occupied by an object you can use a PolyCurve.ByGeoupedCurves node followed by a Surface.TrimWithEdgeLoops to remove the ‘circle’ surfaces from the original surface representing available space.

2 Likes

Hi, I have a question related to this but for a different scenario.

When I use the Surface.PerimeterCurves node, its output is a list of Curves that may or may not be connected to each other randomly.

Is there a way to join them to create a collection of PolyCurves? I’m trying to use the Polycurve.ByJoinedCurves node but, as expected, it returns an error because it’s trying to join them all together (or at least I think so).

PolyCurve.ByGroupedCurves from I think 2.15 on.

Prior to that GroupCurves from Archilab and then a PolyCurve.ByJoinedCurves node works.

1 Like

Thanks a lot!!!

1 Like