Place Adaptive Components on host


I require to be able to place adaptive components so that when the host moves, the adaptive components move with them, like they would if placed in the Revit environment.


I can place them using XYZ points I can extract from the host, however it is only placed at those points, and not on the host. The host by the way is a end point of a model line inside a family. I am able to get to the end point through the attached. I read something from 2013 saying that it wasn’t possible back then, but not sure if Dynamo has developed this aspect.



Thanks in advance.




Late reply on this. It seems like the API should allow for this. If it doesn’t, I say we place that request asap. I’m not an API expert, but there is a node for placing AC’s onSurfaceByUV which DOES maintain a relationship between AC and Surface after placement. The catch is the HOST is the SAME (surface) for ALL points within EACH AC. Seems like a next logical AC node would allow DIFFERENT hosts for EACH point placed.
(I’m guessing at least some of this will be done in Python, with the rest being done in native Dynamo in a custom node)

INPUT 1: Placement Points will have a minimum list depth of [][], but could easily be deeper, so []…[].
INPUT 2: The Host Elements will all need to be Revit Elements, in this case a combination of MODEL CURVES, EDGES, and/or SURFACES, and be a list structure IDENTICAL TO INPUT 1 (Points).
INPUT 3: Parameter (for a Curve or Edge) or UV (for Surface) will need to be supplied for EACH HOST and match host type.
INPUT 4: Family Type. I would say let’s stick to a single type for this (var), though a future improvement could perhaps handle a list of types.

The hard part (for me at least) will be Pythoning our way to the Revit API and hoping it allows for a separate host for each point. Has anyone out there probed this section of the API? If not, I may have to dig awkwardly into Python myself, but you guys may grow old waiting on me.



I’m on mobile right now so I can’t post any solutions or dig deep into what you’ve done, but it is possible to put adaptives on hosted surfaces and surface edges using Python API. For some direction - check out this post and the link I reference in the post:


Ben, thanks! This looks promising, will get started and post when I get stuck…