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