def get_objective_bank_hierarchy_design_session(self, proxy):
if not self.supports_objective_bank_hierarchy_design():<EOL><INDENT>raise Unimplemented()<EOL><DEDENT>try:<EOL><INDENT>from . import sessions<EOL><DEDENT>except ImportError:<EOL><INDENT>raise OperationFailed()<EOL><DEDENT>proxy = self._convert_proxy(proxy)<EOL>try:<EOL><INDENT>session = sessions.ObjectiveBankHierarchyDesignSession(proxy=proxy, runtime=self._runtime)<EOL><DEDENT>except AttributeError:<EOL><INDENT>raise OperationFailed()<EOL><DEDENT>return session<EOL>
Gets the session designing objective bank hierarchies.

        :param proxy: a proxy
        :type proxy: ``osid.proxy.Proxy``
        :return: an ``ObjectiveBankHierarchyDesignSession``
        :rtype: ``osid.learning.ObjectiveBankHierarchyDesignSession``
        :raise: ``NullArgument`` -- ``proxy`` is ``null``
        :raise: ``OperationFailed`` -- unable to complete request
        :raise: ``Unimplemented`` -- ``supports_objective_bank_hierarchy_design() is false``

        *compliance: optional -- This method must be implemented if ``supports_objective_bank_hierarchy_design()`` is true.*