Semi unique components


I am making a model of a floating raft that will be built of modules. These modules will have the same type of base but will have different surfaces on the top. I have made a component for the base and now I want to have many modules with that base but with different surfaces. So if I change the base all bases will change. But if I change the surface only the ones with the same surface should change.

Don´t know if it makes any sense what I’m trying to explain?

If I interpret this right I would nest the base and the top components inside another component containing both. I would copy that component and make it unique, then go into the top component within and make that unique. You could repeat this process as many times as you wish for every different type of top you have.

Here is an example model for your review, take a look at how the file is structured using the Component Window, Entity Info and the Outliner UNIQUE.skp (58.9 KB)

Here is how the file were created:

Hope this helps

Your base should be a component. Each top could also be a component, but have a unique component for each type of top. These tops and bottoms could then be nested inside a module component. You’d have a unique module component for every type of top surface you had. This module component would contain the standard base (the same for every one in the model) plus the unique top.
Edit: Like @IanT just posted.

Say you had 20 modules, you’d have 20 instances of that base component in the model. If you had 10 type A tops and 10 type B tops, you’d have 10 copies of the type A module and 10 copies of the type B module.

That’s one way to do it anyway.

When you say the tops have different surfaces I’m not sure if the geometry will differ or just the material applied to them. If it is just the material that differs then you don’t need unique components.

That would only be true if the whole module base plus top component had the material applied externally to different module instances. If the material is applied to a face, or even externally to the whole top component, you would still need to have separate modules for each combination of base/top material

1 Like

Yeah, you’d still need unique module components, but not unique top components.

I think that would still only be true if the top component as a whole had the material. If you apply material to a face or faces in the top component, it (the top) would still need to be unique for each different material.

In my example I apply material to the faces within the component. I always apply materials to the faces within the component out of practise, that’s why I had to make the top components unique.

You can as McGordon suggests apply material to the component as a whole and get away without making the tops unique. However, you have less control with textures doing it that way, in my opinion.

On another note, materials applied to faces override any materials applied to the component as a whole.

The two types of tops will have different geometry as well, yes. I need two types of modules just as you describe. One is Base + top A (module A) and the other is Base + top B (module B).

So if I understand you right, I need to make one Base component. Then two different top components (A and B). Then I make one nested component of Base + A and one unique nested component of Base + B. Then if I change the base of one type module, all bases will change no matter which type of module it is, right?

Thanks alot!

1 Like

The need for a semi unique component is something I think all advanced users have dealt with. It would be nice if you could somehow link similar components, e.g. doors of different width, so changes in one is applied to the others, but the differences (in my example width) are still kept. If there was such a feature I’d use it on doors, windows, rooms, apartments and maybe even full buildings (when you draw a whole neighborhood of similar buildings).

For now you have to rely on several levels of nested components. If you have a large amount of semi unique components, e.g. apartments with different ceiling height and/or window placement, I made a small plugin that can be used to copy geometry between them, e.g. make them all have a bathroom component in the same relative position. This could just as well be used to place copy a handle or other detail into the same position of a bunch of semi unique cabinets.

Yes all bases will remain the same as I did not make them unique.

We can call it ‘Dynamic Component’ or something simular😂

1 Like

Except that they are in no way linked. Edit one and nothing happens with the rest.

that depends on the context. If the context is the model, they are:

here is the file:

DC-context.skp (170.5 KB)

use the interact tool to redraw:

This does not seem to work. As soon as I make the module unique, the base seems to be unique as well. When I change the base of on module A, all the other A modules bases change but nothing happens to the bases of the B modules…

I don´t understand how I can use this in my case? If I chose dynamic component on one of my Base components, there are no options available.

You must be doing it different to me. It might be worth watching the gif a few times over, the file I uploaded does work as intended.

It’s better In pictures than words, but I’ll try to explain:

Make the base component, make the top component, then select both and make them both a component. (Nest the top and bottom).
Copy the lot across and make that nest component unique, then double click this nested component and select the top inside and make that unique.

I tried to make the example simple to follow to show what can be achieved. When you get the jist you could alter to suit your purpose for different needs.

Hope it helps.

The Dynamic attributes are pro only…

This topic was automatically closed 91 days after the last reply. New replies are no longer allowed.