Welcome. In this series of videos, you’ll learn how to use ICE to copy and merge topologies. You’ll also learn how to apply materials using ICE. The goal is to generate a building from predefined parts. In this example, you will use a main floor, a middle floor, and a roof as templates. There are several advantages to using ICE modeling for this. For one thing, you can create a slider to change the number of floors interactively. This would not be possible with a non-ICE approach such as cloning and merging. Cloning and merging would also create many extra objects in the scene. Another approach might be to duplicate polygon islands. This doesn’t require as many extra objects, and also provides a slider. However, it would be difficult to update the roof’s position when you change the number of floors. It would also be difficult to move all the upper parts when you modify something below them. ICE modeling offers good solutions for most of these problems so it’s an ideal approach to a project like this. Before re-creating the building from scratch, let’s explore this scene further. The 3 templates were modeled to fit together perfectly. And they’ve been offset to see them better. In addition, there is a null which is used to control the placement of the building. There’s also an empty mesh called Material_Container that acts as a convenient central location to manage all the materials. This material container has an ICE tree that gets the names of materials, puts them in an array, and stores the array as a special ICE attribute named Materials. An array is an ordered list of elements. When referring to elements in the list you must use the array indices such as 0, 1, 2, and so on. Each of the 3 meshes has an ICE tree that copies the Materials attribute from the material container. This allows you to change the Materials defined in the container, and all objects will update automatically. The tree also sets each polygon’s MaterialID based on pre-existing clusters. MaterialID is a special ICE attribute that specifies which material in the Materials array to apply per polygon. For each material, the tree gets each cluster by name, and sets the polygons’ Material ID to the corresponding index of the Materials array. Note that for the Material ID attribute, the integer 1 refers to the first material in the array even though its array index is 0. This is because the Material ID 0 always refers to the material applied directly to the object. The building has an ICE tree that builds its topology based on the templates, then transfers the MaterialID attributes from the templates, and finally copies the Materials array from the container. Before rebuilding this tree from scratch, let’s take a closer look at what it’s doing. This will make it easier to follow along later. The top branch gets the main floor, middle floor, and roof. Then it gets their Topology attributes, transforms the topologies, builds an array from the transformed topologies, and finally sets the building’s topology. If we take a closer look at the Set Topologies compound, it just merges the topology array and sets the Topology attribute on the Self object. For the middle floors, there’s a second array that gets inserted into the middle of the main array, between the main floor and the roof. The transform that gets applied to the topologies is based on the null’s global kinematics. There are also some additional offsets that need to be applied for the middle floors and roof. The second branch of the tree sets the material IDs of the polygons. The polygon index is used to determine the corresponding polygon on the original object. Then the tree looks up the Material ID of the original polygon and sets it on the new one. Different operations are needed to calculate the corresponding polygon on the original objects, depending on whether the polygon is on the main floor, middle floors, or roof. The last branch of the tree is very simple. It just gets and sets the Materials array from the materials container, just like on every other object. So now we’ve got a good overview of how the tree works. In the next video, we’ll see how it was put together in the first place.