Learning by Example: Tile Floor DC


#1

This is just me, trying to understand. Please correct me where I go astray…

The tutorial, Repeating a sub-component within a dynamic component (2 Dimensions), is the foundation for this model and this exercise. It seems 3D modeling is in large part, about virtually representing real world objects.

The Tile Floor dynamic component is, of course, limited in scope. It was designed to scale in increments based a static whole tile sizes. However, it is seldom that an area to be tiled is an uninterrupted rectangle that is evenly divisible by the selected tile size.

Tile laying is a real world skill, so I’m trying to increase this DC’s functionality. It seems like a great way to learn more about SketchUp, Ruby and DCs.

The original has been modified to be scaled to cover any rectangular area, without regard to tile size. That much is accomplished (with a few minor glitches) in the attached model. User input now determines tile size (square tiles only) and to set spacing between tiles (for ceramic or stone tile layouts that might require grout) through the attributes ‘Floor!TileSize’ and ‘Floor!Spacing’. However, there are no limits determined or placed on these values yet.

The ‘Tile’ sub-component axis has been moved from it’s default position at the corner, to the center of the tile. Tiles now can now be rotated from the Component Options window for a selected tile, around the Z axis from 0 to 90, 180 and 270 degrees respectively. This is done for manual texture pattern matching purposes. But automating this process for the entire floor to match an area pattern design is a daunting proposition.

So far, all assumptions in this tutorial I’m following have been based on a floor that is squared to the X and Y lines. Full tiles are the current default for the first rows and columns. In the attached, trimmed or partial tiles are only on the last row and column, thusly:

The next step would be to modify formulas to place the partial tiles all the way around the outer border of the rectangle. Suggestions are encouraged. I’m dusting off math that I haven’t had to use in decades and I’ll let you know how it goes.

The tiles in this file are exclusively square and uniformly set in rows and columns. I think there needs to be separate, user selectable attributes for X and Y dimensions of the Tile sub-component that are filtered by an acceptable aspect ratio (2:1, 3:1, etc.) and strategies for tile placement based on those considerations.

After the DC has been altered to place ‘cut’ tiles around the outside border of the floor area, a strategy for the user to select a predefined shape and then implementing that choice in a meaningful way seems logical. As an exercise, selecting and placing 1:1 and 2:1 aspect ratios rectangles and diamond shapes, plus staggering placement and alternating rotation by column and row will be tested too.

For someone unfamiliar with Ruby and the SketchUp Ruby API (like me), this exercise also provides the perfect opportunity to practice. Running scripts through the Ruby console that mimic proximate equivalents of the DC seems like a great way to gain insight into Ruby, DCs and SketchUp as a whole. I wonder what I can break?

While this is surely a boring exercise for the most of you, I hope to offer some comic relief while thrashing about for answers. :grinning: The current state of the file is found here:Tile Floor DC

Should be challenging. Should be fun.


#2

Btw, on a related note, how can I find IFC resources related to floor tiles? I should start learning about this topic too, right?

Thanks,
Phillip