public override void DrawSection()
        {
            repaint = false;
            using (new GUILayout.HorizontalScope())
            {
                showSection = GUILayout.Toggle(showSection, "", EUIResourceManager.Instance.Skin.button, GUILayout.Height(30), GUILayout.Width(30));
                GUILayout.Box(EUIResourceManager.Instance.GetContent("Hierarchy Header"), EUIResourceManager.Instance.Skin.GetStyle("Texture"), GUILayout.MaxWidth(256), GUILayout.MaxHeight(30));
            }

            if (!showSection)
            {
                return;
            }

            using (new HorizontalCenteredScope())
            {
                GUILayout.Label("Name:");
                GUILayout.Space(5);
                m_parentName = GUILayout.TextField(m_parentName, GUILayout.Width(BlockoutEditorSettings.TwoColumnWidth));
                GUILayout.Space(18);
                if (GUILayout.Button(EUIResourceManager.Instance.GetContent("Create Parent"), GUILayout.Width(BlockoutEditorSettings.ThreeColumnWidth)))
                {
                    BlockoutStaticFunctions.CreateParentAndForceChild(m_parentName, blockoutHierarchy);
                }
            }

            using (new HorizontalCenteredScope())
            {
                GUILayout.Label("Target: ");
                if (!Application.isPlaying && Application.isEditor)
                {
                    m_targetHeirachyBaseObject = EditorGUILayout.ObjectField(m_targetHeirachyBaseObject, typeof(Transform), true) as Transform;

                    if (GUILayout.Button(EUIResourceManager.Instance.GetContent("Hierarchy Selected"), GUILayout.Width(BlockoutEditorSettings.ThreeColumnWidth)))
                    {
                        if (m_targetHeirachyBaseObject != null)
                        {
                            using (new UndoScope("Rehierarchy Selected Objects"))
                            {
                                Selection.transforms.ToList().ForEach(x => Undo.SetTransformParent(x, m_targetHeirachyBaseObject, ""));
                                EditorGUIUtility.PingObject(m_targetHeirachyBaseObject);
                                Selection.activeGameObject = m_targetHeirachyBaseObject.gameObject;
                            }
                        }
                        else
                        {
                            Debug.LogError("BLOCKOUT :: Assign a target object to hierarchy to!");
                        }
                    }
                }
                else
                {
                    GUILayout.Label("Feature Not available during play mode");
                }
            }

            GUILayout.Label("Reparent Selection");

            using (new HorizontalCenteredScope())
            {
                GUILayout.Space(4);
                if (GUILayout.Button(EUIResourceManager.Instance.GetContent("Parent Floor"), GUILayout.Width(BlockoutEditorSettings.SixColumnWidth)))
                {
                    ApplyParentTransformFromSection(Selection.gameObjects, SectionID.Floors);
                }
                if (GUILayout.Button(EUIResourceManager.Instance.GetContent("Parent Walls"), GUILayout.Width(BlockoutEditorSettings.SixColumnWidth)))
                {
                    ApplyParentTransformFromSection(Selection.gameObjects, SectionID.Walls);
                }
                if (GUILayout.Button(EUIResourceManager.Instance.GetContent("Parent Trim"), GUILayout.Width(BlockoutEditorSettings.SixColumnWidth)))
                {
                    ApplyParentTransformFromSection(Selection.gameObjects, SectionID.Trim);
                }
                if (GUILayout.Button(EUIResourceManager.Instance.GetContent("Parent Dynamic"), GUILayout.Width(BlockoutEditorSettings.SixColumnWidth)))
                {
                    ApplyParentTransformFromSection(Selection.gameObjects, SectionID.Dynamic);
                }
                if (GUILayout.Button(EUIResourceManager.Instance.GetContent("Parent Foliage"), GUILayout.Width(BlockoutEditorSettings.SixColumnWidth)))
                {
                    ApplyParentTransformFromSection(Selection.gameObjects, SectionID.Foliage);
                }
                if (GUILayout.Button(EUIResourceManager.Instance.GetContent("Parent Particles"), GUILayout.Width(BlockoutEditorSettings.SixColumnWidth)))
                {
                    ApplyParentTransformFromSection(Selection.gameObjects, SectionID.Particles);
                }
            }

            if (GUILayout.Button(EUIResourceManager.Instance.GetContent("Create Prefab")))
            {
                AutoPrefabSelection.PrefabSelection();
            }
        }