sketchucation logo sketchucation
    • Login
    Oops, your profile's looking a bit empty! To help us tailor your experience, please fill in key details like your SketchUp version, skill level, operating system, and more. Update and save your info on your profile page today!
    πŸ«› Lightbeans Update | Metallic and Roughness auto-applied in SketchUp 2025+ Download

    Kill dynamic components?

    Scheduled Pinned Locked Moved SketchUp Discussions
    sketchup
    14 Posts 9 Posters 4.0k Views 9 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • AnssiA Offline
      Anssi
      last edited by

      How about exploding and immediately creating a new component?

      Another way is to insert the DC in a new model, save it and import that. The DC attributes won't be usable until you explode the component once. Exploiting a common error with DCs.

      Anssi

      securi adversus homines, securi adversus deos rem difficillimam adsecuti sunt, ut illis ne voto quidem opus esset

      1 Reply Last reply Reply Quote 0
      • M Offline
        Marron
        last edited by

        @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? πŸ˜ƒ

        1 Reply Last reply Reply Quote 0
        • M Offline
          Marron
          last edited by

          @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 πŸ˜ƒ

          1 Reply Last reply Reply Quote 0
          • Chris FullmerC Offline
            Chris Fullmer
            last edited by

            You asked to "kill dynamic components" - thats what his one line script does.

            So what do you REALLY want to do?

            Lately you've been tan, suspicious for the winter.
            All my Plugins I've written

            1 Reply Last reply Reply Quote 0
            • M Offline
              Marron
              last edited by

              @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.

              1 Reply Last reply Reply Quote 0
              • TIGT Offline
                TIG Moderator
                last edited by

                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;;ComponentInstance
                

                where 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

                TIG

                1 Reply Last reply Reply Quote 0
                • S Offline
                  skavan
                  last edited by

                  @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.

                  1 Reply Last reply Reply Quote 0
                  • S Offline
                    skavan
                    last edited by

                    @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;;ComponentInstance
                    

                    where 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.

                    1 Reply Last reply Reply Quote 0
                    • halroachH Offline
                      halroach
                      last edited by

                      @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?

                      FlexTools - Super Quick Windows, Doors, Slats...

                      1 Reply Last reply Reply Quote 0
                      • sdmitchS Offline
                        sdmitch
                        last edited by

                        @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.

                        Nothing is worthless, it can always be used as a bad example.

                        http://sdmitch.blogspot.com/

                        1 Reply Last reply Reply Quote 0
                        • O Offline
                          Oly80
                          last edited by

                          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.

                          1 Reply Last reply Reply Quote 0
                          • 1 / 1
                          • First post
                            Last post
                          Buy SketchPlus
                          Buy SUbD
                          Buy WrapR
                          Buy eBook
                          Buy Modelur
                          Buy Vertex Tools
                          Buy SketchCuisine
                          Buy FormFonts

                          Advertisement