Placing points over a face

Hi,

I’d like some thoughts on the best way of placing some points over a face.

I’m happy using Python or Dynamo to achieve this.

Essentially, I’d like it for the user to select a face - possibly a wall or the face of a generic mass - the routine would then place points over the face in rows and columns spaced at certain distances - I’ll then use these to place bricks.

I’m thinking that the routine would start with the user selecting a face, I think that the routine would draw some geometry which I’d then use to intersect the wall to get the points.

Any other ideas or pointers on the best way to achieve this?

Cheers.

You could use a Revit mass then apply a patterned surface to it. If you need it to match the face of a wall, you can use pick face tool to create it so both elements are in sync. No Dynamo needed if that works.

Yea, I did consider that, and also using a curtain wall too… But I’m looking for a programmatic solution so I can tweak it more easily… Once I have the routine running.

I guess, to simplify what I’m looking for, I’m trying to place a point on a plane (or workplace).

I’m currently using Designsript Point.ByCoordinates, to create the point layout, is there a similar function which will place then on a Plane - say Point.ByCoordinatesOnPlane.

The other solution I’m thinking of would be to transpose the point positions from the global XYZ coordinates moving them onto the plane - some sort of 3D move function…

Thanks

There is no point on plane node, which is a bit unsual for a computation design tool, but you could us the CoordinateSystem.ByPlane node as a workaround.

If you are looking to transform the points from one plane to another, then its the same concept - use the planes to define new coordinate systems using the method above, then use Geometry.Tranform node:

Mapping between parameter spaces using surface UV is the more typical approach for such transformations as its parametric/extensible and isn’t limited to Cartesian space. However, there are no dedicated nodes for this, which means more work: defining two parameter spaces using surfaces to map, then extracting UVs to perform the mapping.

3 Likes

OK, I tried the UV approach, using a blog I found on the internet, as this allows me to place the Families at the same time - seemed simpler.

But I’ve recreated the graph exactly the same, but get a null response from the Springs place family node.

Place family on face 01.dyn (8.8 KB)

Am I missing something?

It’s highly likely to be a data type issue: the node requires a face so try converting your surface to a face then testing.

Thanks for your help, I managed to get the FamilyInstance.ByFace working in the end:

1 Like