vcBehaviour objects and vcNode.Behaviours

I really want to be able to copy entire vcBehaviour objects from one component’s Behaviours list to another, and also to rearrange the vcNode.Behaviours list for readability. Currently neither of these are possible because vcNode.Behaviours is read only?!

vcNode.copyBehaviour(vcBehaviour template, string name) should have been implemented, at the very least.

These arbitrary limitations waste a lot of time in looking for workarounds.

EDIT: So, apparently, vcBehaviour isn’t even a class. That rules out writing a method that takes a vcBehaviour as an argument and then checks if isinstance(input, vcBehaviour)

from vcScript import *
import inspect

comp = getComponent()

print inspect.getmro(type(comp.Behaviours[0]))
print type(comp.Behaviours[0]).__bases__
def isBehaviour(query):
return type(query).__name__ in [
"vcBehaviour", "vcActionContainer", "vcBaseContainer", "vcBooleanSignalMap",
"vcFlow", "vcComponentFlowProxy", "vcContainer", "vcComponentContainer",
"vcPatternContainer", "vcComponentCreator", "vcMotionPath",
"vcOneDirectionalPath", "vcRoutingRule", "vcTwoDirectionalPath", "vcTransport",
"vcContainerFiller", "vcCapacityController", "vcIntegerSignalMap", "vcJogInfo",
"vcPythonKinematics", "vcNodelist", "vcProcessPointSensor",
"vcRslProcessHandler", "vcPythonProcessHandler", "vcExecutor",
"vcRslProgramExecutor", "vcScript", "vcServoController", "vcRobotController",
"vcSignal", "vcBooleanSignal", "vcComponentSignal", "vcIntegerSignal",
"vcMatrixSignal", "vcRealSignal", "vcStringSignal", "vcSimVehicle",
"vcSimInterface", "vcStatistics", "vcStringSignalMap", "vcToolContainer"]
1 Like