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!
    🛣️ Road Profile Builder | Generate roads, curbs and pavements easily Download

    How to set Layer property of a Group?

    Scheduled Pinned Locked Moved Developers' Forum
    7 Posts 4 Posters 509 Views 4 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.
    • G Offline
      GrojGuy
      last edited by

      I'm really sorry to post such a seemingly-simple question, but I'm at a loss where to discover the answer, after significant searching.

      In Ruby, how does one assign the Layer property of a Group? (there is no Group.layer= method)

      Thanks...

      1 Reply Last reply Reply Quote 0
      • thomthomT Offline
        thomthom
        last edited by

        Notice that in the API docs, above the list of methods for each class it says "Parent:". And for Group it says:

        @unknownuser said:

        Parent: Drawingelement

        And the Drawingelement class has a layer property.

        Have a look at the Objects Diagram for an overview of the classes' relationships:
        http://code.google.com/apis/sketchup/docs/diagram.html

        Thomas Thomassen — SketchUp Monkey & Coding addict
        List of my plugins and link to the CookieWare fund

        1 Reply Last reply Reply Quote 0
        • G Offline
          GrojGuy
          last edited by

          Thank you. I had seen that, but was thrown off a little the "Introduction" for "Drawingelement" which states...

          @unknownuser said:

          ...These items include edges, contruction points, construction lines, and images...

          No mention of "groups" (which did seem contradictory to the Objects Diagram). But now I see I need to get more familiar with the API Object structure.

          1 Reply Last reply Reply Quote 0
          • Dan RathbunD Offline
            Dan Rathbun
            last edited by

            What Thomas left unsaid, is that a subclass inherits methods from it's superclass.

            At the Ruby console, type:
            Sketchup::Group.instance_methods.sort
            .. and you'll see that the group class has inherited a layer= method.

            I'm not here much anymore.

            1 Reply Last reply Reply Quote 0
            • G Offline
              GrojGuy
              last edited by

              Ah yes, OK, that would make sense, i.e. class inheretance. But, from your comment I was anticipating seeing "layer=" in the instance methods list returned by that nifty command...

              Sketchup;;Group.instance_methods.sort
              (eval);64; warning; instance_methods; parameter will default to 'true' as of 1.8.1
              ["add_observer", "copy", "createObservers", "definition", "description", "description=", "entities", "explode", "local_bounds", "locked=", "locked?", "make_unique", "move!", "name", "name=", "remove_observer", "to_component", "transform!", "transformation", "transformation="]
              

              So, why is "layer=" it not in the list?

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

                There are several methods that apply to certain classes that aren't listed as they are 'subsidiary'.
                These include
                group.layer= instance.layer= group.material= instance.material= group.erase! group.hidden=
                The list is in http://code.google.com/apis/sketchup/docs/ourdoc/drawingelement.html
                for 'drawingelements' - which applies to these kind of things too...
                If in doubt try them... you can but fail...

                TIG

                1 Reply Last reply Reply Quote 0
                • Dan RathbunD Offline
                  Dan Rathbun
                  last edited by

                  @grojguy said:

                  Ah yes, OK, that would make sense, i.e. class inheretance. But, from your comment I was anticipating seeing "layer=" in the instance methods list returned by that nifty command...
                  So, why is "layer=" it not in the list?

                  Because.. you see the warning for the "show inherited" argument is default false for your version of Ruby, but will (actually was,) changed to true as a default, in all Ruby versions 1.8.1 and higher.

                  IF you are still using Sketchup 7.x, then the Ruby DLL distro'd is v1.8.0-initial_release (ie: patch_level p0)

                  You can backup the current "Deceased 1.8.0" dll, msvcrt-ruby18.dll by renaming it: msvcrt-ruby180_p0.dll
                  then replace it with your choice of a newer version from: Ruby Interpreter DLLs (Win32) (you will need to make a copy of the version you want Sketchup to load named: msvcrt-ruby18.dll.)
                  .

                  I'm not here much anymore.

                  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