Here’s a list of cool dynamic attributes that you can use to make your SketchUp components more interactive and flexible. These attributes can be combined with formulas, user inputs, or conditional logic to create powerful, customizable dynamic components:
1. LenX, LenY, LenZ
- Purpose: Control the length (X), width (Y), and height (Z) of the component.
- Use: Makes the component resizable along different axes.
- Example: Allow users to adjust the size of a table by setting
LenX
to a user-defined value or formula.
2. RotX, RotY, RotZ
- Purpose: Control the rotation of the component around the X, Y, and Z axes.
- Use: Animate or adjust the component’s orientation.
- Example: Rotate a door along the Z-axis to simulate opening/closing.
3. OnClick
- Purpose: Trigger actions when the component is clicked.
- Use: Create interactive behaviors, like opening windows, sliding drawers, or switching between configurations.
- Example:
OnClick: ANIMATE("RotZ", 0, 90)
opens a door when clicked.
4. Visibility (Hidden)
- Purpose: Control whether certain parts of a component are visible or hidden.
- Use: Toggle the visibility of components based on user actions or conditions.
- Example: Show or hide optional accessories like drawer handles or shelves.
5. Material
- Purpose: Change the material of a component.
- Use: Allow users to select different materials (like wood, metal, or plastic) for a component.
- Example: Let users pick from a dropdown of textures for a countertop by changing the material attribute.
6. Copies
- Purpose: Duplicate parts of the component.
- Use: Automatically create a series of copies of a sub-component, like balusters on a railing or chairs around a table.
- Example: Add multiple shelves to a bookcase by increasing the
Copies
attribute dynamically.
7. Position (X, Y, Z)
- Purpose: Control the position of the component or its parts along the X, Y, or Z axes.
- Use: Adjust the placement of individual sub-components relative to the main component.
- Example: Move a drawer front along the Z-axis to simulate opening and closing.
8. Scale
- Purpose: Control the scale of the component in all three dimensions.
- Use: Allow users to scale an object up or down proportionally.
- Example: Let users scale a component (like a lamp) without distorting the proportions of its sub-components.
9. Custom Inputs (USERINPUT)
- Purpose: Allow users to input values manually.
- Use: Let users type in specific measurements or values for attributes.
- Example: Allow users to manually input the width of a table.
10. Dropdown Lists (CHOOSE)
- Purpose: Create a list of options for the user to select from.
- Use: Provide predefined options like color, material, or size ranges.
- Example: Set
Material
toCHOOSE(1, "Oak", "Pine", "Metal")
, giving users a dropdown menu to select different material options.
11. Conditional Visibility (IF statements)
- Purpose: Show or hide parts of a component based on conditions.
- Use: Make certain features appear or disappear depending on user inputs or other parameters.
- Example: Use
IF(LenX > 100, "False", "True")
to hide a part if the component’s length exceeds a certain value.
12. Animate (ANIMATE)
- Purpose: Create smooth transitions for changes in attributes like rotation or position.
- Use: Animate the component’s movements, like sliding doors or unfolding furniture.
- Example:
ANIMATE("RotX", 0, 90)
for animating a garage door opening.
13. Scale Tool Compatibility
- Purpose: Make components scale correctly when using the SketchUp scale tool.
- Use: Ensure that parts like doors, windows, or beams maintain their proper proportions when resized.
- Example: Set dynamic behavior for a window so only the glass resizes, while the frame thickness stays constant.
14. Snap to Fixed Increments
- Purpose: Restrict user inputs to fixed increments for precise adjustments.
- Use: Ensure consistent dimensions, like setting stair heights or fence posts at regular intervals.
- Example: Set
LenZ
to increase in increments of 0.5 meters:=FLOOR(LenZ, 0.5)
.
15. Nested Component Control
- Purpose: Control sub-components inside a parent component.
- Use: Modify the behavior or attributes of nested components (like cabinet doors or drawers).
- Example: Use the
=PARENT!LenX
formula to make a sub-component’s length dependent on the parent’s length.
16. Randomization (RAND)
- Purpose: Add randomness to an attribute.
- Use: Create randomized variations in components, such as random positioning of scattered objects or varying the size of repeated components.
- Example: Use
LenX = 10 + RAND(5)
to create random lengths between 10 and 15 units.
17. Position Locking
- Purpose: Prevent the component from being moved or rotated by the user.
- Use: Lock certain parts of the model in place to ensure structural integrity or prevent accidental changes.
- Example: Lock a wall component’s position so it can’t be moved but other elements (like windows) can still be edited.