Layers Options

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 12/07/2011 at 13:20, xxxxxxxx wrote:

I'm having a hard time figuring out the proper Baselist2D object needed to access the options of a specific layer in the layer browser.

I can create a layer, search for a layer, and select a layer.
But once I have a Layer. I can't do anything with it :

import c4d  
from c4d import gui  
  
def main() :  
  obj = doc.GetFirstObject()  
  root = doc.GetLayerObjectRoot()#Gets the layer manager  
  first = root.GetDown()         #Gets the first layer  
  first.SetBit(c4d.BIT_ACTIVE)   #Makes the first layer active  
  layers = obj[c4d.ID_LAYER_LINK]  
  
  #How do I get the right Baselist2D object  
  #So I can get at the various options(solo, view, render, manager, etc..)?  
  
  obj.GetLayerData(doc, True) #nope  
  root.GetLayerData(doc, True) #nope  
  first.GetLayerData(doc, True) #nope  
  layers.GetLayerData(doc, True) #nope  
  
if __name__=='__main__':  
  main()

Can anyone tell what the correct Baselist2D object is?

-ScottA

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 12/07/2011 at 23:38, xxxxxxxx wrote:

"""

I can't test it right now, but I could imagine you can de-/activate the options using the layerobject's container.
Try:

import c4d  
  
def **searchModule** (mod, what) :  
  d = mod.__dict__  
  for k in d:  
  if d[k] == what:  
    yield k  
  
def **main** () :  
  lay = doc.GetLayerObjectRoot().GetDown()  
  bc = lay.GetDataInstance()  
  
  for i, e in bc:  
  d = searchModule(c4d, i)  
  d = tuple(d)  
  
  if d:  
    print "Matches for %s:" %i  
    for e in d:  
      print " " * 3, str(i).ljust(20), "c4d." + str(e)  
    print "- " * 20  
  
main()

I hope it works as expected, As already said, can't test it now.
cheers,

// Edit: I expected some entries in the contianer of this BaseList2D Object, but there are None..
I'm sorry, can't help you here, don't know what to do here, too.

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 13/07/2011 at 07:22, xxxxxxxx wrote:

Thanks. That does sort of help. In a round about way.
I found an old thread where Sebastian said that the GetLayerData() function wasn't supported yet. Even though it was listed in the docs.

So I have a hunch that this function is still missing from python.
Your method resulting in nothing supports my theory that it's still not supported.
I guess layers are still not supported yet.

In the mean time. I'll have to do my layer stuff in C++.

-ScottA

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 31/07/2011 at 18:19, xxxxxxxx wrote:

um what do you actually want to do because from your first post it seems you just want to access the various settings of an individual layer like (solo, view, render, manager, etc..)

well this works for me:

doc = c4d.documents.GetActiveDocument()
    root = doc.GetLayerObjectRoot()#Gets the layer manager
    first = root.GetDown()         #Gets the first layer
    print first.GetName() #layer Name
    print first[c4d.ID_LAYER_SOLO] #print layer solo setting
    print first[c4d.ID_LAYER_VIEW] #print layer view setting
    #ect........................
    first[c4d.ID_LAYER_SOLO] = False #set layer solo setting
    first[c4d.ID_LAYER_VIEW] = False #set layer view setting
    #ect........................
    c4d.EventAdd()

Just thought i would post a reply incase it helps anyone else.

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 01/08/2011 at 02:17, xxxxxxxx wrote:

This is confusing !
It works, yes. But why are the values not stored in the Container ?
There must be a bug anywhere. Either GetDataInstance() does not return the right container or the values are not stored in the container. 😵

Thanks tundras

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 01/08/2011 at 08:07, xxxxxxxx wrote:

Thanks tundras.

-ScottA