# This file was automatically generated by SWIG (http://www.swig.org).
# Version 4.0.2
#
# Do not make changes to this file unless you know what you are doing--modify
# the SWIG interface file instead.

"""
STEPSelections module, see official documentation at
https://www.opencascade.com/doc/occt-7.4.0/refman/html/package_stepselections.html
"""

from sys import version_info as _swig_python_version_info
if _swig_python_version_info < (2, 7, 0):
    raise RuntimeError("Python 2.7 or later required")

# Import the low-level C/C++ module
if __package__ or "." in __name__:
    from . import _STEPSelections
else:
    import _STEPSelections

try:
    import builtins as __builtin__
except ImportError:
    import __builtin__

def _swig_repr(self):
    try:
        strthis = "proxy of " + self.this.__repr__()
    except __builtin__.Exception:
        strthis = ""
    return "<%s.%s; %s >" % (self.__class__.__module__, self.__class__.__name__, strthis,)


def _swig_setattr_nondynamic_instance_variable(set):
    def set_instance_attr(self, name, value):
        if name == "thisown":
            self.this.own(value)
        elif name == "this":
            set(self, name, value)
        elif hasattr(self, name) and isinstance(getattr(type(self), name), property):
            set(self, name, value)
        else:
            raise AttributeError("You cannot add instance attributes to %s" % self)
    return set_instance_attr


def _swig_setattr_nondynamic_class_variable(set):
    def set_class_attr(cls, name, value):
        if hasattr(cls, name) and not isinstance(getattr(cls, name), property):
            set(cls, name, value)
        else:
            raise AttributeError("You cannot add class attributes to %s" % cls)
    return set_class_attr


def _swig_add_metaclass(metaclass):
    """Class decorator for adding a metaclass to a SWIG wrapped class - a slimmed down version of six.add_metaclass"""
    def wrapper(cls):
        return metaclass(cls.__name__, cls.__bases__, cls.__dict__.copy())
    return wrapper


class _SwigNonDynamicMeta(type):
    """Meta class to enforce nondynamic attributes (no new attributes) for a class"""
    __setattr__ = _swig_setattr_nondynamic_class_variable(type.__setattr__)


