BranchFlag (ProjectItem) *

Description

Returns the branch flag using one of the siBranchFlag enum values. The branch flag indicates whether an object was added to a Group or to the Selection in branch mode.

Note: Four different hierarchical levels are actually recognized: NODE, BRANCH, TREE, and MODEL (see Dealing with Hierarchy). However, this property always returns the siBranch value when tested on items that are selected or added to a group in BRANCH, TREE, or MODEL mode.

C# Syntax

    // get accessor
    siBranchFlag rtn = ProjectItem.BranchFlag;

    // set accessor
    ProjectItem.BranchFlag = siBranchFlag;

Examples

1. Python Example

    #
    # This example demonstrates how to test each selected item to see whether
    # it is selected in branch (BRANCH/TREE/MODEL) or not.
    #
    from win32com.client import constants as cns
    app = Application

    # Create a bunch of objects for selection tests
    app.NewScene("", 0)
    app.CreatePrim("Disc", "MeshSurface")
    app.CreatePrim("Torus", "MeshSurface")
    app.CreatePrim("Grid", "MeshSurface")
    app.CreatePrim("Sphere", "MeshSurface")
    app.CreatePrim("Cube", "MeshSurface")
    app.CreatePrim("Cone", "MeshSurface")

    # Select a number of objects with different hierarchical levels
    app.SelectObj("disc", "BRANCH")
    app.AddToSelection("torus", "TREE")
    app.AddToSelection("grid", "NODE")
    app.AddToSelection("sphere", "MODEL")
    app.AddToSelection("cube")

    for sel in app.Selection :
       strResults = ""
       if sel.BranchFlag == 0 :
           strResults = "siNode"
       elif sel.BranchFlag == 1 :
           strResults = "siBranch"
       elif sel.BranchFlag == 3 :
           strResults = "siUnspecified"
       else :
           strResults = "<unrecognized value>"

       app.LogMessage( sel.FullName + ".BranchFlag == " + strResults )

    # Expected results:
    # INFO : disc.BranchFlag == siBranch
    # INFO : torus.BranchFlag == siBranch
    # INFO : grid.BranchFlag == siNode
    # INFO : sphere.BranchFlag == siBranch
    # INFO : cube.BranchFlag == siNode

2. JScript Example

    var xsi = Application;
    NewScene( null, false );
    var a = xsi.ActiveSceneRoot.AddGeometry( "Cube", "MeshSurface", "A" );
    a.length.Value = 2;

    var b = a.AddGeometry( "Cube", "MeshSurface", "B" );
    b.length.Value = 2;
    Translate( b, 5 );

    var c = b.AddGeometry( "Cube", "MeshSurface", "C" );
    c.length.Value = 2;
    Translate( c, 5 );

    // Create group
    var group = xsi.ActiveSceneRoot.AddGroup();

    // Add members to group
    group.AddMember( a, true );
    group.AddMember( b, false );

    xsi.LogMessage( "Number of group members : " + group.members.Count );

    // Determine which members were added in branch mode
    for ( var i=0; i<group.Members.Count; i++ )
    {
       var member = group.Members(i);

       var bBranchMember = group.Members(i).BranchFlag ? "true" : "false";
       xsi.LogMessage( member + " added in branch mode? " + bBranchMember );
    }

    // Expected results:
    //INFO : Number of group members : 2
    //INFO : A added in branch mode? true
    //INFO : B added in branch mode? false

Autodesk Softimage v7.5