sketchucation logo sketchucation
    • Login
    โ„น๏ธ Licensed Extensions | FredoBatch, ElevationProfile, FredoSketch, LayOps, MatSim and Pic2Shape will require license from Sept 1st More Info

    Kill dynamic components?

    Scheduled Pinned Locked Moved SketchUp Discussions
    sketchup
    14 Posts 9 Posters 3.8k 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.
    • J Offline
      Jim
      last edited by

      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

      1 Reply Last reply Reply Quote 0
      • 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