Getting some instance family types’ perimeter

Hi dear all,

I’ve created a script just to place some parametric instance family types of an steel frame in a empty model according to decided dimensions that i need to manipuled. That’s ok

The next step I would resolve is to get the proyected shadow of theirselves in the xy plane or the total orthogonal perimeter of them just in order to be able to build an automatic floor with this border

¿What strategy do you recomend?

My first aim was to use Element.Geometry to get the geometry references and go, Little by Little, trying to aproximate to this point, by is being a littel bit hard to me, just also cause I’m not so experimented in the use of this program

I have to say also I think I have a problema with Element.Geometry node cause I’m not able to extrac any thing more than a empty list from a imput with a bounch of those elements I told you before

¿What do you think? I let u my .dyn ( Unique Download Link | WeTransfer ) if you want to check it!

Assuming you want to generate these plans at the same time you create the beams, why not use the same location li e you used for creating the steel, pull the curve down to the XY plane and then use a PolyCurve.ByThickeningCurveNormal to generate the projected outline of the steel?

Hey, Jacob! Many many thanks four your answer, and your time Reading my post!

I understand your approach to these question, but I’m not sure it fits and solve this problem the way I want, I mean

Instance family types are two slabs (floor and ceiling) made by an steel profile’s frame this 6 columns: one per corner and 2 in the middle point in the long direction. Each one is inserted by an unique point situated in the down corner of each Steel frame, so there’s no generating curve that could serve to me to proyect as their perimeter

I thought a possibility could be to créate a rectangle with the same parameters that serve to change this frame dimensions (width height length) in xy plane. But I want to know their proyected perimeter also if this family instances are not created by the dynamo and I do not know their parameter values to build this rectangles

At least, all that I want is to know a method to extract final perimeter of an amount of this structures to build the façade also with dynamo. Sth like this:

I don’t know if do could help me thinking a new strategy to reach thiss
Thanks again

Sounds like I might have misunderstood your question. I thought you were looking to find the infill space between the beams.

Are you trying to get the perimeter of the building? Can you put a quick sketch together over the top view of the model image you posted? My gut says you can use the previous generating geometry to find the corner points in sequence; if it is two rectangles that make my the mass you can patch those into surfaces, union the surfaces into one, and pull the perimeter curves. From there you can build a polycurve and offset it outwards by half the column thickness, or whatever dimension you want to use from column center to perimeter face.

Don’t worry, for sure that maybe I didn’t explain my self much clearly

Yes, I want to know the total perimeter that is created by this amount Steel frame family instansces. The example i’ve post is formed by a bounch of five of these structures. The final number of this structures and their position are variable and i’ve reach control them by a their insertion points (painted in blue in 1st image) that serve to position each down-left corner of each structure in space (image 2)

I know that could be so simple to know the total perimeter by drawing a rectangle Surface just below each structure by using same parameters (width and height) that I’ve used to control the total dimensions of each one (image 3), buuuuut the problem is that I want to know this perimeter also if I don’t position this structure families with dynamo and I do it manually from revit.

That’s the reason I’ve tried to “proyect” each structure’s perimeter in the xy plane, because I need to do separately this two things: putting those steel frame structures in the model (already done) and get their joint perimeter in order to build the façade (still thinking… jajj)

I hope this image serve to explain the situation better, Dynamo forum only allows me to put one image per comment

So is the structure a family? If so you have options.

  1. Build some model lines for the base perimeter shape in the family environment. Then use Element.Curves to pull those lines, and generate the surface by patching a polycurve build from the curves.

  2. Use the parameters of the family instance to create a rectangle which you patch, then use the family instance’s coordinate system to put the rectangle in place.

1 Like

OMG, I didn’t know that it was posible to extract model lines with this node!

Jacob, your first answer work perfectly and it is so simple to applicate, many many thanks! I’ll mark your comment as this topic solution!

I wonder also if I could ask you a one more question cause I need to create the wall facade by using this perimeter but as “core exterior line” not “wall center line”. Dynamo’s “WallByCurveAndHeight” and “WallByCurveAndLevels” nodes don’t allow me to set this change of the wall location line.

I’ve tried using Genius Loci’s “Wall ByCurveAndLevel”, which has an especial imput for this wall location parameter, but it doesn’t work even by updating my Dynamo’s Python 3 to Iron Python 2.7., cause this node no longer Works in Python 3 (I’m using Revit 2025.1)

What do you recomend? Should it try to make a kind of equidistance of perimeter in order to correct wall position from wall axis to exterior core, or there is another way to make it simpler?

Best, Diego

Well, I’ll assume you want the exterior core face aligned with the curve you have now.

I would querry the wall type and get the core face’s offset from the center of the assembly, and offset the PolyCurve inward by this distance.

Many thanks Jacob! You were so kind with me and your tips helped me a loooot

See you at forums!!

1 Like