# Adaptive component- repeat between XYZ points

#1

Hello

(newbie question)

I am trying to run a 2 point cylindrical adaptive component along a three dimensional path, think a complex rollercoaster-like path.

I have an Excel file which contains XYZ coordinates and the path between each of the points is straight i.e result is a faceted or segmented 'sweep’
I am ok as far as using Dynamo to extract the coordinates and create points.

Since my adaptive family only requires 2 points, the question is how can I loop through the coordinates in the list, and repeat the adaptive component as follows:

Segment 1: from Point 0 to Point 1
Segment 2: from Point 1 to Point 2
Segment 3: from Point 2 to Point 3
etc…around 1000 points total

It currently fails as the input list of points does not have the same number of values required by the adaptive component.
In other words, I need to split it up into pairs of points, insert the family, then move onto the next points in the list

If it makes it easier, I can tweak the Excel data so that each record has XYZ start & XYZ finish values for each segment.

thank you in advance, any help greatly appreciated,

Andrew

etc

Andrew

#2

Hello ANDREW HANNELL,

You need to divide the list in a way that it has two points in it.

Look at below image and make same changes to your graph.

Please let me know if this workflow doesn’t work for you.

Thanks,

Ritesh

#3

Hi Ritesh

thank you for the very quick reply.

I don’t quite understand. I have tried List.Chop and it produces lists with 2 points in it similar to your screenshot.

Are you saying I need the List.Map step ?

Andrew

#4

List.Sublists and List.Chop aren’t the same

For a list {1,2,3,4,5…}

List.Chop (lengths=2) would create {{1.2},{3,4},{5.6}…}

List.Sublists (ranges=0…1 and offset=1) would result in {{1,2}.{2,3},{3.4}…}

However, by changing the offset value List.Sublists can give you the same the same results as List.Chop.

#5

thanks Vikram

#6

Hi Andrew, what you are describing sounds a lot like a project I´ve just done in dynamo (https://www.youtube.com/watch?v=fuiqg3nEAkE) check it out, if you see anything that would help let me know

Panel visualization divided by quad grids
#7

Hi Rodrigo

Sorry, I did not see your reply before (email notifications from the forum don’t seem to work)

thanks for sharing- what you have done looks great. It looks like the coordinates are at a particular spacing along the pipe ?
So it gets broken up into a lot of segments, even if it is a straight run (say between thrust blocks).

If only there was a better way to transfer data from C3D to Revit- Autodesk have to fix this…

With some help from Vikram- I did get mine to work.
It was for a precast segmental tunnel- the complete tunnel has thousands of precast rings.
There are some screenshots at the bottom of this post
http://dynamobim.org/forums/topic/lists-values-out-of-sync/

Andrew

#8

final result

#9

Hi Andrew, i was just browsing through forums and i have read your post from 2015.(hope you are around still )
i have a question about your final result. How did you manage to create that pipe with Adaptive component. Pipe is basically a circle extruded on a spline however how did you manage to connect the AC rings to each other because each one is placed on a point, they cant interact each other.

#10

i mean when you bend the pipe, rings will be collide.

#11

yes, still around…

for my purposes (a construction sequence/simulation) and the slight curvature of the tunnel, it didn’t matter that the rings collided a little

Sorry if I’m telling you something you already know- these segmental tunnels are constructed with identical, slightly tapered rings that are rotated to ‘steer’ the tunnel.
So to steer up at maximum curvature, you would put the narrowest parts of the rings all at the top. To go straight- alternate narrowest part at the top & bottom, or left/right

The geometry gets complicated- but you could possibly do it in Dynamo.
Alternatively- the TBM guidance/control system must have an algorithm which works out the ring rotations

Andrew