Moving adaptive points with Dynamo

Hi everyone,

I’m trying to modify the location of cornerpoints of a concrete base block in Revit:


More specific, I would like to move this point to a specific xyz-location. I made a family in which the 8 corner points are all adaptive. However, in Dynamo i cannot find any way to move the points. I tried the following:

Does anyone have an idea?

Try the below simple script along with the result in screenshot.

Hi Ahmad,

thanks for your answer. I am trying to avoid placing a new family instance. Instead, I would like to modify the existing element. Do you know if this is possible?

I Think in case of adaptive family dynamo deals with it’s location as one point “Generic Family” So set Location is not useful way to deal with.

IF anyone else has another idea we will appreciate it.

Something to get you started:
refer to this post to find which adaptive points belong to which family:

And this is a start for the actual moving. It is currently just moving one of the adaptive points:

I’m using a method from the RevitAPI to move the point.
I don’t know if there’s a package that has implemented that method into a node.

2 Likes

Hi Viktor,
I tested this script and it works perfectly to move one point, thanks for sharing! I am trying to update the python code to move multiple points at the same time. For some reason it is not working with a for statement. Could you kindly advise on this please?
Thanks,
Sergio

Well in the example I am indeed showing how to move one point.
I don’t see any reason why it wouldn’t work with a for statement, but feel free to share what you’ve done and I’ll take a look

Hi Viktor,

Thanks for the replay. Sure, find here an image of my code and also my dynamo script where I try to move 4 adaptive points to 4 different locations.

Move Adaptive Point_Multiple.dyn (26.0 KB)

Regards,
Sergio

You have to apply the UnrwapElement and ToXyz functions to each element in the list.
You can do so by putting them inside the for cycle.
Apart from that the first for cycle in your code starts with an indentation that doesn’t match the structure of the code - you can remove the tab there, 1 tab in the following line, two tabs at 26, 27 and 28

Hi, I’m having this problem right now, made the corrections you suggested but somehow it keeps me saying: “unexpected token ‘’”

Any ideas on what may be wrong?

Here a picture:

And my corrected code:

#Enable Python support and load DesignScript library
import clr

clr.AddReference(“RevitServices”)
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager
doc = DocumentManager.Instance.CurrentDBDocument

clr.AddReference(“RevitNodes”)
import Revit
clr.ImportExtensions(Revit.Elements)
clr.ImportExtensions(Revit.GeometryConversion)

clr.AddReference(“RevitAPI”)
from Autodesk.Revit.DB import *

pnt = UnwrapElement(IN[0])
pt = UnwrapElement(IN[1].ToXyz())

trans =
for i,j in zip(pnt,pt):
trans.append(i.Subtract(j.Position))
outList=
for k,l in zip(pnt, trans)
outList.append(ElementTransformUtils.MoveElement(doc, k.Id, l))

OUT = outList


Use that to paste formated text here.

1 Like