class SwigPyIterator(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined - class is abstract")
    __repr__ = _swig_repr
    __swig_destroy__ = _STEPSelections.delete_SwigPyIterator

    def value(self) -> "PyObject *":
        return _STEPSelections.SwigPyIterator_value(self)

    def incr(self, n: "size_t"=1) -> "swig::SwigPyIterator *":
        return _STEPSelections.SwigPyIterator_incr(self, n)

    def decr(self, n: "size_t"=1) -> "swig::SwigPyIterator *":
        return _STEPSelections.SwigPyIterator_decr(self, n)

    def distance(self, x: "SwigPyIterator") -> "ptrdiff_t":
        return _STEPSelections.SwigPyIterator_distance(self, x)

    def equal(self, x: "SwigPyIterator") -> "bool":
        return _STEPSelections.SwigPyIterator_equal(self, x)

    def copy(self) -> "swig::SwigPyIterator *":
        return _STEPSelections.SwigPyIterator_copy(self)

    def next(self) -> "PyObject *":
        return _STEPSelections.SwigPyIterator_next(self)

    def __next__(self) -> "PyObject *":
        return _STEPSelections.SwigPyIterator___next__(self)

    def previous(self) -> "PyObject *":
        return _STEPSelections.SwigPyIterator_previous(self)

    def advance(self, n: "ptrdiff_t") -> "swig::SwigPyIterator *":
        return _STEPSelections.SwigPyIterator_advance(self, n)

    def __eq__(self, x: "SwigPyIterator") -> "bool":
        return _STEPSelections.SwigPyIterator___eq__(self, x)

    def __ne__(self, x: "SwigPyIterator") -> "bool":
        return _STEPSelections.SwigPyIterator___ne__(self, x)

    def __iadd__(self, n: "ptrdiff_t") -> "swig::SwigPyIterator &":
        return _STEPSelections.SwigPyIterator___iadd__(self, n)

    def __isub__(self, n: "ptrdiff_t") -> "swig::SwigPyIterator &":
        return _STEPSelections.SwigPyIterator___isub__(self, n)

    def __add__(self, n: "ptrdiff_t") -> "swig::SwigPyIterator *":
        return _STEPSelections.SwigPyIterator___add__(self, n)

    def __sub__(self, *args) -> "ptrdiff_t":
        return _STEPSelections.SwigPyIterator___sub__(self, *args)
    def __iter__(self):
        return self

# Register SwigPyIterator in _STEPSelections:
_STEPSelections.SwigPyIterator_swigregister(SwigPyIterator)


def _dumps_object(klass):
    """ Overwrite default string output for any wrapped object.
    By default, __repr__ method returns something like:
    <OCC.Core.TopoDS.TopoDS_Shape; proxy of <Swig Object of type 'TopoDS_Shape *' at 0x02BB0758> >
    This is too much verbose.
    We prefer :
    <class 'gp_Pnt'>
    or
    <class 'TopoDS_Shape'>
    """
    klass_name = str(klass.__class__).split(".")[3].split("'")[0]
    repr_string = "<class '" + klass_name + "'"
# for TopoDS_Shape, we also look for the base type
    if klass_name == "TopoDS_Shape":
        if klass.IsNull():
            repr_string += ": Null>"
            return repr_string
        st = klass.ShapeType()
        types = {OCC.Core.TopAbs.TopAbs_VERTEX: "Vertex",
                 OCC.Core.TopAbs.TopAbs_SOLID: "Solid",
                 OCC.Core.TopAbs.TopAbs_EDGE: "Edge",
                 OCC.Core.TopAbs.TopAbs_FACE: "Face",
                 OCC.Core.TopAbs.TopAbs_SHELL: "Shell",
                 OCC.Core.TopAbs.TopAbs_WIRE: "Wire",
                 OCC.Core.TopAbs.TopAbs_COMPOUND: "Compound",
                 OCC.Core.TopAbs.TopAbs_COMPSOLID: "Compsolid"}
        repr_string += "; Type:%s" % types[st]        
    elif hasattr(klass, "IsNull"):
        if klass.IsNull():
            repr_string += "; Null"
    repr_string += ">"
    return repr_string


def process_exception(error: "Standard_Failure", method_name: "std::string", class_name: "std::string") -> "void":
    return _STEPSelections.process_exception(error, method_name, class_name)

from six import with_metaclass
import warnings
from OCC.Wrapper.wrapper_utils import Proxy, deprecated

import OCC.Core.Standard
import OCC.Core.NCollection
import OCC.Core.StepShape
import OCC.Core.StepGeom
import OCC.Core.StepData
import OCC.Core.Interface
import OCC.Core.TCollection
import OCC.Core.Message
import OCC.Core.OSD
import OCC.Core.TColStd
import OCC.Core.MoniTool
import OCC.Core.TopoDS
import OCC.Core.TopAbs
import OCC.Core.TopLoc
import OCC.Core.gp
import OCC.Core.Resource
import OCC.Core.StepRepr
import OCC.Core.StepBasic
import OCC.Core.IFSelect
import OCC.Core.XSControl
import OCC.Core.Transfer
import OCC.Core.TopTools
import OCC.Core.Geom
import OCC.Core.GeomAbs
import OCC.Core.TColgp
import OCC.Core.Geom2d

from enum import IntEnum
from OCC.Core.Exception import *




def Handle_STEPSelections_AssemblyComponent_Create() -> "opencascade::handle< STEPSelections_AssemblyComponent >":
    return _STEPSelections.Handle_STEPSelections_AssemblyComponent_Create()

def Handle_STEPSelections_AssemblyComponent_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< STEPSelections_AssemblyComponent >":
    return _STEPSelections.Handle_STEPSelections_AssemblyComponent_DownCast(t)

def Handle_STEPSelections_AssemblyComponent_IsNull(t: "opencascade::handle< STEPSelections_AssemblyComponent > const &") -> "bool":
    return _STEPSelections.Handle_STEPSelections_AssemblyComponent_IsNull(t)

def Handle_STEPSelections_AssemblyLink_Create() -> "opencascade::handle< STEPSelections_AssemblyLink >":
    return _STEPSelections.Handle_STEPSelections_AssemblyLink_Create()

def Handle_STEPSelections_AssemblyLink_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< STEPSelections_AssemblyLink >":
    return _STEPSelections.Handle_STEPSelections_AssemblyLink_DownCast(t)

def Handle_STEPSelections_AssemblyLink_IsNull(t: "opencascade::handle< STEPSelections_AssemblyLink > const &") -> "bool":
    return _STEPSelections.Handle_STEPSelections_AssemblyLink_IsNull(t)

def Handle_STEPSelections_SelectAssembly_Create() -> "opencascade::handle< STEPSelections_SelectAssembly >":
    return _STEPSelections.Handle_STEPSelections_SelectAssembly_Create()

def Handle_STEPSelections_SelectAssembly_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< STEPSelections_SelectAssembly >":
    return _STEPSelections.Handle_STEPSelections_SelectAssembly_DownCast(t)

def Handle_STEPSelections_SelectAssembly_IsNull(t: "opencascade::handle< STEPSelections_SelectAssembly > const &") -> "bool":
    return _STEPSelections.Handle_STEPSelections_SelectAssembly_IsNull(t)

def Handle_STEPSelections_SelectDerived_Create() -> "opencascade::handle< STEPSelections_SelectDerived >":
    return _STEPSelections.Handle_STEPSelections_SelectDerived_Create()

def Handle_STEPSelections_SelectDerived_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< STEPSelections_SelectDerived >":
    return _STEPSelections.Handle_STEPSelections_SelectDerived_DownCast(t)

def Handle_STEPSelections_SelectDerived_IsNull(t: "opencascade::handle< STEPSelections_SelectDerived > const &") -> "bool":
    return _STEPSelections.Handle_STEPSelections_SelectDerived_IsNull(t)

def Handle_STEPSelections_SelectFaces_Create() -> "opencascade::handle< STEPSelections_SelectFaces >":
    return _STEPSelections.Handle_STEPSelections_SelectFaces_Create()

def Handle_STEPSelections_SelectFaces_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< STEPSelections_SelectFaces >":
    return _STEPSelections.Handle_STEPSelections_SelectFaces_DownCast(t)

def Handle_STEPSelections_SelectFaces_IsNull(t: "opencascade::handle< STEPSelections_SelectFaces > const &") -> "bool":
    return _STEPSelections.Handle_STEPSelections_SelectFaces_IsNull(t)

def Handle_STEPSelections_SelectForTransfer_Create() -> "opencascade::handle< STEPSelections_SelectForTransfer >":
    return _STEPSelections.Handle_STEPSelections_SelectForTransfer_Create()

def Handle_STEPSelections_SelectForTransfer_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< STEPSelections_SelectForTransfer >":
    return _STEPSelections.Handle_STEPSelections_SelectForTransfer_DownCast(t)

def Handle_STEPSelections_SelectForTransfer_IsNull(t: "opencascade::handle< STEPSelections_SelectForTransfer > const &") -> "bool":
    return _STEPSelections.Handle_STEPSelections_SelectForTransfer_IsNull(t)

def Handle_STEPSelections_SelectGSCurves_Create() -> "opencascade::handle< STEPSelections_SelectGSCurves >":
    return _STEPSelections.Handle_STEPSelections_SelectGSCurves_Create()

def Handle_STEPSelections_SelectGSCurves_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< STEPSelections_SelectGSCurves >":
    return _STEPSelections.Handle_STEPSelections_SelectGSCurves_DownCast(t)

def Handle_STEPSelections_SelectGSCurves_IsNull(t: "opencascade::handle< STEPSelections_SelectGSCurves > const &") -> "bool":
    return _STEPSelections.Handle_STEPSelections_SelectGSCurves_IsNull(t)

def Handle_STEPSelections_SelectInstances_Create() -> "opencascade::handle< STEPSelections_SelectInstances >":
    return _STEPSelections.Handle_STEPSelections_SelectInstances_Create()

def Handle_STEPSelections_SelectInstances_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< STEPSelections_SelectInstances >":
    return _STEPSelections.Handle_STEPSelections_SelectInstances_DownCast(t)

def Handle_STEPSelections_SelectInstances_IsNull(t: "opencascade::handle< STEPSelections_SelectInstances > const &") -> "bool":
    return _STEPSelections.Handle_STEPSelections_SelectInstances_IsNull(t)

def Handle_STEPSelections_HSequenceOfAssemblyLink_Create() -> "opencascade::handle< STEPSelections_HSequenceOfAssemblyLink >":
    return _STEPSelections.Handle_STEPSelections_HSequenceOfAssemblyLink_Create()

def Handle_STEPSelections_HSequenceOfAssemblyLink_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< STEPSelections_HSequenceOfAssemblyLink >":
    return _STEPSelections.Handle_STEPSelections_HSequenceOfAssemblyLink_DownCast(t)

def Handle_STEPSelections_HSequenceOfAssemblyLink_IsNull(t: "opencascade::handle< STEPSelections_HSequenceOfAssemblyLink > const &") -> "bool":
    return _STEPSelections.Handle_STEPSelections_HSequenceOfAssemblyLink_IsNull(t)
class STEPSelections_SequenceOfAssemblyComponent(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def begin(self) -> "NCollection_Sequence< opencascade::handle< STEPSelections_AssemblyComponent > >::iterator":
        return _STEPSelections.STEPSelections_SequenceOfAssemblyComponent_begin(self)

    def end(self) -> "NCollection_Sequence< opencascade::handle< STEPSelections_AssemblyComponent > >::iterator":
        return _STEPSelections.STEPSelections_SequenceOfAssemblyComponent_end(self)

    def cbegin(self) -> "NCollection_Sequence< opencascade::handle< STEPSelections_AssemblyComponent > >::const_iterator":
        return _STEPSelections.STEPSelections_SequenceOfAssemblyComponent_cbegin(self)

    def cend(self) -> "NCollection_Sequence< opencascade::handle< STEPSelections_AssemblyComponent > >::const_iterator":
        return _STEPSelections.STEPSelections_SequenceOfAssemblyComponent_cend(self)

    def __init__(self, *args):
        _STEPSelections.STEPSelections_SequenceOfAssemblyComponent_swiginit(self, _STEPSelections.new_STEPSelections_SequenceOfAssemblyComponent(*args))

    def Size(self) -> "Standard_Integer":
        return _STEPSelections.STEPSelections_SequenceOfAssemblyComponent_Size(self)

    def Length(self) -> "Standard_Integer":
        return _STEPSelections.STEPSelections_SequenceOfAssemblyComponent_Length(self)

    def Lower(self) -> "Standard_Integer":
        return _STEPSelections.STEPSelections_SequenceOfAssemblyComponent_Lower(self)

    def Upper(self) -> "Standard_Integer":
        return _STEPSelections.STEPSelections_SequenceOfAssemblyComponent_Upper(self)

    def IsEmpty(self) -> "Standard_Boolean":
        return _STEPSelections.STEPSelections_SequenceOfAssemblyComponent_IsEmpty(self)

    def Reverse(self) -> "void":
        return _STEPSelections.STEPSelections_SequenceOfAssemblyComponent_Reverse(self)

    def Exchange(self, I: "Standard_Integer const", J: "Standard_Integer const") -> "void":
        return _STEPSelections.STEPSelections_SequenceOfAssemblyComponent_Exchange(self, I, J)

    @staticmethod
    def delNode(theNode: "NCollection_SeqNode *", theAl: "opencascade::handle< NCollection_BaseAllocator > &") -> "void":
        return _STEPSelections.STEPSelections_SequenceOfAssemblyComponent_delNode(theNode, theAl)

    def Clear(self, theAllocator: "opencascade::handle< NCollection_BaseAllocator > const &"=0) -> "void":
        return _STEPSelections.STEPSelections_SequenceOfAssemblyComponent_Clear(self, theAllocator)

    def Assign(self, theOther: "STEPSelections_SequenceOfAssemblyComponent") -> "NCollection_Sequence< opencascade::handle< STEPSelections_AssemblyComponent > > &":
        return _STEPSelections.STEPSelections_SequenceOfAssemblyComponent_Assign(self, theOther)

    def Set(self, theOther: "STEPSelections_SequenceOfAssemblyComponent") -> "NCollection_Sequence< opencascade::handle< STEPSelections_AssemblyComponent > > &":
        return _STEPSelections.STEPSelections_SequenceOfAssemblyComponent_Set(self, theOther)

    def Remove(self, *args) -> "void":
        return _STEPSelections.STEPSelections_SequenceOfAssemblyComponent_Remove(self, *args)

    def Append(self, *args) -> "void":
        return _STEPSelections.STEPSelections_SequenceOfAssemblyComponent_Append(self, *args)

    def Prepend(self, *args) -> "void":
        return _STEPSelections.STEPSelections_SequenceOfAssemblyComponent_Prepend(self, *args)

    def InsertBefore(self, *args) -> "void":
        return _STEPSelections.STEPSelections_SequenceOfAssemblyComponent_InsertBefore(self, *args)

    def InsertAfter(self, *args) -> "void":
        return _STEPSelections.STEPSelections_SequenceOfAssemblyComponent_InsertAfter(self, *args)

    def Split(self, theIndex: "Standard_Integer const", theSeq: "STEPSelections_SequenceOfAssemblyComponent") -> "void":
        return _STEPSelections.STEPSelections_SequenceOfAssemblyComponent_Split(self, theIndex, theSeq)

    def First(self) -> "opencascade::handle< STEPSelections_AssemblyComponent > const &":
        return _STEPSelections.STEPSelections_SequenceOfAssemblyComponent_First(self)

    def ChangeFirst(self) -> "opencascade::handle< STEPSelections_AssemblyComponent > &":
        return _STEPSelections.STEPSelections_SequenceOfAssemblyComponent_ChangeFirst(self)

    def Last(self) -> "opencascade::handle< STEPSelections_AssemblyComponent > const &":
        return _STEPSelections.STEPSelections_SequenceOfAssemblyComponent_Last(self)

    def ChangeLast(self) -> "opencascade::handle< STEPSelections_AssemblyComponent > &":
        return _STEPSelections.STEPSelections_SequenceOfAssemblyComponent_ChangeLast(self)

    def Value(self, theIndex: "Standard_Integer const") -> "opencascade::handle< STEPSelections_AssemblyComponent > const &":
        return _STEPSelections.STEPSelections_SequenceOfAssemblyComponent_Value(self, theIndex)

    def ChangeValue(self, theIndex: "Standard_Integer const") -> "opencascade::handle< STEPSelections_AssemblyComponent > &":
        return _STEPSelections.STEPSelections_SequenceOfAssemblyComponent_ChangeValue(self, theIndex)

    def __call__(self, *args) -> "opencascade::handle< STEPSelections_AssemblyComponent > &":
        return _STEPSelections.STEPSelections_SequenceOfAssemblyComponent___call__(self, *args)

    def SetValue(self, theIndex: "Standard_Integer const", theItem: "opencascade::handle< STEPSelections_AssemblyComponent > const &") -> "void":
        return _STEPSelections.STEPSelections_SequenceOfAssemblyComponent_SetValue(self, theIndex, theItem)
    __swig_destroy__ = _STEPSelections.delete_STEPSelections_SequenceOfAssemblyComponent

    def __len__(self):
        return self.Size()


# Register STEPSelections_SequenceOfAssemblyComponent in _STEPSelections:
_STEPSelections.STEPSelections_SequenceOfAssemblyComponent_swigregister(STEPSelections_SequenceOfAssemblyComponent)

def STEPSelections_SequenceOfAssemblyComponent_delNode(theNode: "NCollection_SeqNode *", theAl: "opencascade::handle< NCollection_BaseAllocator > &") -> "void":
    return _STEPSelections.STEPSelections_SequenceOfAssemblyComponent_delNode(theNode, theAl)

class STEPSelections_SequenceOfAssemblyLink(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def begin(self) -> "NCollection_Sequence< opencascade::handle< STEPSelections_AssemblyLink > >::iterator":
        return _STEPSelections.STEPSelections_SequenceOfAssemblyLink_begin(self)

    def end(self) -> "NCollection_Sequence< opencascade::handle< STEPSelections_AssemblyLink > >::iterator":
        return _STEPSelections.STEPSelections_SequenceOfAssemblyLink_end(self)

    def cbegin(self) -> "NCollection_Sequence< opencascade::handle< STEPSelections_AssemblyLink > >::const_iterator":
        return _STEPSelections.STEPSelections_SequenceOfAssemblyLink_cbegin(self)

    def cend(self) -> "NCollection_Sequence< opencascade::handle< STEPSelections_AssemblyLink > >::const_iterator":
        return _STEPSelections.STEPSelections_SequenceOfAssemblyLink_cend(self)

    def __init__(self, *args):
        _STEPSelections.STEPSelections_SequenceOfAssemblyLink_swiginit(self, _STEPSelections.new_STEPSelections_SequenceOfAssemblyLink(*args))

    def Size(self) -> "Standard_Integer":
        return _STEPSelections.STEPSelections_SequenceOfAssemblyLink_Size(self)

    def Length(self) -> "Standard_Integer":
        return _STEPSelections.STEPSelections_SequenceOfAssemblyLink_Length(self)

    def Lower(self) -> "Standard_Integer":
        return _STEPSelections.STEPSelections_SequenceOfAssemblyLink_Lower(self)

    def Upper(self) -> "Standard_Integer":
        return _STEPSelections.STEPSelections_SequenceOfAssemblyLink_Upper(self)

    def IsEmpty(self) -> "Standard_Boolean":
        return _STEPSelections.STEPSelections_SequenceOfAssemblyLink_IsEmpty(self)

    def Reverse(self) -> "void":
        return _STEPSelections.STEPSelections_SequenceOfAssemblyLink_Reverse(self)

    def Exchange(self, I: "Standard_Integer const", J: "Standard_Integer const") -> "void":
        return _STEPSelections.STEPSelections_SequenceOfAssemblyLink_Exchange(self, I, J)

    @staticmethod
    def delNode(theNode: "NCollection_SeqNode *", theAl: "opencascade::handle< NCollection_BaseAllocator > &") -> "void":
        return _STEPSelections.STEPSelections_SequenceOfAssemblyLink_delNode(theNode, theAl)

    def Clear(self, theAllocator: "opencascade::handle< NCollection_BaseAllocator > const &"=0) -> "void":
        return _STEPSelections.STEPSelections_SequenceOfAssemblyLink_Clear(self, theAllocator)

    def Assign(self, theOther: "STEPSelections_SequenceOfAssemblyLink") -> "NCollection_Sequence< opencascade::handle< STEPSelections_AssemblyLink > > &":
        return _STEPSelections.STEPSelections_SequenceOfAssemblyLink_Assign(self, theOther)

    def Set(self, theOther: "STEPSelections_SequenceOfAssemblyLink") -> "NCollection_Sequence< opencascade::handle< STEPSelections_AssemblyLink > > &":
        return _STEPSelections.STEPSelections_SequenceOfAssemblyLink_Set(self, theOther)

    def Remove(self, *args) -> "void":
        return _STEPSelections.STEPSelections_SequenceOfAssemblyLink_Remove(self, *args)

    def Append(self, *args) -> "void":
        return _STEPSelections.STEPSelections_SequenceOfAssemblyLink_Append(self, *args)

    def Prepend(self, *args) -> "void":
        return _STEPSelections.STEPSelections_SequenceOfAssemblyLink_Prepend(self, *args)

    def InsertBefore(self, *args) -> "void":
        return _STEPSelections.STEPSelections_SequenceOfAssemblyLink_InsertBefore(self, *args)

    def InsertAfter(self, *args) -> "void":
        return _STEPSelections.STEPSelections_SequenceOfAssemblyLink_InsertAfter(self, *args)

    def Split(self, theIndex: "Standard_Integer const", theSeq: "STEPSelections_SequenceOfAssemblyLink") -> "void":
        return _STEPSelections.STEPSelections_SequenceOfAssemblyLink_Split(self, theIndex, theSeq)

    def First(self) -> "opencascade::handle< STEPSelections_AssemblyLink > const &":
        return _STEPSelections.STEPSelections_SequenceOfAssemblyLink_First(self)

    def ChangeFirst(self) -> "opencascade::handle< STEPSelections_AssemblyLink > &":
        return _STEPSelections.STEPSelections_SequenceOfAssemblyLink_ChangeFirst(self)

    def Last(self) -> "opencascade::handle< STEPSelections_AssemblyLink > const &":
        return _STEPSelections.STEPSelections_SequenceOfAssemblyLink_Last(self)

    def ChangeLast(self) -> "opencascade::handle< STEPSelections_AssemblyLink > &":
        return _STEPSelections.STEPSelections_SequenceOfAssemblyLink_ChangeLast(self)

    def Value(self, theIndex: "Standard_Integer const") -> "opencascade::handle< STEPSelections_AssemblyLink > const &":
        return _STEPSelections.STEPSelections_SequenceOfAssemblyLink_Value(self, theIndex)

    def ChangeValue(self, theIndex: "Standard_Integer const") -> "opencascade::handle< STEPSelections_AssemblyLink > &":
        return _STEPSelections.STEPSelections_SequenceOfAssemblyLink_ChangeValue(self, theIndex)

    def __call__(self, *args) -> "opencascade::handle< STEPSelections_AssemblyLink > &":
        return _STEPSelections.STEPSelections_SequenceOfAssemblyLink___call__(self, *args)

    def SetValue(self, theIndex: "Standard_Integer const", theItem: "opencascade::handle< STEPSelections_AssemblyLink > const &") -> "void":
        return _STEPSelections.STEPSelections_SequenceOfAssemblyLink_SetValue(self, theIndex, theItem)
    __swig_destroy__ = _STEPSelections.delete_STEPSelections_SequenceOfAssemblyLink

    def __len__(self):
        return self.Size()


# Register STEPSelections_SequenceOfAssemblyLink in _STEPSelections:
_STEPSelections.STEPSelections_SequenceOfAssemblyLink_swigregister(STEPSelections_SequenceOfAssemblyLink)

def STEPSelections_SequenceOfAssemblyLink_delNode(theNode: "NCollection_SeqNode *", theAl: "opencascade::handle< NCollection_BaseAllocator > &") -> "void":
    return _STEPSelections.STEPSelections_SequenceOfAssemblyLink_delNode(theNode, theAl)

class STEPSelections_AssemblyComponent(OCC.Core.Standard.Standard_Transient):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        No available documentation.

        Returns
        -------
        None
        No available documentation.

        Parameters
        ----------
        sdr: StepShape_ShapeDefinitionRepresentation
        list: STEPSelections_HSequenceOfAssemblyLink

        Returns
        -------
        None

        """
        _STEPSelections.STEPSelections_AssemblyComponent_swiginit(self, _STEPSelections.new_STEPSelections_AssemblyComponent(*args))

    def GetList(self, *args) -> "opencascade::handle< STEPSelections_HSequenceOfAssemblyLink >":
        r"""
        No available documentation.

        Returns
        -------
        opencascade::handle<STEPSelections_HSequenceOfAssemblyLink>

        """
        return _STEPSelections.STEPSelections_AssemblyComponent_GetList(self, *args)

    def GetSDR(self, *args) -> "opencascade::handle< StepShape_ShapeDefinitionRepresentation >":
        r"""
        No available documentation.

        Returns
        -------
        opencascade::handle<StepShape_ShapeDefinitionRepresentation>

        """
        return _STEPSelections.STEPSelections_AssemblyComponent_GetSDR(self, *args)

    def SetList(self, *args) -> "void":
        r"""
        No available documentation.

        Parameters
        ----------
        list: STEPSelections_HSequenceOfAssemblyLink

        Returns
        -------
        None

        """
        return _STEPSelections.STEPSelections_AssemblyComponent_SetList(self, *args)

    def SetSDR(self, *args) -> "void":
        r"""
        No available documentation.

        Parameters
        ----------
        sdr: StepShape_ShapeDefinitionRepresentation

        Returns
        -------
        None

        """
        return _STEPSelections.STEPSelections_AssemblyComponent_SetSDR(self, *args)


    @staticmethod
    def DownCast(t):
      return Handle_STEPSelections_AssemblyComponent_DownCast(t)


    __repr__ = _dumps_object

    __swig_destroy__ = _STEPSelections.delete_STEPSelections_AssemblyComponent

# Register STEPSelections_AssemblyComponent in _STEPSelections:
_STEPSelections.STEPSelections_AssemblyComponent_swigregister(STEPSelections_AssemblyComponent)

class STEPSelections_AssemblyExplorer(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        No available documentation.

        Parameters
        ----------
        G: Interface_Graph

        Returns
        -------
        None

        """
        _STEPSelections.STEPSelections_AssemblyExplorer_swiginit(self, _STEPSelections.new_STEPSelections_AssemblyExplorer(*args))

    def DumpToString(self) -> "std::string":
        r"""DumpToString(STEPSelections_AssemblyExplorer self) -> std::string"""
        return _STEPSelections.STEPSelections_AssemblyExplorer_DumpToString(self)

    def FillListWithGraph(self, *args) -> "void":
        r"""
        No available documentation.

        Parameters
        ----------
        cmp: STEPSelections_AssemblyComponent

        Returns
        -------
        None

        """
        return _STEPSelections.STEPSelections_AssemblyExplorer_FillListWithGraph(self, *args)

    def FindItemWithNAUO(self, *args) -> "opencascade::handle< Standard_Transient >":
        r"""
        No available documentation.

        Parameters
        ----------
        nauo: StepRepr_NextAssemblyUsageOccurrence

        Returns
        -------
        opencascade::handle<Standard_Transient>

        """
        return _STEPSelections.STEPSelections_AssemblyExplorer_FindItemWithNAUO(self, *args)

    def FindSDRWithProduct(self, *args) -> "opencascade::handle< StepShape_ShapeDefinitionRepresentation >":
        r"""
        No available documentation.

        Parameters
        ----------
        product: StepBasic_ProductDefinition

        Returns
        -------
        opencascade::handle<StepShape_ShapeDefinitionRepresentation>

        """
        return _STEPSelections.STEPSelections_AssemblyExplorer_FindSDRWithProduct(self, *args)

    def Init(self, *args) -> "void":
        r"""
        No available documentation.

        Parameters
        ----------
        G: Interface_Graph

        Returns
        -------
        None

        """
        return _STEPSelections.STEPSelections_AssemblyExplorer_Init(self, *args)

    def NbAssemblies(self, *args) -> "Standard_Integer":
        r"""
        Returns the number of root assemblies;.

        Returns
        -------
        int

        """
        return _STEPSelections.STEPSelections_AssemblyExplorer_NbAssemblies(self, *args)

    def Root(self, *args) -> "opencascade::handle< STEPSelections_AssemblyComponent >":
        r"""
        Returns root of assenbly by its rank;.

        Parameters
        ----------
        rank: int,optional
        	default value is 1

        Returns
        -------
        opencascade::handle<STEPSelections_AssemblyComponent>

        """
        return _STEPSelections.STEPSelections_AssemblyExplorer_Root(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _STEPSelections.delete_STEPSelections_AssemblyExplorer

# Register STEPSelections_AssemblyExplorer in _STEPSelections:
_STEPSelections.STEPSelections_AssemblyExplorer_swigregister(STEPSelections_AssemblyExplorer)

class STEPSelections_AssemblyLink(OCC.Core.Standard.Standard_Transient):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        No available documentation.

        Returns
        -------
        None
        No available documentation.

        Parameters
        ----------
        nauo: StepRepr_NextAssemblyUsageOccurrence
        item: Standard_Transient
        part: STEPSelections_AssemblyComponent

        Returns
        -------
        None

        """
        _STEPSelections.STEPSelections_AssemblyLink_swiginit(self, _STEPSelections.new_STEPSelections_AssemblyLink(*args))

    def GetComponent(self, *args) -> "opencascade::handle< STEPSelections_AssemblyComponent >":
        r"""
        No available documentation.

        Returns
        -------
        opencascade::handle<STEPSelections_AssemblyComponent>

        """
        return _STEPSelections.STEPSelections_AssemblyLink_GetComponent(self, *args)

    def GetItem(self, *args) -> "opencascade::handle< Standard_Transient >":
        r"""
        No available documentation.

        Returns
        -------
        opencascade::handle<Standard_Transient>

        """
        return _STEPSelections.STEPSelections_AssemblyLink_GetItem(self, *args)

    def GetNAUO(self, *args) -> "opencascade::handle< StepRepr_NextAssemblyUsageOccurrence >":
        r"""
        No available documentation.

        Returns
        -------
        opencascade::handle<StepRepr_NextAssemblyUsageOccurrence>

        """
        return _STEPSelections.STEPSelections_AssemblyLink_GetNAUO(self, *args)

    def SetComponent(self, *args) -> "void":
        r"""
        No available documentation.

        Parameters
        ----------
        part: STEPSelections_AssemblyComponent

        Returns
        -------
        None

        """
        return _STEPSelections.STEPSelections_AssemblyLink_SetComponent(self, *args)

    def SetItem(self, *args) -> "void":
        r"""
        No available documentation.

        Parameters
        ----------
        item: Standard_Transient

        Returns
        -------
        None

        """
        return _STEPSelections.STEPSelections_AssemblyLink_SetItem(self, *args)

    def SetNAUO(self, *args) -> "void":
        r"""
        No available documentation.

        Parameters
        ----------
        nauo: StepRepr_NextAssemblyUsageOccurrence

        Returns
        -------
        None

        """
        return _STEPSelections.STEPSelections_AssemblyLink_SetNAUO(self, *args)


    @staticmethod
    def DownCast(t):
      return Handle_STEPSelections_AssemblyLink_DownCast(t)


    __repr__ = _dumps_object

    __swig_destroy__ = _STEPSelections.delete_STEPSelections_AssemblyLink

# Register STEPSelections_AssemblyLink in _STEPSelections:
_STEPSelections.STEPSelections_AssemblyLink_swigregister(STEPSelections_AssemblyLink)

class STEPSelections_Counter(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        No available documentation.

        Returns
        -------
        None

        """
        _STEPSelections.STEPSelections_Counter_swiginit(self, _STEPSelections.new_STEPSelections_Counter(*args))

    def Clear(self, *args) -> "void":
        r"""
        No available documentation.

        Returns
        -------
        None

        """
        return _STEPSelections.STEPSelections_Counter_Clear(self, *args)

    def Count(self, *args) -> "void":
        r"""
        No available documentation.

        Parameters
        ----------
        graph: Interface_Graph
        start: Standard_Transient

        Returns
        -------
        None

        """
        return _STEPSelections.STEPSelections_Counter_Count(self, *args)

    def NbInstancesOfEdges(self, *args) -> "Standard_Integer":
        r"""
        No available documentation.

        Returns
        -------
        int

        """
        return _STEPSelections.STEPSelections_Counter_NbInstancesOfEdges(self, *args)

    def NbInstancesOfFaces(self, *args) -> "Standard_Integer":
        r"""
        No available documentation.

        Returns
        -------
        int

        """
        return _STEPSelections.STEPSelections_Counter_NbInstancesOfFaces(self, *args)

    def NbInstancesOfShells(self, *args) -> "Standard_Integer":
        r"""
        No available documentation.

        Returns
        -------
        int

        """
        return _STEPSelections.STEPSelections_Counter_NbInstancesOfShells(self, *args)

    def NbInstancesOfSolids(self, *args) -> "Standard_Integer":
        r"""
        No available documentation.

        Returns
        -------
        int

        """
        return _STEPSelections.STEPSelections_Counter_NbInstancesOfSolids(self, *args)

    def NbInstancesOfWires(self, *args) -> "Standard_Integer":
        r"""
        No available documentation.

        Returns
        -------
        int

        """
        return _STEPSelections.STEPSelections_Counter_NbInstancesOfWires(self, *args)

    def NbSourceEdges(self, *args) -> "Standard_Integer":
        r"""
        No available documentation.

        Returns
        -------
        int

        """
        return _STEPSelections.STEPSelections_Counter_NbSourceEdges(self, *args)

    def NbSourceFaces(self, *args) -> "Standard_Integer":
        r"""
        No available documentation.

        Returns
        -------
        int

        """
        return _STEPSelections.STEPSelections_Counter_NbSourceFaces(self, *args)

    def NbSourceShells(self, *args) -> "Standard_Integer":
        r"""
        No available documentation.

        Returns
        -------
        int

        """
        return _STEPSelections.STEPSelections_Counter_NbSourceShells(self, *args)

    def NbSourceSolids(self, *args) -> "Standard_Integer":
        r"""
        No available documentation.

        Returns
        -------
        int

        """
        return _STEPSelections.STEPSelections_Counter_NbSourceSolids(self, *args)

    def NbSourceWires(self, *args) -> "Standard_Integer":
        r"""
        No available documentation.

        Returns
        -------
        int

        """
        return _STEPSelections.STEPSelections_Counter_NbSourceWires(self, *args)

    __repr__ = _dumps_object

    @methodnotwrapped
    def POP(self):
    	pass

    @methodnotwrapped
    def POP2(self):
    	pass

    __swig_destroy__ = _STEPSelections.delete_STEPSelections_Counter

# Register STEPSelections_Counter in _STEPSelections:
_STEPSelections.STEPSelections_Counter_swigregister(STEPSelections_Counter)

class STEPSelections_SelectAssembly(OCC.Core.IFSelect.IFSelect_SelectExplore):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        No available documentation.

        Returns
        -------
        None

        """
        _STEPSelections.STEPSelections_SelectAssembly_swiginit(self, _STEPSelections.new_STEPSelections_SelectAssembly(*args))


    @staticmethod
    def DownCast(t):
      return Handle_STEPSelections_SelectAssembly_DownCast(t)


    __repr__ = _dumps_object

    __swig_destroy__ = _STEPSelections.delete_STEPSelections_SelectAssembly

# Register STEPSelections_SelectAssembly in _STEPSelections:
_STEPSelections.STEPSelections_SelectAssembly_swigregister(STEPSelections_SelectAssembly)

class STEPSelections_SelectDerived(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        No available documentation.

        Returns
        -------
        None

        """
        _STEPSelections.STEPSelections_SelectDerived_swiginit(self, _STEPSelections.new_STEPSelections_SelectDerived(*args))

    def Matches(self, *args) -> "Standard_Boolean":
        r"""
        No available documentation.

        Parameters
        ----------
        ent: Standard_Transient
        model: Interface_InterfaceModel
        text: TCollection_AsciiString
        exact: bool

        Returns
        -------
        bool

        """
        return _STEPSelections.STEPSelections_SelectDerived_Matches(self, *args)


    @staticmethod
    def DownCast(t):
      return Handle_STEPSelections_SelectDerived_DownCast(t)


    __repr__ = _dumps_object

    __swig_destroy__ = _STEPSelections.delete_STEPSelections_SelectDerived

# Register STEPSelections_SelectDerived in _STEPSelections:
_STEPSelections.STEPSelections_SelectDerived_swigregister(STEPSelections_SelectDerived)

class STEPSelections_SelectFaces(OCC.Core.IFSelect.IFSelect_SelectExplore):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        No available documentation.

        Returns
        -------
        None

        """
        _STEPSelections.STEPSelections_SelectFaces_swiginit(self, _STEPSelections.new_STEPSelections_SelectFaces(*args))


    @staticmethod
    def DownCast(t):
      return Handle_STEPSelections_SelectFaces_DownCast(t)


    __repr__ = _dumps_object

    __swig_destroy__ = _STEPSelections.delete_STEPSelections_SelectFaces

# Register STEPSelections_SelectFaces in _STEPSelections:
_STEPSelections.STEPSelections_SelectFaces_swigregister(STEPSelections_SelectFaces)

class STEPSelections_SelectForTransfer(OCC.Core.XSControl.XSControl_SelectForTransfer):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        No available documentation.

        Returns
        -------
        None
        No available documentation.

        Parameters
        ----------
        TR: XSControl_TransferReader

        Returns
        -------
        None

        """
        _STEPSelections.STEPSelections_SelectForTransfer_swiginit(self, _STEPSelections.new_STEPSelections_SelectForTransfer(*args))


    @staticmethod
    def DownCast(t):
      return Handle_STEPSelections_SelectForTransfer_DownCast(t)


    __repr__ = _dumps_object

    __swig_destroy__ = _STEPSelections.delete_STEPSelections_SelectForTransfer

# Register STEPSelections_SelectForTransfer in _STEPSelections:
_STEPSelections.STEPSelections_SelectForTransfer_swigregister(STEPSelections_SelectForTransfer)

class STEPSelections_SelectGSCurves(OCC.Core.IFSelect.IFSelect_SelectExplore):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        No available documentation.

        Returns
        -------
        None

        """
        _STEPSelections.STEPSelections_SelectGSCurves_swiginit(self, _STEPSelections.new_STEPSelections_SelectGSCurves(*args))


    @staticmethod
    def DownCast(t):
      return Handle_STEPSelections_SelectGSCurves_DownCast(t)


    __repr__ = _dumps_object

    __swig_destroy__ = _STEPSelections.delete_STEPSelections_SelectGSCurves

# Register STEPSelections_SelectGSCurves in _STEPSelections:
_STEPSelections.STEPSelections_SelectGSCurves_swigregister(STEPSelections_SelectGSCurves)

class STEPSelections_SelectInstances(OCC.Core.IFSelect.IFSelect_SelectExplore):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        No available documentation.

        Returns
        -------
        None

        """
        _STEPSelections.STEPSelections_SelectInstances_swiginit(self, _STEPSelections.new_STEPSelections_SelectInstances(*args))


    @staticmethod
    def DownCast(t):
      return Handle_STEPSelections_SelectInstances_DownCast(t)


    __repr__ = _dumps_object

    __swig_destroy__ = _STEPSelections.delete_STEPSelections_SelectInstances

# Register STEPSelections_SelectInstances in _STEPSelections:
_STEPSelections.STEPSelections_SelectInstances_swigregister(STEPSelections_SelectInstances)

class STEPSelections_HSequenceOfAssemblyLink(STEPSelections_SequenceOfAssemblyLink, OCC.Core.Standard.Standard_Transient):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        _STEPSelections.STEPSelections_HSequenceOfAssemblyLink_swiginit(self, _STEPSelections.new_STEPSelections_HSequenceOfAssemblyLink(*args))

    def Sequence(self) -> "STEPSelections_SequenceOfAssemblyLink const &":
        return _STEPSelections.STEPSelections_HSequenceOfAssemblyLink_Sequence(self)

    def Append(self, *args) -> "void":
        return _STEPSelections.STEPSelections_HSequenceOfAssemblyLink_Append(self, *args)

    def ChangeSequence(self) -> "STEPSelections_SequenceOfAssemblyLink &":
        return _STEPSelections.STEPSelections_HSequenceOfAssemblyLink_ChangeSequence(self)


    @staticmethod
    def DownCast(t):
      return Handle_STEPSelections_HSequenceOfAssemblyLink_DownCast(t)

    __swig_destroy__ = _STEPSelections.delete_STEPSelections_HSequenceOfAssemblyLink

# Register STEPSelections_HSequenceOfAssemblyLink in _STEPSelections:
_STEPSelections.STEPSelections_HSequenceOfAssemblyLink_swigregister(STEPSelections_HSequenceOfAssemblyLink)





