SBNodeGroup#
This class describes a group of nodes.
In SAMSON, you can group selected nodes to perform various operations using them, e.g. to select the nodes in the group,
intersect the current selection with the nodes in the group, etc.
A node group does not contain the nodes but only refers to them.
Node groups, as other nodes, can be added in a document.
Let’s for example create a group which contains references to all currently selected nodes.
# get the active document
activeDocument = SAMSON.getActiveDocument()
# get a node indexer of all currently selected nodes
selectedNodesIndexer = activeDocument.getSelectedNodes()
# construct a group based on the node indexer
group = SBNodeGroup("My selection", selectedNodesIndexer)
# turn the undo system on
SAMSON.beginHolding("Group selection")
# hold the group
SAMSON.hold(group)
# create the group (it node should be created before adding it to another node of the data graph)
group.create()
# add the group to the active document
activeDocument.addChild(group)
# turn the undo system off
SAMSON.endHolding()
You can get the node indexer of nodes in the group using the SBNodeGroup.getGroupNodes() function:
# print the number of nodes referenced by the group
print(group.size)
# or get an indexer of nodes from the group
groupNodesIndexer = group.getGroupNodes()
print(len(groupNodesIndexer))
See also
SAMSON SDK: SBDDataGraphNodeGroup
- class samson.SBNodeGroup(*args, **kwargs)#
Bases:
SBNodeThis class describes a node group.
Overloaded function.
__init__(self: samson.SBNodeGroup) -> None
Constructs an empty group
__init__(self: samson.SBNodeGroup, name: str, nodeIndexer: samson.SBNodeIndexer) -> None
Constructs a group with name from nodes in nodeIndexer.
- Parameters:
name (str) – A name of the group
nodeIndexer (samson.SBNodeIndexer) – An indexer of nodes that should be put into the group.
Examples
Create a group with all the atoms from the active document and add it to the active document in an undoable way.
>>> atomIndexer = SAMSON.getNodes('n.t a') >>> group = SBNodeGroup('Atoms', atomIndexer) >>> # add the group to the active document >>> SAMSON.beginHolding('Add group') # make the operation undoable >>> SAMSON.hold(group) >>> group.create() >>> SAMSON.getActiveDocument().addChild(group) True >>> SAMSON.endHolding()
- getGroupNodes(self: samson.SBNodeGroup) samson.SBNodeIndexer#
Returns an indexer of nodes belonging to the group.
- Returns:
An indexer of nodes belonging to the group.
- Return type:
- getNextGroup(self: samson.SBNodeGroup) samson.SBNodeGroup#
Returns the next group
- getPreviousGroup(self: samson.SBNodeGroup) samson.SBNodeGroup#
Returns the previous group
- property size#
Returns the number of nodes belonging to the group