Hello everyone
I’m a bit stuck and would really appreciate any help.
A little context:
I want to take all walls of a certain type in a model, and then to get a surface for each wall and create a sort of a dot grid on each surface (with editable horizontal and vertical distance).
So I get surface of each wall, translate wall location line to wall bottom, and distribute it vertically for a defined distance, including the maximum wall height.
Next, i create all dots using Curve.PointAtSegmentLength for all of the prevously created lines.
So I have two 3-Leveled lists:
one for all of the horizontal lines on all of the walls’ surfaces
the other one for all of the segment lengths for horizontal lines (because every wall has different length)
Everything works great if I use List.GetItemAtIndex on both of these lists and then feed it to Curve.PointAtSegmentLength. I get a complete dot grid on a wall under defined index.
But when I try to do it for all walls, i only get a diagonal set of dots on each wall (each dot in a diagonal is overlapped three times).
(I will input picture below the post)
I’m guessing I need to adjust Use Levels options but I can’t seem to make it work.
The list levels shouldn’t match. If you want multiple points (at the specified segment lengths) per wall length then you should have one more level of lengths than curves. We can’t see how you’re creating your data so we can’t really suggest how to fix it, but you should have a list of wall curves and a list of lengths per wall. Unless you’re doing something else with the information, that only requires an @L2 list of walls and an @L3 list of lengths.
You shouldn’t need longest lacing. If that’s what’s getting you all your points then you have mismatched lists. You should have the same number of segment length lists as you do wall locations - no lacing needed,
I have realized something is not right when I tried the same on a different wall configuration.
I went back and recreated the part of the graph for segment lengths. Because I actually needed all segments on all walls to be equal (except of the ends, of course), I extracted the longest wall and made a range with the length of that wall as the end value. So i got a flat list of segment lengths and then there was no trouble feeding it to Curve.PointAtSegmentLength together with the @L3 list of lines. I need the lines grouped per wall, that is why I needed this list to stay at @L3.
So as an output I get all points grouped per wall, and then per vertical, which is good enough to use it further.