# Sketchup-like components (case study) - is it in? or even feasible?

Apart from testing it myself, I've seen a few posts (e.g. http://blenderartists.org/forum/showthread.php?212630-Blender-Duplicate-Group-What-is-it-for-Simple-Question; http://blenderartists.org/forum/archive/index.php/t-130745.html), including from Sketchup users like me, sort of circle around this topic but never ask this question directly.

Question 1: How can I overcome these problems in DupliGroups (first of all please tell me if I am not just using it wrong and it all can be done):

1) moving its origin seems to require moving to World origin (and using up a layer for clarity) <=> linked meshes have their own local origin which I can move data around in edit mode (easy enough)

2) it is impractical to link up DupliGroup data to previously created meshes (because of a) the origin mismatch as above, b) the mesh data that remains in it and needs to be deleted somehow)

3) linked meshes don't have the above two problems (can be 'blocked in' and then detailed up all at once) but I can't add objects to them, only faces (say I'd like to add handles as linked meshes, because handles are used elsewhere in the model too)

Question 2: How feasible would it be to make a linked object type with deeper hierarchy? Say an object that would look at its children and simply make every other instance have the same children. It would also mean dragging and dropping in outliner would be the simplest way to manage it by the looks of it.

Note: please do not feel offended or that I'm undermining any of the Blender functionality in favour of other programs, I would just like to see it be the best package around which means drawing inspiration from here and there.

• I see, I really should have asked two questions since one is a use question while the other a programming question. – DailyFrankPeter Feb 20 '16 at 11:00

I am not sure I entirely understand your question so forgive me if my answer doesn't quite cover your doubts, but you seem to be asking about the correct workflow for using Dupligroups feature in Blender.

I use them quite often and they are indeed a bit unorthodox, so I'll try and explain my workflow. Since you seem to be using Blender for architecture or Archviz, which also happens to be what I use Blender for, this will hopefully also be helpful for your case too.

Dupligroups are a way of creating bundles of independent objects that are grouped together and can then be deployed as a single object or stored as a library for later reuse. Similar to AutoCad Blocks or Sketchup components I believe (I have used very little Sketchup myself).

Unlike most other programs however group definition and group use are completely separate in Blender, that means you define a group with a set of objects but they aren't 'converted' into an instance of that group, they remain as a separate original you can go back to to modify but don't directly use in your scene.

In much the same way an instance of that group is generally an independent object chosen specifically as duplicator that generally has no other geometric data or geometry associated with.

That being said my workflow generally goes like this:

1. In my work file (or even a separate 'library' file if you wish to reuse them later or in different files or across different projects) I usually create a new separate scene exclusively for "group definition" where I create my "group originals". In your case that would be where I would place the window frames.

1. Those objects can then be grouped with Ctrl+G and they can belong to several distinct groups at once even (say one window with a handle one without and one with hinges)
2. Each group has by default it's origin at the scene's center (coordinate $0,0,0$) but this can be customized to accommodate several group definitions in the same scene but keep their individual origins in a convenient place relative to their participating objects. If you go to the Properties Window > Object Tab > Groups you can set a different origin for each group (use the option Set offset from Cursor for easier adjustment).

Group instances are generally used from an Empty type of object by default that doesn't have any mesh data or geometry of it's own. Only exception is if you want to create a non renderable dummy geometry as helper object for snapping or correctly placing the dupligroup in a scene.

By keeping group definition and group use separate you can then avoid trouble with object offsets. You can't really add an object to a group directly through it's group instance in Blender, but you can go back to the original and do it there and have changes propagate automatically to all instances.

Select all newly added objects you want to add to an existing group, then Shit-select an object already in the desired group, making sure both remain selected, but the object already in the group remains the active one.

Then press Ctrl + L > Groups to match the groups from active to all selected objects.

You can also create nested groups, or groups instances inside groups if you wish to have several modular reusable components that are repeated and combined often in different ways.

Hope this helps clarify the use case.

• Thanks! 1) How do you deal with geometry data after using a "dummy geometry for snapping"? Just leave it in but set to not renderable? 2) How do you nest dupligroups? I tried selecting a group in 3dview along with a new single object, then Ctrl+G, but that gives me just another non-hierarchical group (so the new group is a direct 'parent' of all of the items, not nested) – DailyFrankPeter Feb 20 '16 at 11:13
• Aha! Re. nesting: I was selecting the green outlined objects, not a group instance; and it seems in order to do it, you have to instantiate the group that's going to be nested -> add objects -> group new objects with the instance of old group. Therefore, you cannot make a nested group working just on master objects - correct? This means there are going to be duplicates (masters and group instances) in the location where you are preparing your nested group - correct? – DailyFrankPeter Feb 20 '16 at 11:39
• For "dummy geometry for snapping" I generally like to model it regularly then select all press X for delete and choose "Faces only" option that will leave edges and vertex to snap to but no actual renderable geometry. You can also extrude single vertex that will create a "edges-only" wireframe-like mesh for snapping purposes. – Duarte Farrajota Ramos Feb 20 '16 at 20:08
• For true nested groups you are probably better making them out of group instances instead of original objects, (although both methods can have advantages of its own) since updating the child-group masters will also upgrade them inside all "nested group" instances propagating changes automatically. You can break any group instance into it's sub objects at any time anyway by pressing Shift+Ctrl+A to "Make duplicates real" if you wish to break any relationship of groups – Duarte Farrajota Ramos Feb 20 '16 at 20:14
• Can you explain how you do the latter - a nested group without having to create an intermediate instance? I wasn't able to to it, and 1 step less in the process it always nice. Specifically I wasn't able to do it, because there is no way to select a group as one piece in the viewport, instead I appear to select the group's constituents individually and the resulting 'supergroup' is not nested at all. Cheers again! – DailyFrankPeter Feb 23 '16 at 9:08