Image based pattern

@Vikram_Subbaiah I tried to execute your script in Revit-Dynamo, but after that Revit does not react anymore and I have to restart the program. I have adapted the image file to a local one. Do I have to adjust anything else?

A question by the way, does the script simply replace many nodes or does the script have other advantages?

Your image is most likely very large. Try reducing its size
The image I used (below) was 280 pixels x 396 pixels
See if it works with this first.
Albert_Einstein

In this case, I guess it just replaces nodes. In other words, this script could probably be replaced by a graph of nodes and wires. But there are scripts that would be difficult to execute without Design Script.
Not sure about technical benefits, I just find Design Script more manageable and intuitive.

I believe Design Script it also runs faster than nodes?

Please see above for edited post, dxf using filled regions seems viable…

Hey guys!!
Thanks for this wonderful thread. One question.
I’m trying to work with tiles that obviously have a specific grid size. So I can’t divide the grid using integers.
How do I make a grid with specific dimensions so I can map over a surface?
Is this even advisable?

Assuming the grid is aligned to the UV axes of the design surface:

  1. Draw an isocurve on the U and V axis (Curve.ByIsocurveOnSurface).
  2. Get the point at segment length N for that isocurve (Curve.PointAtSegmentLength).
  3. Get the UV Parameter of that point on the original surface (Surface.UVParameterAtPoint).
  4. Find the U and V values from the UV parameters. (UV.U and UV.V).
  5. Define a range from 0 to 1, stepping by the non-zero U and V parameter values (Range).
  6. Find coordinate systems on the surface at the cross product of the parameters (Surface.CoordianteSystemAtParameter).
  7. Transform the desired geometry by the new coordinate system (Geomety.Transform).

The coordinate systems can be scaled by the associated image values, or the resulting geometry can be colored to new shapes - depending on the desired outcome.

Note that instead of using a coordinate system, you may be better off looking into the pattern toolkit, a package which was introduced about 3 years after this thread.

If any of this is unclear, please start a new thread with as much as you managed to achieve, and provide whatever relevant data others would need to produce the end goal (image of a reasonably small dimension, design surface, etc.).

Thanks for the clear instructions.
Will work through. Much appreciated.

Hi Jacob

Thanks I got it to work.
I’ve actually used pattern toolkit. I just can’t find how to input precise real world tile sizing into the nodes which your method allows. We have a specific tile size which needs to be applied onto our building surfaces so we can’t divide by integers. I might be missing something perhaps?
Thanks again and please let me know if I can actually do the above with patterntoolkit.

Well, the method would be to create a bunch, drop a bunch, scale a bunch, and eventually get where you want.

It’d involve a lot of thought and effort, but it could help scale up should the density/scope get to be a bit much for the heavy handed method I posted.

Yeah I agree this method is heavy handed but I’ll be breaking up the tiled surfaces into portions so it doesn’t become too much for my computer to handle.

We (the Notre Dame Team, in particular @Alfredo_Medina) did something similar like this with the Rose Windows.


Maybe its of use.
1 Like

Great work!!
Thanks for sharing.