Create perimeter lines from multiple separated elements at the same level

Hello everyone, i need help about getting perimeter lines from a multiple separated elements at the same level.

im trying to make a railing object that rounding the floors element. but the problems is the method construction is precast building.

so i already did the following to get all floor elements at level that i want. but the result its more like this picture below

All the floor is separated by a structural framing beam, what i want to achieve is like this illustration. (objective to make the red lines)
image
blue = floors

is there a way to approach this objective?
Thankyou very much !

Hello @najwan.joan.sv is it something here you are after ?

Revit_Fbf7MQ2D6l

1 Like

Yes! exactly, i already have tried into my project unfortunately, it doesnt work for me, because the Line.ByBestFitThroughPoints node doesnt work perfectly due to its complexity of the floor geometries itself… so at PolyCurve.ByJoinedCurves node its always failure to construct because polycurve arent connected

oh is it the ꟿ Collect.ElementSketch node only sketch the floors element? because its return empty list on the structural framing element…

allright looks complicated…it was just an example there probably could work on your blue example…in your situation there probably more we had to take into account and many things can go wrong

1 Like

Likely better off intersecting the plane of the level with the exterior walls which make up the envelope.

1 Like

hmm, theres no wall. this is just structural model

So no architectural model at all? That seems like a unique project workflow - would love to hear more as it has conjured up ideas of 'here is the framework, owners pick out a base module and customize it and then we fabricate it and slide it into place"… Seems like a fun project although rather unique and you’d still have control over the overall envelope so you’d have a massing model to intersect with somewhere (or so I imagine).

Another possibility would be to take the convex hull of the points as a starting point; if the resultant curve doesn’t intersect a curve’s midpoint then you discard it, add the curves which intersect the base curve, and use the PolyCurve.ByJoinedCurves method that allows for extension and trimming of the base curves (as shown in your last screenshot).

1 Like

Yes, so this project is to engineer and calculate safety elements at the building construction stage under BIM and QHSE management. such as engineering the location of safety nets, scaffolding, etc. with dynamo programming. so I was only given a structural model. ya i thought this project was unique too and unusual…:upside_down_face:

hmm interesting, I’ll try it. thank you

Ohhhhhh… this makes a LOT more sense.

You don’t need to know the perimeter of the floor plate, you need to know where people can fall and decipher which type of protection to provide at each location…

  1. Gather the top surface of each floor plate AND beam. Union into polysurfaces by floor/elevation. You should have one ‘walkable’ surface per floor when done, though you may want to study this floor by floor to start with.
  2. Take each floor and get the sketch loops as individual polycurves. Offset each polycurve by the desired thickness at which ‘falling’ is a concern (if a person can fit though is a different concern than if a screwdriver can fit through). Be sure to use the + and - offset.
  3. Loft the offset surfaces into one donut shape.
  4. The surface area which intersects the polysurface doesn’t need any protection - you have a floor there, while the surface area which doesn’t is a concern. So we use a Surface.Difference node to remove the floor from the donut. This illustrates where the concern lies, but it doesn’t yet illustrate where you need the protection.
  5. Intersect the original polycurve with the surface - the resulting curves are the ‘edges’ of the floor plate where protection is required. This will catch elevator shafts, stair shafts, and building edges wholistically.
1 Like

Hmm am i doing it right? im a little bit confused

  1. Taking each floor polycurves and offset it with + and - offset. then make a surface from polycurve

Hi @najwan.joan.sv is it possible you could share a sample rvt with only one-two level, then we can try…

1 Like

Yes of course i can, I can send the file to you @sovitek. i’ll message you

Better to post it here so others can help as well.

1 Like

Oh haha ure right :smile:
here it is
https://drive.google.com/drive/folders/10QPKV0UBHZ4dJkyWhDMRE2LtdiJUa0-X?usp=sharing

Hi @najwan.joan.sv here i have tried on your level LT.7 and guess something could work on the other levels as well…

1 Like

  1. Hmm due to you’re selecting elements manually, and im trying to select the element based by level. It turns out that there are several elements that do not have level parameters (pictures no. 1)… im still figuring out how to getting those element that without level parameters. ive tried to getting all the elements (bypass the level filtering) and it turns out the results are far from what was desired

  1. Did you selecting the walls too?

Hi @najwan.joan.sv i select this way here in the test…try it :wink:

Revit_gXFOhYDTfu
test floor merge forum.dyn (46.7 KB)

1 Like

Here i try where i select all elements it will be slower specially first run…but should work

Revit_6uZLFP2Hbr
test floor merge forum.dyn (75.2 KB)

1 Like

hmm i already try dynamo files given from you. but, node group curves, its always resulting null. wondering whats causes this…

i already try too with my made dynamo file, but the result still not getting perimeter of the floors…

  1. group curves still resulting null, oh i try with multiple level plane, so i used cross prioduct lacing

  2. I skip the group curves nodes. but still result is far from what desired