sketchucation logo sketchucation
    • Login
    ⚠️ Attention | Having issues with Sketchucation Tools 5? Report Here

    Basic operation on char...

    Scheduled Pinned Locked Moved Developers' Forum
    16 Posts 2 Posters 251 Views 2 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.
    • N Offline
      njeremy2
      last edited by

      @thomthom said:

      Btw, did you create the component? Is it intended for the user to read that reference code?
      If not, then you might want to store it in an attribute:

      Entity#get_attribute: https://developers.google.com/sketchup/docs/ourdoc/entity#get_attribute
      Entity#set_attribute: https://developers.google.com/sketchup/docs/ourdoc/entity#set_attribute
      class AttributeDictionary: https://developers.google.com/sketchup/docs/ourdoc/attributedictionary
      class AttributeDictionaries: https://developers.google.com/sketchup/docs/ourdoc/attributedictionaries

      Sorry I don't understand the first time I read your post...
      I can use attributes but I see in AUTOMATIC Sketchup.pdf that's attributes cannot be stored when you save a component (I understand that)

      And put the reference into the description was for me the easiest solution (I hope, if someone has a better solution, tell me).

      In that way, I'm sure the reference is shared when I sent a component to my database

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

        @njeremy2 said:

        Sorry I don't understand the first time I read your post...
        I can use attributes but I see in AUTOMATIC Sketchup.pdf that's attributes cannot be stored when you save a component (I understand that)

        If you store attributes with the definition then you can export the component with the attributes.

        Example:

        componentinstance.definition.set_attribute('MyTest', 'Foo', 'Bar')

        Export component

        New model

        Import exported model

        componentinstance.definition.get_attribute('MyTest', 'Foo')
        ( returns 'Bar' )

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

        1 Reply Last reply Reply Quote 0
        • N Offline
          njeremy2
          last edited by

          hmmmm, well...

          With that, you can add an attribute called "reference" for all components and set attribute then ?

          So if I do like that : componentinstance.definition.set_attribute('Reference', '755480RED', 'Valuedefaultif 755480RED doesnt exist')

          That would work ?

          And to list all references, how should I do ?
          componentinstance.definition.set_attribute('Reference') ?

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

            Read the API docs again.

            set_attribute takes three arguments. The third one is the value.

            entity.set_attribute( 'DictionaryName', 'Key', 'Value' )
            entity.get_attribute( 'DictionaryName', 'Key' )

            So, if you do something like to to add a reference ID:
            entity.set_attribute( 'nJeremy2', 'Reference', referenceID )

            You can list all definitions with a reference set like so:

            <span class="syntaxdefault"><br />for definition in Sketchup</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">active_model</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">definitions<br />  next if definition</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">image</span><span class="syntaxkeyword">?<br /></span><span class="syntaxdefault">  next if definition</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">group</span><span class="syntaxkeyword">?<br /></span><span class="syntaxdefault">  referenceID </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> entity</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">get_attribute</span><span class="syntaxkeyword">(</span><span class="syntaxdefault"> </span><span class="syntaxstring">'nJeremy2'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'Reference'</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">  next if referenceID</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">nil</span><span class="syntaxkeyword">?<br /></span><span class="syntaxdefault">  </span><span class="syntaxcomment"># Do something to the definition here...<br /></span><span class="syntaxdefault">end<br /></span>
            

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

            1 Reply Last reply Reply Quote 0
            • N Offline
              njeremy2
              last edited by

              yeah ok !
              I will try but the result is not guarantee

              1 Reply Last reply Reply Quote 0
              • N Offline
                njeremy2
                last edited by

                my solution by putting the reference in description work, it isn't good programming but it works lol

                thank you thom !

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

                  What if your user accidentally modify the description? Or some other plugin the user has install modifies it?

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

                  1 Reply Last reply Reply Quote 0
                  • N Offline
                    njeremy2
                    last edited by

                    @thomthom said:

                    What if your user accidentally modify the description? Or some other plugin the user has install modifies it?

                    right...

                    But I try to use attributes, but I cannot do it right

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

                      What is not working right?
                      Do you have a sample code?

                      When assigning an attribute to the definition the attribute is stored whenever you export - it works fine. But if it doesn't work for you then it's probably something in your code that isn't quite right.

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

                      1 Reply Last reply Reply Quote 0
                      • N Offline
                        njeremy2
                        last edited by

                        @thomthom said:

                        What is not working right?
                        Do you have a sample code?

                        When assigning an attribute to the definition the attribute is stored whenever you export - it works fine. But if it doesn't work for you then it's probably something in your code that isn't quite right.

                        I have nothing at home, tomorrow I'll show you what I need to do with that (with screenshots)

                        1 Reply Last reply Reply Quote 0
                        • N Offline
                          njeremy2
                          last edited by

                          For this example I put a tree and a Blue cube.
                          The tree has no description and the Cube has code reference then the real description after "b755480 BLABLABLA".
                          Then I create a groupe with the 2 objects called "Tree+cube"

                          http://img840.imageshack.us/img840/23/designpx.png

                          Now I export all information with my plugin :

                          http://img689.imageshack.us/img689/8130/exports.png

                          then I export all information in CSV File :

                          http://img804.imageshack.us/img804/2953/exportcsv.png

                          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