Placing family on reference plane created on a curve in dynamo

So been testing ideas for a couple of days and yet to get the logic i want to work as expected including testing all the ideas on the forum i have found. So posting up the files here as i feel i am missing something. As this should be such a simple task. All i wanna do is place a family on a plane without first baking the planes as surfaces and re-referencing them in, all in family environment. As this family file will then be placed in the project using adaptive points.

This is placing the family on the points but because it is using FamilyInstance.ByPoint and a plane it is not using the curves normals to align the family. Using FamilyInstance.SetRotation does not work here either as it only rotates in the local Z axis not a given axis

This is build using the plane normals and then “baking” the geometry to Revit using Springs.Form.ByGeometry This is the correct alignment/placement but the generic form geometry can not be edited with parameters as far as i can tell so as soon as its in Revit its dead geometry. I want the families placed to follow these. Yes i could use adaptive components and put a start and end point and place families like that but this is one of 50+ families of these that are bring placed with adaptive points and having so many will make the project file unusable.

This is an overlay with the both the working generic forms (Grey) and the broken families (blue)

Revit File.
11-1-1_Tunnel_Excavation_Tube-Spiles-WIP.rfa (344 KB)

Dynamo File (That places families incorrectly)
02-1_Tunnel_Excavation_Tube-Spiles_Fam.dyn (144.7 KB)

I feel like using a repeater in the adaptive environment will be drastically easier and maintain the parametric relationship you’re after here. You’re already using adaptive components and you want it to update, so this is the logical step though the UI and therefore likely though the API as well.

That said, I haven’t seen anyone use it, and it is not available in the family environment but the massing environment. Info here: https://www.revitapidocs.com/2020/27dbc5bd-40e7-c044-11e6-7053adf92c6f.htm

Thanks, will take a look and see what i can do. Yeah using a repeater maybe better than trying to run everything though the code. Will see if i can get it into the code thought the API as well.