## ProjectItem.BranchFlag

### 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