Same attributes across different but similar components?
-
hi,
i work for a custom cabinetry design/retail/manufacture firm, and i'm currently drawing several doorstyles from one of our cabinet lines into sketchup. though they all use a 1/4" recessed (flat) center panel for now, the door frame profile differs on each of them...yet they are all designed to do the exact same things as far as being dynamic goes - they are adjustable in width, height, and depth (thickness). the first i did of course had to be done the hard way, that is, i had to come up with all the formulas that position and size the door members correctly. after that it just became a matter of cutting and pasting the attributes (in the form of excel formulas) from a finished door over to the next one i'm working on...
...but the way i'm having to do this is getting monotonous, tedious, and very time consuming - i have to have two instances of sketchup open, with the model of a complete and working door in one, and the one i'm working on in the other, and i have to cut and paste the formulas one at a time, which makes me want to pull my hair out. all in all, the cutting and pasting of formulas from a component and its sub-components in one model over to a component and its sub-components in another model takes 15-20 minutes. and yet i can't seem to find a way to copy all the attributes and their values of one component and all its sub-components over to another component with the same number of sub-components (all with the same name) in one swift move. is there truly no way to do this, or am i overlooking something?
by the way, here are a few models that i've completed:
Brookshire_Kensington_C2_door_&_dwr.skp
Brookshire_Kensington_E2_door_&_dwr.skp
Mission_(shaker)door&_dwr.skp...note that i've named all complete door components "door," and all their sub-components also use the same nomenclature across different doorstyles...so it should be as simple as one mass "cut and paste" if its possible...
TIA,
Eric -
I may be completely wrong here but the logic of it strikes me as if you are going about it slightly backwards.
Is it not possible to create a generic "Door" with the relevant dynamic attibutes which you save as template Door0. Then start with Door0 alter it to become DoorA, then DoorB and so on and "save as" each new configuration as you go. -
@box said:
I may be completely wrong here but the logic of it strikes me as if you are going about it slightly backwards.
Is it not possible to create a generic "Door" with the relevant dynamic attibutes which you save as template Door0. Then start with Door0 alter it to become DoorA, then DoorB and so on and "save as" each new configuration as you go.the thought had crossed my mind some time ago, but once i've got my generic door (say a Shaker style door with a perfectly rectangular frame w/ square edges), i'm not sure how to go about converting that "template" into a door w/ edge profiles that are more complex than just a square edge. the push/pull tool is perfect for that kind of thing, but as i'm sure you already know, you can't perform push/pull on a group or component - it must be blown up first, at which point all attributes are lost, then pushed/pulled, and then made back into a group or component where its attributes can be added back one by one.
-
Blown up NO, open for editing YES.
You could paste a profile into place and reshape it that way.Just off the top of my head, if the generic components are just an edge laying out the path, you could paste in a profile and use follow me to make them whatever you want.
I'm only guessing. -
Here's a quick example.
I made the simple flat scalable frame on the left, copied it then made it unique and it's components unique. Once unique I could edit them and change the profile. So the frame on the right behaves the same as the original but can be altered as needed.
-
hey, would you mind uploading that model for me to download and play around with?
thanks,
eric -
Sure, but it is very basic and I think I have only ever made one other DC so I wouldn't guarantee the formulas are correct. All it does is retain the rail width and length when scaled along xz.
-
ok, i modified your basic model so that the doors and rails are 2.25" and then i placed one of my 2.25" door frame profiles in position and blew it up, and opened the basic model for editing. but i can't for the life of me get the follow me tool to work. with the basic model open for editing, the profile cannot be selected. and when the profile is selected, it simply won't follow the edge of the basic model. isn't that how you extruded your otherwise flat basic model into a 3-dimensional door frame?
-
It sounds like you are trying to work in the wrong context, and you don't need to explode anything.
Position your frame over my adjusted frame so it is where you want it. Double click your frame, then double click one of the rails, you should now be in your rail component open for editing. Now select the end profile of your rail, make sure it is a face and not just edges and go edit copy. Press escape twice and you should have backed out of everything. Move your frame out of the way.
Note:(If for some reason you don't have a flat faced end to use as a profile, intersect a plane through one of you rails to make one and use that. You simply need to position it properly and copy, paste in place. Or perhaps you still have the one you used to create the full frame in the first place.)
Double click my frame and double click the same rail that you did on yours. Go edit Paste in place. Select the edge and use follow me to extrude the profile or even pushpull in this case. Press escape once, double click the corner component, use the line tool to draw a right angle in the middle of the square as your path. Assuming you have used the corner that corresponds with the last rail and the profile, go Edit Paste in place and use the right angle path to follow me the profile around the corner.
If you've got through that you should know whats going on by now, if still lost tell me and I can make a video.
-
ok i finally figured out how you were doing it. ultimately it came down to making a copy of the frame profile first, and then edit copying it into the component rail or corner after having double-double clicked into edit mode. but it turns out that the way i was doing it before - cutting and pasting the excel formulas that defined each attribute of each component and sub-component line by line - is actually quicker for what i need to do. don't get me wrong, it is certainly convenient to take a scalable 2-D frame with basic attributes already defined and turn it into a 3-D frame without having to redefine all your attributes...but it turns out it'll only work well with a door design considerably less complex than the doors i'm programming. granted, i know you created it as a simple example and probably weren't expecting me to make great things with it. but i do appreciate you uploading it for me to download and play around with. i've saved it b/c it very well may come in handy for simpler door designs.
in the mean time, i'm in the midst of drawing several different doorstyles into sketchup, each with different combinations of edge profile, framing bead, and panel raise. despite the doorstyles themselves having different names to tell them apart, in the model space itself all doors use the name "door," all drawer fronts use the name "df," and all door or drawer front sub-components share common names as well. it would be so awesome if i could just copy the attributes section of an already completed door character for character in its entirety, and paste it into the attributes section of a newly created door in one (or very few) operation(s), instead of literally having to copy and paste it line by line...
thanks again,
Eric -
As I said earlier, if you took the time to make a generic door using only edges as place holders with the correct formulas and using repeat components, you wouldn't have to build new doors and add the formula, you could just add the profiles. Using a plugin like profile builder would allow you to make a full complex scalable door with a few clicks. Or I believe you can even set up the DC to have choices of profiles.
If you think about it, all your are building is profiles that follow edges. It doesn't matter how complex it is it's still made of faces and edges.
But as I'm no expert on DCs I'll leave the conversation here.
-
i'm not abandoning your ideas, i just need more time to wrap my head around them. in the mean time, i'm also considering rethinking my design methods...that is, instead of having a profile of the entire frame, i'll an [outer] edge profile and framing bead [inner edge] profile, since different combinations of edge profile, framing bead, and panel raise are what really make all the different door styles in the collection. i've got a roller coaster of thoughts running through my head right now, so i'll see where this takes me and update the thread later...
-
ok, after having finally come up with what i thought was a working solution, i realized that there is yet another hurdle to making a true 3-D door out of a 2-D generic door. whether i use the "follow me" tool to create the entire frame at once, or just to create individual members of the door frame (which is necessary if i start w/ the 2-D generic door), small polygonal surfaces tend to go missing on the corner pieces. i already have a thread that addresses and provides a solution this problem HERE. it turns out that the reason small surfaces go missing near the intersections of planes is because SketchUp deems them too small to render. the best working solution to this is to scale up the model (say 100x) before i extrude the frame or the individual frame members. this way, the small surfaces that would otherwise be missing if drawn at regular scale are now large enough to get rendered when i extrude the frame or its individual members. then its as simple as scaling it back down to original size and i get no missing surfaces.
the problem with starting with a generic 2-D door (w/ the formulas already built into the attributes of its sub-components) is that it doesn't scale up the way i need it to in order to create my 3-D corners without missing geometry. more specifically, while i can change the width and height of the generic frame no problem, it is designed to maintain the same frame width regardless of the overall size of the frame. in other words, if i take a generic 10" x 10" frame and scale it up to 100x, i'll end up with a 1000" x 1000" frame, but the frame width will stay the same and not scale along with the overall size change. now while that's ultimately how i want my doors to work in their finished state, i need the generic 2-D door's frame width to scale along with the increase in overall frame width and/or height in order to draw my corners without missing surfaces. but in order to do that i have to change the formulas of the generic door, thus defeating the purpose of having a generic door with all the formulas already built into it.
on the plus side, i decided to remove the "door thickness" attribute from my model b/c it isn't even an available option for the line of cabinetry i'm currently working on. b/c of this, each frame sub-component no longer has to be broken down into a fixed depth group and a variable depth group (this was necessary to prevent the frame profile from stretching along with any changes in overall door depth/thickness). thus each frame sub-component consists of only "position" and "size" attributes, and no longer contains 2 sub-groups, each with their own "position" and "size" attributes. this decreases the number of attribute formulas per frame sub-component (and thus the number of cut-n-pastes i have to perform) from 18 to 6. door construction now takes approx. only 1/3 the time it took me before...so not having a generic door with the forumlas built in isn't so much of a drag anymore b/c i only have to do 1/3 of the cutting and pasting i was doing before.
in summary, the inability of the generic door to scale its frame width along with any changes in overall door width or height prevents me from using it without generating missing surfaces in my geometry. and changing the formulas of the generic door to accommodate frame width scaling (thus allowing me to draw corners without missing surfaces) defeats the purpose of using it to create multiple doorstyles with the attribute formulas already programmed into it.
Advertisement