Maxon Developers Maxon Developers
    • Documentation
      • Cinema 4D Python API
      • Cinema 4D C++ API
      • Cineware API
      • ZBrush GoZ API
      • Code Examples on Github
    • Forum
    • Downloads
    • Support
      • Support Procedures
      • Registered Developer Program
      • Plugin IDs
      • Contact Us
    • Categories
      • Overview
      • News & Information
      • Cinema 4D SDK Support
      • Cineware SDK Support
      • ZBrush 4D SDK Support
      • Bugs
      • General Talk
    • Unread
    • Recent
    • Tags
    • Users
    • Login

    AttributeError: Parameter value not accessible

    PYTHON Development
    0
    26
    14.2k
    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.
    • H
      Helper
      last edited by

      On 05/02/2014 at 16:52, xxxxxxxx wrote:

      Thanks, Rui, I was able to reproduce the problem. I'll take a deep look into it. I've reconstructed your 
      problem in this project:

      https://dl.dropboxusercontent.com/u/99829745/stuff/2014-02-06-getdenabling-parentcall-issue.zip

      Best,
      -Niklas

      1 Reply Last reply Reply Quote 0
      • H
        Helper
        last edited by

        On 05/02/2014 at 17:02, xxxxxxxx wrote:

        I started removing sections of the description with each restart of Cinema until I found what caused the
        issue. It is the BITMAPBUTTON GUIs that cause the exception in the parent call of GetDEnabling().

        Unfortunately, even if you remove your bitmap buttons, it sometimes fails with a TypeError:

        Traceback (most recent call last) :
          File "'test.pyp'", line 8, in GetDEnabling
        TypeError: argument 5
        

        Which is also a known issue of R14 and was fixed in R15. See https://developers.maxon.net/forum/topic/6533/7047_getdenabling-typeerror-on-parentcall

        As a workaround for this issue (and the original if you want to keep your BITMAPBUTTONs) , you can
        use a try-catch block.

            def GetDEnabling(self, *args, **kwargs) :
                # ...
                try:
                    return c4d.plugins.ObjectData.GetDEnabling(self, *args, **kwargs)
                except TypeError:
                    return True
        

        Best,
        -Niklas

        1 Reply Last reply Reply Quote 0
        • H
          Helper
          last edited by

          On 06/02/2014 at 01:52, xxxxxxxx wrote:

          Thank you for the information, Niklas.

          I tried the following:

          def GetDEnabling(self, node, id, t_data, flags, itemdesc) :

          try:
                         return c4d.plugins.NodeData.GetDEnabling(self, node, id, t_data, flags, itemdesc)

          except AttributeError:
                         return True

          isoff1=node[AB_ON1]
                    isoff2=node[AB_ON2]
                    isoff3=node[AB_ON3]

          if (id[0].id == AB_NUM_B1) : return isoff1==1
                    if (id[0].id == AB_DENS_B1) : return isoff1==1
                    if (id[0].id == AB_START_B1) : return isoff1==1
                    if (id[0].id == AB_END_B1) : return isoff1==1
                    if (id[0].id == AB_SEED_B1) : return isoff1==1

          if (id[0].id == AB_ON2) : return isoff1==1
                    if (id[0].id == AB_NUM_B2) : return (isoff1*isoff2)==1
                    if (id[0].id == AB_DENS_B2) : return (isoff1*isoff2)==1
                    if (id[0].id == AB_START_B2) : return (isoff1*isoff2)==1
                    if (id[0].id == AB_END_B2) : return (isoff1*isoff2)==1
                    if (id[0].id == AB_SEED_B2) : return (isoff1*isoff2)==1

          if (id[0].id == AB_ON3) : return (isoff1*isoff2)==1
                    if (id[0].id == AB_NUM_B3) : return (isoff1*isoff2*isoff3)==1
                    if (id[0].id == AB_DENS_B3) : return (isoff1*isoff2*isoff3)==1
                    if (id[0].id == AB_START_B3) : return (isoff1*isoff2*isoff3)==1
                    if (id[0].id == AB_END_B3) : return (isoff1*isoff2*isoff3)==1
                    if (id[0].id == AB_SEED_B3) : return (isoff1*isoff2*isoff3)==1

          return c4d.plugins.NodeData.GetDEnabling(self, node, id, t_data, flags, itemdesc)

          But I still get the same error 😞

          1 Reply Last reply Reply Quote 0
          • H
            Helper
            last edited by

            On 06/02/2014 at 17:51, xxxxxxxx wrote:

            I tried it out in R15 and the error also occurs there.

            1 Reply Last reply Reply Quote 0
            • H
              Helper
              last edited by

              On 10/02/2014 at 03:13, xxxxxxxx wrote:

              I guess, my only solution is to ditch the bitmaps 😞

              1 Reply Last reply Reply Quote 0
              • H
                Helper
                last edited by

                On 11/02/2014 at 06:51, xxxxxxxx wrote:

                What you've tried would exit the GetDEnabling() function immediately.

                def GetDEnabling(self, node, id, t_data, flags, itemdesc) : 
                    isoff1=node[AB_ON1] 
                    isoff2=node[AB_ON2] 
                    isoff3=node[AB_ON3] 
                  
                    if (id[0].id == AB_NUM_B1) : return isoff1==1 
                    if (id[0].id == AB_DENS_B1) : return isoff1==1 
                    if (id[0].id == AB_START_B1) : return isoff1==1 
                    if (id[0].id == AB_END_B1) : return isoff1==1 
                    if (id[0].id == AB_SEED_B1) : return isoff1==1 
                  
                    if (id[0].id == AB_ON2) : return isoff1==1 
                    if (id[0].id == AB_NUM_B2) : return (isoff1*isoff2)==1 
                    if (id[0].id == AB_DENS_B2) : return (isoff1*isoff2)==1 
                    if (id[0].id == AB_START_B2) : return (isoff1*isoff2)==1 
                    if (id[0].id == AB_END_B2) : return (isoff1*isoff2)==1 
                    if (id[0].id == AB_SEED_B2) : return (isoff1*isoff2)==1 
                  
                    if (id[0].id == AB_ON3) : return (isoff1*isoff2)==1 
                    if (id[0].id == AB_NUM_B3) : return (isoff1*isoff2*isoff3)==1 
                    if (id[0].id == AB_DENS_B3) : return (isoff1*isoff2*isoff3)==1 
                    if (id[0].id == AB_START_B3) : return (isoff1*isoff2*isoff3)==1 
                    if (id[0].id == AB_END_B3) : return (isoff1*isoff2*isoff3)==1 
                    if (id[0].id == AB_SEED_B3) : return (isoff1*isoff2*isoff3)==1 
                  
                    try: 
                        return c4d.plugins.NodeData.GetDEnabling(self, node, id, t_data, flags, itemdesc) 
                    except (AttributeError, TypeError) : 
                        # Bug up to R14, AttributeError seems to be raised randomly for
                        # BitmapButton items and TypeError sometimes for other things.
                        return True 
                

                -Niklas

                1 Reply Last reply Reply Quote 0
                • H
                  Helper
                  last edited by

                  On 12/02/2014 at 04:54, xxxxxxxx wrote:

                  It still returns the same errors 😞
                  I believe I will really have to ditch the bitmaps.
                  It is a shame, since I made some nice graphics 😞

                  Rui Bastista

                  1 Reply Last reply Reply Quote 0
                  • H
                    Helper
                    last edited by

                    On 10/01/2015 at 01:34, xxxxxxxx wrote:

                    is now a solution for r15 ?

                    1 Reply Last reply Reply Quote 0
                    • H
                      Helper
                      last edited by

                      On 10/01/2015 at 07:37, xxxxxxxx wrote:

                      The problem (at least with bitmaps) seems to be fixed in r15 and up.

                      1 Reply Last reply Reply Quote 0
                      • H
                        Helper
                        last edited by

                        On 10/01/2015 at 17:15, xxxxxxxx wrote:

                        after update to the latest r15 - it`s fixed - thanks

                        1 Reply Last reply Reply Quote 0
                        • First post
                          Last post