# DoesNotHaveFlags

> Gets whether or not all of the specified flags are not set on any hierarchy node.

## Definition

* **Type:** Method
* **Namespace:** [Unity.Hierarchy](/engine/6000.7/script-reference/unity/hierarchy.md)
* **Assembly:** UnityEngine.HierarchyCoreModule

## DoesNotHaveFlags(HierarchyNodeFlags)

Gets whether or not all of the specified flags are not set on any hierarchy node.

```csharp
public bool DoesNotHaveFlags(HierarchyNodeFlags flags)
```

### Parameters

**** (\[HierarchyNodeFlags]\(/engine/6000.7/script-reference/unity/hierarchy/hierarchynodeflags)): The flags to check across all hierarchy nodes.

### Returns

| Type                                                          | Description                                                               |
| ------------------------------------------------------------- | ------------------------------------------------------------------------- |
| [bool](https://learn.microsoft.com/dotnet/api/system.boolean) | `true` if none of the nodes have all of the flags set, `false` otherwise. |

## DoesNotHaveFlags(HierarchyNode, HierarchyNodeFlags)

Gets whether or not all of the specified flags are not set on the hierarchy node.

```csharp
public bool DoesNotHaveFlags(in HierarchyNode node, HierarchyNodeFlags flags)
```

### Parameters

**** (\[HierarchyNode]\(/engine/6000.7/script-reference/unity/hierarchy/hierarchynode)): The hierarchy node to check for the absence of the specified flags.**** (\[HierarchyNodeFlags]\(/engine/6000.7/script-reference/unity/hierarchy/hierarchynodeflags)): The flags to verify are absent on the hierarchy node.

### Returns

| Type                                                          | Description                                                |
| ------------------------------------------------------------- | ---------------------------------------------------------- |
| [bool](https://learn.microsoft.com/dotnet/api/system.boolean) | `true` if all of the flags are not set, `false` otherwise. |

### Remarks

The following example displays how many children each collapsed item has in the Hierarchy window. It uses `DoesNotHaveFlags` to check whether a node is collapsed and has children before adding the label to the left of the item name. To use this example, save the script in a folder called `Assets/Editor/CountWhenCollapsed`. Scripts in an `Editor` folder can use the Hierarchy module API without additional setup. If you save the script outside of an `Editor` folder, you must enable the Hierarchy built-in module in the **Package Manager** window, which also adds the module to your Player builds.

### Examples

```csharp
using Unity.Hierarchy;
using Unity.Hierarchy.Editor;
using UnityEditor;
using UnityEngine.UIElements;

namespace Unity.HierarchySamples.Editor
{
    class CountWhenCollapsed
    {
        const string k_ChildrenCountUssClassName = "hierarchy-children-count";

        [InitializeOnLoadMethod]
        static void Initialize()
        {
            HierarchyWindow.BindViewItem += OnBindViewItem;
        }

        static void OnBindViewItem(HierarchyWindow window, HierarchyView view, HierarchyViewItem item)
        {
            HierarchyNode node = item.Node;
            int childrenCount = view.ViewModel.GetChildrenCount(node);
            Label label = item.LeftCustomContainer.Q<Label>(className: k_ChildrenCountUssClassName);

            if (childrenCount > 0 && view.ViewModel.DoesNotHaveFlags(node, HierarchyNodeFlags.Expanded))
            {
                if (label == null)
                {
                    label = new Label();
                    label.AddToClassList(k_ChildrenCountUssClassName);
                    item.LeftCustomContainer.Add(label);
                }

                label.text = $"({childrenCount})";
                label.style.display = DisplayStyle.Flex;
            }
            else
            {
                if (label != null)
                    label.style.display = DisplayStyle.None;
            }
        }
    }
}
```
