Kill dynamic components?
-
@jim said:
I have a plugin that can "strip DC attributes", optionally delete sub-components which are hidden, and reset the scale mask. I wrote it for a business that uses DC's internally but wanted to protect their IP and reduce file size before making their models public. I have been meaning to get it posted.
I'm very interested, could you send it to me in some way?

-
@tig said:
This one-liner copy+paste+<enter> in the Ruby Console will stop a selected DC from being dynamic
Sketchup.active_model.selection[0].definition.attribute_dictionaries.delete('dynamic_attributes')use wisely...

Hm, yes it worked. But I want to keep the groups in the component. Now I get the same problem as when exploding the component as many times as possible and then making a new component.
Thanks anyway
-
You asked to "kill dynamic components" - thats what his one line script does.
So what do you REALLY want to do?
-
@chris fullmer said:
You asked to "kill dynamic components" - thats what his one line script does.
So what do you REALLY want to do?
In my first post I wrote: "I want to keep the groups of the object that the dynamic component exists of, but clear all settings."
I just want the component attributes to be cleared. But I want to keep the groups in the component.
-
Sketchup.active_model.selection[0].definition.attribute_dictionaries.delete('dynamic_attributes')just stops the selected DC from being a DC!
If you have nested DC's within a DC you'll need to run the tool recursively like thisdef dck(c);c.definition.attribute_dictionaries.delete('dynamic_attributes');c.entities.each{|e|dck(e)if e.class==Sketchup;;ComponentInstance};end;dck(Sketchup.active_model.selection[0])if e.class==Sketchup;;ComponentInstancewhere the method 'dck' is the 'dc_killer' applied to a selected component AND all of its nested DCs down to any depth... use with care
-
@jim said:
I have a plugin that can "strip DC attributes", optionally delete sub-components which are hidden, and reset the scale mask. I wrote it for a business that uses DC's internally but wanted to protect their IP and reduce file size before making their models public. I have been meaning to get it posted.
Hi, I know this was a while ago - but any chance I could snag the plugin you reference? Thanks.
s.
-
@tig said:
Sketchup.active_model.selection[0].definition.attribute_dictionaries.delete('dynamic_attributes')just stops the selected DC from being a DC!
If you have nested DC's within a DC you'll need to run the tool recursively like this
def dck(c);c.definition.attribute_dictionaries.delete('dynamic_attributes');c.entities.each{|e|dck(e)if e.class==Sketchup;;ComponentInstance};end;dck(Sketchup.active_model.selection[0])if e.class==Sketchup;;ComponentInstancewhere the method 'dck' is the 'dc_killer' applied to a selected component AND all of its nested DCs down to any depth... use with care
I tried pasting this into the ruby editor - but it didn't work

"Error: #<NameError: undefined local variable or method `e' for main:Object>"
I'm in SU15. The single line top-level version did work....but I'm really trying to zap the tree.
s.
-
@skavan said:
I tried pasting this into the ruby editor - but it didn't work

"Error: #<NameError: undefined local variable or method `e' for main:Object>"
I'm in SU15. The single line top-level version did work....but I'm really trying to zap the tree.
s.
I'm getting the same error. Ideas?
-
@halroach said:
@skavan said:
I tried pasting this into the ruby editor - but it didn't work

"Error: #<NameError: undefined local variable or method `e' for main:Object>"
I'm in SU15. The single line top-level version did work....but I'm really trying to zap the tree.
s.
I'm getting the same error. Ideas?
Try
def dck(c);c.definition.attribute_dictionaries.delete('dynamic_attributes');c.definition.entities.each{|e|dck(e)if e.class==Sketchup;;ComponentInstance};end;dck(Sketchup.active_model.selection[0])after selecting the dynamic component.
-
I'm not sure what other aspects of sketchup may be lost?...But saving as sketchup version 6 or below removes dynamic attributes, retaining the component and sub components.
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better π
Register LoginAdvertisement