Did you know that you can produce L-systems with parametric array!
Here is some experience with parametric array of a single line. I have used getItem function to access the parent node using the method below.
getItem index:[1+int((index1-2)/4),1,1]
Denominator (4) defines the number of branches per node. the script above returns the parent of the current object in L-system. Using this trick, you can adjust the start point of the line according to the end point of its parent. Of course the end point is just a transformation of the start point which defines the production rule of L-System. In new version of parametric array this will come as new controller and much more easy to implement on any type of object.
Positioning items based on other items location and dimensions.
Randomize function inside the script controller.
How to use getItem function to address a specific property of an item inside the array.
Note: the getItem function returns the value of specific property of the specific object inside the array. getItem index:[index1,index2,index3]prop:property
Use script controller to access objects properties outside of the array.
control the radius of cylinders in array according to their distance from a specific object.
How to use setTarget command Addressing properties of other objects from script controller.
Using getItem command the get the value of specific property of the current item.
Note1: setTarget function can return the value of the any propety of any object outside the array. setTarget object:object nameprop:property name
Note2: if you dont mention the index argument in getItem function it returns the value
of the property for the current item in the array. getItem prop:property name
Use curve controller to change U & V offsets of a surface controller.
Using preview mode to handle large number of items in the array.
surfaceController takes following arguments: surface:surface name –Name of object in 3ds Max feedback:transform/position/rotation –function returns transform matrix, position in point3 value and rotation in EulerAngles value uOffset:offset value –Increase or decrease offset in U direction vOffset:offset value–Increase or decrease offset in V direction normalOffset:offset value –increase or decrease the normal offset mode:1 or 2 — set the controller in relative mode (2) or absolute mode (1) order:1 to 9— choose the order of rotation (items in drop down menu) works only when feedback is set to rotation data:1 or 2 — use uv-mapping information (2) or NURBS evaluation functions (1) uv:1 or 2— choose the uv direction. surfaceID:index number— identify the surface index when works with nurbs object or choose the UV mapping channel when working with mapping information
Use conditional statements to change the index value.
Reference: curve controller function takes the following arguments: curve:object name–The name of object in 3ds Max dim:1,2 or 3— set the controller on specific dimension. feedback:transform/position/rotation –function returns transform matrix, position in point3 value and rotation in EulerAngles value localOffset:offset value— offset the index value and shifts item along the path. endOffset:offset value— move all items away from the last point of the path. startOffset:offset value— move all items away from the first point of the path mode :1 or 2— set the controller in absolute mode (1) or relative (2) order:1 to 9— choose the order of rotation (items in drop down menu) works only when feedback is set to rotation