# This file was automatically generated by SWIG (http://www.swig.org).
# Version 4.0.1
#
# 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__

_swig_new_instance_method = _STEPSelections.SWIG_PyInstanceMethod_New
_swig_new_static_method = _STEPSelections.SWIG_PyStaticMethod_New

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
    value = _swig_new_instance_method(_STEPSelections.SwigPyIterator_value)
    incr = _swig_new_instance_method(_STEPSelections.SwigPyIterator_incr)
    decr = _swig_new_instance_method(_STEPSelections.SwigPyIterator_decr)
    distance = _swig_new_instance_method(_STEPSelections.SwigPyIterator_distance)
    equal = _swig_new_instance_method(_STEPSelections.SwigPyIterator_equal)
    copy = _swig_new_instance_method(_STEPSelections.SwigPyIterator_copy)
    next = _swig_new_instance_method(_STEPSelections.SwigPyIterator_next)
    __next__ = _swig_new_instance_method(_STEPSelections.SwigPyIterator___next__)
    previous = _swig_new_instance_method(_STEPSelections.SwigPyIterator_previous)
    advance = _swig_new_instance_method(_STEPSelections.SwigPyIterator_advance)
    __eq__ = _swig_new_instance_method(_STEPSelections.SwigPyIterator___eq__)
    __ne__ = _swig_new_instance_method(_STEPSelections.SwigPyIterator___ne__)
    __iadd__ = _swig_new_instance_method(_STEPSelections.SwigPyIterator___iadd__)
    __isub__ = _swig_new_instance_method(_STEPSelections.SwigPyIterator___isub__)
    __add__ = _swig_new_instance_method(_STEPSelections.SwigPyIterator___add__)
    __sub__ = _swig_new_instance_method(_STEPSelections.SwigPyIterator___sub__)
    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


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.TColStd
import OCC.Core.Message
import OCC.Core.MoniTool
import OCC.Core.TopoDS
import OCC.Core.TopAbs
import OCC.Core.TopLoc
import OCC.Core.gp
import OCC.Core.OSD
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
Handle_STEPSelections_AssemblyComponent_Create = _STEPSelections.Handle_STEPSelections_AssemblyComponent_Create
Handle_STEPSelections_AssemblyComponent_DownCast = _STEPSelections.Handle_STEPSelections_AssemblyComponent_DownCast
Handle_STEPSelections_AssemblyComponent_IsNull = _STEPSelections.Handle_STEPSelections_AssemblyComponent_IsNull
Handle_STEPSelections_AssemblyLink_Create = _STEPSelections.Handle_STEPSelections_AssemblyLink_Create
Handle_STEPSelections_AssemblyLink_DownCast = _STEPSelections.Handle_STEPSelections_AssemblyLink_DownCast
Handle_STEPSelections_AssemblyLink_IsNull = _STEPSelections.Handle_STEPSelections_AssemblyLink_IsNull
Handle_STEPSelections_SelectAssembly_Create = _STEPSelections.Handle_STEPSelections_SelectAssembly_Create
Handle_STEPSelections_SelectAssembly_DownCast = _STEPSelections.Handle_STEPSelections_SelectAssembly_DownCast
Handle_STEPSelections_SelectAssembly_IsNull = _STEPSelections.Handle_STEPSelections_SelectAssembly_IsNull
Handle_STEPSelections_SelectDerived_Create = _STEPSelections.Handle_STEPSelections_SelectDerived_Create
Handle_STEPSelections_SelectDerived_DownCast = _STEPSelections.Handle_STEPSelections_SelectDerived_DownCast
Handle_STEPSelections_SelectDerived_IsNull = _STEPSelections.Handle_STEPSelections_SelectDerived_IsNull
Handle_STEPSelections_SelectFaces_Create = _STEPSelections.Handle_STEPSelections_SelectFaces_Create
Handle_STEPSelections_SelectFaces_DownCast = _STEPSelections.Handle_STEPSelections_SelectFaces_DownCast
Handle_STEPSelections_SelectFaces_IsNull = _STEPSelections.Handle_STEPSelections_SelectFaces_IsNull
Handle_STEPSelections_SelectForTransfer_Create = _STEPSelections.Handle_STEPSelections_SelectForTransfer_Create
Handle_STEPSelections_SelectForTransfer_DownCast = _STEPSelections.Handle_STEPSelections_SelectForTransfer_DownCast
Handle_STEPSelections_SelectForTransfer_IsNull = _STEPSelections.Handle_STEPSelections_SelectForTransfer_IsNull
Handle_STEPSelections_SelectGSCurves_Create = _STEPSelections.Handle_STEPSelections_SelectGSCurves_Create
Handle_STEPSelections_SelectGSCurves_DownCast = _STEPSelections.Handle_STEPSelections_SelectGSCurves_DownCast
Handle_STEPSelections_SelectGSCurves_IsNull = _STEPSelections.Handle_STEPSelections_SelectGSCurves_IsNull
Handle_STEPSelections_SelectInstances_Create = _STEPSelections.Handle_STEPSelections_SelectInstances_Create
Handle_STEPSelections_SelectInstances_DownCast = _STEPSelections.Handle_STEPSelections_SelectInstances_DownCast
Handle_STEPSelections_SelectInstances_IsNull = _STEPSelections.Handle_STEPSelections_SelectInstances_IsNull
Handle_STEPSelections_HSequenceOfAssemblyLink_Create = _STEPSelections.Handle_STEPSelections_HSequenceOfAssemblyLink_Create
Handle_STEPSelections_HSequenceOfAssemblyLink_DownCast = _STEPSelections.Handle_STEPSelections_HSequenceOfAssemblyLink_DownCast
Handle_STEPSelections_HSequenceOfAssemblyLink_IsNull = _STEPSelections.Handle_STEPSelections_HSequenceOfAssemblyLink_IsNull
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
    begin = _swig_new_instance_method(_STEPSelections.STEPSelections_SequenceOfAssemblyLink_begin)
    end = _swig_new_instance_method(_STEPSelections.STEPSelections_SequenceOfAssemblyLink_end)
    cbegin = _swig_new_instance_method(_STEPSelections.STEPSelections_SequenceOfAssemblyLink_cbegin)
    cend = _swig_new_instance_method(_STEPSelections.STEPSelections_SequenceOfAssemblyLink_cend)

    def __init__(self, *args):
        _STEPSelections.STEPSelections_SequenceOfAssemblyLink_swiginit(self, _STEPSelections.new_STEPSelections_SequenceOfAssemblyLink(*args))
    Size = _swig_new_instance_method(_STEPSelections.STEPSelections_SequenceOfAssemblyLink_Size)
    Length = _swig_new_instance_method(_STEPSelections.STEPSelections_SequenceOfAssemblyLink_Length)
    Lower = _swig_new_instance_method(_STEPSelections.STEPSelections_SequenceOfAssemblyLink_Lower)
    Upper = _swig_new_instance_method(_STEPSelections.STEPSelections_SequenceOfAssemblyLink_Upper)
    IsEmpty = _swig_new_instance_method(_STEPSelections.STEPSelections_SequenceOfAssemblyLink_IsEmpty)
    Reverse = _swig_new_instance_method(_STEPSelections.STEPSelections_SequenceOfAssemblyLink_Reverse)
    Exchange = _swig_new_instance_method(_STEPSelections.STEPSelections_SequenceOfAssemblyLink_Exchange)
    delNode = _swig_new_static_method(_STEPSelections.STEPSelections_SequenceOfAssemblyLink_delNode)
    Clear = _swig_new_instance_method(_STEPSelections.STEPSelections_SequenceOfAssemblyLink_Clear)
    Assign = _swig_new_instance_method(_STEPSelections.STEPSelections_SequenceOfAssemblyLink_Assign)
    Set = _swig_new_instance_method(_STEPSelections.STEPSelections_SequenceOfAssemblyLink_Set)
    Remove = _swig_new_instance_method(_STEPSelections.STEPSelections_SequenceOfAssemblyLink_Remove)
    Append = _swig_new_instance_method(_STEPSelections.STEPSelections_SequenceOfAssemblyLink_Append)
    Prepend = _swig_new_instance_method(_STEPSelections.STEPSelections_SequenceOfAssemblyLink_Prepend)
    InsertBefore = _swig_new_instance_method(_STEPSelections.STEPSelections_SequenceOfAssemblyLink_InsertBefore)
    InsertAfter = _swig_new_instance_method(_STEPSelections.STEPSelections_SequenceOfAssemblyLink_InsertAfter)
    Split = _swig_new_instance_method(_STEPSelections.STEPSelections_SequenceOfAssemblyLink_Split)
    First = _swig_new_instance_method(_STEPSelections.STEPSelections_SequenceOfAssemblyLink_First)
    ChangeFirst = _swig_new_instance_method(_STEPSelections.STEPSelections_SequenceOfAssemblyLink_ChangeFirst)
    Last = _swig_new_instance_method(_STEPSelections.STEPSelections_SequenceOfAssemblyLink_Last)
    ChangeLast = _swig_new_instance_method(_STEPSelections.STEPSelections_SequenceOfAssemblyLink_ChangeLast)
    Value = _swig_new_instance_method(_STEPSelections.STEPSelections_SequenceOfAssemblyLink_Value)
    ChangeValue = _swig_new_instance_method(_STEPSelections.STEPSelections_SequenceOfAssemblyLink_ChangeValue)
    __call__ = _swig_new_instance_method(_STEPSelections.STEPSelections_SequenceOfAssemblyLink___call__)
    SetValue = _swig_new_instance_method(_STEPSelections.STEPSelections_SequenceOfAssemblyLink_SetValue)
    __swig_destroy__ = _STEPSelections.delete_STEPSelections_SequenceOfAssemblyLink

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

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
    begin = _swig_new_instance_method(_STEPSelections.STEPSelections_SequenceOfAssemblyComponent_begin)
    end = _swig_new_instance_method(_STEPSelections.STEPSelections_SequenceOfAssemblyComponent_end)
    cbegin = _swig_new_instance_method(_STEPSelections.STEPSelections_SequenceOfAssemblyComponent_cbegin)
    cend = _swig_new_instance_method(_STEPSelections.STEPSelections_SequenceOfAssemblyComponent_cend)

    def __init__(self, *args):
        _STEPSelections.STEPSelections_SequenceOfAssemblyComponent_swiginit(self, _STEPSelections.new_STEPSelections_SequenceOfAssemblyComponent(*args))
    Size = _swig_new_instance_method(_STEPSelections.STEPSelections_SequenceOfAssemblyComponent_Size)
    Length = _swig_new_instance_method(_STEPSelections.STEPSelections_SequenceOfAssemblyComponent_Length)
    Lower = _swig_new_instance_method(_STEPSelections.STEPSelections_SequenceOfAssemblyComponent_Lower)
    Upper = _swig_new_instance_method(_STEPSelections.STEPSelections_SequenceOfAssemblyComponent_Upper)
    IsEmpty = _swig_new_instance_method(_STEPSelections.STEPSelections_SequenceOfAssemblyComponent_IsEmpty)
    Reverse = _swig_new_instance_method(_STEPSelections.STEPSelections_SequenceOfAssemblyComponent_Reverse)
    Exchange = _swig_new_instance_method(_STEPSelections.STEPSelections_SequenceOfAssemblyComponent_Exchange)
    delNode = _swig_new_static_method(_STEPSelections.STEPSelections_SequenceOfAssemblyComponent_delNode)
    Clear = _swig_new_instance_method(_STEPSelections.STEPSelections_SequenceOfAssemblyComponent_Clear)
    Assign = _swig_new_instance_method(_STEPSelections.STEPSelections_SequenceOfAssemblyComponent_Assign)
    Set = _swig_new_instance_method(_STEPSelections.STEPSelections_SequenceOfAssemblyComponent_Set)
    Remove = _swig_new_instance_method(_STEPSelections.STEPSelections_SequenceOfAssemblyComponent_Remove)
    Append = _swig_new_instance_method(_STEPSelections.STEPSelections_SequenceOfAssemblyComponent_Append)
    Prepend = _swig_new_instance_method(_STEPSelections.STEPSelections_SequenceOfAssemblyComponent_Prepend)
    InsertBefore = _swig_new_instance_method(_STEPSelections.STEPSelections_SequenceOfAssemblyComponent_InsertBefore)
    InsertAfter = _swig_new_instance_method(_STEPSelections.STEPSelections_SequenceOfAssemblyComponent_InsertAfter)
    Split = _swig_new_instance_method(_STEPSelections.STEPSelections_SequenceOfAssemblyComponent_Split)
    First = _swig_new_instance_method(_STEPSelections.STEPSelections_SequenceOfAssemblyComponent_First)
    ChangeFirst = _swig_new_instance_method(_STEPSelections.STEPSelections_SequenceOfAssemblyComponent_ChangeFirst)
    Last = _swig_new_instance_method(_STEPSelections.STEPSelections_SequenceOfAssemblyComponent_Last)
    ChangeLast = _swig_new_instance_method(_STEPSelections.STEPSelections_SequenceOfAssemblyComponent_ChangeLast)
    Value = _swig_new_instance_method(_STEPSelections.STEPSelections_SequenceOfAssemblyComponent_Value)
    ChangeValue = _swig_new_instance_method(_STEPSelections.STEPSelections_SequenceOfAssemblyComponent_ChangeValue)
    __call__ = _swig_new_instance_method(_STEPSelections.STEPSelections_SequenceOfAssemblyComponent___call__)
    SetValue = _swig_new_instance_method(_STEPSelections.STEPSelections_SequenceOfAssemblyComponent_SetValue)
    __swig_destroy__ = _STEPSelections.delete_STEPSelections_SequenceOfAssemblyComponent

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

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
    GetList = _swig_new_instance_method(_STEPSelections.STEPSelections_AssemblyComponent_GetList)
    GetSDR = _swig_new_instance_method(_STEPSelections.STEPSelections_AssemblyComponent_GetSDR)

    def __init__(self, *args):
        r"""
        :rtype: None:param sdr:
        	:type sdr: StepShape_ShapeDefinitionRepresentation
        	:param list:
        	:type list: STEPSelections_HSequenceOfAssemblyLink
        	:rtype: None
        """
        _STEPSelections.STEPSelections_AssemblyComponent_swiginit(self, _STEPSelections.new_STEPSelections_AssemblyComponent(*args))
    SetList = _swig_new_instance_method(_STEPSelections.STEPSelections_AssemblyComponent_SetList)
    SetSDR = _swig_new_instance_method(_STEPSelections.STEPSelections_AssemblyComponent_SetSDR)


    @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
    DumpToString = _swig_new_instance_method(_STEPSelections.STEPSelections_AssemblyExplorer_DumpToString)
    FillListWithGraph = _swig_new_instance_method(_STEPSelections.STEPSelections_AssemblyExplorer_FillListWithGraph)
    FindItemWithNAUO = _swig_new_instance_method(_STEPSelections.STEPSelections_AssemblyExplorer_FindItemWithNAUO)
    FindSDRWithProduct = _swig_new_instance_method(_STEPSelections.STEPSelections_AssemblyExplorer_FindSDRWithProduct)
    Init = _swig_new_instance_method(_STEPSelections.STEPSelections_AssemblyExplorer_Init)
    NbAssemblies = _swig_new_instance_method(_STEPSelections.STEPSelections_AssemblyExplorer_NbAssemblies)
    Root = _swig_new_instance_method(_STEPSelections.STEPSelections_AssemblyExplorer_Root)

    def __init__(self, *args):
        r"""
        :param G:
        	:type G: Interface_Graph
        	:rtype: None
        """
        _STEPSelections.STEPSelections_AssemblyExplorer_swiginit(self, _STEPSelections.new_STEPSelections_AssemblyExplorer(*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
    GetComponent = _swig_new_instance_method(_STEPSelections.STEPSelections_AssemblyLink_GetComponent)
    GetItem = _swig_new_instance_method(_STEPSelections.STEPSelections_AssemblyLink_GetItem)
    GetNAUO = _swig_new_instance_method(_STEPSelections.STEPSelections_AssemblyLink_GetNAUO)

    def __init__(self, *args):
        r"""
        :rtype: None:param nauo:
        	:type nauo: StepRepr_NextAssemblyUsageOccurrence
        	:param item:
        	:type item: Standard_Transient
        	:param part:
        	:type part: STEPSelections_AssemblyComponent
        	:rtype: None
        """
        _STEPSelections.STEPSelections_AssemblyLink_swiginit(self, _STEPSelections.new_STEPSelections_AssemblyLink(*args))
    SetComponent = _swig_new_instance_method(_STEPSelections.STEPSelections_AssemblyLink_SetComponent)
    SetItem = _swig_new_instance_method(_STEPSelections.STEPSelections_AssemblyLink_SetItem)
    SetNAUO = _swig_new_instance_method(_STEPSelections.STEPSelections_AssemblyLink_SetNAUO)


    @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
    Clear = _swig_new_instance_method(_STEPSelections.STEPSelections_Counter_Clear)
    Count = _swig_new_instance_method(_STEPSelections.STEPSelections_Counter_Count)
    NbInstancesOfEdges = _swig_new_instance_method(_STEPSelections.STEPSelections_Counter_NbInstancesOfEdges)
    NbInstancesOfFaces = _swig_new_instance_method(_STEPSelections.STEPSelections_Counter_NbInstancesOfFaces)
    NbInstancesOfShells = _swig_new_instance_method(_STEPSelections.STEPSelections_Counter_NbInstancesOfShells)
    NbInstancesOfSolids = _swig_new_instance_method(_STEPSelections.STEPSelections_Counter_NbInstancesOfSolids)
    NbInstancesOfWires = _swig_new_instance_method(_STEPSelections.STEPSelections_Counter_NbInstancesOfWires)
    NbSourceEdges = _swig_new_instance_method(_STEPSelections.STEPSelections_Counter_NbSourceEdges)
    NbSourceFaces = _swig_new_instance_method(_STEPSelections.STEPSelections_Counter_NbSourceFaces)
    NbSourceShells = _swig_new_instance_method(_STEPSelections.STEPSelections_Counter_NbSourceShells)
    NbSourceSolids = _swig_new_instance_method(_STEPSelections.STEPSelections_Counter_NbSourceSolids)
    NbSourceWires = _swig_new_instance_method(_STEPSelections.STEPSelections_Counter_NbSourceWires)

    def __init__(self, *args):
        r""":rtype: None"""
        _STEPSelections.STEPSelections_Counter_swiginit(self, _STEPSelections.new_STEPSelections_Counter(*args))

    __repr__ = _dumps_object

    __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""":rtype: 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
    Matches = _swig_new_instance_method(_STEPSelections.STEPSelections_SelectDerived_Matches)

    def __init__(self, *args):
        r""":rtype: None"""
        _STEPSelections.STEPSelections_SelectDerived_swiginit(self, _STEPSelections.new_STEPSelections_SelectDerived(*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""":rtype: 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"""
        :rtype: None:param TR:
        	:type TR: XSControl_TransferReader
        	:rtype: 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""":rtype: 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""":rtype: 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))
    Sequence = _swig_new_instance_method(_STEPSelections.STEPSelections_HSequenceOfAssemblyLink_Sequence)
    Append = _swig_new_instance_method(_STEPSelections.STEPSelections_HSequenceOfAssemblyLink_Append)
    ChangeSequence = _swig_new_instance_method(_STEPSelections.STEPSelections_HSequenceOfAssemblyLink_ChangeSequence)


    @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)



