A Question on GetActiveObject? [SOLVED]

On 07/11/2015 at 12:39, xxxxxxxx wrote:

Hi Guys,
A Question on GetActiveObject?
I use GetActiveObject to Select active object, that is in the Object List.
Now when i use doc.GetActiveObject it dont work right.
It separate them and not group them.
This What *Console* Said:
AssertionError: Found next objects. Please add them separately.

So I wanted It to generate with the selected object use choose and go under or become a child.

Code:
    def Generator_TAXILINE(self) :

doc = c4d.documents.GetActiveDocument()

#--| Generate and SET NAMES |--#
        #Generate Sweep
        taxi_sweep_Name = c4d.BaseObject(c4d.Osweep)
        taxi_sweep_Name.SetName("TaxiLine")

#User Custom TEMP     
        TEMP_Name = self.linkBox.GetLink()
        TEMP_Name.SetName("TAXILINE_TEMP")

#Select User Custom Path
        selectedobject = doc.GetActiveObject() # <----| this Problem 
        selectedobject.SetName("User-Custom-Path")
        
        #Insert Objects To LIST!   
        doc.InsertObject(taxi_sweep_Name)
        doc.InsertObject(TEMP_Name)
        doc.InsertObject(selectedobject)

# Objects Order!    
        parent = doc.SearchObject("TaxiLine")
        child_Temp = doc.SearchObject("User-Custom-Path")
        child_Temp.InsertUnder(parent)
        
        parent = doc.SearchObject("TaxiLine")
        child_Temp = doc.SearchObject("TAXILINE_TEMP")
        child_Temp.InsertUnder(parent)
        c4d.EventAdd()
        return True

#--|C.O.M.M.A.N.D.S|-------------------------------------------------------#
    def Command (self, id, msg) :
        if (id == GEN_BUTTON) :
            self.Generator_TAXILINE()
#-------------------------------------------------------------------------------------------------#
This what is happen when excute with doc.GetActiveObject() :

But If i use selectedobject = c4d.BaseObject(c4d.Osplinecircle) , IT WORKS FINE:

Help or Tip,
Cheers,
Ashton,
sorry for my English guys.

On 07/11/2015 at 14:02, xxxxxxxx wrote:

In your code sample, you first select an object out of the existing tree:
selectedobject = doc.GetActiveObject()
and then you try to insert that somewhere else:
doc.InsertObject(selectedobject)

I suppose C4D doesn't like that much. You should cut that object from the tree first, to isolate it. Then you can insert it somewhere else.

In your second sample,
selectedobject = c4d.BaseObject(c4d.Osplinecircle)
you create a new object, which naturally is not connected in the tree already, and insert that. This is uncritical, and therefore works.

On 07/11/2015 at 15:58, xxxxxxxx wrote:

thanks man 
IT  WORKS BRO!
CODE:
    def User_Custom_Path(self) :
        doc = c4d.documents.GetActiveDocument()
        selectedobject = doc.GetActiveObject() 
        selectedobject.SetName("User-Custom-Path")

def Generator_TAXILINE(self) :

doc = c4d.documents.GetActiveDocument()

self.User_Custom_Path()

c4d.CallCommand(12298, 12298) # Model
        #--| Generate and SET NAMES |--#
        #Generate Sweep
        taxi_sweep_Name = self.linkBox2.GetLink().GetClone(c4d.COPYFLAGS_0)
        taxi_sweep_Name.SetName("TaxiLine")
        #User Custom TEMP     
        TEMP_Name = self.linkBox.GetLink().GetClone(c4d.COPYFLAGS_0)
        TEMP_Name.SetName("TAXILINE_TEMP")

#Insert Objects To LIST!   
        doc.InsertObject(taxi_sweep_Name)
        doc.InsertObject(TEMP_Name)
        #doc.InsertObject(selectedobject)

# Objects Oder!    
        parent = doc.SearchObject("TaxiLine")

child_Temp = doc.SearchObject("User-Custom-Path")
        child_Temp.InsertUnder(parent)

child_Temp2 = doc.SearchObject("TAXILINE_TEMP")
        child_Temp2.InsertUnder(parent)

c4d.EventAdd()
        return True 
#----------------------------------------------------------------------------------------#
 Thanks Cairyn
Cheers,
Ashton