# 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.

"""
StepElement module, see official documentation at
https://www.opencascade.com/doc/occt-7.4.0/refman/html/package_stepelement.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 _StepElement
else:
    import _StepElement

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__ = _StepElement.delete_SwigPyIterator

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

# Register SwigPyIterator in _StepElement:
_StepElement.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 _StepElement.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.TCollection
import OCC.Core.StepRepr
import OCC.Core.StepData
import OCC.Core.Interface
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.StepBasic

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

StepElement_Volume = _StepElement.StepElement_Volume
StepElement_ElementEdge = _StepElement.StepElement_ElementEdge
StepElement_Hexahedron = _StepElement.StepElement_Hexahedron
StepElement_Wedge = _StepElement.StepElement_Wedge
StepElement_Tetrahedron = _StepElement.StepElement_Tetrahedron
StepElement_Pyramid = _StepElement.StepElement_Pyramid
StepElement_Linear = _StepElement.StepElement_Linear
StepElement_Quadratic = _StepElement.StepElement_Quadratic
StepElement_Cubic = _StepElement.StepElement_Cubic
StepElement_Quadrilateral = _StepElement.StepElement_Quadrilateral
StepElement_Triangle = _StepElement.StepElement_Triangle
StepElement_XTranslation = _StepElement.StepElement_XTranslation
StepElement_YTranslation = _StepElement.StepElement_YTranslation
StepElement_ZTranslation = _StepElement.StepElement_ZTranslation
StepElement_XRotation = _StepElement.StepElement_XRotation
StepElement_YRotation = _StepElement.StepElement_YRotation
StepElement_ZRotation = _StepElement.StepElement_ZRotation
StepElement_Warp = _StepElement.StepElement_Warp
StepElement_None = _StepElement.StepElement_None
StepElement_StressDisplacement = _StepElement.StepElement_StressDisplacement
StepElement_MembraneDirect = _StepElement.StepElement_MembraneDirect
StepElement_MembraneShear = _StepElement.StepElement_MembraneShear
StepElement_BendingDirect = _StepElement.StepElement_BendingDirect
StepElement_BendingTorsion = _StepElement.StepElement_BendingTorsion
StepElement_NormalToPlaneShear = _StepElement.StepElement_NormalToPlaneShear
StepElement_Unspecified = _StepElement.StepElement_Unspecified
StepElement_Axial = _StepElement.StepElement_Axial
StepElement_YYBending = _StepElement.StepElement_YYBending
StepElement_ZZBending = _StepElement.StepElement_ZZBending
StepElement_Torsion = _StepElement.StepElement_Torsion
StepElement_XYShear = _StepElement.StepElement_XYShear
StepElement_XZShear = _StepElement.StepElement_XZShear
StepElement_Warping = _StepElement.StepElement_Warping


class StepElement_ElementVolume(IntEnum):
	StepElement_Volume = 0
StepElement_Volume = StepElement_ElementVolume.StepElement_Volume

class StepElement_CurveEdge(IntEnum):
	StepElement_ElementEdge = 0
StepElement_ElementEdge = StepElement_CurveEdge.StepElement_ElementEdge

class StepElement_Volume3dElementShape(IntEnum):
	StepElement_Hexahedron = 0
	StepElement_Wedge = 1
	StepElement_Tetrahedron = 2
	StepElement_Pyramid = 3
StepElement_Hexahedron = StepElement_Volume3dElementShape.StepElement_Hexahedron
StepElement_Wedge = StepElement_Volume3dElementShape.StepElement_Wedge
StepElement_Tetrahedron = StepElement_Volume3dElementShape.StepElement_Tetrahedron
StepElement_Pyramid = StepElement_Volume3dElementShape.StepElement_Pyramid

class StepElement_ElementOrder(IntEnum):
	StepElement_Linear = 0
	StepElement_Quadratic = 1
	StepElement_Cubic = 2
StepElement_Linear = StepElement_ElementOrder.StepElement_Linear
StepElement_Quadratic = StepElement_ElementOrder.StepElement_Quadratic
StepElement_Cubic = StepElement_ElementOrder.StepElement_Cubic

class StepElement_Element2dShape(IntEnum):
	StepElement_Quadrilateral = 0
	StepElement_Triangle = 1
StepElement_Quadrilateral = StepElement_Element2dShape.StepElement_Quadrilateral
StepElement_Triangle = StepElement_Element2dShape.StepElement_Triangle

class StepElement_EnumeratedCurveElementFreedom(IntEnum):
	StepElement_XTranslation = 0
	StepElement_YTranslation = 1
	StepElement_ZTranslation = 2
	StepElement_XRotation = 3
	StepElement_YRotation = 4
	StepElement_ZRotation = 5
	StepElement_Warp = 6
	StepElement_None = 7
StepElement_XTranslation = StepElement_EnumeratedCurveElementFreedom.StepElement_XTranslation
StepElement_YTranslation = StepElement_EnumeratedCurveElementFreedom.StepElement_YTranslation
StepElement_ZTranslation = StepElement_EnumeratedCurveElementFreedom.StepElement_ZTranslation
StepElement_XRotation = StepElement_EnumeratedCurveElementFreedom.StepElement_XRotation
StepElement_YRotation = StepElement_EnumeratedCurveElementFreedom.StepElement_YRotation
StepElement_ZRotation = StepElement_EnumeratedCurveElementFreedom.StepElement_ZRotation
StepElement_Warp = StepElement_EnumeratedCurveElementFreedom.StepElement_Warp
StepElement_None = StepElement_EnumeratedCurveElementFreedom.StepElement_None

class StepElement_EnumeratedVolumeElementPurpose(IntEnum):
	StepElement_StressDisplacement = 0
StepElement_StressDisplacement = StepElement_EnumeratedVolumeElementPurpose.StepElement_StressDisplacement

class StepElement_EnumeratedSurfaceElementPurpose(IntEnum):
	StepElement_MembraneDirect = 0
	StepElement_MembraneShear = 1
	StepElement_BendingDirect = 2
	StepElement_BendingTorsion = 3
	StepElement_NormalToPlaneShear = 4
StepElement_MembraneDirect = StepElement_EnumeratedSurfaceElementPurpose.StepElement_MembraneDirect
StepElement_MembraneShear = StepElement_EnumeratedSurfaceElementPurpose.StepElement_MembraneShear
StepElement_BendingDirect = StepElement_EnumeratedSurfaceElementPurpose.StepElement_BendingDirect
StepElement_BendingTorsion = StepElement_EnumeratedSurfaceElementPurpose.StepElement_BendingTorsion
StepElement_NormalToPlaneShear = StepElement_EnumeratedSurfaceElementPurpose.StepElement_NormalToPlaneShear

class StepElement_UnspecifiedValue(IntEnum):
	StepElement_Unspecified = 0
StepElement_Unspecified = StepElement_UnspecifiedValue.StepElement_Unspecified

class StepElement_EnumeratedCurveElementPurpose(IntEnum):
	StepElement_Axial = 0
	StepElement_YYBending = 1
	StepElement_ZZBending = 2
	StepElement_Torsion = 3
	StepElement_XYShear = 4
	StepElement_XZShear = 5
	StepElement_Warping = 6
StepElement_Axial = StepElement_EnumeratedCurveElementPurpose.StepElement_Axial
StepElement_YYBending = StepElement_EnumeratedCurveElementPurpose.StepElement_YYBending
StepElement_ZZBending = StepElement_EnumeratedCurveElementPurpose.StepElement_ZZBending
StepElement_Torsion = StepElement_EnumeratedCurveElementPurpose.StepElement_Torsion
StepElement_XYShear = StepElement_EnumeratedCurveElementPurpose.StepElement_XYShear
StepElement_XZShear = StepElement_EnumeratedCurveElementPurpose.StepElement_XZShear
StepElement_Warping = StepElement_EnumeratedCurveElementPurpose.StepElement_Warping


def Handle_StepElement_AnalysisItemWithinRepresentation_Create() -> "opencascade::handle< StepElement_AnalysisItemWithinRepresentation >":
    return _StepElement.Handle_StepElement_AnalysisItemWithinRepresentation_Create()

def Handle_StepElement_AnalysisItemWithinRepresentation_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< StepElement_AnalysisItemWithinRepresentation >":
    return _StepElement.Handle_StepElement_AnalysisItemWithinRepresentation_DownCast(t)

def Handle_StepElement_AnalysisItemWithinRepresentation_IsNull(t: "opencascade::handle< StepElement_AnalysisItemWithinRepresentation > const &") -> "bool":
    return _StepElement.Handle_StepElement_AnalysisItemWithinRepresentation_IsNull(t)

def Handle_StepElement_CurveElementEndReleasePacket_Create() -> "opencascade::handle< StepElement_CurveElementEndReleasePacket >":
    return _StepElement.Handle_StepElement_CurveElementEndReleasePacket_Create()

def Handle_StepElement_CurveElementEndReleasePacket_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< StepElement_CurveElementEndReleasePacket >":
    return _StepElement.Handle_StepElement_CurveElementEndReleasePacket_DownCast(t)

def Handle_StepElement_CurveElementEndReleasePacket_IsNull(t: "opencascade::handle< StepElement_CurveElementEndReleasePacket > const &") -> "bool":
    return _StepElement.Handle_StepElement_CurveElementEndReleasePacket_IsNull(t)

def Handle_StepElement_CurveElementFreedomMember_Create() -> "opencascade::handle< StepElement_CurveElementFreedomMember >":
    return _StepElement.Handle_StepElement_CurveElementFreedomMember_Create()

def Handle_StepElement_CurveElementFreedomMember_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< StepElement_CurveElementFreedomMember >":
    return _StepElement.Handle_StepElement_CurveElementFreedomMember_DownCast(t)

def Handle_StepElement_CurveElementFreedomMember_IsNull(t: "opencascade::handle< StepElement_CurveElementFreedomMember > const &") -> "bool":
    return _StepElement.Handle_StepElement_CurveElementFreedomMember_IsNull(t)

def Handle_StepElement_CurveElementPurposeMember_Create() -> "opencascade::handle< StepElement_CurveElementPurposeMember >":
    return _StepElement.Handle_StepElement_CurveElementPurposeMember_Create()

def Handle_StepElement_CurveElementPurposeMember_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< StepElement_CurveElementPurposeMember >":
    return _StepElement.Handle_StepElement_CurveElementPurposeMember_DownCast(t)

def Handle_StepElement_CurveElementPurposeMember_IsNull(t: "opencascade::handle< StepElement_CurveElementPurposeMember > const &") -> "bool":
    return _StepElement.Handle_StepElement_CurveElementPurposeMember_IsNull(t)

def Handle_StepElement_CurveElementSectionDefinition_Create() -> "opencascade::handle< StepElement_CurveElementSectionDefinition >":
    return _StepElement.Handle_StepElement_CurveElementSectionDefinition_Create()

def Handle_StepElement_CurveElementSectionDefinition_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< StepElement_CurveElementSectionDefinition >":
    return _StepElement.Handle_StepElement_CurveElementSectionDefinition_DownCast(t)

def Handle_StepElement_CurveElementSectionDefinition_IsNull(t: "opencascade::handle< StepElement_CurveElementSectionDefinition > const &") -> "bool":
    return _StepElement.Handle_StepElement_CurveElementSectionDefinition_IsNull(t)

def Handle_StepElement_ElementAspectMember_Create() -> "opencascade::handle< StepElement_ElementAspectMember >":
    return _StepElement.Handle_StepElement_ElementAspectMember_Create()

def Handle_StepElement_ElementAspectMember_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< StepElement_ElementAspectMember >":
    return _StepElement.Handle_StepElement_ElementAspectMember_DownCast(t)

def Handle_StepElement_ElementAspectMember_IsNull(t: "opencascade::handle< StepElement_ElementAspectMember > const &") -> "bool":
    return _StepElement.Handle_StepElement_ElementAspectMember_IsNull(t)

def Handle_StepElement_ElementDescriptor_Create() -> "opencascade::handle< StepElement_ElementDescriptor >":
    return _StepElement.Handle_StepElement_ElementDescriptor_Create()

def Handle_StepElement_ElementDescriptor_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< StepElement_ElementDescriptor >":
    return _StepElement.Handle_StepElement_ElementDescriptor_DownCast(t)

def Handle_StepElement_ElementDescriptor_IsNull(t: "opencascade::handle< StepElement_ElementDescriptor > const &") -> "bool":
    return _StepElement.Handle_StepElement_ElementDescriptor_IsNull(t)

def Handle_StepElement_ElementMaterial_Create() -> "opencascade::handle< StepElement_ElementMaterial >":
    return _StepElement.Handle_StepElement_ElementMaterial_Create()

def Handle_StepElement_ElementMaterial_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< StepElement_ElementMaterial >":
    return _StepElement.Handle_StepElement_ElementMaterial_DownCast(t)

def Handle_StepElement_ElementMaterial_IsNull(t: "opencascade::handle< StepElement_ElementMaterial > const &") -> "bool":
    return _StepElement.Handle_StepElement_ElementMaterial_IsNull(t)

def Handle_StepElement_MeasureOrUnspecifiedValueMember_Create() -> "opencascade::handle< StepElement_MeasureOrUnspecifiedValueMember >":
    return _StepElement.Handle_StepElement_MeasureOrUnspecifiedValueMember_Create()

def Handle_StepElement_MeasureOrUnspecifiedValueMember_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< StepElement_MeasureOrUnspecifiedValueMember >":
    return _StepElement.Handle_StepElement_MeasureOrUnspecifiedValueMember_DownCast(t)

def Handle_StepElement_MeasureOrUnspecifiedValueMember_IsNull(t: "opencascade::handle< StepElement_MeasureOrUnspecifiedValueMember > const &") -> "bool":
    return _StepElement.Handle_StepElement_MeasureOrUnspecifiedValueMember_IsNull(t)

def Handle_StepElement_SurfaceElementProperty_Create() -> "opencascade::handle< StepElement_SurfaceElementProperty >":
    return _StepElement.Handle_StepElement_SurfaceElementProperty_Create()

def Handle_StepElement_SurfaceElementProperty_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< StepElement_SurfaceElementProperty >":
    return _StepElement.Handle_StepElement_SurfaceElementProperty_DownCast(t)

def Handle_StepElement_SurfaceElementProperty_IsNull(t: "opencascade::handle< StepElement_SurfaceElementProperty > const &") -> "bool":
    return _StepElement.Handle_StepElement_SurfaceElementProperty_IsNull(t)

def Handle_StepElement_SurfaceElementPurposeMember_Create() -> "opencascade::handle< StepElement_SurfaceElementPurposeMember >":
    return _StepElement.Handle_StepElement_SurfaceElementPurposeMember_Create()

def Handle_StepElement_SurfaceElementPurposeMember_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< StepElement_SurfaceElementPurposeMember >":
    return _StepElement.Handle_StepElement_SurfaceElementPurposeMember_DownCast(t)

def Handle_StepElement_SurfaceElementPurposeMember_IsNull(t: "opencascade::handle< StepElement_SurfaceElementPurposeMember > const &") -> "bool":
    return _StepElement.Handle_StepElement_SurfaceElementPurposeMember_IsNull(t)

def Handle_StepElement_SurfaceSection_Create() -> "opencascade::handle< StepElement_SurfaceSection >":
    return _StepElement.Handle_StepElement_SurfaceSection_Create()

def Handle_StepElement_SurfaceSection_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< StepElement_SurfaceSection >":
    return _StepElement.Handle_StepElement_SurfaceSection_DownCast(t)

def Handle_StepElement_SurfaceSection_IsNull(t: "opencascade::handle< StepElement_SurfaceSection > const &") -> "bool":
    return _StepElement.Handle_StepElement_SurfaceSection_IsNull(t)

def Handle_StepElement_SurfaceSectionField_Create() -> "opencascade::handle< StepElement_SurfaceSectionField >":
    return _StepElement.Handle_StepElement_SurfaceSectionField_Create()

def Handle_StepElement_SurfaceSectionField_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< StepElement_SurfaceSectionField >":
    return _StepElement.Handle_StepElement_SurfaceSectionField_DownCast(t)

def Handle_StepElement_SurfaceSectionField_IsNull(t: "opencascade::handle< StepElement_SurfaceSectionField > const &") -> "bool":
    return _StepElement.Handle_StepElement_SurfaceSectionField_IsNull(t)

def Handle_StepElement_VolumeElementPurposeMember_Create() -> "opencascade::handle< StepElement_VolumeElementPurposeMember >":
    return _StepElement.Handle_StepElement_VolumeElementPurposeMember_Create()

def Handle_StepElement_VolumeElementPurposeMember_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< StepElement_VolumeElementPurposeMember >":
    return _StepElement.Handle_StepElement_VolumeElementPurposeMember_DownCast(t)

def Handle_StepElement_VolumeElementPurposeMember_IsNull(t: "opencascade::handle< StepElement_VolumeElementPurposeMember > const &") -> "bool":
    return _StepElement.Handle_StepElement_VolumeElementPurposeMember_IsNull(t)

def Handle_StepElement_Curve3dElementDescriptor_Create() -> "opencascade::handle< StepElement_Curve3dElementDescriptor >":
    return _StepElement.Handle_StepElement_Curve3dElementDescriptor_Create()

def Handle_StepElement_Curve3dElementDescriptor_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< StepElement_Curve3dElementDescriptor >":
    return _StepElement.Handle_StepElement_Curve3dElementDescriptor_DownCast(t)

def Handle_StepElement_Curve3dElementDescriptor_IsNull(t: "opencascade::handle< StepElement_Curve3dElementDescriptor > const &") -> "bool":
    return _StepElement.Handle_StepElement_Curve3dElementDescriptor_IsNull(t)

def Handle_StepElement_CurveElementSectionDerivedDefinitions_Create() -> "opencascade::handle< StepElement_CurveElementSectionDerivedDefinitions >":
    return _StepElement.Handle_StepElement_CurveElementSectionDerivedDefinitions_Create()

def Handle_StepElement_CurveElementSectionDerivedDefinitions_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< StepElement_CurveElementSectionDerivedDefinitions >":
    return _StepElement.Handle_StepElement_CurveElementSectionDerivedDefinitions_DownCast(t)

def Handle_StepElement_CurveElementSectionDerivedDefinitions_IsNull(t: "opencascade::handle< StepElement_CurveElementSectionDerivedDefinitions > const &") -> "bool":
    return _StepElement.Handle_StepElement_CurveElementSectionDerivedDefinitions_IsNull(t)

def Handle_StepElement_Surface3dElementDescriptor_Create() -> "opencascade::handle< StepElement_Surface3dElementDescriptor >":
    return _StepElement.Handle_StepElement_Surface3dElementDescriptor_Create()

def Handle_StepElement_Surface3dElementDescriptor_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< StepElement_Surface3dElementDescriptor >":
    return _StepElement.Handle_StepElement_Surface3dElementDescriptor_DownCast(t)

def Handle_StepElement_Surface3dElementDescriptor_IsNull(t: "opencascade::handle< StepElement_Surface3dElementDescriptor > const &") -> "bool":
    return _StepElement.Handle_StepElement_Surface3dElementDescriptor_IsNull(t)

def Handle_StepElement_SurfaceSectionFieldConstant_Create() -> "opencascade::handle< StepElement_SurfaceSectionFieldConstant >":
    return _StepElement.Handle_StepElement_SurfaceSectionFieldConstant_Create()

def Handle_StepElement_SurfaceSectionFieldConstant_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< StepElement_SurfaceSectionFieldConstant >":
    return _StepElement.Handle_StepElement_SurfaceSectionFieldConstant_DownCast(t)

def Handle_StepElement_SurfaceSectionFieldConstant_IsNull(t: "opencascade::handle< StepElement_SurfaceSectionFieldConstant > const &") -> "bool":
    return _StepElement.Handle_StepElement_SurfaceSectionFieldConstant_IsNull(t)

def Handle_StepElement_SurfaceSectionFieldVarying_Create() -> "opencascade::handle< StepElement_SurfaceSectionFieldVarying >":
    return _StepElement.Handle_StepElement_SurfaceSectionFieldVarying_Create()

def Handle_StepElement_SurfaceSectionFieldVarying_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< StepElement_SurfaceSectionFieldVarying >":
    return _StepElement.Handle_StepElement_SurfaceSectionFieldVarying_DownCast(t)

def Handle_StepElement_SurfaceSectionFieldVarying_IsNull(t: "opencascade::handle< StepElement_SurfaceSectionFieldVarying > const &") -> "bool":
    return _StepElement.Handle_StepElement_SurfaceSectionFieldVarying_IsNull(t)

def Handle_StepElement_UniformSurfaceSection_Create() -> "opencascade::handle< StepElement_UniformSurfaceSection >":
    return _StepElement.Handle_StepElement_UniformSurfaceSection_Create()

def Handle_StepElement_UniformSurfaceSection_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< StepElement_UniformSurfaceSection >":
    return _StepElement.Handle_StepElement_UniformSurfaceSection_DownCast(t)

def Handle_StepElement_UniformSurfaceSection_IsNull(t: "opencascade::handle< StepElement_UniformSurfaceSection > const &") -> "bool":
    return _StepElement.Handle_StepElement_UniformSurfaceSection_IsNull(t)

def Handle_StepElement_Volume3dElementDescriptor_Create() -> "opencascade::handle< StepElement_Volume3dElementDescriptor >":
    return _StepElement.Handle_StepElement_Volume3dElementDescriptor_Create()

def Handle_StepElement_Volume3dElementDescriptor_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< StepElement_Volume3dElementDescriptor >":
    return _StepElement.Handle_StepElement_Volume3dElementDescriptor_DownCast(t)

def Handle_StepElement_Volume3dElementDescriptor_IsNull(t: "opencascade::handle< StepElement_Volume3dElementDescriptor > const &") -> "bool":
    return _StepElement.Handle_StepElement_Volume3dElementDescriptor_IsNull(t)

def Handle_StepElement_HArray1OfVolumeElementPurpose_Create() -> "opencascade::handle< StepElement_HArray1OfVolumeElementPurpose >":
    return _StepElement.Handle_StepElement_HArray1OfVolumeElementPurpose_Create()

def Handle_StepElement_HArray1OfVolumeElementPurpose_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< StepElement_HArray1OfVolumeElementPurpose >":
    return _StepElement.Handle_StepElement_HArray1OfVolumeElementPurpose_DownCast(t)

def Handle_StepElement_HArray1OfVolumeElementPurpose_IsNull(t: "opencascade::handle< StepElement_HArray1OfVolumeElementPurpose > const &") -> "bool":
    return _StepElement.Handle_StepElement_HArray1OfVolumeElementPurpose_IsNull(t)

def Handle_StepElement_HArray1OfHSequenceOfCurveElementPurposeMember_Create() -> "opencascade::handle< StepElement_HArray1OfHSequenceOfCurveElementPurposeMember >":
    return _StepElement.Handle_StepElement_HArray1OfHSequenceOfCurveElementPurposeMember_Create()

def Handle_StepElement_HArray1OfHSequenceOfCurveElementPurposeMember_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< StepElement_HArray1OfHSequenceOfCurveElementPurposeMember >":
    return _StepElement.Handle_StepElement_HArray1OfHSequenceOfCurveElementPurposeMember_DownCast(t)

def Handle_StepElement_HArray1OfHSequenceOfCurveElementPurposeMember_IsNull(t: "opencascade::handle< StepElement_HArray1OfHSequenceOfCurveElementPurposeMember > const &") -> "bool":
    return _StepElement.Handle_StepElement_HArray1OfHSequenceOfCurveElementPurposeMember_IsNull(t)

def Handle_StepElement_HArray1OfSurfaceSection_Create() -> "opencascade::handle< StepElement_HArray1OfSurfaceSection >":
    return _StepElement.Handle_StepElement_HArray1OfSurfaceSection_Create()

def Handle_StepElement_HArray1OfSurfaceSection_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< StepElement_HArray1OfSurfaceSection >":
    return _StepElement.Handle_StepElement_HArray1OfSurfaceSection_DownCast(t)

def Handle_StepElement_HArray1OfSurfaceSection_IsNull(t: "opencascade::handle< StepElement_HArray1OfSurfaceSection > const &") -> "bool":
    return _StepElement.Handle_StepElement_HArray1OfSurfaceSection_IsNull(t)

def Handle_StepElement_HArray1OfCurveElementSectionDefinition_Create() -> "opencascade::handle< StepElement_HArray1OfCurveElementSectionDefinition >":
    return _StepElement.Handle_StepElement_HArray1OfCurveElementSectionDefinition_Create()

def Handle_StepElement_HArray1OfCurveElementSectionDefinition_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< StepElement_HArray1OfCurveElementSectionDefinition >":
    return _StepElement.Handle_StepElement_HArray1OfCurveElementSectionDefinition_DownCast(t)

def Handle_StepElement_HArray1OfCurveElementSectionDefinition_IsNull(t: "opencascade::handle< StepElement_HArray1OfCurveElementSectionDefinition > const &") -> "bool":
    return _StepElement.Handle_StepElement_HArray1OfCurveElementSectionDefinition_IsNull(t)

def Handle_StepElement_HArray1OfMeasureOrUnspecifiedValue_Create() -> "opencascade::handle< StepElement_HArray1OfMeasureOrUnspecifiedValue >":
    return _StepElement.Handle_StepElement_HArray1OfMeasureOrUnspecifiedValue_Create()

def Handle_StepElement_HArray1OfMeasureOrUnspecifiedValue_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< StepElement_HArray1OfMeasureOrUnspecifiedValue >":
    return _StepElement.Handle_StepElement_HArray1OfMeasureOrUnspecifiedValue_DownCast(t)

def Handle_StepElement_HArray1OfMeasureOrUnspecifiedValue_IsNull(t: "opencascade::handle< StepElement_HArray1OfMeasureOrUnspecifiedValue > const &") -> "bool":
    return _StepElement.Handle_StepElement_HArray1OfMeasureOrUnspecifiedValue_IsNull(t)

def Handle_StepElement_HArray1OfHSequenceOfSurfaceElementPurposeMember_Create() -> "opencascade::handle< StepElement_HArray1OfHSequenceOfSurfaceElementPurposeMember >":
    return _StepElement.Handle_StepElement_HArray1OfHSequenceOfSurfaceElementPurposeMember_Create()

def Handle_StepElement_HArray1OfHSequenceOfSurfaceElementPurposeMember_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< StepElement_HArray1OfHSequenceOfSurfaceElementPurposeMember >":
    return _StepElement.Handle_StepElement_HArray1OfHSequenceOfSurfaceElementPurposeMember_DownCast(t)

def Handle_StepElement_HArray1OfHSequenceOfSurfaceElementPurposeMember_IsNull(t: "opencascade::handle< StepElement_HArray1OfHSequenceOfSurfaceElementPurposeMember > const &") -> "bool":
    return _StepElement.Handle_StepElement_HArray1OfHSequenceOfSurfaceElementPurposeMember_IsNull(t)

def Handle_StepElement_HArray1OfVolumeElementPurposeMember_Create() -> "opencascade::handle< StepElement_HArray1OfVolumeElementPurposeMember >":
    return _StepElement.Handle_StepElement_HArray1OfVolumeElementPurposeMember_Create()

def Handle_StepElement_HArray1OfVolumeElementPurposeMember_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< StepElement_HArray1OfVolumeElementPurposeMember >":
    return _StepElement.Handle_StepElement_HArray1OfVolumeElementPurposeMember_DownCast(t)

def Handle_StepElement_HArray1OfVolumeElementPurposeMember_IsNull(t: "opencascade::handle< StepElement_HArray1OfVolumeElementPurposeMember > const &") -> "bool":
    return _StepElement.Handle_StepElement_HArray1OfVolumeElementPurposeMember_IsNull(t)

def Handle_StepElement_HArray1OfCurveElementEndReleasePacket_Create() -> "opencascade::handle< StepElement_HArray1OfCurveElementEndReleasePacket >":
    return _StepElement.Handle_StepElement_HArray1OfCurveElementEndReleasePacket_Create()

def Handle_StepElement_HArray1OfCurveElementEndReleasePacket_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< StepElement_HArray1OfCurveElementEndReleasePacket >":
    return _StepElement.Handle_StepElement_HArray1OfCurveElementEndReleasePacket_DownCast(t)

def Handle_StepElement_HArray1OfCurveElementEndReleasePacket_IsNull(t: "opencascade::handle< StepElement_HArray1OfCurveElementEndReleasePacket > const &") -> "bool":
    return _StepElement.Handle_StepElement_HArray1OfCurveElementEndReleasePacket_IsNull(t)

def Handle_StepElement_HArray2OfSurfaceElementPurposeMember_Create() -> "opencascade::handle< StepElement_HArray2OfSurfaceElementPurposeMember >":
    return _StepElement.Handle_StepElement_HArray2OfSurfaceElementPurposeMember_Create()

def Handle_StepElement_HArray2OfSurfaceElementPurposeMember_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< StepElement_HArray2OfSurfaceElementPurposeMember >":
    return _StepElement.Handle_StepElement_HArray2OfSurfaceElementPurposeMember_DownCast(t)

def Handle_StepElement_HArray2OfSurfaceElementPurposeMember_IsNull(t: "opencascade::handle< StepElement_HArray2OfSurfaceElementPurposeMember > const &") -> "bool":
    return _StepElement.Handle_StepElement_HArray2OfSurfaceElementPurposeMember_IsNull(t)

def Handle_StepElement_HArray2OfSurfaceElementPurpose_Create() -> "opencascade::handle< StepElement_HArray2OfSurfaceElementPurpose >":
    return _StepElement.Handle_StepElement_HArray2OfSurfaceElementPurpose_Create()

def Handle_StepElement_HArray2OfSurfaceElementPurpose_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< StepElement_HArray2OfSurfaceElementPurpose >":
    return _StepElement.Handle_StepElement_HArray2OfSurfaceElementPurpose_DownCast(t)

def Handle_StepElement_HArray2OfSurfaceElementPurpose_IsNull(t: "opencascade::handle< StepElement_HArray2OfSurfaceElementPurpose > const &") -> "bool":
    return _StepElement.Handle_StepElement_HArray2OfSurfaceElementPurpose_IsNull(t)

def Handle_StepElement_HArray2OfCurveElementPurposeMember_Create() -> "opencascade::handle< StepElement_HArray2OfCurveElementPurposeMember >":
    return _StepElement.Handle_StepElement_HArray2OfCurveElementPurposeMember_Create()

def Handle_StepElement_HArray2OfCurveElementPurposeMember_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< StepElement_HArray2OfCurveElementPurposeMember >":
    return _StepElement.Handle_StepElement_HArray2OfCurveElementPurposeMember_DownCast(t)

def Handle_StepElement_HArray2OfCurveElementPurposeMember_IsNull(t: "opencascade::handle< StepElement_HArray2OfCurveElementPurposeMember > const &") -> "bool":
    return _StepElement.Handle_StepElement_HArray2OfCurveElementPurposeMember_IsNull(t)

def Handle_StepElement_HSequenceOfCurveElementSectionDefinition_Create() -> "opencascade::handle< StepElement_HSequenceOfCurveElementSectionDefinition >":
    return _StepElement.Handle_StepElement_HSequenceOfCurveElementSectionDefinition_Create()

def Handle_StepElement_HSequenceOfCurveElementSectionDefinition_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< StepElement_HSequenceOfCurveElementSectionDefinition >":
    return _StepElement.Handle_StepElement_HSequenceOfCurveElementSectionDefinition_DownCast(t)

def Handle_StepElement_HSequenceOfCurveElementSectionDefinition_IsNull(t: "opencascade::handle< StepElement_HSequenceOfCurveElementSectionDefinition > const &") -> "bool":
    return _StepElement.Handle_StepElement_HSequenceOfCurveElementSectionDefinition_IsNull(t)

def Handle_StepElement_HSequenceOfCurveElementPurposeMember_Create() -> "opencascade::handle< StepElement_HSequenceOfCurveElementPurposeMember >":
    return _StepElement.Handle_StepElement_HSequenceOfCurveElementPurposeMember_Create()

def Handle_StepElement_HSequenceOfCurveElementPurposeMember_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< StepElement_HSequenceOfCurveElementPurposeMember >":
    return _StepElement.Handle_StepElement_HSequenceOfCurveElementPurposeMember_DownCast(t)

def Handle_StepElement_HSequenceOfCurveElementPurposeMember_IsNull(t: "opencascade::handle< StepElement_HSequenceOfCurveElementPurposeMember > const &") -> "bool":
    return _StepElement.Handle_StepElement_HSequenceOfCurveElementPurposeMember_IsNull(t)

def Handle_StepElement_HSequenceOfElementMaterial_Create() -> "opencascade::handle< StepElement_HSequenceOfElementMaterial >":
    return _StepElement.Handle_StepElement_HSequenceOfElementMaterial_Create()

def Handle_StepElement_HSequenceOfElementMaterial_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< StepElement_HSequenceOfElementMaterial >":
    return _StepElement.Handle_StepElement_HSequenceOfElementMaterial_DownCast(t)

def Handle_StepElement_HSequenceOfElementMaterial_IsNull(t: "opencascade::handle< StepElement_HSequenceOfElementMaterial > const &") -> "bool":
    return _StepElement.Handle_StepElement_HSequenceOfElementMaterial_IsNull(t)

def Handle_StepElement_HSequenceOfSurfaceElementPurposeMember_Create() -> "opencascade::handle< StepElement_HSequenceOfSurfaceElementPurposeMember >":
    return _StepElement.Handle_StepElement_HSequenceOfSurfaceElementPurposeMember_Create()

def Handle_StepElement_HSequenceOfSurfaceElementPurposeMember_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< StepElement_HSequenceOfSurfaceElementPurposeMember >":
    return _StepElement.Handle_StepElement_HSequenceOfSurfaceElementPurposeMember_DownCast(t)

def Handle_StepElement_HSequenceOfSurfaceElementPurposeMember_IsNull(t: "opencascade::handle< StepElement_HSequenceOfSurfaceElementPurposeMember > const &") -> "bool":
    return _StepElement.Handle_StepElement_HSequenceOfSurfaceElementPurposeMember_IsNull(t)
class StepElement_Array1OfCurveElementEndReleasePacket(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_Array1< opencascade::handle< StepElement_CurveElementEndReleasePacket > >::iterator":
        return _StepElement.StepElement_Array1OfCurveElementEndReleasePacket_begin(self)

    def end(self) -> "NCollection_Array1< opencascade::handle< StepElement_CurveElementEndReleasePacket > >::iterator":
        return _StepElement.StepElement_Array1OfCurveElementEndReleasePacket_end(self)

    def cbegin(self) -> "NCollection_Array1< opencascade::handle< StepElement_CurveElementEndReleasePacket > >::const_iterator":
        return _StepElement.StepElement_Array1OfCurveElementEndReleasePacket_cbegin(self)

    def cend(self) -> "NCollection_Array1< opencascade::handle< StepElement_CurveElementEndReleasePacket > >::const_iterator":
        return _StepElement.StepElement_Array1OfCurveElementEndReleasePacket_cend(self)

    def __init__(self, *args):
        _StepElement.StepElement_Array1OfCurveElementEndReleasePacket_swiginit(self, _StepElement.new_StepElement_Array1OfCurveElementEndReleasePacket(*args))

    def Init(self, theValue: "opencascade::handle< StepElement_CurveElementEndReleasePacket > const &") -> "void":
        return _StepElement.StepElement_Array1OfCurveElementEndReleasePacket_Init(self, theValue)

    def Size(self) -> "Standard_Integer":
        return _StepElement.StepElement_Array1OfCurveElementEndReleasePacket_Size(self)

    def Length(self) -> "Standard_Integer":
        return _StepElement.StepElement_Array1OfCurveElementEndReleasePacket_Length(self)

    def IsEmpty(self) -> "Standard_Boolean":
        return _StepElement.StepElement_Array1OfCurveElementEndReleasePacket_IsEmpty(self)

    def Lower(self) -> "Standard_Integer":
        return _StepElement.StepElement_Array1OfCurveElementEndReleasePacket_Lower(self)

    def Upper(self) -> "Standard_Integer":
        return _StepElement.StepElement_Array1OfCurveElementEndReleasePacket_Upper(self)

    def IsDeletable(self) -> "Standard_Boolean":
        return _StepElement.StepElement_Array1OfCurveElementEndReleasePacket_IsDeletable(self)

    def IsAllocated(self) -> "Standard_Boolean":
        return _StepElement.StepElement_Array1OfCurveElementEndReleasePacket_IsAllocated(self)

    def Assign(self, theOther: "StepElement_Array1OfCurveElementEndReleasePacket") -> "NCollection_Array1< opencascade::handle< StepElement_CurveElementEndReleasePacket > > &":
        return _StepElement.StepElement_Array1OfCurveElementEndReleasePacket_Assign(self, theOther)

    def Move(self, theOther: "StepElement_Array1OfCurveElementEndReleasePacket") -> "NCollection_Array1< opencascade::handle< StepElement_CurveElementEndReleasePacket > > &":
        return _StepElement.StepElement_Array1OfCurveElementEndReleasePacket_Move(self, theOther)

    def Set(self, *args) -> "NCollection_Array1< opencascade::handle< StepElement_CurveElementEndReleasePacket > > &":
        return _StepElement.StepElement_Array1OfCurveElementEndReleasePacket_Set(self, *args)

    def First(self) -> "opencascade::handle< StepElement_CurveElementEndReleasePacket > const &":
        return _StepElement.StepElement_Array1OfCurveElementEndReleasePacket_First(self)

    def ChangeFirst(self) -> "opencascade::handle< StepElement_CurveElementEndReleasePacket > &":
        return _StepElement.StepElement_Array1OfCurveElementEndReleasePacket_ChangeFirst(self)

    def Last(self) -> "opencascade::handle< StepElement_CurveElementEndReleasePacket > const &":
        return _StepElement.StepElement_Array1OfCurveElementEndReleasePacket_Last(self)

    def ChangeLast(self) -> "opencascade::handle< StepElement_CurveElementEndReleasePacket > &":
        return _StepElement.StepElement_Array1OfCurveElementEndReleasePacket_ChangeLast(self)

    def Value(self, theIndex: "Standard_Integer const") -> "opencascade::handle< StepElement_CurveElementEndReleasePacket > const &":
        return _StepElement.StepElement_Array1OfCurveElementEndReleasePacket_Value(self, theIndex)

    def ChangeValue(self, theIndex: "Standard_Integer const") -> "opencascade::handle< StepElement_CurveElementEndReleasePacket > &":
        return _StepElement.StepElement_Array1OfCurveElementEndReleasePacket_ChangeValue(self, theIndex)

    def __call__(self, *args) -> "opencascade::handle< StepElement_CurveElementEndReleasePacket > &":
        return _StepElement.StepElement_Array1OfCurveElementEndReleasePacket___call__(self, *args)

    def SetValue(self, theIndex: "Standard_Integer const", theItem: "opencascade::handle< StepElement_CurveElementEndReleasePacket > const &") -> "void":
        return _StepElement.StepElement_Array1OfCurveElementEndReleasePacket_SetValue(self, theIndex, theItem)

    def Resize(self, theLower: "Standard_Integer const", theUpper: "Standard_Integer const", theToCopyData: "Standard_Boolean const") -> "void":
        return _StepElement.StepElement_Array1OfCurveElementEndReleasePacket_Resize(self, theLower, theUpper, theToCopyData)
    __swig_destroy__ = _StepElement.delete_StepElement_Array1OfCurveElementEndReleasePacket

    def __getitem__(self, index):
        if index + self.Lower() > self.Upper():
            raise IndexError("index out of range")
        else:
            return self.Value(index + self.Lower())

    def __setitem__(self, index, value):
        if index + self.Lower() > self.Upper():
            raise IndexError("index out of range")
        else:
            self.SetValue(index + self.Lower(), value)

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

    def __iter__(self):
        self.low = self.Lower()
        self.up = self.Upper()
        self.current = self.Lower() - 1
        return self

    def next(self):
        if self.current >= self.Upper():
            raise StopIteration
        else:
            self.current += 1
        return self.Value(self.current)

    __next__ = next


# Register StepElement_Array1OfCurveElementEndReleasePacket in _StepElement:
_StepElement.StepElement_Array1OfCurveElementEndReleasePacket_swigregister(StepElement_Array1OfCurveElementEndReleasePacket)

class StepElement_Array1OfCurveElementSectionDefinition(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_Array1< opencascade::handle< StepElement_CurveElementSectionDefinition > >::iterator":
        return _StepElement.StepElement_Array1OfCurveElementSectionDefinition_begin(self)

    def end(self) -> "NCollection_Array1< opencascade::handle< StepElement_CurveElementSectionDefinition > >::iterator":
        return _StepElement.StepElement_Array1OfCurveElementSectionDefinition_end(self)

    def cbegin(self) -> "NCollection_Array1< opencascade::handle< StepElement_CurveElementSectionDefinition > >::const_iterator":
        return _StepElement.StepElement_Array1OfCurveElementSectionDefinition_cbegin(self)

    def cend(self) -> "NCollection_Array1< opencascade::handle< StepElement_CurveElementSectionDefinition > >::const_iterator":
        return _StepElement.StepElement_Array1OfCurveElementSectionDefinition_cend(self)

    def __init__(self, *args):
        _StepElement.StepElement_Array1OfCurveElementSectionDefinition_swiginit(self, _StepElement.new_StepElement_Array1OfCurveElementSectionDefinition(*args))

    def Init(self, theValue: "opencascade::handle< StepElement_CurveElementSectionDefinition > const &") -> "void":
        return _StepElement.StepElement_Array1OfCurveElementSectionDefinition_Init(self, theValue)

    def Size(self) -> "Standard_Integer":
        return _StepElement.StepElement_Array1OfCurveElementSectionDefinition_Size(self)

    def Length(self) -> "Standard_Integer":
        return _StepElement.StepElement_Array1OfCurveElementSectionDefinition_Length(self)

    def IsEmpty(self) -> "Standard_Boolean":
        return _StepElement.StepElement_Array1OfCurveElementSectionDefinition_IsEmpty(self)

    def Lower(self) -> "Standard_Integer":
        return _StepElement.StepElement_Array1OfCurveElementSectionDefinition_Lower(self)

    def Upper(self) -> "Standard_Integer":
        return _StepElement.StepElement_Array1OfCurveElementSectionDefinition_Upper(self)

    def IsDeletable(self) -> "Standard_Boolean":
        return _StepElement.StepElement_Array1OfCurveElementSectionDefinition_IsDeletable(self)

    def IsAllocated(self) -> "Standard_Boolean":
        return _StepElement.StepElement_Array1OfCurveElementSectionDefinition_IsAllocated(self)

    def Assign(self, theOther: "StepElement_Array1OfCurveElementSectionDefinition") -> "NCollection_Array1< opencascade::handle< StepElement_CurveElementSectionDefinition > > &":
        return _StepElement.StepElement_Array1OfCurveElementSectionDefinition_Assign(self, theOther)

    def Move(self, theOther: "StepElement_Array1OfCurveElementSectionDefinition") -> "NCollection_Array1< opencascade::handle< StepElement_CurveElementSectionDefinition > > &":
        return _StepElement.StepElement_Array1OfCurveElementSectionDefinition_Move(self, theOther)

    def Set(self, *args) -> "NCollection_Array1< opencascade::handle< StepElement_CurveElementSectionDefinition > > &":
        return _StepElement.StepElement_Array1OfCurveElementSectionDefinition_Set(self, *args)

    def First(self) -> "opencascade::handle< StepElement_CurveElementSectionDefinition > const &":
        return _StepElement.StepElement_Array1OfCurveElementSectionDefinition_First(self)

    def ChangeFirst(self) -> "opencascade::handle< StepElement_CurveElementSectionDefinition > &":
        return _StepElement.StepElement_Array1OfCurveElementSectionDefinition_ChangeFirst(self)

    def Last(self) -> "opencascade::handle< StepElement_CurveElementSectionDefinition > const &":
        return _StepElement.StepElement_Array1OfCurveElementSectionDefinition_Last(self)

    def ChangeLast(self) -> "opencascade::handle< StepElement_CurveElementSectionDefinition > &":
        return _StepElement.StepElement_Array1OfCurveElementSectionDefinition_ChangeLast(self)

    def Value(self, theIndex: "Standard_Integer const") -> "opencascade::handle< StepElement_CurveElementSectionDefinition > const &":
        return _StepElement.StepElement_Array1OfCurveElementSectionDefinition_Value(self, theIndex)

    def ChangeValue(self, theIndex: "Standard_Integer const") -> "opencascade::handle< StepElement_CurveElementSectionDefinition > &":
        return _StepElement.StepElement_Array1OfCurveElementSectionDefinition_ChangeValue(self, theIndex)

    def __call__(self, *args) -> "opencascade::handle< StepElement_CurveElementSectionDefinition > &":
        return _StepElement.StepElement_Array1OfCurveElementSectionDefinition___call__(self, *args)

    def SetValue(self, theIndex: "Standard_Integer const", theItem: "opencascade::handle< StepElement_CurveElementSectionDefinition > const &") -> "void":
        return _StepElement.StepElement_Array1OfCurveElementSectionDefinition_SetValue(self, theIndex, theItem)

    def Resize(self, theLower: "Standard_Integer const", theUpper: "Standard_Integer const", theToCopyData: "Standard_Boolean const") -> "void":
        return _StepElement.StepElement_Array1OfCurveElementSectionDefinition_Resize(self, theLower, theUpper, theToCopyData)
    __swig_destroy__ = _StepElement.delete_StepElement_Array1OfCurveElementSectionDefinition

    def __getitem__(self, index):
        if index + self.Lower() > self.Upper():
            raise IndexError("index out of range")
        else:
            return self.Value(index + self.Lower())

    def __setitem__(self, index, value):
        if index + self.Lower() > self.Upper():
            raise IndexError("index out of range")
        else:
            self.SetValue(index + self.Lower(), value)

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

    def __iter__(self):
        self.low = self.Lower()
        self.up = self.Upper()
        self.current = self.Lower() - 1
        return self

    def next(self):
        if self.current >= self.Upper():
            raise StopIteration
        else:
            self.current += 1
        return self.Value(self.current)

    __next__ = next


# Register StepElement_Array1OfCurveElementSectionDefinition in _StepElement:
_StepElement.StepElement_Array1OfCurveElementSectionDefinition_swigregister(StepElement_Array1OfCurveElementSectionDefinition)

class StepElement_Array1OfHSequenceOfCurveElementPurposeMember(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_Array1< opencascade::handle< StepElement_HSequenceOfCurveElementPurposeMember > >::iterator":
        return _StepElement.StepElement_Array1OfHSequenceOfCurveElementPurposeMember_begin(self)

    def end(self) -> "NCollection_Array1< opencascade::handle< StepElement_HSequenceOfCurveElementPurposeMember > >::iterator":
        return _StepElement.StepElement_Array1OfHSequenceOfCurveElementPurposeMember_end(self)

    def cbegin(self) -> "NCollection_Array1< opencascade::handle< StepElement_HSequenceOfCurveElementPurposeMember > >::const_iterator":
        return _StepElement.StepElement_Array1OfHSequenceOfCurveElementPurposeMember_cbegin(self)

    def cend(self) -> "NCollection_Array1< opencascade::handle< StepElement_HSequenceOfCurveElementPurposeMember > >::const_iterator":
        return _StepElement.StepElement_Array1OfHSequenceOfCurveElementPurposeMember_cend(self)

    def __init__(self, *args):
        _StepElement.StepElement_Array1OfHSequenceOfCurveElementPurposeMember_swiginit(self, _StepElement.new_StepElement_Array1OfHSequenceOfCurveElementPurposeMember(*args))

    def Init(self, theValue: "opencascade::handle< StepElement_HSequenceOfCurveElementPurposeMember > const &") -> "void":
        return _StepElement.StepElement_Array1OfHSequenceOfCurveElementPurposeMember_Init(self, theValue)

    def Size(self) -> "Standard_Integer":
        return _StepElement.StepElement_Array1OfHSequenceOfCurveElementPurposeMember_Size(self)

    def Length(self) -> "Standard_Integer":
        return _StepElement.StepElement_Array1OfHSequenceOfCurveElementPurposeMember_Length(self)

    def IsEmpty(self) -> "Standard_Boolean":
        return _StepElement.StepElement_Array1OfHSequenceOfCurveElementPurposeMember_IsEmpty(self)

    def Lower(self) -> "Standard_Integer":
        return _StepElement.StepElement_Array1OfHSequenceOfCurveElementPurposeMember_Lower(self)

    def Upper(self) -> "Standard_Integer":
        return _StepElement.StepElement_Array1OfHSequenceOfCurveElementPurposeMember_Upper(self)

    def IsDeletable(self) -> "Standard_Boolean":
        return _StepElement.StepElement_Array1OfHSequenceOfCurveElementPurposeMember_IsDeletable(self)

    def IsAllocated(self) -> "Standard_Boolean":
        return _StepElement.StepElement_Array1OfHSequenceOfCurveElementPurposeMember_IsAllocated(self)

    def Assign(self, theOther: "StepElement_Array1OfHSequenceOfCurveElementPurposeMember") -> "NCollection_Array1< opencascade::handle< StepElement_HSequenceOfCurveElementPurposeMember > > &":
        return _StepElement.StepElement_Array1OfHSequenceOfCurveElementPurposeMember_Assign(self, theOther)

    def Move(self, theOther: "StepElement_Array1OfHSequenceOfCurveElementPurposeMember") -> "NCollection_Array1< opencascade::handle< StepElement_HSequenceOfCurveElementPurposeMember > > &":
        return _StepElement.StepElement_Array1OfHSequenceOfCurveElementPurposeMember_Move(self, theOther)

    def Set(self, *args) -> "NCollection_Array1< opencascade::handle< StepElement_HSequenceOfCurveElementPurposeMember > > &":
        return _StepElement.StepElement_Array1OfHSequenceOfCurveElementPurposeMember_Set(self, *args)

    def First(self) -> "opencascade::handle< StepElement_HSequenceOfCurveElementPurposeMember > const &":
        return _StepElement.StepElement_Array1OfHSequenceOfCurveElementPurposeMember_First(self)

    def ChangeFirst(self) -> "opencascade::handle< StepElement_HSequenceOfCurveElementPurposeMember > &":
        return _StepElement.StepElement_Array1OfHSequenceOfCurveElementPurposeMember_ChangeFirst(self)

    def Last(self) -> "opencascade::handle< StepElement_HSequenceOfCurveElementPurposeMember > const &":
        return _StepElement.StepElement_Array1OfHSequenceOfCurveElementPurposeMember_Last(self)

    def ChangeLast(self) -> "opencascade::handle< StepElement_HSequenceOfCurveElementPurposeMember > &":
        return _StepElement.StepElement_Array1OfHSequenceOfCurveElementPurposeMember_ChangeLast(self)

    def Value(self, theIndex: "Standard_Integer const") -> "opencascade::handle< StepElement_HSequenceOfCurveElementPurposeMember > const &":
        return _StepElement.StepElement_Array1OfHSequenceOfCurveElementPurposeMember_Value(self, theIndex)

    def ChangeValue(self, theIndex: "Standard_Integer const") -> "opencascade::handle< StepElement_HSequenceOfCurveElementPurposeMember > &":
        return _StepElement.StepElement_Array1OfHSequenceOfCurveElementPurposeMember_ChangeValue(self, theIndex)

    def __call__(self, *args) -> "opencascade::handle< StepElement_HSequenceOfCurveElementPurposeMember > &":
        return _StepElement.StepElement_Array1OfHSequenceOfCurveElementPurposeMember___call__(self, *args)

    def SetValue(self, theIndex: "Standard_Integer const", theItem: "opencascade::handle< StepElement_HSequenceOfCurveElementPurposeMember > const &") -> "void":
        return _StepElement.StepElement_Array1OfHSequenceOfCurveElementPurposeMember_SetValue(self, theIndex, theItem)

    def Resize(self, theLower: "Standard_Integer const", theUpper: "Standard_Integer const", theToCopyData: "Standard_Boolean const") -> "void":
        return _StepElement.StepElement_Array1OfHSequenceOfCurveElementPurposeMember_Resize(self, theLower, theUpper, theToCopyData)
    __swig_destroy__ = _StepElement.delete_StepElement_Array1OfHSequenceOfCurveElementPurposeMember

    def __getitem__(self, index):
        if index + self.Lower() > self.Upper():
            raise IndexError("index out of range")
        else:
            return self.Value(index + self.Lower())

    def __setitem__(self, index, value):
        if index + self.Lower() > self.Upper():
            raise IndexError("index out of range")
        else:
            self.SetValue(index + self.Lower(), value)

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

    def __iter__(self):
        self.low = self.Lower()
        self.up = self.Upper()
        self.current = self.Lower() - 1
        return self

    def next(self):
        if self.current >= self.Upper():
            raise StopIteration
        else:
            self.current += 1
        return self.Value(self.current)

    __next__ = next


# Register StepElement_Array1OfHSequenceOfCurveElementPurposeMember in _StepElement:
_StepElement.StepElement_Array1OfHSequenceOfCurveElementPurposeMember_swigregister(StepElement_Array1OfHSequenceOfCurveElementPurposeMember)

class StepElement_Array1OfHSequenceOfSurfaceElementPurposeMember(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_Array1< opencascade::handle< StepElement_HSequenceOfSurfaceElementPurposeMember > >::iterator":
        return _StepElement.StepElement_Array1OfHSequenceOfSurfaceElementPurposeMember_begin(self)

    def end(self) -> "NCollection_Array1< opencascade::handle< StepElement_HSequenceOfSurfaceElementPurposeMember > >::iterator":
        return _StepElement.StepElement_Array1OfHSequenceOfSurfaceElementPurposeMember_end(self)

    def cbegin(self) -> "NCollection_Array1< opencascade::handle< StepElement_HSequenceOfSurfaceElementPurposeMember > >::const_iterator":
        return _StepElement.StepElement_Array1OfHSequenceOfSurfaceElementPurposeMember_cbegin(self)

    def cend(self) -> "NCollection_Array1< opencascade::handle< StepElement_HSequenceOfSurfaceElementPurposeMember > >::const_iterator":
        return _StepElement.StepElement_Array1OfHSequenceOfSurfaceElementPurposeMember_cend(self)

    def __init__(self, *args):
        _StepElement.StepElement_Array1OfHSequenceOfSurfaceElementPurposeMember_swiginit(self, _StepElement.new_StepElement_Array1OfHSequenceOfSurfaceElementPurposeMember(*args))

    def Init(self, theValue: "opencascade::handle< StepElement_HSequenceOfSurfaceElementPurposeMember > const &") -> "void":
        return _StepElement.StepElement_Array1OfHSequenceOfSurfaceElementPurposeMember_Init(self, theValue)

    def Size(self) -> "Standard_Integer":
        return _StepElement.StepElement_Array1OfHSequenceOfSurfaceElementPurposeMember_Size(self)

    def Length(self) -> "Standard_Integer":
        return _StepElement.StepElement_Array1OfHSequenceOfSurfaceElementPurposeMember_Length(self)

    def IsEmpty(self) -> "Standard_Boolean":
        return _StepElement.StepElement_Array1OfHSequenceOfSurfaceElementPurposeMember_IsEmpty(self)

    def Lower(self) -> "Standard_Integer":
        return _StepElement.StepElement_Array1OfHSequenceOfSurfaceElementPurposeMember_Lower(self)

    def Upper(self) -> "Standard_Integer":
        return _StepElement.StepElement_Array1OfHSequenceOfSurfaceElementPurposeMember_Upper(self)

    def IsDeletable(self) -> "Standard_Boolean":
        return _StepElement.StepElement_Array1OfHSequenceOfSurfaceElementPurposeMember_IsDeletable(self)

    def IsAllocated(self) -> "Standard_Boolean":
        return _StepElement.StepElement_Array1OfHSequenceOfSurfaceElementPurposeMember_IsAllocated(self)

    def Assign(self, theOther: "StepElement_Array1OfHSequenceOfSurfaceElementPurposeMember") -> "NCollection_Array1< opencascade::handle< StepElement_HSequenceOfSurfaceElementPurposeMember > > &":
        return _StepElement.StepElement_Array1OfHSequenceOfSurfaceElementPurposeMember_Assign(self, theOther)

    def Move(self, theOther: "StepElement_Array1OfHSequenceOfSurfaceElementPurposeMember") -> "NCollection_Array1< opencascade::handle< StepElement_HSequenceOfSurfaceElementPurposeMember > > &":
        return _StepElement.StepElement_Array1OfHSequenceOfSurfaceElementPurposeMember_Move(self, theOther)

    def Set(self, *args) -> "NCollection_Array1< opencascade::handle< StepElement_HSequenceOfSurfaceElementPurposeMember > > &":
        return _StepElement.StepElement_Array1OfHSequenceOfSurfaceElementPurposeMember_Set(self, *args)

    def First(self) -> "opencascade::handle< StepElement_HSequenceOfSurfaceElementPurposeMember > const &":
        return _StepElement.StepElement_Array1OfHSequenceOfSurfaceElementPurposeMember_First(self)

    def ChangeFirst(self) -> "opencascade::handle< StepElement_HSequenceOfSurfaceElementPurposeMember > &":
        return _StepElement.StepElement_Array1OfHSequenceOfSurfaceElementPurposeMember_ChangeFirst(self)

    def Last(self) -> "opencascade::handle< StepElement_HSequenceOfSurfaceElementPurposeMember > const &":
        return _StepElement.StepElement_Array1OfHSequenceOfSurfaceElementPurposeMember_Last(self)

    def ChangeLast(self) -> "opencascade::handle< StepElement_HSequenceOfSurfaceElementPurposeMember > &":
        return _StepElement.StepElement_Array1OfHSequenceOfSurfaceElementPurposeMember_ChangeLast(self)

    def Value(self, theIndex: "Standard_Integer const") -> "opencascade::handle< StepElement_HSequenceOfSurfaceElementPurposeMember > const &":
        return _StepElement.StepElement_Array1OfHSequenceOfSurfaceElementPurposeMember_Value(self, theIndex)

    def ChangeValue(self, theIndex: "Standard_Integer const") -> "opencascade::handle< StepElement_HSequenceOfSurfaceElementPurposeMember > &":
        return _StepElement.StepElement_Array1OfHSequenceOfSurfaceElementPurposeMember_ChangeValue(self, theIndex)

    def __call__(self, *args) -> "opencascade::handle< StepElement_HSequenceOfSurfaceElementPurposeMember > &":
        return _StepElement.StepElement_Array1OfHSequenceOfSurfaceElementPurposeMember___call__(self, *args)

    def SetValue(self, theIndex: "Standard_Integer const", theItem: "opencascade::handle< StepElement_HSequenceOfSurfaceElementPurposeMember > const &") -> "void":
        return _StepElement.StepElement_Array1OfHSequenceOfSurfaceElementPurposeMember_SetValue(self, theIndex, theItem)

    def Resize(self, theLower: "Standard_Integer const", theUpper: "Standard_Integer const", theToCopyData: "Standard_Boolean const") -> "void":
        return _StepElement.StepElement_Array1OfHSequenceOfSurfaceElementPurposeMember_Resize(self, theLower, theUpper, theToCopyData)
    __swig_destroy__ = _StepElement.delete_StepElement_Array1OfHSequenceOfSurfaceElementPurposeMember

    def __getitem__(self, index):
        if index + self.Lower() > self.Upper():
            raise IndexError("index out of range")
        else:
            return self.Value(index + self.Lower())

    def __setitem__(self, index, value):
        if index + self.Lower() > self.Upper():
            raise IndexError("index out of range")
        else:
            self.SetValue(index + self.Lower(), value)

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

    def __iter__(self):
        self.low = self.Lower()
        self.up = self.Upper()
        self.current = self.Lower() - 1
        return self

    def next(self):
        if self.current >= self.Upper():
            raise StopIteration
        else:
            self.current += 1
        return self.Value(self.current)

    __next__ = next


# Register StepElement_Array1OfHSequenceOfSurfaceElementPurposeMember in _StepElement:
_StepElement.StepElement_Array1OfHSequenceOfSurfaceElementPurposeMember_swigregister(StepElement_Array1OfHSequenceOfSurfaceElementPurposeMember)

class StepElement_Array1OfMeasureOrUnspecifiedValue(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_Array1< StepElement_MeasureOrUnspecifiedValue >::iterator":
        return _StepElement.StepElement_Array1OfMeasureOrUnspecifiedValue_begin(self)

    def end(self) -> "NCollection_Array1< StepElement_MeasureOrUnspecifiedValue >::iterator":
        return _StepElement.StepElement_Array1OfMeasureOrUnspecifiedValue_end(self)

    def cbegin(self) -> "NCollection_Array1< StepElement_MeasureOrUnspecifiedValue >::const_iterator":
        return _StepElement.StepElement_Array1OfMeasureOrUnspecifiedValue_cbegin(self)

    def cend(self) -> "NCollection_Array1< StepElement_MeasureOrUnspecifiedValue >::const_iterator":
        return _StepElement.StepElement_Array1OfMeasureOrUnspecifiedValue_cend(self)

    def __init__(self, *args):
        _StepElement.StepElement_Array1OfMeasureOrUnspecifiedValue_swiginit(self, _StepElement.new_StepElement_Array1OfMeasureOrUnspecifiedValue(*args))

    def Init(self, theValue: "StepElement_MeasureOrUnspecifiedValue") -> "void":
        return _StepElement.StepElement_Array1OfMeasureOrUnspecifiedValue_Init(self, theValue)

    def Size(self) -> "Standard_Integer":
        return _StepElement.StepElement_Array1OfMeasureOrUnspecifiedValue_Size(self)

    def Length(self) -> "Standard_Integer":
        return _StepElement.StepElement_Array1OfMeasureOrUnspecifiedValue_Length(self)

    def IsEmpty(self) -> "Standard_Boolean":
        return _StepElement.StepElement_Array1OfMeasureOrUnspecifiedValue_IsEmpty(self)

    def Lower(self) -> "Standard_Integer":
        return _StepElement.StepElement_Array1OfMeasureOrUnspecifiedValue_Lower(self)

    def Upper(self) -> "Standard_Integer":
        return _StepElement.StepElement_Array1OfMeasureOrUnspecifiedValue_Upper(self)

    def IsDeletable(self) -> "Standard_Boolean":
        return _StepElement.StepElement_Array1OfMeasureOrUnspecifiedValue_IsDeletable(self)

    def IsAllocated(self) -> "Standard_Boolean":
        return _StepElement.StepElement_Array1OfMeasureOrUnspecifiedValue_IsAllocated(self)

    def Assign(self, theOther: "StepElement_Array1OfMeasureOrUnspecifiedValue") -> "NCollection_Array1< StepElement_MeasureOrUnspecifiedValue > &":
        return _StepElement.StepElement_Array1OfMeasureOrUnspecifiedValue_Assign(self, theOther)

    def Move(self, theOther: "StepElement_Array1OfMeasureOrUnspecifiedValue") -> "NCollection_Array1< StepElement_MeasureOrUnspecifiedValue > &":
        return _StepElement.StepElement_Array1OfMeasureOrUnspecifiedValue_Move(self, theOther)

    def Set(self, *args) -> "NCollection_Array1< StepElement_MeasureOrUnspecifiedValue > &":
        return _StepElement.StepElement_Array1OfMeasureOrUnspecifiedValue_Set(self, *args)

    def First(self) -> "StepElement_MeasureOrUnspecifiedValue const &":
        return _StepElement.StepElement_Array1OfMeasureOrUnspecifiedValue_First(self)

    def ChangeFirst(self) -> "StepElement_MeasureOrUnspecifiedValue &":
        return _StepElement.StepElement_Array1OfMeasureOrUnspecifiedValue_ChangeFirst(self)

    def Last(self) -> "StepElement_MeasureOrUnspecifiedValue const &":
        return _StepElement.StepElement_Array1OfMeasureOrUnspecifiedValue_Last(self)

    def ChangeLast(self) -> "StepElement_MeasureOrUnspecifiedValue &":
        return _StepElement.StepElement_Array1OfMeasureOrUnspecifiedValue_ChangeLast(self)

    def Value(self, theIndex: "Standard_Integer const") -> "StepElement_MeasureOrUnspecifiedValue const &":
        return _StepElement.StepElement_Array1OfMeasureOrUnspecifiedValue_Value(self, theIndex)

    def ChangeValue(self, theIndex: "Standard_Integer const") -> "StepElement_MeasureOrUnspecifiedValue &":
        return _StepElement.StepElement_Array1OfMeasureOrUnspecifiedValue_ChangeValue(self, theIndex)

    def __call__(self, *args) -> "StepElement_MeasureOrUnspecifiedValue &":
        return _StepElement.StepElement_Array1OfMeasureOrUnspecifiedValue___call__(self, *args)

    def SetValue(self, theIndex: "Standard_Integer const", theItem: "StepElement_MeasureOrUnspecifiedValue") -> "void":
        return _StepElement.StepElement_Array1OfMeasureOrUnspecifiedValue_SetValue(self, theIndex, theItem)

    def Resize(self, theLower: "Standard_Integer const", theUpper: "Standard_Integer const", theToCopyData: "Standard_Boolean const") -> "void":
        return _StepElement.StepElement_Array1OfMeasureOrUnspecifiedValue_Resize(self, theLower, theUpper, theToCopyData)
    __swig_destroy__ = _StepElement.delete_StepElement_Array1OfMeasureOrUnspecifiedValue

    def __getitem__(self, index):
        if index + self.Lower() > self.Upper():
            raise IndexError("index out of range")
        else:
            return self.Value(index + self.Lower())

    def __setitem__(self, index, value):
        if index + self.Lower() > self.Upper():
            raise IndexError("index out of range")
        else:
            self.SetValue(index + self.Lower(), value)

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

    def __iter__(self):
        self.low = self.Lower()
        self.up = self.Upper()
        self.current = self.Lower() - 1
        return self

    def next(self):
        if self.current >= self.Upper():
            raise StopIteration
        else:
            self.current += 1
        return self.Value(self.current)

    __next__ = next


# Register StepElement_Array1OfMeasureOrUnspecifiedValue in _StepElement:
_StepElement.StepElement_Array1OfMeasureOrUnspecifiedValue_swigregister(StepElement_Array1OfMeasureOrUnspecifiedValue)

class StepElement_Array1OfSurfaceSection(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_Array1< opencascade::handle< StepElement_SurfaceSection > >::iterator":
        return _StepElement.StepElement_Array1OfSurfaceSection_begin(self)

    def end(self) -> "NCollection_Array1< opencascade::handle< StepElement_SurfaceSection > >::iterator":
        return _StepElement.StepElement_Array1OfSurfaceSection_end(self)

    def cbegin(self) -> "NCollection_Array1< opencascade::handle< StepElement_SurfaceSection > >::const_iterator":
        return _StepElement.StepElement_Array1OfSurfaceSection_cbegin(self)

    def cend(self) -> "NCollection_Array1< opencascade::handle< StepElement_SurfaceSection > >::const_iterator":
        return _StepElement.StepElement_Array1OfSurfaceSection_cend(self)

    def __init__(self, *args):
        _StepElement.StepElement_Array1OfSurfaceSection_swiginit(self, _StepElement.new_StepElement_Array1OfSurfaceSection(*args))

    def Init(self, theValue: "opencascade::handle< StepElement_SurfaceSection > const &") -> "void":
        return _StepElement.StepElement_Array1OfSurfaceSection_Init(self, theValue)

    def Size(self) -> "Standard_Integer":
        return _StepElement.StepElement_Array1OfSurfaceSection_Size(self)

    def Length(self) -> "Standard_Integer":
        return _StepElement.StepElement_Array1OfSurfaceSection_Length(self)

    def IsEmpty(self) -> "Standard_Boolean":
        return _StepElement.StepElement_Array1OfSurfaceSection_IsEmpty(self)

    def Lower(self) -> "Standard_Integer":
        return _StepElement.StepElement_Array1OfSurfaceSection_Lower(self)

    def Upper(self) -> "Standard_Integer":
        return _StepElement.StepElement_Array1OfSurfaceSection_Upper(self)

    def IsDeletable(self) -> "Standard_Boolean":
        return _StepElement.StepElement_Array1OfSurfaceSection_IsDeletable(self)

    def IsAllocated(self) -> "Standard_Boolean":
        return _StepElement.StepElement_Array1OfSurfaceSection_IsAllocated(self)

    def Assign(self, theOther: "StepElement_Array1OfSurfaceSection") -> "NCollection_Array1< opencascade::handle< StepElement_SurfaceSection > > &":
        return _StepElement.StepElement_Array1OfSurfaceSection_Assign(self, theOther)

    def Move(self, theOther: "StepElement_Array1OfSurfaceSection") -> "NCollection_Array1< opencascade::handle< StepElement_SurfaceSection > > &":
        return _StepElement.StepElement_Array1OfSurfaceSection_Move(self, theOther)

    def Set(self, *args) -> "NCollection_Array1< opencascade::handle< StepElement_SurfaceSection > > &":
        return _StepElement.StepElement_Array1OfSurfaceSection_Set(self, *args)

    def First(self) -> "opencascade::handle< StepElement_SurfaceSection > const &":
        return _StepElement.StepElement_Array1OfSurfaceSection_First(self)

    def ChangeFirst(self) -> "opencascade::handle< StepElement_SurfaceSection > &":
        return _StepElement.StepElement_Array1OfSurfaceSection_ChangeFirst(self)

    def Last(self) -> "opencascade::handle< StepElement_SurfaceSection > const &":
        return _StepElement.StepElement_Array1OfSurfaceSection_Last(self)

    def ChangeLast(self) -> "opencascade::handle< StepElement_SurfaceSection > &":
        return _StepElement.StepElement_Array1OfSurfaceSection_ChangeLast(self)

    def Value(self, theIndex: "Standard_Integer const") -> "opencascade::handle< StepElement_SurfaceSection > const &":
        return _StepElement.StepElement_Array1OfSurfaceSection_Value(self, theIndex)

    def ChangeValue(self, theIndex: "Standard_Integer const") -> "opencascade::handle< StepElement_SurfaceSection > &":
        return _StepElement.StepElement_Array1OfSurfaceSection_ChangeValue(self, theIndex)

    def __call__(self, *args) -> "opencascade::handle< StepElement_SurfaceSection > &":
        return _StepElement.StepElement_Array1OfSurfaceSection___call__(self, *args)

    def SetValue(self, theIndex: "Standard_Integer const", theItem: "opencascade::handle< StepElement_SurfaceSection > const &") -> "void":
        return _StepElement.StepElement_Array1OfSurfaceSection_SetValue(self, theIndex, theItem)

    def Resize(self, theLower: "Standard_Integer const", theUpper: "Standard_Integer const", theToCopyData: "Standard_Boolean const") -> "void":
        return _StepElement.StepElement_Array1OfSurfaceSection_Resize(self, theLower, theUpper, theToCopyData)
    __swig_destroy__ = _StepElement.delete_StepElement_Array1OfSurfaceSection

    def __getitem__(self, index):
        if index + self.Lower() > self.Upper():
            raise IndexError("index out of range")
        else:
            return self.Value(index + self.Lower())

    def __setitem__(self, index, value):
        if index + self.Lower() > self.Upper():
            raise IndexError("index out of range")
        else:
            self.SetValue(index + self.Lower(), value)

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

    def __iter__(self):
        self.low = self.Lower()
        self.up = self.Upper()
        self.current = self.Lower() - 1
        return self

    def next(self):
        if self.current >= self.Upper():
            raise StopIteration
        else:
            self.current += 1
        return self.Value(self.current)

    __next__ = next


# Register StepElement_Array1OfSurfaceSection in _StepElement:
_StepElement.StepElement_Array1OfSurfaceSection_swigregister(StepElement_Array1OfSurfaceSection)

class StepElement_Array1OfVolumeElementPurpose(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_Array1< StepElement_VolumeElementPurpose >::iterator":
        return _StepElement.StepElement_Array1OfVolumeElementPurpose_begin(self)

    def end(self) -> "NCollection_Array1< StepElement_VolumeElementPurpose >::iterator":
        return _StepElement.StepElement_Array1OfVolumeElementPurpose_end(self)

    def cbegin(self) -> "NCollection_Array1< StepElement_VolumeElementPurpose >::const_iterator":
        return _StepElement.StepElement_Array1OfVolumeElementPurpose_cbegin(self)

    def cend(self) -> "NCollection_Array1< StepElement_VolumeElementPurpose >::const_iterator":
        return _StepElement.StepElement_Array1OfVolumeElementPurpose_cend(self)

    def __init__(self, *args):
        _StepElement.StepElement_Array1OfVolumeElementPurpose_swiginit(self, _StepElement.new_StepElement_Array1OfVolumeElementPurpose(*args))

    def Init(self, theValue: "StepElement_VolumeElementPurpose") -> "void":
        return _StepElement.StepElement_Array1OfVolumeElementPurpose_Init(self, theValue)

    def Size(self) -> "Standard_Integer":
        return _StepElement.StepElement_Array1OfVolumeElementPurpose_Size(self)

    def Length(self) -> "Standard_Integer":
        return _StepElement.StepElement_Array1OfVolumeElementPurpose_Length(self)

    def IsEmpty(self) -> "Standard_Boolean":
        return _StepElement.StepElement_Array1OfVolumeElementPurpose_IsEmpty(self)

    def Lower(self) -> "Standard_Integer":
        return _StepElement.StepElement_Array1OfVolumeElementPurpose_Lower(self)

    def Upper(self) -> "Standard_Integer":
        return _StepElement.StepElement_Array1OfVolumeElementPurpose_Upper(self)

    def IsDeletable(self) -> "Standard_Boolean":
        return _StepElement.StepElement_Array1OfVolumeElementPurpose_IsDeletable(self)

    def IsAllocated(self) -> "Standard_Boolean":
        return _StepElement.StepElement_Array1OfVolumeElementPurpose_IsAllocated(self)

    def Assign(self, theOther: "StepElement_Array1OfVolumeElementPurpose") -> "NCollection_Array1< StepElement_VolumeElementPurpose > &":
        return _StepElement.StepElement_Array1OfVolumeElementPurpose_Assign(self, theOther)

    def Move(self, theOther: "StepElement_Array1OfVolumeElementPurpose") -> "NCollection_Array1< StepElement_VolumeElementPurpose > &":
        return _StepElement.StepElement_Array1OfVolumeElementPurpose_Move(self, theOther)

    def Set(self, *args) -> "NCollection_Array1< StepElement_VolumeElementPurpose > &":
        return _StepElement.StepElement_Array1OfVolumeElementPurpose_Set(self, *args)

    def First(self) -> "StepElement_VolumeElementPurpose const &":
        return _StepElement.StepElement_Array1OfVolumeElementPurpose_First(self)

    def ChangeFirst(self) -> "StepElement_VolumeElementPurpose &":
        return _StepElement.StepElement_Array1OfVolumeElementPurpose_ChangeFirst(self)

    def Last(self) -> "StepElement_VolumeElementPurpose const &":
        return _StepElement.StepElement_Array1OfVolumeElementPurpose_Last(self)

    def ChangeLast(self) -> "StepElement_VolumeElementPurpose &":
        return _StepElement.StepElement_Array1OfVolumeElementPurpose_ChangeLast(self)

    def Value(self, theIndex: "Standard_Integer const") -> "StepElement_VolumeElementPurpose const &":
        return _StepElement.StepElement_Array1OfVolumeElementPurpose_Value(self, theIndex)

    def ChangeValue(self, theIndex: "Standard_Integer const") -> "StepElement_VolumeElementPurpose &":
        return _StepElement.StepElement_Array1OfVolumeElementPurpose_ChangeValue(self, theIndex)

    def __call__(self, *args) -> "StepElement_VolumeElementPurpose &":
        return _StepElement.StepElement_Array1OfVolumeElementPurpose___call__(self, *args)

    def SetValue(self, theIndex: "Standard_Integer const", theItem: "StepElement_VolumeElementPurpose") -> "void":
        return _StepElement.StepElement_Array1OfVolumeElementPurpose_SetValue(self, theIndex, theItem)

    def Resize(self, theLower: "Standard_Integer const", theUpper: "Standard_Integer const", theToCopyData: "Standard_Boolean const") -> "void":
        return _StepElement.StepElement_Array1OfVolumeElementPurpose_Resize(self, theLower, theUpper, theToCopyData)
    __swig_destroy__ = _StepElement.delete_StepElement_Array1OfVolumeElementPurpose

    def __getitem__(self, index):
        if index + self.Lower() > self.Upper():
            raise IndexError("index out of range")
        else:
            return self.Value(index + self.Lower())

    def __setitem__(self, index, value):
        if index + self.Lower() > self.Upper():
            raise IndexError("index out of range")
        else:
            self.SetValue(index + self.Lower(), value)

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

    def __iter__(self):
        self.low = self.Lower()
        self.up = self.Upper()
        self.current = self.Lower() - 1
        return self

    def next(self):
        if self.current >= self.Upper():
            raise StopIteration
        else:
            self.current += 1
        return self.Value(self.current)

    __next__ = next


# Register StepElement_Array1OfVolumeElementPurpose in _StepElement:
_StepElement.StepElement_Array1OfVolumeElementPurpose_swigregister(StepElement_Array1OfVolumeElementPurpose)

class StepElement_Array1OfVolumeElementPurposeMember(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_Array1< opencascade::handle< StepElement_VolumeElementPurposeMember > >::iterator":
        return _StepElement.StepElement_Array1OfVolumeElementPurposeMember_begin(self)

    def end(self) -> "NCollection_Array1< opencascade::handle< StepElement_VolumeElementPurposeMember > >::iterator":
        return _StepElement.StepElement_Array1OfVolumeElementPurposeMember_end(self)

    def cbegin(self) -> "NCollection_Array1< opencascade::handle< StepElement_VolumeElementPurposeMember > >::const_iterator":
        return _StepElement.StepElement_Array1OfVolumeElementPurposeMember_cbegin(self)

    def cend(self) -> "NCollection_Array1< opencascade::handle< StepElement_VolumeElementPurposeMember > >::const_iterator":
        return _StepElement.StepElement_Array1OfVolumeElementPurposeMember_cend(self)

    def __init__(self, *args):
        _StepElement.StepElement_Array1OfVolumeElementPurposeMember_swiginit(self, _StepElement.new_StepElement_Array1OfVolumeElementPurposeMember(*args))

    def Init(self, theValue: "opencascade::handle< StepElement_VolumeElementPurposeMember > const &") -> "void":
        return _StepElement.StepElement_Array1OfVolumeElementPurposeMember_Init(self, theValue)

    def Size(self) -> "Standard_Integer":
        return _StepElement.StepElement_Array1OfVolumeElementPurposeMember_Size(self)

    def Length(self) -> "Standard_Integer":
        return _StepElement.StepElement_Array1OfVolumeElementPurposeMember_Length(self)

    def IsEmpty(self) -> "Standard_Boolean":
        return _StepElement.StepElement_Array1OfVolumeElementPurposeMember_IsEmpty(self)

    def Lower(self) -> "Standard_Integer":
        return _StepElement.StepElement_Array1OfVolumeElementPurposeMember_Lower(self)

    def Upper(self) -> "Standard_Integer":
        return _StepElement.StepElement_Array1OfVolumeElementPurposeMember_Upper(self)

    def IsDeletable(self) -> "Standard_Boolean":
        return _StepElement.StepElement_Array1OfVolumeElementPurposeMember_IsDeletable(self)

    def IsAllocated(self) -> "Standard_Boolean":
        return _StepElement.StepElement_Array1OfVolumeElementPurposeMember_IsAllocated(self)

    def Assign(self, theOther: "StepElement_Array1OfVolumeElementPurposeMember") -> "NCollection_Array1< opencascade::handle< StepElement_VolumeElementPurposeMember > > &":
        return _StepElement.StepElement_Array1OfVolumeElementPurposeMember_Assign(self, theOther)

    def Move(self, theOther: "StepElement_Array1OfVolumeElementPurposeMember") -> "NCollection_Array1< opencascade::handle< StepElement_VolumeElementPurposeMember > > &":
        return _StepElement.StepElement_Array1OfVolumeElementPurposeMember_Move(self, theOther)

    def Set(self, *args) -> "NCollection_Array1< opencascade::handle< StepElement_VolumeElementPurposeMember > > &":
        return _StepElement.StepElement_Array1OfVolumeElementPurposeMember_Set(self, *args)

    def First(self) -> "opencascade::handle< StepElement_VolumeElementPurposeMember > const &":
        return _StepElement.StepElement_Array1OfVolumeElementPurposeMember_First(self)

    def ChangeFirst(self) -> "opencascade::handle< StepElement_VolumeElementPurposeMember > &":
        return _StepElement.StepElement_Array1OfVolumeElementPurposeMember_ChangeFirst(self)

    def Last(self) -> "opencascade::handle< StepElement_VolumeElementPurposeMember > const &":
        return _StepElement.StepElement_Array1OfVolumeElementPurposeMember_Last(self)

    def ChangeLast(self) -> "opencascade::handle< StepElement_VolumeElementPurposeMember > &":
        return _StepElement.StepElement_Array1OfVolumeElementPurposeMember_ChangeLast(self)

    def Value(self, theIndex: "Standard_Integer const") -> "opencascade::handle< StepElement_VolumeElementPurposeMember > const &":
        return _StepElement.StepElement_Array1OfVolumeElementPurposeMember_Value(self, theIndex)

    def ChangeValue(self, theIndex: "Standard_Integer const") -> "opencascade::handle< StepElement_VolumeElementPurposeMember > &":
        return _StepElement.StepElement_Array1OfVolumeElementPurposeMember_ChangeValue(self, theIndex)

    def __call__(self, *args) -> "opencascade::handle< StepElement_VolumeElementPurposeMember > &":
        return _StepElement.StepElement_Array1OfVolumeElementPurposeMember___call__(self, *args)

    def SetValue(self, theIndex: "Standard_Integer const", theItem: "opencascade::handle< StepElement_VolumeElementPurposeMember > const &") -> "void":
        return _StepElement.StepElement_Array1OfVolumeElementPurposeMember_SetValue(self, theIndex, theItem)

    def Resize(self, theLower: "Standard_Integer const", theUpper: "Standard_Integer const", theToCopyData: "Standard_Boolean const") -> "void":
        return _StepElement.StepElement_Array1OfVolumeElementPurposeMember_Resize(self, theLower, theUpper, theToCopyData)
    __swig_destroy__ = _StepElement.delete_StepElement_Array1OfVolumeElementPurposeMember

    def __getitem__(self, index):
        if index + self.Lower() > self.Upper():
            raise IndexError("index out of range")
        else:
            return self.Value(index + self.Lower())

    def __setitem__(self, index, value):
        if index + self.Lower() > self.Upper():
            raise IndexError("index out of range")
        else:
            self.SetValue(index + self.Lower(), value)

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

    def __iter__(self):
        self.low = self.Lower()
        self.up = self.Upper()
        self.current = self.Lower() - 1
        return self

    def next(self):
        if self.current >= self.Upper():
            raise StopIteration
        else:
            self.current += 1
        return self.Value(self.current)

    __next__ = next


# Register StepElement_Array1OfVolumeElementPurposeMember in _StepElement:
_StepElement.StepElement_Array1OfVolumeElementPurposeMember_swigregister(StepElement_Array1OfVolumeElementPurposeMember)

class StepElement_Array2OfCurveElementPurposeMember(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):
        _StepElement.StepElement_Array2OfCurveElementPurposeMember_swiginit(self, _StepElement.new_StepElement_Array2OfCurveElementPurposeMember(*args))

    def Init(self, theValue: "opencascade::handle< StepElement_CurveElementPurposeMember > const &") -> "void":
        return _StepElement.StepElement_Array2OfCurveElementPurposeMember_Init(self, theValue)

    def Size(self) -> "Standard_Integer":
        return _StepElement.StepElement_Array2OfCurveElementPurposeMember_Size(self)

    def Length(self) -> "Standard_Integer":
        return _StepElement.StepElement_Array2OfCurveElementPurposeMember_Length(self)

    def NbRows(self) -> "Standard_Integer":
        return _StepElement.StepElement_Array2OfCurveElementPurposeMember_NbRows(self)

    def NbColumns(self) -> "Standard_Integer":
        return _StepElement.StepElement_Array2OfCurveElementPurposeMember_NbColumns(self)

    def RowLength(self) -> "Standard_Integer":
        return _StepElement.StepElement_Array2OfCurveElementPurposeMember_RowLength(self)

    def ColLength(self) -> "Standard_Integer":
        return _StepElement.StepElement_Array2OfCurveElementPurposeMember_ColLength(self)

    def LowerRow(self) -> "Standard_Integer":
        return _StepElement.StepElement_Array2OfCurveElementPurposeMember_LowerRow(self)

    def UpperRow(self) -> "Standard_Integer":
        return _StepElement.StepElement_Array2OfCurveElementPurposeMember_UpperRow(self)

    def LowerCol(self) -> "Standard_Integer":
        return _StepElement.StepElement_Array2OfCurveElementPurposeMember_LowerCol(self)

    def UpperCol(self) -> "Standard_Integer":
        return _StepElement.StepElement_Array2OfCurveElementPurposeMember_UpperCol(self)

    def IsDeletable(self) -> "Standard_Boolean":
        return _StepElement.StepElement_Array2OfCurveElementPurposeMember_IsDeletable(self)

    def Assign(self, theOther: "StepElement_Array2OfCurveElementPurposeMember") -> "NCollection_Array2< opencascade::handle< StepElement_CurveElementPurposeMember > > &":
        return _StepElement.StepElement_Array2OfCurveElementPurposeMember_Assign(self, theOther)

    def Move(self, theOther: "StepElement_Array2OfCurveElementPurposeMember") -> "NCollection_Array2< opencascade::handle< StepElement_CurveElementPurposeMember > > &":
        return _StepElement.StepElement_Array2OfCurveElementPurposeMember_Move(self, theOther)

    def Set(self, *args) -> "NCollection_Array2< opencascade::handle< StepElement_CurveElementPurposeMember > > &":
        return _StepElement.StepElement_Array2OfCurveElementPurposeMember_Set(self, *args)

    def Value(self, theRow: "Standard_Integer const", theCol: "Standard_Integer const") -> "opencascade::handle< StepElement_CurveElementPurposeMember > const &":
        return _StepElement.StepElement_Array2OfCurveElementPurposeMember_Value(self, theRow, theCol)

    def ChangeValue(self, theRow: "Standard_Integer const", theCol: "Standard_Integer const") -> "opencascade::handle< StepElement_CurveElementPurposeMember > &":
        return _StepElement.StepElement_Array2OfCurveElementPurposeMember_ChangeValue(self, theRow, theCol)

    def __call__(self, *args) -> "opencascade::handle< StepElement_CurveElementPurposeMember > &":
        return _StepElement.StepElement_Array2OfCurveElementPurposeMember___call__(self, *args)

    def SetValue(self, theRow: "Standard_Integer const", theCol: "Standard_Integer const", theItem: "opencascade::handle< StepElement_CurveElementPurposeMember > const &") -> "void":
        return _StepElement.StepElement_Array2OfCurveElementPurposeMember_SetValue(self, theRow, theCol, theItem)

    def Resize(self, theRowLower: "Standard_Integer", theRowUpper: "Standard_Integer", theColLower: "Standard_Integer", theColUpper: "Standard_Integer", theToCopyData: "Standard_Boolean") -> "void":
        return _StepElement.StepElement_Array2OfCurveElementPurposeMember_Resize(self, theRowLower, theRowUpper, theColLower, theColUpper, theToCopyData)
    __swig_destroy__ = _StepElement.delete_StepElement_Array2OfCurveElementPurposeMember

# Register StepElement_Array2OfCurveElementPurposeMember in _StepElement:
_StepElement.StepElement_Array2OfCurveElementPurposeMember_swigregister(StepElement_Array2OfCurveElementPurposeMember)

class StepElement_Array2OfSurfaceElementPurpose(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):
        _StepElement.StepElement_Array2OfSurfaceElementPurpose_swiginit(self, _StepElement.new_StepElement_Array2OfSurfaceElementPurpose(*args))

    def Init(self, theValue: "StepElement_SurfaceElementPurpose") -> "void":
        return _StepElement.StepElement_Array2OfSurfaceElementPurpose_Init(self, theValue)

    def Size(self) -> "Standard_Integer":
        return _StepElement.StepElement_Array2OfSurfaceElementPurpose_Size(self)

    def Length(self) -> "Standard_Integer":
        return _StepElement.StepElement_Array2OfSurfaceElementPurpose_Length(self)

    def NbRows(self) -> "Standard_Integer":
        return _StepElement.StepElement_Array2OfSurfaceElementPurpose_NbRows(self)

    def NbColumns(self) -> "Standard_Integer":
        return _StepElement.StepElement_Array2OfSurfaceElementPurpose_NbColumns(self)

    def RowLength(self) -> "Standard_Integer":
        return _StepElement.StepElement_Array2OfSurfaceElementPurpose_RowLength(self)

    def ColLength(self) -> "Standard_Integer":
        return _StepElement.StepElement_Array2OfSurfaceElementPurpose_ColLength(self)

    def LowerRow(self) -> "Standard_Integer":
        return _StepElement.StepElement_Array2OfSurfaceElementPurpose_LowerRow(self)

    def UpperRow(self) -> "Standard_Integer":
        return _StepElement.StepElement_Array2OfSurfaceElementPurpose_UpperRow(self)

    def LowerCol(self) -> "Standard_Integer":
        return _StepElement.StepElement_Array2OfSurfaceElementPurpose_LowerCol(self)

    def UpperCol(self) -> "Standard_Integer":
        return _StepElement.StepElement_Array2OfSurfaceElementPurpose_UpperCol(self)

    def IsDeletable(self) -> "Standard_Boolean":
        return _StepElement.StepElement_Array2OfSurfaceElementPurpose_IsDeletable(self)

    def Assign(self, theOther: "StepElement_Array2OfSurfaceElementPurpose") -> "NCollection_Array2< StepElement_SurfaceElementPurpose > &":
        return _StepElement.StepElement_Array2OfSurfaceElementPurpose_Assign(self, theOther)

    def Move(self, theOther: "StepElement_Array2OfSurfaceElementPurpose") -> "NCollection_Array2< StepElement_SurfaceElementPurpose > &":
        return _StepElement.StepElement_Array2OfSurfaceElementPurpose_Move(self, theOther)

    def Set(self, *args) -> "NCollection_Array2< StepElement_SurfaceElementPurpose > &":
        return _StepElement.StepElement_Array2OfSurfaceElementPurpose_Set(self, *args)

    def Value(self, theRow: "Standard_Integer const", theCol: "Standard_Integer const") -> "StepElement_SurfaceElementPurpose const &":
        return _StepElement.StepElement_Array2OfSurfaceElementPurpose_Value(self, theRow, theCol)

    def ChangeValue(self, theRow: "Standard_Integer const", theCol: "Standard_Integer const") -> "StepElement_SurfaceElementPurpose &":
        return _StepElement.StepElement_Array2OfSurfaceElementPurpose_ChangeValue(self, theRow, theCol)

    def __call__(self, *args) -> "StepElement_SurfaceElementPurpose &":
        return _StepElement.StepElement_Array2OfSurfaceElementPurpose___call__(self, *args)

    def SetValue(self, theRow: "Standard_Integer const", theCol: "Standard_Integer const", theItem: "StepElement_SurfaceElementPurpose") -> "void":
        return _StepElement.StepElement_Array2OfSurfaceElementPurpose_SetValue(self, theRow, theCol, theItem)

    def Resize(self, theRowLower: "Standard_Integer", theRowUpper: "Standard_Integer", theColLower: "Standard_Integer", theColUpper: "Standard_Integer", theToCopyData: "Standard_Boolean") -> "void":
        return _StepElement.StepElement_Array2OfSurfaceElementPurpose_Resize(self, theRowLower, theRowUpper, theColLower, theColUpper, theToCopyData)
    __swig_destroy__ = _StepElement.delete_StepElement_Array2OfSurfaceElementPurpose

# Register StepElement_Array2OfSurfaceElementPurpose in _StepElement:
_StepElement.StepElement_Array2OfSurfaceElementPurpose_swigregister(StepElement_Array2OfSurfaceElementPurpose)

class StepElement_Array2OfSurfaceElementPurposeMember(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):
        _StepElement.StepElement_Array2OfSurfaceElementPurposeMember_swiginit(self, _StepElement.new_StepElement_Array2OfSurfaceElementPurposeMember(*args))

    def Init(self, theValue: "opencascade::handle< StepElement_SurfaceElementPurposeMember > const &") -> "void":
        return _StepElement.StepElement_Array2OfSurfaceElementPurposeMember_Init(self, theValue)

    def Size(self) -> "Standard_Integer":
        return _StepElement.StepElement_Array2OfSurfaceElementPurposeMember_Size(self)

    def Length(self) -> "Standard_Integer":
        return _StepElement.StepElement_Array2OfSurfaceElementPurposeMember_Length(self)

    def NbRows(self) -> "Standard_Integer":
        return _StepElement.StepElement_Array2OfSurfaceElementPurposeMember_NbRows(self)

    def NbColumns(self) -> "Standard_Integer":
        return _StepElement.StepElement_Array2OfSurfaceElementPurposeMember_NbColumns(self)

    def RowLength(self) -> "Standard_Integer":
        return _StepElement.StepElement_Array2OfSurfaceElementPurposeMember_RowLength(self)

    def ColLength(self) -> "Standard_Integer":
        return _StepElement.StepElement_Array2OfSurfaceElementPurposeMember_ColLength(self)

    def LowerRow(self) -> "Standard_Integer":
        return _StepElement.StepElement_Array2OfSurfaceElementPurposeMember_LowerRow(self)

    def UpperRow(self) -> "Standard_Integer":
        return _StepElement.StepElement_Array2OfSurfaceElementPurposeMember_UpperRow(self)

    def LowerCol(self) -> "Standard_Integer":
        return _StepElement.StepElement_Array2OfSurfaceElementPurposeMember_LowerCol(self)

    def UpperCol(self) -> "Standard_Integer":
        return _StepElement.StepElement_Array2OfSurfaceElementPurposeMember_UpperCol(self)

    def IsDeletable(self) -> "Standard_Boolean":
        return _StepElement.StepElement_Array2OfSurfaceElementPurposeMember_IsDeletable(self)

    def Assign(self, theOther: "StepElement_Array2OfSurfaceElementPurposeMember") -> "NCollection_Array2< opencascade::handle< StepElement_SurfaceElementPurposeMember > > &":
        return _StepElement.StepElement_Array2OfSurfaceElementPurposeMember_Assign(self, theOther)

    def Move(self, theOther: "StepElement_Array2OfSurfaceElementPurposeMember") -> "NCollection_Array2< opencascade::handle< StepElement_SurfaceElementPurposeMember > > &":
        return _StepElement.StepElement_Array2OfSurfaceElementPurposeMember_Move(self, theOther)

    def Set(self, *args) -> "NCollection_Array2< opencascade::handle< StepElement_SurfaceElementPurposeMember > > &":
        return _StepElement.StepElement_Array2OfSurfaceElementPurposeMember_Set(self, *args)

    def Value(self, theRow: "Standard_Integer const", theCol: "Standard_Integer const") -> "opencascade::handle< StepElement_SurfaceElementPurposeMember > const &":
        return _StepElement.StepElement_Array2OfSurfaceElementPurposeMember_Value(self, theRow, theCol)

    def ChangeValue(self, theRow: "Standard_Integer const", theCol: "Standard_Integer const") -> "opencascade::handle< StepElement_SurfaceElementPurposeMember > &":
        return _StepElement.StepElement_Array2OfSurfaceElementPurposeMember_ChangeValue(self, theRow, theCol)

    def __call__(self, *args) -> "opencascade::handle< StepElement_SurfaceElementPurposeMember > &":
        return _StepElement.StepElement_Array2OfSurfaceElementPurposeMember___call__(self, *args)

    def SetValue(self, theRow: "Standard_Integer const", theCol: "Standard_Integer const", theItem: "opencascade::handle< StepElement_SurfaceElementPurposeMember > const &") -> "void":
        return _StepElement.StepElement_Array2OfSurfaceElementPurposeMember_SetValue(self, theRow, theCol, theItem)

    def Resize(self, theRowLower: "Standard_Integer", theRowUpper: "Standard_Integer", theColLower: "Standard_Integer", theColUpper: "Standard_Integer", theToCopyData: "Standard_Boolean") -> "void":
        return _StepElement.StepElement_Array2OfSurfaceElementPurposeMember_Resize(self, theRowLower, theRowUpper, theColLower, theColUpper, theToCopyData)
    __swig_destroy__ = _StepElement.delete_StepElement_Array2OfSurfaceElementPurposeMember

# Register StepElement_Array2OfSurfaceElementPurposeMember in _StepElement:
_StepElement.StepElement_Array2OfSurfaceElementPurposeMember_swigregister(StepElement_Array2OfSurfaceElementPurposeMember)

class StepElement_SequenceOfCurveElementPurposeMember(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< StepElement_CurveElementPurposeMember > >::iterator":
        return _StepElement.StepElement_SequenceOfCurveElementPurposeMember_begin(self)

    def end(self) -> "NCollection_Sequence< opencascade::handle< StepElement_CurveElementPurposeMember > >::iterator":
        return _StepElement.StepElement_SequenceOfCurveElementPurposeMember_end(self)

    def cbegin(self) -> "NCollection_Sequence< opencascade::handle< StepElement_CurveElementPurposeMember > >::const_iterator":
        return _StepElement.StepElement_SequenceOfCurveElementPurposeMember_cbegin(self)

    def cend(self) -> "NCollection_Sequence< opencascade::handle< StepElement_CurveElementPurposeMember > >::const_iterator":
        return _StepElement.StepElement_SequenceOfCurveElementPurposeMember_cend(self)

    def __init__(self, *args):
        _StepElement.StepElement_SequenceOfCurveElementPurposeMember_swiginit(self, _StepElement.new_StepElement_SequenceOfCurveElementPurposeMember(*args))

    def Size(self) -> "Standard_Integer":
        return _StepElement.StepElement_SequenceOfCurveElementPurposeMember_Size(self)

    def Length(self) -> "Standard_Integer":
        return _StepElement.StepElement_SequenceOfCurveElementPurposeMember_Length(self)

    def Lower(self) -> "Standard_Integer":
        return _StepElement.StepElement_SequenceOfCurveElementPurposeMember_Lower(self)

    def Upper(self) -> "Standard_Integer":
        return _StepElement.StepElement_SequenceOfCurveElementPurposeMember_Upper(self)

    def IsEmpty(self) -> "Standard_Boolean":
        return _StepElement.StepElement_SequenceOfCurveElementPurposeMember_IsEmpty(self)

    def Reverse(self) -> "void":
        return _StepElement.StepElement_SequenceOfCurveElementPurposeMember_Reverse(self)

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

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

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

    def Assign(self, theOther: "StepElement_SequenceOfCurveElementPurposeMember") -> "NCollection_Sequence< opencascade::handle< StepElement_CurveElementPurposeMember > > &":
        return _StepElement.StepElement_SequenceOfCurveElementPurposeMember_Assign(self, theOther)

    def Set(self, theOther: "StepElement_SequenceOfCurveElementPurposeMember") -> "NCollection_Sequence< opencascade::handle< StepElement_CurveElementPurposeMember > > &":
        return _StepElement.StepElement_SequenceOfCurveElementPurposeMember_Set(self, theOther)

    def Remove(self, *args) -> "void":
        return _StepElement.StepElement_SequenceOfCurveElementPurposeMember_Remove(self, *args)

    def Append(self, *args) -> "void":
        return _StepElement.StepElement_SequenceOfCurveElementPurposeMember_Append(self, *args)

    def Prepend(self, *args) -> "void":
        return _StepElement.StepElement_SequenceOfCurveElementPurposeMember_Prepend(self, *args)

    def InsertBefore(self, *args) -> "void":
        return _StepElement.StepElement_SequenceOfCurveElementPurposeMember_InsertBefore(self, *args)

    def InsertAfter(self, *args) -> "void":
        return _StepElement.StepElement_SequenceOfCurveElementPurposeMember_InsertAfter(self, *args)

    def Split(self, theIndex: "Standard_Integer const", theSeq: "StepElement_SequenceOfCurveElementPurposeMember") -> "void":
        return _StepElement.StepElement_SequenceOfCurveElementPurposeMember_Split(self, theIndex, theSeq)

    def First(self) -> "opencascade::handle< StepElement_CurveElementPurposeMember > const &":
        return _StepElement.StepElement_SequenceOfCurveElementPurposeMember_First(self)

    def ChangeFirst(self) -> "opencascade::handle< StepElement_CurveElementPurposeMember > &":
        return _StepElement.StepElement_SequenceOfCurveElementPurposeMember_ChangeFirst(self)

    def Last(self) -> "opencascade::handle< StepElement_CurveElementPurposeMember > const &":
        return _StepElement.StepElement_SequenceOfCurveElementPurposeMember_Last(self)

    def ChangeLast(self) -> "opencascade::handle< StepElement_CurveElementPurposeMember > &":
        return _StepElement.StepElement_SequenceOfCurveElementPurposeMember_ChangeLast(self)

    def Value(self, theIndex: "Standard_Integer const") -> "opencascade::handle< StepElement_CurveElementPurposeMember > const &":
        return _StepElement.StepElement_SequenceOfCurveElementPurposeMember_Value(self, theIndex)

    def ChangeValue(self, theIndex: "Standard_Integer const") -> "opencascade::handle< StepElement_CurveElementPurposeMember > &":
        return _StepElement.StepElement_SequenceOfCurveElementPurposeMember_ChangeValue(self, theIndex)

    def __call__(self, *args) -> "opencascade::handle< StepElement_CurveElementPurposeMember > &":
        return _StepElement.StepElement_SequenceOfCurveElementPurposeMember___call__(self, *args)

    def SetValue(self, theIndex: "Standard_Integer const", theItem: "opencascade::handle< StepElement_CurveElementPurposeMember > const &") -> "void":
        return _StepElement.StepElement_SequenceOfCurveElementPurposeMember_SetValue(self, theIndex, theItem)
    __swig_destroy__ = _StepElement.delete_StepElement_SequenceOfCurveElementPurposeMember

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


# Register StepElement_SequenceOfCurveElementPurposeMember in _StepElement:
_StepElement.StepElement_SequenceOfCurveElementPurposeMember_swigregister(StepElement_SequenceOfCurveElementPurposeMember)

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

class StepElement_SequenceOfCurveElementSectionDefinition(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< StepElement_CurveElementSectionDefinition > >::iterator":
        return _StepElement.StepElement_SequenceOfCurveElementSectionDefinition_begin(self)

    def end(self) -> "NCollection_Sequence< opencascade::handle< StepElement_CurveElementSectionDefinition > >::iterator":
        return _StepElement.StepElement_SequenceOfCurveElementSectionDefinition_end(self)

    def cbegin(self) -> "NCollection_Sequence< opencascade::handle< StepElement_CurveElementSectionDefinition > >::const_iterator":
        return _StepElement.StepElement_SequenceOfCurveElementSectionDefinition_cbegin(self)

    def cend(self) -> "NCollection_Sequence< opencascade::handle< StepElement_CurveElementSectionDefinition > >::const_iterator":
        return _StepElement.StepElement_SequenceOfCurveElementSectionDefinition_cend(self)

    def __init__(self, *args):
        _StepElement.StepElement_SequenceOfCurveElementSectionDefinition_swiginit(self, _StepElement.new_StepElement_SequenceOfCurveElementSectionDefinition(*args))

    def Size(self) -> "Standard_Integer":
        return _StepElement.StepElement_SequenceOfCurveElementSectionDefinition_Size(self)

    def Length(self) -> "Standard_Integer":
        return _StepElement.StepElement_SequenceOfCurveElementSectionDefinition_Length(self)

    def Lower(self) -> "Standard_Integer":
        return _StepElement.StepElement_SequenceOfCurveElementSectionDefinition_Lower(self)

    def Upper(self) -> "Standard_Integer":
        return _StepElement.StepElement_SequenceOfCurveElementSectionDefinition_Upper(self)

    def IsEmpty(self) -> "Standard_Boolean":
        return _StepElement.StepElement_SequenceOfCurveElementSectionDefinition_IsEmpty(self)

    def Reverse(self) -> "void":
        return _StepElement.StepElement_SequenceOfCurveElementSectionDefinition_Reverse(self)

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

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

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

    def Assign(self, theOther: "StepElement_SequenceOfCurveElementSectionDefinition") -> "NCollection_Sequence< opencascade::handle< StepElement_CurveElementSectionDefinition > > &":
        return _StepElement.StepElement_SequenceOfCurveElementSectionDefinition_Assign(self, theOther)

    def Set(self, theOther: "StepElement_SequenceOfCurveElementSectionDefinition") -> "NCollection_Sequence< opencascade::handle< StepElement_CurveElementSectionDefinition > > &":
        return _StepElement.StepElement_SequenceOfCurveElementSectionDefinition_Set(self, theOther)

    def Remove(self, *args) -> "void":
        return _StepElement.StepElement_SequenceOfCurveElementSectionDefinition_Remove(self, *args)

    def Append(self, *args) -> "void":
        return _StepElement.StepElement_SequenceOfCurveElementSectionDefinition_Append(self, *args)

    def Prepend(self, *args) -> "void":
        return _StepElement.StepElement_SequenceOfCurveElementSectionDefinition_Prepend(self, *args)

    def InsertBefore(self, *args) -> "void":
        return _StepElement.StepElement_SequenceOfCurveElementSectionDefinition_InsertBefore(self, *args)

    def InsertAfter(self, *args) -> "void":
        return _StepElement.StepElement_SequenceOfCurveElementSectionDefinition_InsertAfter(self, *args)

    def Split(self, theIndex: "Standard_Integer const", theSeq: "StepElement_SequenceOfCurveElementSectionDefinition") -> "void":
        return _StepElement.StepElement_SequenceOfCurveElementSectionDefinition_Split(self, theIndex, theSeq)

    def First(self) -> "opencascade::handle< StepElement_CurveElementSectionDefinition > const &":
        return _StepElement.StepElement_SequenceOfCurveElementSectionDefinition_First(self)

    def ChangeFirst(self) -> "opencascade::handle< StepElement_CurveElementSectionDefinition > &":
        return _StepElement.StepElement_SequenceOfCurveElementSectionDefinition_ChangeFirst(self)

    def Last(self) -> "opencascade::handle< StepElement_CurveElementSectionDefinition > const &":
        return _StepElement.StepElement_SequenceOfCurveElementSectionDefinition_Last(self)

    def ChangeLast(self) -> "opencascade::handle< StepElement_CurveElementSectionDefinition > &":
        return _StepElement.StepElement_SequenceOfCurveElementSectionDefinition_ChangeLast(self)

    def Value(self, theIndex: "Standard_Integer const") -> "opencascade::handle< StepElement_CurveElementSectionDefinition > const &":
        return _StepElement.StepElement_SequenceOfCurveElementSectionDefinition_Value(self, theIndex)

    def ChangeValue(self, theIndex: "Standard_Integer const") -> "opencascade::handle< StepElement_CurveElementSectionDefinition > &":
        return _StepElement.StepElement_SequenceOfCurveElementSectionDefinition_ChangeValue(self, theIndex)

    def __call__(self, *args) -> "opencascade::handle< StepElement_CurveElementSectionDefinition > &":
        return _StepElement.StepElement_SequenceOfCurveElementSectionDefinition___call__(self, *args)

    def SetValue(self, theIndex: "Standard_Integer const", theItem: "opencascade::handle< StepElement_CurveElementSectionDefinition > const &") -> "void":
        return _StepElement.StepElement_SequenceOfCurveElementSectionDefinition_SetValue(self, theIndex, theItem)
    __swig_destroy__ = _StepElement.delete_StepElement_SequenceOfCurveElementSectionDefinition

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


# Register StepElement_SequenceOfCurveElementSectionDefinition in _StepElement:
_StepElement.StepElement_SequenceOfCurveElementSectionDefinition_swigregister(StepElement_SequenceOfCurveElementSectionDefinition)

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

class StepElement_SequenceOfElementMaterial(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< StepElement_ElementMaterial > >::iterator":
        return _StepElement.StepElement_SequenceOfElementMaterial_begin(self)

    def end(self) -> "NCollection_Sequence< opencascade::handle< StepElement_ElementMaterial > >::iterator":
        return _StepElement.StepElement_SequenceOfElementMaterial_end(self)

    def cbegin(self) -> "NCollection_Sequence< opencascade::handle< StepElement_ElementMaterial > >::const_iterator":
        return _StepElement.StepElement_SequenceOfElementMaterial_cbegin(self)

    def cend(self) -> "NCollection_Sequence< opencascade::handle< StepElement_ElementMaterial > >::const_iterator":
        return _StepElement.StepElement_SequenceOfElementMaterial_cend(self)

    def __init__(self, *args):
        _StepElement.StepElement_SequenceOfElementMaterial_swiginit(self, _StepElement.new_StepElement_SequenceOfElementMaterial(*args))

    def Size(self) -> "Standard_Integer":
        return _StepElement.StepElement_SequenceOfElementMaterial_Size(self)

    def Length(self) -> "Standard_Integer":
        return _StepElement.StepElement_SequenceOfElementMaterial_Length(self)

    def Lower(self) -> "Standard_Integer":
        return _StepElement.StepElement_SequenceOfElementMaterial_Lower(self)

    def Upper(self) -> "Standard_Integer":
        return _StepElement.StepElement_SequenceOfElementMaterial_Upper(self)

    def IsEmpty(self) -> "Standard_Boolean":
        return _StepElement.StepElement_SequenceOfElementMaterial_IsEmpty(self)

    def Reverse(self) -> "void":
        return _StepElement.StepElement_SequenceOfElementMaterial_Reverse(self)

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

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

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

    def Assign(self, theOther: "StepElement_SequenceOfElementMaterial") -> "NCollection_Sequence< opencascade::handle< StepElement_ElementMaterial > > &":
        return _StepElement.StepElement_SequenceOfElementMaterial_Assign(self, theOther)

    def Set(self, theOther: "StepElement_SequenceOfElementMaterial") -> "NCollection_Sequence< opencascade::handle< StepElement_ElementMaterial > > &":
        return _StepElement.StepElement_SequenceOfElementMaterial_Set(self, theOther)

    def Remove(self, *args) -> "void":
        return _StepElement.StepElement_SequenceOfElementMaterial_Remove(self, *args)

    def Append(self, *args) -> "void":
        return _StepElement.StepElement_SequenceOfElementMaterial_Append(self, *args)

    def Prepend(self, *args) -> "void":
        return _StepElement.StepElement_SequenceOfElementMaterial_Prepend(self, *args)

    def InsertBefore(self, *args) -> "void":
        return _StepElement.StepElement_SequenceOfElementMaterial_InsertBefore(self, *args)

    def InsertAfter(self, *args) -> "void":
        return _StepElement.StepElement_SequenceOfElementMaterial_InsertAfter(self, *args)

    def Split(self, theIndex: "Standard_Integer const", theSeq: "StepElement_SequenceOfElementMaterial") -> "void":
        return _StepElement.StepElement_SequenceOfElementMaterial_Split(self, theIndex, theSeq)

    def First(self) -> "opencascade::handle< StepElement_ElementMaterial > const &":
        return _StepElement.StepElement_SequenceOfElementMaterial_First(self)

    def ChangeFirst(self) -> "opencascade::handle< StepElement_ElementMaterial > &":
        return _StepElement.StepElement_SequenceOfElementMaterial_ChangeFirst(self)

    def Last(self) -> "opencascade::handle< StepElement_ElementMaterial > const &":
        return _StepElement.StepElement_SequenceOfElementMaterial_Last(self)

    def ChangeLast(self) -> "opencascade::handle< StepElement_ElementMaterial > &":
        return _StepElement.StepElement_SequenceOfElementMaterial_ChangeLast(self)

    def Value(self, theIndex: "Standard_Integer const") -> "opencascade::handle< StepElement_ElementMaterial > const &":
        return _StepElement.StepElement_SequenceOfElementMaterial_Value(self, theIndex)

    def ChangeValue(self, theIndex: "Standard_Integer const") -> "opencascade::handle< StepElement_ElementMaterial > &":
        return _StepElement.StepElement_SequenceOfElementMaterial_ChangeValue(self, theIndex)

    def __call__(self, *args) -> "opencascade::handle< StepElement_ElementMaterial > &":
        return _StepElement.StepElement_SequenceOfElementMaterial___call__(self, *args)

    def SetValue(self, theIndex: "Standard_Integer const", theItem: "opencascade::handle< StepElement_ElementMaterial > const &") -> "void":
        return _StepElement.StepElement_SequenceOfElementMaterial_SetValue(self, theIndex, theItem)
    __swig_destroy__ = _StepElement.delete_StepElement_SequenceOfElementMaterial

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


# Register StepElement_SequenceOfElementMaterial in _StepElement:
_StepElement.StepElement_SequenceOfElementMaterial_swigregister(StepElement_SequenceOfElementMaterial)

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

class StepElement_SequenceOfSurfaceElementPurposeMember(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< StepElement_SurfaceElementPurposeMember > >::iterator":
        return _StepElement.StepElement_SequenceOfSurfaceElementPurposeMember_begin(self)

    def end(self) -> "NCollection_Sequence< opencascade::handle< StepElement_SurfaceElementPurposeMember > >::iterator":
        return _StepElement.StepElement_SequenceOfSurfaceElementPurposeMember_end(self)

    def cbegin(self) -> "NCollection_Sequence< opencascade::handle< StepElement_SurfaceElementPurposeMember > >::const_iterator":
        return _StepElement.StepElement_SequenceOfSurfaceElementPurposeMember_cbegin(self)

    def cend(self) -> "NCollection_Sequence< opencascade::handle< StepElement_SurfaceElementPurposeMember > >::const_iterator":
        return _StepElement.StepElement_SequenceOfSurfaceElementPurposeMember_cend(self)

    def __init__(self, *args):
        _StepElement.StepElement_SequenceOfSurfaceElementPurposeMember_swiginit(self, _StepElement.new_StepElement_SequenceOfSurfaceElementPurposeMember(*args))

    def Size(self) -> "Standard_Integer":
        return _StepElement.StepElement_SequenceOfSurfaceElementPurposeMember_Size(self)

    def Length(self) -> "Standard_Integer":
        return _StepElement.StepElement_SequenceOfSurfaceElementPurposeMember_Length(self)

    def Lower(self) -> "Standard_Integer":
        return _StepElement.StepElement_SequenceOfSurfaceElementPurposeMember_Lower(self)

    def Upper(self) -> "Standard_Integer":
        return _StepElement.StepElement_SequenceOfSurfaceElementPurposeMember_Upper(self)

    def IsEmpty(self) -> "Standard_Boolean":
        return _StepElement.StepElement_SequenceOfSurfaceElementPurposeMember_IsEmpty(self)

    def Reverse(self) -> "void":
        return _StepElement.StepElement_SequenceOfSurfaceElementPurposeMember_Reverse(self)

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

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

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

    def Assign(self, theOther: "StepElement_SequenceOfSurfaceElementPurposeMember") -> "NCollection_Sequence< opencascade::handle< StepElement_SurfaceElementPurposeMember > > &":
        return _StepElement.StepElement_SequenceOfSurfaceElementPurposeMember_Assign(self, theOther)

    def Set(self, theOther: "StepElement_SequenceOfSurfaceElementPurposeMember") -> "NCollection_Sequence< opencascade::handle< StepElement_SurfaceElementPurposeMember > > &":
        return _StepElement.StepElement_SequenceOfSurfaceElementPurposeMember_Set(self, theOther)

    def Remove(self, *args) -> "void":
        return _StepElement.StepElement_SequenceOfSurfaceElementPurposeMember_Remove(self, *args)

    def Append(self, *args) -> "void":
        return _StepElement.StepElement_SequenceOfSurfaceElementPurposeMember_Append(self, *args)

    def Prepend(self, *args) -> "void":
        return _StepElement.StepElement_SequenceOfSurfaceElementPurposeMember_Prepend(self, *args)

    def InsertBefore(self, *args) -> "void":
        return _StepElement.StepElement_SequenceOfSurfaceElementPurposeMember_InsertBefore(self, *args)

    def InsertAfter(self, *args) -> "void":
        return _StepElement.StepElement_SequenceOfSurfaceElementPurposeMember_InsertAfter(self, *args)

    def Split(self, theIndex: "Standard_Integer const", theSeq: "StepElement_SequenceOfSurfaceElementPurposeMember") -> "void":
        return _StepElement.StepElement_SequenceOfSurfaceElementPurposeMember_Split(self, theIndex, theSeq)

    def First(self) -> "opencascade::handle< StepElement_SurfaceElementPurposeMember > const &":
        return _StepElement.StepElement_SequenceOfSurfaceElementPurposeMember_First(self)

    def ChangeFirst(self) -> "opencascade::handle< StepElement_SurfaceElementPurposeMember > &":
        return _StepElement.StepElement_SequenceOfSurfaceElementPurposeMember_ChangeFirst(self)

    def Last(self) -> "opencascade::handle< StepElement_SurfaceElementPurposeMember > const &":
        return _StepElement.StepElement_SequenceOfSurfaceElementPurposeMember_Last(self)

    def ChangeLast(self) -> "opencascade::handle< StepElement_SurfaceElementPurposeMember > &":
        return _StepElement.StepElement_SequenceOfSurfaceElementPurposeMember_ChangeLast(self)

    def Value(self, theIndex: "Standard_Integer const") -> "opencascade::handle< StepElement_SurfaceElementPurposeMember > const &":
        return _StepElement.StepElement_SequenceOfSurfaceElementPurposeMember_Value(self, theIndex)

    def ChangeValue(self, theIndex: "Standard_Integer const") -> "opencascade::handle< StepElement_SurfaceElementPurposeMember > &":
        return _StepElement.StepElement_SequenceOfSurfaceElementPurposeMember_ChangeValue(self, theIndex)

    def __call__(self, *args) -> "opencascade::handle< StepElement_SurfaceElementPurposeMember > &":
        return _StepElement.StepElement_SequenceOfSurfaceElementPurposeMember___call__(self, *args)

    def SetValue(self, theIndex: "Standard_Integer const", theItem: "opencascade::handle< StepElement_SurfaceElementPurposeMember > const &") -> "void":
        return _StepElement.StepElement_SequenceOfSurfaceElementPurposeMember_SetValue(self, theIndex, theItem)
    __swig_destroy__ = _StepElement.delete_StepElement_SequenceOfSurfaceElementPurposeMember

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


# Register StepElement_SequenceOfSurfaceElementPurposeMember in _StepElement:
_StepElement.StepElement_SequenceOfSurfaceElementPurposeMember_swigregister(StepElement_SequenceOfSurfaceElementPurposeMember)

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

class StepElement_AnalysisItemWithinRepresentation(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"""
        Empty constructor.

        Returns
        -------
        None

        """
        _StepElement.StepElement_AnalysisItemWithinRepresentation_swiginit(self, _StepElement.new_StepElement_AnalysisItemWithinRepresentation(*args))

    def Description(self, *args) -> "opencascade::handle< TCollection_HAsciiString >":
        r"""
        Returns field description.

        Returns
        -------
        opencascade::handle<TCollection_HAsciiString>

        """
        return _StepElement.StepElement_AnalysisItemWithinRepresentation_Description(self, *args)

    def Init(self, *args) -> "void":
        r"""
        Initialize all fields (own and inherited).

        Parameters
        ----------
        aName: TCollection_HAsciiString
        aDescription: TCollection_HAsciiString
        aItem: StepRepr_RepresentationItem
        aRep: StepRepr_Representation

        Returns
        -------
        None

        """
        return _StepElement.StepElement_AnalysisItemWithinRepresentation_Init(self, *args)

    def Item(self, *args) -> "opencascade::handle< StepRepr_RepresentationItem >":
        r"""
        Returns field item.

        Returns
        -------
        opencascade::handle<StepRepr_RepresentationItem>

        """
        return _StepElement.StepElement_AnalysisItemWithinRepresentation_Item(self, *args)

    def Name(self, *args) -> "opencascade::handle< TCollection_HAsciiString >":
        r"""
        Returns field name.

        Returns
        -------
        opencascade::handle<TCollection_HAsciiString>

        """
        return _StepElement.StepElement_AnalysisItemWithinRepresentation_Name(self, *args)

    def Rep(self, *args) -> "opencascade::handle< StepRepr_Representation >":
        r"""
        Returns field rep.

        Returns
        -------
        opencascade::handle<StepRepr_Representation>

        """
        return _StepElement.StepElement_AnalysisItemWithinRepresentation_Rep(self, *args)

    def SetDescription(self, *args) -> "void":
        r"""
        Set field description.

        Parameters
        ----------
        Description: TCollection_HAsciiString

        Returns
        -------
        None

        """
        return _StepElement.StepElement_AnalysisItemWithinRepresentation_SetDescription(self, *args)

    def SetItem(self, *args) -> "void":
        r"""
        Set field item.

        Parameters
        ----------
        Item: StepRepr_RepresentationItem

        Returns
        -------
        None

        """
        return _StepElement.StepElement_AnalysisItemWithinRepresentation_SetItem(self, *args)

    def SetName(self, *args) -> "void":
        r"""
        Set field name.

        Parameters
        ----------
        Name: TCollection_HAsciiString

        Returns
        -------
        None

        """
        return _StepElement.StepElement_AnalysisItemWithinRepresentation_SetName(self, *args)

    def SetRep(self, *args) -> "void":
        r"""
        Set field rep.

        Parameters
        ----------
        Rep: StepRepr_Representation

        Returns
        -------
        None

        """
        return _StepElement.StepElement_AnalysisItemWithinRepresentation_SetRep(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _StepElement.delete_StepElement_AnalysisItemWithinRepresentation

# Register StepElement_AnalysisItemWithinRepresentation in _StepElement:
_StepElement.StepElement_AnalysisItemWithinRepresentation_swigregister(StepElement_AnalysisItemWithinRepresentation)

class StepElement_CurveElementEndReleasePacket(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"""
        Empty constructor.

        Returns
        -------
        None

        """
        _StepElement.StepElement_CurveElementEndReleasePacket_swiginit(self, _StepElement.new_StepElement_CurveElementEndReleasePacket(*args))

    def Init(self, *args) -> "void":
        r"""
        Initialize all fields (own and inherited).

        Parameters
        ----------
        aReleaseFreedom: StepElement_CurveElementFreedom
        aReleaseStiffness: float

        Returns
        -------
        None

        """
        return _StepElement.StepElement_CurveElementEndReleasePacket_Init(self, *args)

    def ReleaseFreedom(self, *args) -> "StepElement_CurveElementFreedom":
        r"""
        Returns field releasefreedom.

        Returns
        -------
        StepElement_CurveElementFreedom

        """
        return _StepElement.StepElement_CurveElementEndReleasePacket_ReleaseFreedom(self, *args)

    def ReleaseStiffness(self, *args) -> "Standard_Real":
        r"""
        Returns field releasestiffness.

        Returns
        -------
        float

        """
        return _StepElement.StepElement_CurveElementEndReleasePacket_ReleaseStiffness(self, *args)

    def SetReleaseFreedom(self, *args) -> "void":
        r"""
        Set field releasefreedom.

        Parameters
        ----------
        ReleaseFreedom: StepElement_CurveElementFreedom

        Returns
        -------
        None

        """
        return _StepElement.StepElement_CurveElementEndReleasePacket_SetReleaseFreedom(self, *args)

    def SetReleaseStiffness(self, *args) -> "void":
        r"""
        Set field releasestiffness.

        Parameters
        ----------
        ReleaseStiffness: float

        Returns
        -------
        None

        """
        return _StepElement.StepElement_CurveElementEndReleasePacket_SetReleaseStiffness(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _StepElement.delete_StepElement_CurveElementEndReleasePacket

# Register StepElement_CurveElementEndReleasePacket in _StepElement:
_StepElement.StepElement_CurveElementEndReleasePacket_swigregister(StepElement_CurveElementEndReleasePacket)

class StepElement_CurveElementFreedom(OCC.Core.StepData.StepData_SelectType):
    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"""
        Empty constructor.

        Returns
        -------
        None

        """
        _StepElement.StepElement_CurveElementFreedom_swiginit(self, _StepElement.new_StepElement_CurveElementFreedom(*args))

    def ApplicationDefinedDegreeOfFreedom(self, *args) -> "opencascade::handle< TCollection_HAsciiString >":
        r"""
        Returns value as applicationdefineddegreeoffreedom (or null if another type).

        Returns
        -------
        opencascade::handle<TCollection_HAsciiString>

        """
        return _StepElement.StepElement_CurveElementFreedom_ApplicationDefinedDegreeOfFreedom(self, *args)

    def EnumeratedCurveElementFreedom(self, *args) -> "StepElement_EnumeratedCurveElementFreedom":
        r"""
        Returns value as enumeratedcurveelementfreedom (or null if another type).

        Returns
        -------
        StepElement_EnumeratedCurveElementFreedom

        """
        return _StepElement.StepElement_CurveElementFreedom_EnumeratedCurveElementFreedom(self, *args)

    def SetApplicationDefinedDegreeOfFreedom(self, *args) -> "void":
        r"""
        Set value for applicationdefineddegreeoffreedom.

        Parameters
        ----------
        aVal: TCollection_HAsciiString

        Returns
        -------
        None

        """
        return _StepElement.StepElement_CurveElementFreedom_SetApplicationDefinedDegreeOfFreedom(self, *args)

    def SetEnumeratedCurveElementFreedom(self, *args) -> "void":
        r"""
        Set value for enumeratedcurveelementfreedom.

        Parameters
        ----------
        aVal: StepElement_EnumeratedCurveElementFreedom

        Returns
        -------
        None

        """
        return _StepElement.StepElement_CurveElementFreedom_SetEnumeratedCurveElementFreedom(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _StepElement.delete_StepElement_CurveElementFreedom

# Register StepElement_CurveElementFreedom in _StepElement:
_StepElement.StepElement_CurveElementFreedom_swigregister(StepElement_CurveElementFreedom)

class StepElement_CurveElementFreedomMember(OCC.Core.StepData.StepData_SelectNamed):
    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"""
        Empty constructor.

        Returns
        -------
        None

        """
        _StepElement.StepElement_CurveElementFreedomMember_swiginit(self, _StepElement.new_StepElement_CurveElementFreedomMember(*args))


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


    __repr__ = _dumps_object

    __swig_destroy__ = _StepElement.delete_StepElement_CurveElementFreedomMember

# Register StepElement_CurveElementFreedomMember in _StepElement:
_StepElement.StepElement_CurveElementFreedomMember_swigregister(StepElement_CurveElementFreedomMember)

class StepElement_CurveElementPurpose(OCC.Core.StepData.StepData_SelectType):
    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"""
        Empty constructor.

        Returns
        -------
        None

        """
        _StepElement.StepElement_CurveElementPurpose_swiginit(self, _StepElement.new_StepElement_CurveElementPurpose(*args))

    def ApplicationDefinedElementPurpose(self, *args) -> "opencascade::handle< TCollection_HAsciiString >":
        r"""
        Returns value as applicationdefinedelementpurpose (or null if another type).

        Returns
        -------
        opencascade::handle<TCollection_HAsciiString>

        """
        return _StepElement.StepElement_CurveElementPurpose_ApplicationDefinedElementPurpose(self, *args)

    def EnumeratedCurveElementPurpose(self, *args) -> "StepElement_EnumeratedCurveElementPurpose":
        r"""
        Returns value as enumeratedcurveelementpurpose (or null if another type).

        Returns
        -------
        StepElement_EnumeratedCurveElementPurpose

        """
        return _StepElement.StepElement_CurveElementPurpose_EnumeratedCurveElementPurpose(self, *args)

    def SetApplicationDefinedElementPurpose(self, *args) -> "void":
        r"""
        Set value for applicationdefinedelementpurpose.

        Parameters
        ----------
        aVal: TCollection_HAsciiString

        Returns
        -------
        None

        """
        return _StepElement.StepElement_CurveElementPurpose_SetApplicationDefinedElementPurpose(self, *args)

    def SetEnumeratedCurveElementPurpose(self, *args) -> "void":
        r"""
        Set value for enumeratedcurveelementpurpose.

        Parameters
        ----------
        aVal: StepElement_EnumeratedCurveElementPurpose

        Returns
        -------
        None

        """
        return _StepElement.StepElement_CurveElementPurpose_SetEnumeratedCurveElementPurpose(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _StepElement.delete_StepElement_CurveElementPurpose

# Register StepElement_CurveElementPurpose in _StepElement:
_StepElement.StepElement_CurveElementPurpose_swigregister(StepElement_CurveElementPurpose)

class StepElement_CurveElementPurposeMember(OCC.Core.StepData.StepData_SelectNamed):
    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"""
        Empty constructor.

        Returns
        -------
        None

        """
        _StepElement.StepElement_CurveElementPurposeMember_swiginit(self, _StepElement.new_StepElement_CurveElementPurposeMember(*args))


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


    __repr__ = _dumps_object

    __swig_destroy__ = _StepElement.delete_StepElement_CurveElementPurposeMember

# Register StepElement_CurveElementPurposeMember in _StepElement:
_StepElement.StepElement_CurveElementPurposeMember_swigregister(StepElement_CurveElementPurposeMember)

class StepElement_CurveElementSectionDefinition(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"""
        Empty constructor.

        Returns
        -------
        None

        """
        _StepElement.StepElement_CurveElementSectionDefinition_swiginit(self, _StepElement.new_StepElement_CurveElementSectionDefinition(*args))

    def Description(self, *args) -> "opencascade::handle< TCollection_HAsciiString >":
        r"""
        Returns field description.

        Returns
        -------
        opencascade::handle<TCollection_HAsciiString>

        """
        return _StepElement.StepElement_CurveElementSectionDefinition_Description(self, *args)

    def Init(self, *args) -> "void":
        r"""
        Initialize all fields (own and inherited).

        Parameters
        ----------
        aDescription: TCollection_HAsciiString
        aSectionAngle: float

        Returns
        -------
        None

        """
        return _StepElement.StepElement_CurveElementSectionDefinition_Init(self, *args)

    def SectionAngle(self, *args) -> "Standard_Real":
        r"""
        Returns field sectionangle.

        Returns
        -------
        float

        """
        return _StepElement.StepElement_CurveElementSectionDefinition_SectionAngle(self, *args)

    def SetDescription(self, *args) -> "void":
        r"""
        Set field description.

        Parameters
        ----------
        Description: TCollection_HAsciiString

        Returns
        -------
        None

        """
        return _StepElement.StepElement_CurveElementSectionDefinition_SetDescription(self, *args)

    def SetSectionAngle(self, *args) -> "void":
        r"""
        Set field sectionangle.

        Parameters
        ----------
        SectionAngle: float

        Returns
        -------
        None

        """
        return _StepElement.StepElement_CurveElementSectionDefinition_SetSectionAngle(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _StepElement.delete_StepElement_CurveElementSectionDefinition

# Register StepElement_CurveElementSectionDefinition in _StepElement:
_StepElement.StepElement_CurveElementSectionDefinition_swigregister(StepElement_CurveElementSectionDefinition)

class StepElement_ElementAspect(OCC.Core.StepData.StepData_SelectType):
    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"""
        Empty constructor.

        Returns
        -------
        None

        """
        _StepElement.StepElement_ElementAspect_swiginit(self, _StepElement.new_StepElement_ElementAspect(*args))

    def CurveEdge(self, *args) -> "StepElement_CurveEdge":
        r"""
        Returns value as curveedge (or null if another type).

        Returns
        -------
        StepElement_CurveEdge

        """
        return _StepElement.StepElement_ElementAspect_CurveEdge(self, *args)

    def ElementVolume(self, *args) -> "StepElement_ElementVolume":
        r"""
        Returns value as elementvolume (or null if another type).

        Returns
        -------
        StepElement_ElementVolume

        """
        return _StepElement.StepElement_ElementAspect_ElementVolume(self, *args)

    def SetCurveEdge(self, *args) -> "void":
        r"""
        Set value for curveedge.

        Parameters
        ----------
        aVal: StepElement_CurveEdge

        Returns
        -------
        None

        """
        return _StepElement.StepElement_ElementAspect_SetCurveEdge(self, *args)

    def SetElementVolume(self, *args) -> "void":
        r"""
        Set value for elementvolume.

        Parameters
        ----------
        aVal: StepElement_ElementVolume

        Returns
        -------
        None

        """
        return _StepElement.StepElement_ElementAspect_SetElementVolume(self, *args)

    def SetSurface2dEdge(self, *args) -> "void":
        r"""
        Set value for surface2dedge.

        Parameters
        ----------
        aVal: int

        Returns
        -------
        None

        """
        return _StepElement.StepElement_ElementAspect_SetSurface2dEdge(self, *args)

    def SetSurface2dFace(self, *args) -> "void":
        r"""
        Set value for surface2dface.

        Parameters
        ----------
        aVal: int

        Returns
        -------
        None

        """
        return _StepElement.StepElement_ElementAspect_SetSurface2dFace(self, *args)

    def SetSurface3dEdge(self, *args) -> "void":
        r"""
        Set value for surface3dedge.

        Parameters
        ----------
        aVal: int

        Returns
        -------
        None

        """
        return _StepElement.StepElement_ElementAspect_SetSurface3dEdge(self, *args)

    def SetSurface3dFace(self, *args) -> "void":
        r"""
        Set value for surface3dface.

        Parameters
        ----------
        aVal: int

        Returns
        -------
        None

        """
        return _StepElement.StepElement_ElementAspect_SetSurface3dFace(self, *args)

    def SetVolume2dEdge(self, *args) -> "void":
        r"""
        Set value for volume2dedge.

        Parameters
        ----------
        aVal: int

        Returns
        -------
        None

        """
        return _StepElement.StepElement_ElementAspect_SetVolume2dEdge(self, *args)

    def SetVolume2dFace(self, *args) -> "void":
        r"""
        Set value for volume2dface.

        Parameters
        ----------
        aVal: int

        Returns
        -------
        None

        """
        return _StepElement.StepElement_ElementAspect_SetVolume2dFace(self, *args)

    def SetVolume3dEdge(self, *args) -> "void":
        r"""
        Set value for volume3dedge.

        Parameters
        ----------
        aVal: int

        Returns
        -------
        None

        """
        return _StepElement.StepElement_ElementAspect_SetVolume3dEdge(self, *args)

    def SetVolume3dFace(self, *args) -> "void":
        r"""
        Set value for volume3dface.

        Parameters
        ----------
        aVal: int

        Returns
        -------
        None

        """
        return _StepElement.StepElement_ElementAspect_SetVolume3dFace(self, *args)

    def Surface2dEdge(self, *args) -> "Standard_Integer":
        r"""
        Returns value as surface2dedge (or null if another type).

        Returns
        -------
        int

        """
        return _StepElement.StepElement_ElementAspect_Surface2dEdge(self, *args)

    def Surface2dFace(self, *args) -> "Standard_Integer":
        r"""
        Returns value as surface2dface (or null if another type).

        Returns
        -------
        int

        """
        return _StepElement.StepElement_ElementAspect_Surface2dFace(self, *args)

    def Surface3dEdge(self, *args) -> "Standard_Integer":
        r"""
        Returns value as surface3dedge (or null if another type).

        Returns
        -------
        int

        """
        return _StepElement.StepElement_ElementAspect_Surface3dEdge(self, *args)

    def Surface3dFace(self, *args) -> "Standard_Integer":
        r"""
        Returns value as surface3dface (or null if another type).

        Returns
        -------
        int

        """
        return _StepElement.StepElement_ElementAspect_Surface3dFace(self, *args)

    def Volume2dEdge(self, *args) -> "Standard_Integer":
        r"""
        Returns value as volume2dedge (or null if another type).

        Returns
        -------
        int

        """
        return _StepElement.StepElement_ElementAspect_Volume2dEdge(self, *args)

    def Volume2dFace(self, *args) -> "Standard_Integer":
        r"""
        Returns value as volume2dface (or null if another type).

        Returns
        -------
        int

        """
        return _StepElement.StepElement_ElementAspect_Volume2dFace(self, *args)

    def Volume3dEdge(self, *args) -> "Standard_Integer":
        r"""
        Returns value as volume3dedge (or null if another type).

        Returns
        -------
        int

        """
        return _StepElement.StepElement_ElementAspect_Volume3dEdge(self, *args)

    def Volume3dFace(self, *args) -> "Standard_Integer":
        r"""
        Returns value as volume3dface (or null if another type).

        Returns
        -------
        int

        """
        return _StepElement.StepElement_ElementAspect_Volume3dFace(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _StepElement.delete_StepElement_ElementAspect

# Register StepElement_ElementAspect in _StepElement:
_StepElement.StepElement_ElementAspect_swigregister(StepElement_ElementAspect)

class StepElement_ElementAspectMember(OCC.Core.StepData.StepData_SelectNamed):
    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"""
        Empty constructor.

        Returns
        -------
        None

        """
        _StepElement.StepElement_ElementAspectMember_swiginit(self, _StepElement.new_StepElement_ElementAspectMember(*args))


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


    __repr__ = _dumps_object

    __swig_destroy__ = _StepElement.delete_StepElement_ElementAspectMember

# Register StepElement_ElementAspectMember in _StepElement:
_StepElement.StepElement_ElementAspectMember_swigregister(StepElement_ElementAspectMember)

class StepElement_ElementDescriptor(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"""
        Empty constructor.

        Returns
        -------
        None

        """
        _StepElement.StepElement_ElementDescriptor_swiginit(self, _StepElement.new_StepElement_ElementDescriptor(*args))

    def Description(self, *args) -> "opencascade::handle< TCollection_HAsciiString >":
        r"""
        Returns field description.

        Returns
        -------
        opencascade::handle<TCollection_HAsciiString>

        """
        return _StepElement.StepElement_ElementDescriptor_Description(self, *args)

    def Init(self, *args) -> "void":
        r"""
        Initialize all fields (own and inherited).

        Parameters
        ----------
        aTopologyOrder: StepElement_ElementOrder
        aDescription: TCollection_HAsciiString

        Returns
        -------
        None

        """
        return _StepElement.StepElement_ElementDescriptor_Init(self, *args)

    def SetDescription(self, *args) -> "void":
        r"""
        Set field description.

        Parameters
        ----------
        Description: TCollection_HAsciiString

        Returns
        -------
        None

        """
        return _StepElement.StepElement_ElementDescriptor_SetDescription(self, *args)

    def SetTopologyOrder(self, *args) -> "void":
        r"""
        Set field topologyorder.

        Parameters
        ----------
        TopologyOrder: StepElement_ElementOrder

        Returns
        -------
        None

        """
        return _StepElement.StepElement_ElementDescriptor_SetTopologyOrder(self, *args)

    def TopologyOrder(self, *args) -> "StepElement_ElementOrder":
        r"""
        Returns field topologyorder.

        Returns
        -------
        StepElement_ElementOrder

        """
        return _StepElement.StepElement_ElementDescriptor_TopologyOrder(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _StepElement.delete_StepElement_ElementDescriptor

# Register StepElement_ElementDescriptor in _StepElement:
_StepElement.StepElement_ElementDescriptor_swigregister(StepElement_ElementDescriptor)

class StepElement_ElementMaterial(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"""
        Empty constructor.

        Returns
        -------
        None

        """
        _StepElement.StepElement_ElementMaterial_swiginit(self, _StepElement.new_StepElement_ElementMaterial(*args))

    def Description(self, *args) -> "opencascade::handle< TCollection_HAsciiString >":
        r"""
        Returns field description.

        Returns
        -------
        opencascade::handle<TCollection_HAsciiString>

        """
        return _StepElement.StepElement_ElementMaterial_Description(self, *args)

    def Init(self, *args) -> "void":
        r"""
        Initialize all fields (own and inherited).

        Parameters
        ----------
        aMaterialId: TCollection_HAsciiString
        aDescription: TCollection_HAsciiString
        aProperties: StepRepr_HArray1OfMaterialPropertyRepresentation

        Returns
        -------
        None

        """
        return _StepElement.StepElement_ElementMaterial_Init(self, *args)

    def MaterialId(self, *args) -> "opencascade::handle< TCollection_HAsciiString >":
        r"""
        Returns field materialid.

        Returns
        -------
        opencascade::handle<TCollection_HAsciiString>

        """
        return _StepElement.StepElement_ElementMaterial_MaterialId(self, *args)

    def Properties(self, *args) -> "opencascade::handle< StepRepr_HArray1OfMaterialPropertyRepresentation >":
        r"""
        Returns field properties.

        Returns
        -------
        opencascade::handle<StepRepr_HArray1OfMaterialPropertyRepresentation>

        """
        return _StepElement.StepElement_ElementMaterial_Properties(self, *args)

    def SetDescription(self, *args) -> "void":
        r"""
        Set field description.

        Parameters
        ----------
        Description: TCollection_HAsciiString

        Returns
        -------
        None

        """
        return _StepElement.StepElement_ElementMaterial_SetDescription(self, *args)

    def SetMaterialId(self, *args) -> "void":
        r"""
        Set field materialid.

        Parameters
        ----------
        MaterialId: TCollection_HAsciiString

        Returns
        -------
        None

        """
        return _StepElement.StepElement_ElementMaterial_SetMaterialId(self, *args)

    def SetProperties(self, *args) -> "void":
        r"""
        Set field properties.

        Parameters
        ----------
        Properties: StepRepr_HArray1OfMaterialPropertyRepresentation

        Returns
        -------
        None

        """
        return _StepElement.StepElement_ElementMaterial_SetProperties(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _StepElement.delete_StepElement_ElementMaterial

# Register StepElement_ElementMaterial in _StepElement:
_StepElement.StepElement_ElementMaterial_swigregister(StepElement_ElementMaterial)

class StepElement_MeasureOrUnspecifiedValue(OCC.Core.StepData.StepData_SelectType):
    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"""
        Empty constructor.

        Returns
        -------
        None

        """
        _StepElement.StepElement_MeasureOrUnspecifiedValue_swiginit(self, _StepElement.new_StepElement_MeasureOrUnspecifiedValue(*args))

    def ContextDependentMeasure(self, *args) -> "Standard_Real":
        r"""
        Returns value as contextdependentmeasure (or null if another type).

        Returns
        -------
        float

        """
        return _StepElement.StepElement_MeasureOrUnspecifiedValue_ContextDependentMeasure(self, *args)

    def SetContextDependentMeasure(self, *args) -> "void":
        r"""
        Set value for contextdependentmeasure.

        Parameters
        ----------
        aVal: float

        Returns
        -------
        None

        """
        return _StepElement.StepElement_MeasureOrUnspecifiedValue_SetContextDependentMeasure(self, *args)

    def SetUnspecifiedValue(self, *args) -> "void":
        r"""
        Set value for unspecifiedvalue.

        Parameters
        ----------
        aVal: StepElement_UnspecifiedValue

        Returns
        -------
        None

        """
        return _StepElement.StepElement_MeasureOrUnspecifiedValue_SetUnspecifiedValue(self, *args)

    def UnspecifiedValue(self, *args) -> "StepElement_UnspecifiedValue":
        r"""
        Returns value as unspecifiedvalue (or null if another type).

        Returns
        -------
        StepElement_UnspecifiedValue

        """
        return _StepElement.StepElement_MeasureOrUnspecifiedValue_UnspecifiedValue(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _StepElement.delete_StepElement_MeasureOrUnspecifiedValue

# Register StepElement_MeasureOrUnspecifiedValue in _StepElement:
_StepElement.StepElement_MeasureOrUnspecifiedValue_swigregister(StepElement_MeasureOrUnspecifiedValue)

class StepElement_MeasureOrUnspecifiedValueMember(OCC.Core.StepData.StepData_SelectNamed):
    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"""
        Empty constructor.

        Returns
        -------
        None

        """
        _StepElement.StepElement_MeasureOrUnspecifiedValueMember_swiginit(self, _StepElement.new_StepElement_MeasureOrUnspecifiedValueMember(*args))


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


    __repr__ = _dumps_object

    __swig_destroy__ = _StepElement.delete_StepElement_MeasureOrUnspecifiedValueMember

# Register StepElement_MeasureOrUnspecifiedValueMember in _StepElement:
_StepElement.StepElement_MeasureOrUnspecifiedValueMember_swigregister(StepElement_MeasureOrUnspecifiedValueMember)

class StepElement_SurfaceElementProperty(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"""
        Empty constructor.

        Returns
        -------
        None

        """
        _StepElement.StepElement_SurfaceElementProperty_swiginit(self, _StepElement.new_StepElement_SurfaceElementProperty(*args))

    def Description(self, *args) -> "opencascade::handle< TCollection_HAsciiString >":
        r"""
        Returns field description.

        Returns
        -------
        opencascade::handle<TCollection_HAsciiString>

        """
        return _StepElement.StepElement_SurfaceElementProperty_Description(self, *args)

    def Init(self, *args) -> "void":
        r"""
        Initialize all fields (own and inherited).

        Parameters
        ----------
        aPropertyId: TCollection_HAsciiString
        aDescription: TCollection_HAsciiString
        aSection: StepElement_SurfaceSectionField

        Returns
        -------
        None

        """
        return _StepElement.StepElement_SurfaceElementProperty_Init(self, *args)

    def PropertyId(self, *args) -> "opencascade::handle< TCollection_HAsciiString >":
        r"""
        Returns field propertyid.

        Returns
        -------
        opencascade::handle<TCollection_HAsciiString>

        """
        return _StepElement.StepElement_SurfaceElementProperty_PropertyId(self, *args)

    def Section(self, *args) -> "opencascade::handle< StepElement_SurfaceSectionField >":
        r"""
        Returns field section.

        Returns
        -------
        opencascade::handle<StepElement_SurfaceSectionField>

        """
        return _StepElement.StepElement_SurfaceElementProperty_Section(self, *args)

    def SetDescription(self, *args) -> "void":
        r"""
        Set field description.

        Parameters
        ----------
        Description: TCollection_HAsciiString

        Returns
        -------
        None

        """
        return _StepElement.StepElement_SurfaceElementProperty_SetDescription(self, *args)

    def SetPropertyId(self, *args) -> "void":
        r"""
        Set field propertyid.

        Parameters
        ----------
        PropertyId: TCollection_HAsciiString

        Returns
        -------
        None

        """
        return _StepElement.StepElement_SurfaceElementProperty_SetPropertyId(self, *args)

    def SetSection(self, *args) -> "void":
        r"""
        Set field section.

        Parameters
        ----------
        Section: StepElement_SurfaceSectionField

        Returns
        -------
        None

        """
        return _StepElement.StepElement_SurfaceElementProperty_SetSection(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _StepElement.delete_StepElement_SurfaceElementProperty

# Register StepElement_SurfaceElementProperty in _StepElement:
_StepElement.StepElement_SurfaceElementProperty_swigregister(StepElement_SurfaceElementProperty)

class StepElement_SurfaceElementPurpose(OCC.Core.StepData.StepData_SelectType):
    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"""
        Empty constructor.

        Returns
        -------
        None

        """
        _StepElement.StepElement_SurfaceElementPurpose_swiginit(self, _StepElement.new_StepElement_SurfaceElementPurpose(*args))

    def ApplicationDefinedElementPurpose(self, *args) -> "opencascade::handle< TCollection_HAsciiString >":
        r"""
        Returns value as applicationdefinedelementpurpose (or null if another type).

        Returns
        -------
        opencascade::handle<TCollection_HAsciiString>

        """
        return _StepElement.StepElement_SurfaceElementPurpose_ApplicationDefinedElementPurpose(self, *args)

    def EnumeratedSurfaceElementPurpose(self, *args) -> "StepElement_EnumeratedSurfaceElementPurpose":
        r"""
        Returns value as enumeratedsurfaceelementpurpose (or null if another type).

        Returns
        -------
        StepElement_EnumeratedSurfaceElementPurpose

        """
        return _StepElement.StepElement_SurfaceElementPurpose_EnumeratedSurfaceElementPurpose(self, *args)

    def SetApplicationDefinedElementPurpose(self, *args) -> "void":
        r"""
        Set value for applicationdefinedelementpurpose.

        Parameters
        ----------
        aVal: TCollection_HAsciiString

        Returns
        -------
        None

        """
        return _StepElement.StepElement_SurfaceElementPurpose_SetApplicationDefinedElementPurpose(self, *args)

    def SetEnumeratedSurfaceElementPurpose(self, *args) -> "void":
        r"""
        Set value for enumeratedsurfaceelementpurpose.

        Parameters
        ----------
        aVal: StepElement_EnumeratedSurfaceElementPurpose

        Returns
        -------
        None

        """
        return _StepElement.StepElement_SurfaceElementPurpose_SetEnumeratedSurfaceElementPurpose(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _StepElement.delete_StepElement_SurfaceElementPurpose

# Register StepElement_SurfaceElementPurpose in _StepElement:
_StepElement.StepElement_SurfaceElementPurpose_swigregister(StepElement_SurfaceElementPurpose)

class StepElement_SurfaceElementPurposeMember(OCC.Core.StepData.StepData_SelectNamed):
    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"""
        Empty constructor.

        Returns
        -------
        None

        """
        _StepElement.StepElement_SurfaceElementPurposeMember_swiginit(self, _StepElement.new_StepElement_SurfaceElementPurposeMember(*args))


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


    __repr__ = _dumps_object

    __swig_destroy__ = _StepElement.delete_StepElement_SurfaceElementPurposeMember

# Register StepElement_SurfaceElementPurposeMember in _StepElement:
_StepElement.StepElement_SurfaceElementPurposeMember_swigregister(StepElement_SurfaceElementPurposeMember)

class StepElement_SurfaceSection(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"""
        Empty constructor.

        Returns
        -------
        None

        """
        _StepElement.StepElement_SurfaceSection_swiginit(self, _StepElement.new_StepElement_SurfaceSection(*args))

    def Init(self, *args) -> "void":
        r"""
        Initialize all fields (own and inherited).

        Parameters
        ----------
        aOffset: StepElement_MeasureOrUnspecifiedValue
        aNonStructuralMass: StepElement_MeasureOrUnspecifiedValue
        aNonStructuralMassOffset: StepElement_MeasureOrUnspecifiedValue

        Returns
        -------
        None

        """
        return _StepElement.StepElement_SurfaceSection_Init(self, *args)

    def NonStructuralMass(self, *args) -> "StepElement_MeasureOrUnspecifiedValue":
        r"""
        Returns field nonstructuralmass.

        Returns
        -------
        StepElement_MeasureOrUnspecifiedValue

        """
        return _StepElement.StepElement_SurfaceSection_NonStructuralMass(self, *args)

    def NonStructuralMassOffset(self, *args) -> "StepElement_MeasureOrUnspecifiedValue":
        r"""
        Returns field nonstructuralmassoffset.

        Returns
        -------
        StepElement_MeasureOrUnspecifiedValue

        """
        return _StepElement.StepElement_SurfaceSection_NonStructuralMassOffset(self, *args)

    def Offset(self, *args) -> "StepElement_MeasureOrUnspecifiedValue":
        r"""
        Returns field offset.

        Returns
        -------
        StepElement_MeasureOrUnspecifiedValue

        """
        return _StepElement.StepElement_SurfaceSection_Offset(self, *args)

    def SetNonStructuralMass(self, *args) -> "void":
        r"""
        Set field nonstructuralmass.

        Parameters
        ----------
        NonStructuralMass: StepElement_MeasureOrUnspecifiedValue

        Returns
        -------
        None

        """
        return _StepElement.StepElement_SurfaceSection_SetNonStructuralMass(self, *args)

    def SetNonStructuralMassOffset(self, *args) -> "void":
        r"""
        Set field nonstructuralmassoffset.

        Parameters
        ----------
        NonStructuralMassOffset: StepElement_MeasureOrUnspecifiedValue

        Returns
        -------
        None

        """
        return _StepElement.StepElement_SurfaceSection_SetNonStructuralMassOffset(self, *args)

    def SetOffset(self, *args) -> "void":
        r"""
        Set field offset.

        Parameters
        ----------
        Offset: StepElement_MeasureOrUnspecifiedValue

        Returns
        -------
        None

        """
        return _StepElement.StepElement_SurfaceSection_SetOffset(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _StepElement.delete_StepElement_SurfaceSection

# Register StepElement_SurfaceSection in _StepElement:
_StepElement.StepElement_SurfaceSection_swigregister(StepElement_SurfaceSection)

class StepElement_SurfaceSectionField(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"""
        Empty constructor.

        Returns
        -------
        None

        """
        _StepElement.StepElement_SurfaceSectionField_swiginit(self, _StepElement.new_StepElement_SurfaceSectionField(*args))


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


    __repr__ = _dumps_object

    __swig_destroy__ = _StepElement.delete_StepElement_SurfaceSectionField

# Register StepElement_SurfaceSectionField in _StepElement:
_StepElement.StepElement_SurfaceSectionField_swigregister(StepElement_SurfaceSectionField)

class StepElement_VolumeElementPurpose(OCC.Core.StepData.StepData_SelectType):
    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"""
        Empty constructor.

        Returns
        -------
        None

        """
        _StepElement.StepElement_VolumeElementPurpose_swiginit(self, _StepElement.new_StepElement_VolumeElementPurpose(*args))

    def ApplicationDefinedElementPurpose(self, *args) -> "opencascade::handle< TCollection_HAsciiString >":
        r"""
        Returns value as applicationdefinedelementpurpose (or null if another type).

        Returns
        -------
        opencascade::handle<TCollection_HAsciiString>

        """
        return _StepElement.StepElement_VolumeElementPurpose_ApplicationDefinedElementPurpose(self, *args)

    def EnumeratedVolumeElementPurpose(self, *args) -> "StepElement_EnumeratedVolumeElementPurpose":
        r"""
        Returns value as enumeratedvolumeelementpurpose (or null if another type).

        Returns
        -------
        StepElement_EnumeratedVolumeElementPurpose

        """
        return _StepElement.StepElement_VolumeElementPurpose_EnumeratedVolumeElementPurpose(self, *args)

    def SetApplicationDefinedElementPurpose(self, *args) -> "void":
        r"""
        Set value for applicationdefinedelementpurpose.

        Parameters
        ----------
        aVal: TCollection_HAsciiString

        Returns
        -------
        None

        """
        return _StepElement.StepElement_VolumeElementPurpose_SetApplicationDefinedElementPurpose(self, *args)

    def SetEnumeratedVolumeElementPurpose(self, *args) -> "void":
        r"""
        Set value for enumeratedvolumeelementpurpose.

        Parameters
        ----------
        aVal: StepElement_EnumeratedVolumeElementPurpose

        Returns
        -------
        None

        """
        return _StepElement.StepElement_VolumeElementPurpose_SetEnumeratedVolumeElementPurpose(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _StepElement.delete_StepElement_VolumeElementPurpose

# Register StepElement_VolumeElementPurpose in _StepElement:
_StepElement.StepElement_VolumeElementPurpose_swigregister(StepElement_VolumeElementPurpose)

class StepElement_VolumeElementPurposeMember(OCC.Core.StepData.StepData_SelectNamed):
    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"""
        Empty constructor.

        Returns
        -------
        None

        """
        _StepElement.StepElement_VolumeElementPurposeMember_swiginit(self, _StepElement.new_StepElement_VolumeElementPurposeMember(*args))


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


    __repr__ = _dumps_object

    __swig_destroy__ = _StepElement.delete_StepElement_VolumeElementPurposeMember

# Register StepElement_VolumeElementPurposeMember in _StepElement:
_StepElement.StepElement_VolumeElementPurposeMember_swigregister(StepElement_VolumeElementPurposeMember)

class StepElement_Curve3dElementDescriptor(StepElement_ElementDescriptor):
    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"""
        Empty constructor.

        Returns
        -------
        None

        """
        _StepElement.StepElement_Curve3dElementDescriptor_swiginit(self, _StepElement.new_StepElement_Curve3dElementDescriptor(*args))

    def Init(self, *args) -> "void":
        r"""
        Initialize all fields (own and inherited).

        Parameters
        ----------
        aElementDescriptor_TopologyOrder: StepElement_ElementOrder
        aElementDescriptor_Description: TCollection_HAsciiString
        aPurpose: StepElement_HArray1OfHSequenceOfCurveElementPurposeMember

        Returns
        -------
        None

        """
        return _StepElement.StepElement_Curve3dElementDescriptor_Init(self, *args)

    def Purpose(self, *args) -> "opencascade::handle< StepElement_HArray1OfHSequenceOfCurveElementPurposeMember >":
        r"""
        Returns field purpose.

        Returns
        -------
        opencascade::handle<StepElement_HArray1OfHSequenceOfCurveElementPurposeMember>

        """
        return _StepElement.StepElement_Curve3dElementDescriptor_Purpose(self, *args)

    def SetPurpose(self, *args) -> "void":
        r"""
        Set field purpose.

        Parameters
        ----------
        Purpose: StepElement_HArray1OfHSequenceOfCurveElementPurposeMember

        Returns
        -------
        None

        """
        return _StepElement.StepElement_Curve3dElementDescriptor_SetPurpose(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _StepElement.delete_StepElement_Curve3dElementDescriptor

# Register StepElement_Curve3dElementDescriptor in _StepElement:
_StepElement.StepElement_Curve3dElementDescriptor_swigregister(StepElement_Curve3dElementDescriptor)

class StepElement_CurveElementSectionDerivedDefinitions(StepElement_CurveElementSectionDefinition):
    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"""
        Empty constructor.

        Returns
        -------
        None

        """
        _StepElement.StepElement_CurveElementSectionDerivedDefinitions_swiginit(self, _StepElement.new_StepElement_CurveElementSectionDerivedDefinitions(*args))

    def CrossSectionalArea(self, *args) -> "Standard_Real":
        r"""
        Returns field crosssectionalarea.

        Returns
        -------
        float

        """
        return _StepElement.StepElement_CurveElementSectionDerivedDefinitions_CrossSectionalArea(self, *args)

    def Init(self, *args) -> "void":
        r"""
        Initialize all fields (own and inherited).

        Parameters
        ----------
        aCurveElementSectionDefinition_Description: TCollection_HAsciiString
        aCurveElementSectionDefinition_SectionAngle: float
        aCrossSectionalArea: float
        aShearArea: StepElement_HArray1OfMeasureOrUnspecifiedValue
        aSecondMomentOfArea: TColStd_HArray1OfReal
        aTorsionalConstant: float
        aWarpingConstant: StepElement_MeasureOrUnspecifiedValue
        aLocationOfCentroid: StepElement_HArray1OfMeasureOrUnspecifiedValue
        aLocationOfShearCentre: StepElement_HArray1OfMeasureOrUnspecifiedValue
        aLocationOfNonStructuralMass: StepElement_HArray1OfMeasureOrUnspecifiedValue
        aNonStructuralMass: StepElement_MeasureOrUnspecifiedValue
        aPolarMoment: StepElement_MeasureOrUnspecifiedValue

        Returns
        -------
        None

        """
        return _StepElement.StepElement_CurveElementSectionDerivedDefinitions_Init(self, *args)

    def LocationOfCentroid(self, *args) -> "opencascade::handle< StepElement_HArray1OfMeasureOrUnspecifiedValue >":
        r"""
        Returns field locationofcentroid.

        Returns
        -------
        opencascade::handle<StepElement_HArray1OfMeasureOrUnspecifiedValue>

        """
        return _StepElement.StepElement_CurveElementSectionDerivedDefinitions_LocationOfCentroid(self, *args)

    def LocationOfNonStructuralMass(self, *args) -> "opencascade::handle< StepElement_HArray1OfMeasureOrUnspecifiedValue >":
        r"""
        Returns field locationofnonstructuralmass.

        Returns
        -------
        opencascade::handle<StepElement_HArray1OfMeasureOrUnspecifiedValue>

        """
        return _StepElement.StepElement_CurveElementSectionDerivedDefinitions_LocationOfNonStructuralMass(self, *args)

    def LocationOfShearCentre(self, *args) -> "opencascade::handle< StepElement_HArray1OfMeasureOrUnspecifiedValue >":
        r"""
        Returns field locationofshearcentre.

        Returns
        -------
        opencascade::handle<StepElement_HArray1OfMeasureOrUnspecifiedValue>

        """
        return _StepElement.StepElement_CurveElementSectionDerivedDefinitions_LocationOfShearCentre(self, *args)

    def NonStructuralMass(self, *args) -> "StepElement_MeasureOrUnspecifiedValue":
        r"""
        Returns field nonstructuralmass.

        Returns
        -------
        StepElement_MeasureOrUnspecifiedValue

        """
        return _StepElement.StepElement_CurveElementSectionDerivedDefinitions_NonStructuralMass(self, *args)

    def PolarMoment(self, *args) -> "StepElement_MeasureOrUnspecifiedValue":
        r"""
        Returns field polarmoment.

        Returns
        -------
        StepElement_MeasureOrUnspecifiedValue

        """
        return _StepElement.StepElement_CurveElementSectionDerivedDefinitions_PolarMoment(self, *args)

    def SecondMomentOfArea(self, *args) -> "opencascade::handle< TColStd_HArray1OfReal >":
        r"""
        Returns field secondmomentofarea.

        Returns
        -------
        opencascade::handle<TColStd_HArray1OfReal>

        """
        return _StepElement.StepElement_CurveElementSectionDerivedDefinitions_SecondMomentOfArea(self, *args)

    def SetCrossSectionalArea(self, *args) -> "void":
        r"""
        Set field crosssectionalarea.

        Parameters
        ----------
        CrossSectionalArea: float

        Returns
        -------
        None

        """
        return _StepElement.StepElement_CurveElementSectionDerivedDefinitions_SetCrossSectionalArea(self, *args)

    def SetLocationOfCentroid(self, *args) -> "void":
        r"""
        Set field locationofcentroid.

        Parameters
        ----------
        LocationOfCentroid: StepElement_HArray1OfMeasureOrUnspecifiedValue

        Returns
        -------
        None

        """
        return _StepElement.StepElement_CurveElementSectionDerivedDefinitions_SetLocationOfCentroid(self, *args)

    def SetLocationOfNonStructuralMass(self, *args) -> "void":
        r"""
        Set field locationofnonstructuralmass.

        Parameters
        ----------
        LocationOfNonStructuralMass: StepElement_HArray1OfMeasureOrUnspecifiedValue

        Returns
        -------
        None

        """
        return _StepElement.StepElement_CurveElementSectionDerivedDefinitions_SetLocationOfNonStructuralMass(self, *args)

    def SetLocationOfShearCentre(self, *args) -> "void":
        r"""
        Set field locationofshearcentre.

        Parameters
        ----------
        LocationOfShearCentre: StepElement_HArray1OfMeasureOrUnspecifiedValue

        Returns
        -------
        None

        """
        return _StepElement.StepElement_CurveElementSectionDerivedDefinitions_SetLocationOfShearCentre(self, *args)

    def SetNonStructuralMass(self, *args) -> "void":
        r"""
        Set field nonstructuralmass.

        Parameters
        ----------
        NonStructuralMass: StepElement_MeasureOrUnspecifiedValue

        Returns
        -------
        None

        """
        return _StepElement.StepElement_CurveElementSectionDerivedDefinitions_SetNonStructuralMass(self, *args)

    def SetPolarMoment(self, *args) -> "void":
        r"""
        Set field polarmoment.

        Parameters
        ----------
        PolarMoment: StepElement_MeasureOrUnspecifiedValue

        Returns
        -------
        None

        """
        return _StepElement.StepElement_CurveElementSectionDerivedDefinitions_SetPolarMoment(self, *args)

    def SetSecondMomentOfArea(self, *args) -> "void":
        r"""
        Set field secondmomentofarea.

        Parameters
        ----------
        SecondMomentOfArea: TColStd_HArray1OfReal

        Returns
        -------
        None

        """
        return _StepElement.StepElement_CurveElementSectionDerivedDefinitions_SetSecondMomentOfArea(self, *args)

    def SetShearArea(self, *args) -> "void":
        r"""
        Set field sheararea.

        Parameters
        ----------
        ShearArea: StepElement_HArray1OfMeasureOrUnspecifiedValue

        Returns
        -------
        None

        """
        return _StepElement.StepElement_CurveElementSectionDerivedDefinitions_SetShearArea(self, *args)

    def SetTorsionalConstant(self, *args) -> "void":
        r"""
        Set field torsionalconstant.

        Parameters
        ----------
        TorsionalConstant: float

        Returns
        -------
        None

        """
        return _StepElement.StepElement_CurveElementSectionDerivedDefinitions_SetTorsionalConstant(self, *args)

    def SetWarpingConstant(self, *args) -> "void":
        r"""
        Set field warpingconstant.

        Parameters
        ----------
        WarpingConstant: StepElement_MeasureOrUnspecifiedValue

        Returns
        -------
        None

        """
        return _StepElement.StepElement_CurveElementSectionDerivedDefinitions_SetWarpingConstant(self, *args)

    def ShearArea(self, *args) -> "opencascade::handle< StepElement_HArray1OfMeasureOrUnspecifiedValue >":
        r"""
        Returns field sheararea.

        Returns
        -------
        opencascade::handle<StepElement_HArray1OfMeasureOrUnspecifiedValue>

        """
        return _StepElement.StepElement_CurveElementSectionDerivedDefinitions_ShearArea(self, *args)

    def TorsionalConstant(self, *args) -> "Standard_Real":
        r"""
        Returns field torsionalconstant.

        Returns
        -------
        float

        """
        return _StepElement.StepElement_CurveElementSectionDerivedDefinitions_TorsionalConstant(self, *args)

    def WarpingConstant(self, *args) -> "StepElement_MeasureOrUnspecifiedValue":
        r"""
        Returns field warpingconstant.

        Returns
        -------
        StepElement_MeasureOrUnspecifiedValue

        """
        return _StepElement.StepElement_CurveElementSectionDerivedDefinitions_WarpingConstant(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _StepElement.delete_StepElement_CurveElementSectionDerivedDefinitions

# Register StepElement_CurveElementSectionDerivedDefinitions in _StepElement:
_StepElement.StepElement_CurveElementSectionDerivedDefinitions_swigregister(StepElement_CurveElementSectionDerivedDefinitions)

class StepElement_Surface3dElementDescriptor(StepElement_ElementDescriptor):
    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"""
        Empty constructor.

        Returns
        -------
        None

        """
        _StepElement.StepElement_Surface3dElementDescriptor_swiginit(self, _StepElement.new_StepElement_Surface3dElementDescriptor(*args))

    def Init(self, *args) -> "void":
        r"""
        Initialize all fields (own and inherited).

        Parameters
        ----------
        aElementDescriptor_TopologyOrder: StepElement_ElementOrder
        aElementDescriptor_Description: TCollection_HAsciiString
        aPurpose: StepElement_HArray1OfHSequenceOfSurfaceElementPurposeMember
        aShape: StepElement_Element2dShape

        Returns
        -------
        None

        """
        return _StepElement.StepElement_Surface3dElementDescriptor_Init(self, *args)

    def Purpose(self, *args) -> "opencascade::handle< StepElement_HArray1OfHSequenceOfSurfaceElementPurposeMember >":
        r"""
        Returns field purpose.

        Returns
        -------
        opencascade::handle<StepElement_HArray1OfHSequenceOfSurfaceElementPurposeMember>

        """
        return _StepElement.StepElement_Surface3dElementDescriptor_Purpose(self, *args)

    def SetPurpose(self, *args) -> "void":
        r"""
        Set field purpose.

        Parameters
        ----------
        Purpose: StepElement_HArray1OfHSequenceOfSurfaceElementPurposeMember

        Returns
        -------
        None

        """
        return _StepElement.StepElement_Surface3dElementDescriptor_SetPurpose(self, *args)

    def SetShape(self, *args) -> "void":
        r"""
        Set field shape.

        Parameters
        ----------
        Shape: StepElement_Element2dShape

        Returns
        -------
        None

        """
        return _StepElement.StepElement_Surface3dElementDescriptor_SetShape(self, *args)

    def Shape(self, *args) -> "StepElement_Element2dShape":
        r"""
        Returns field shape.

        Returns
        -------
        StepElement_Element2dShape

        """
        return _StepElement.StepElement_Surface3dElementDescriptor_Shape(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _StepElement.delete_StepElement_Surface3dElementDescriptor

# Register StepElement_Surface3dElementDescriptor in _StepElement:
_StepElement.StepElement_Surface3dElementDescriptor_swigregister(StepElement_Surface3dElementDescriptor)

class StepElement_SurfaceSectionFieldConstant(StepElement_SurfaceSectionField):
    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"""
        Empty constructor.

        Returns
        -------
        None

        """
        _StepElement.StepElement_SurfaceSectionFieldConstant_swiginit(self, _StepElement.new_StepElement_SurfaceSectionFieldConstant(*args))

    def Definition(self, *args) -> "opencascade::handle< StepElement_SurfaceSection >":
        r"""
        Returns field definition.

        Returns
        -------
        opencascade::handle<StepElement_SurfaceSection>

        """
        return _StepElement.StepElement_SurfaceSectionFieldConstant_Definition(self, *args)

    def Init(self, *args) -> "void":
        r"""
        Initialize all fields (own and inherited).

        Parameters
        ----------
        aDefinition: StepElement_SurfaceSection

        Returns
        -------
        None

        """
        return _StepElement.StepElement_SurfaceSectionFieldConstant_Init(self, *args)

    def SetDefinition(self, *args) -> "void":
        r"""
        Set field definition.

        Parameters
        ----------
        Definition: StepElement_SurfaceSection

        Returns
        -------
        None

        """
        return _StepElement.StepElement_SurfaceSectionFieldConstant_SetDefinition(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _StepElement.delete_StepElement_SurfaceSectionFieldConstant

# Register StepElement_SurfaceSectionFieldConstant in _StepElement:
_StepElement.StepElement_SurfaceSectionFieldConstant_swigregister(StepElement_SurfaceSectionFieldConstant)

class StepElement_SurfaceSectionFieldVarying(StepElement_SurfaceSectionField):
    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"""
        Empty constructor.

        Returns
        -------
        None

        """
        _StepElement.StepElement_SurfaceSectionFieldVarying_swiginit(self, _StepElement.new_StepElement_SurfaceSectionFieldVarying(*args))

    def AdditionalNodeValues(self, *args) -> "Standard_Boolean":
        r"""
        Returns field additionalnodevalues.

        Returns
        -------
        bool

        """
        return _StepElement.StepElement_SurfaceSectionFieldVarying_AdditionalNodeValues(self, *args)

    def Definitions(self, *args) -> "opencascade::handle< StepElement_HArray1OfSurfaceSection >":
        r"""
        Returns field definitions.

        Returns
        -------
        opencascade::handle<StepElement_HArray1OfSurfaceSection>

        """
        return _StepElement.StepElement_SurfaceSectionFieldVarying_Definitions(self, *args)

    def Init(self, *args) -> "void":
        r"""
        Initialize all fields (own and inherited).

        Parameters
        ----------
        aDefinitions: StepElement_HArray1OfSurfaceSection
        aAdditionalNodeValues: bool

        Returns
        -------
        None

        """
        return _StepElement.StepElement_SurfaceSectionFieldVarying_Init(self, *args)

    def SetAdditionalNodeValues(self, *args) -> "void":
        r"""
        Set field additionalnodevalues.

        Parameters
        ----------
        AdditionalNodeValues: bool

        Returns
        -------
        None

        """
        return _StepElement.StepElement_SurfaceSectionFieldVarying_SetAdditionalNodeValues(self, *args)

    def SetDefinitions(self, *args) -> "void":
        r"""
        Set field definitions.

        Parameters
        ----------
        Definitions: StepElement_HArray1OfSurfaceSection

        Returns
        -------
        None

        """
        return _StepElement.StepElement_SurfaceSectionFieldVarying_SetDefinitions(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _StepElement.delete_StepElement_SurfaceSectionFieldVarying

# Register StepElement_SurfaceSectionFieldVarying in _StepElement:
_StepElement.StepElement_SurfaceSectionFieldVarying_swigregister(StepElement_SurfaceSectionFieldVarying)

class StepElement_UniformSurfaceSection(StepElement_SurfaceSection):
    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"""
        Empty constructor.

        Returns
        -------
        None

        """
        _StepElement.StepElement_UniformSurfaceSection_swiginit(self, _StepElement.new_StepElement_UniformSurfaceSection(*args))

    def BendingThickness(self, *args) -> "StepElement_MeasureOrUnspecifiedValue":
        r"""
        Returns field bendingthickness.

        Returns
        -------
        StepElement_MeasureOrUnspecifiedValue

        """
        return _StepElement.StepElement_UniformSurfaceSection_BendingThickness(self, *args)

    def Init(self, *args) -> "void":
        r"""
        Initialize all fields (own and inherited).

        Parameters
        ----------
        aSurfaceSection_Offset: StepElement_MeasureOrUnspecifiedValue
        aSurfaceSection_NonStructuralMass: StepElement_MeasureOrUnspecifiedValue
        aSurfaceSection_NonStructuralMassOffset: StepElement_MeasureOrUnspecifiedValue
        aThickness: float
        aBendingThickness: StepElement_MeasureOrUnspecifiedValue
        aShearThickness: StepElement_MeasureOrUnspecifiedValue

        Returns
        -------
        None

        """
        return _StepElement.StepElement_UniformSurfaceSection_Init(self, *args)

    def SetBendingThickness(self, *args) -> "void":
        r"""
        Set field bendingthickness.

        Parameters
        ----------
        BendingThickness: StepElement_MeasureOrUnspecifiedValue

        Returns
        -------
        None

        """
        return _StepElement.StepElement_UniformSurfaceSection_SetBendingThickness(self, *args)

    def SetShearThickness(self, *args) -> "void":
        r"""
        Set field shearthickness.

        Parameters
        ----------
        ShearThickness: StepElement_MeasureOrUnspecifiedValue

        Returns
        -------
        None

        """
        return _StepElement.StepElement_UniformSurfaceSection_SetShearThickness(self, *args)

    def SetThickness(self, *args) -> "void":
        r"""
        Set field thickness.

        Parameters
        ----------
        Thickness: float

        Returns
        -------
        None

        """
        return _StepElement.StepElement_UniformSurfaceSection_SetThickness(self, *args)

    def ShearThickness(self, *args) -> "StepElement_MeasureOrUnspecifiedValue":
        r"""
        Returns field shearthickness.

        Returns
        -------
        StepElement_MeasureOrUnspecifiedValue

        """
        return _StepElement.StepElement_UniformSurfaceSection_ShearThickness(self, *args)

    def Thickness(self, *args) -> "Standard_Real":
        r"""
        Returns field thickness.

        Returns
        -------
        float

        """
        return _StepElement.StepElement_UniformSurfaceSection_Thickness(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _StepElement.delete_StepElement_UniformSurfaceSection

# Register StepElement_UniformSurfaceSection in _StepElement:
_StepElement.StepElement_UniformSurfaceSection_swigregister(StepElement_UniformSurfaceSection)

class StepElement_Volume3dElementDescriptor(StepElement_ElementDescriptor):
    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"""
        Empty constructor.

        Returns
        -------
        None

        """
        _StepElement.StepElement_Volume3dElementDescriptor_swiginit(self, _StepElement.new_StepElement_Volume3dElementDescriptor(*args))

    def Init(self, *args) -> "void":
        r"""
        Initialize all fields (own and inherited).

        Parameters
        ----------
        aElementDescriptor_TopologyOrder: StepElement_ElementOrder
        aElementDescriptor_Description: TCollection_HAsciiString
        aPurpose: StepElement_HArray1OfVolumeElementPurposeMember
        aShape: StepElement_Volume3dElementShape

        Returns
        -------
        None

        """
        return _StepElement.StepElement_Volume3dElementDescriptor_Init(self, *args)

    def Purpose(self, *args) -> "opencascade::handle< StepElement_HArray1OfVolumeElementPurposeMember >":
        r"""
        Returns field purpose.

        Returns
        -------
        opencascade::handle<StepElement_HArray1OfVolumeElementPurposeMember>

        """
        return _StepElement.StepElement_Volume3dElementDescriptor_Purpose(self, *args)

    def SetPurpose(self, *args) -> "void":
        r"""
        Set field purpose.

        Parameters
        ----------
        Purpose: StepElement_HArray1OfVolumeElementPurposeMember

        Returns
        -------
        None

        """
        return _StepElement.StepElement_Volume3dElementDescriptor_SetPurpose(self, *args)

    def SetShape(self, *args) -> "void":
        r"""
        Set field shape.

        Parameters
        ----------
        Shape: StepElement_Volume3dElementShape

        Returns
        -------
        None

        """
        return _StepElement.StepElement_Volume3dElementDescriptor_SetShape(self, *args)

    def Shape(self, *args) -> "StepElement_Volume3dElementShape":
        r"""
        Returns field shape.

        Returns
        -------
        StepElement_Volume3dElementShape

        """
        return _StepElement.StepElement_Volume3dElementDescriptor_Shape(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _StepElement.delete_StepElement_Volume3dElementDescriptor

# Register StepElement_Volume3dElementDescriptor in _StepElement:
_StepElement.StepElement_Volume3dElementDescriptor_swigregister(StepElement_Volume3dElementDescriptor)

class StepElement_HArray1OfVolumeElementPurpose(StepElement_Array1OfVolumeElementPurpose, 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):
        _StepElement.StepElement_HArray1OfVolumeElementPurpose_swiginit(self, _StepElement.new_StepElement_HArray1OfVolumeElementPurpose(*args))

    def Array1(self) -> "StepElement_Array1OfVolumeElementPurpose const &":
        return _StepElement.StepElement_HArray1OfVolumeElementPurpose_Array1(self)

    def ChangeArray1(self) -> "StepElement_Array1OfVolumeElementPurpose &":
        return _StepElement.StepElement_HArray1OfVolumeElementPurpose_ChangeArray1(self)


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

    __swig_destroy__ = _StepElement.delete_StepElement_HArray1OfVolumeElementPurpose

# Register StepElement_HArray1OfVolumeElementPurpose in _StepElement:
_StepElement.StepElement_HArray1OfVolumeElementPurpose_swigregister(StepElement_HArray1OfVolumeElementPurpose)

class StepElement_HArray1OfHSequenceOfCurveElementPurposeMember(StepElement_Array1OfHSequenceOfCurveElementPurposeMember, 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):
        _StepElement.StepElement_HArray1OfHSequenceOfCurveElementPurposeMember_swiginit(self, _StepElement.new_StepElement_HArray1OfHSequenceOfCurveElementPurposeMember(*args))

    def Array1(self) -> "StepElement_Array1OfHSequenceOfCurveElementPurposeMember const &":
        return _StepElement.StepElement_HArray1OfHSequenceOfCurveElementPurposeMember_Array1(self)

    def ChangeArray1(self) -> "StepElement_Array1OfHSequenceOfCurveElementPurposeMember &":
        return _StepElement.StepElement_HArray1OfHSequenceOfCurveElementPurposeMember_ChangeArray1(self)


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

    __swig_destroy__ = _StepElement.delete_StepElement_HArray1OfHSequenceOfCurveElementPurposeMember

# Register StepElement_HArray1OfHSequenceOfCurveElementPurposeMember in _StepElement:
_StepElement.StepElement_HArray1OfHSequenceOfCurveElementPurposeMember_swigregister(StepElement_HArray1OfHSequenceOfCurveElementPurposeMember)

class StepElement_HArray1OfSurfaceSection(StepElement_Array1OfSurfaceSection, 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):
        _StepElement.StepElement_HArray1OfSurfaceSection_swiginit(self, _StepElement.new_StepElement_HArray1OfSurfaceSection(*args))

    def Array1(self) -> "StepElement_Array1OfSurfaceSection const &":
        return _StepElement.StepElement_HArray1OfSurfaceSection_Array1(self)

    def ChangeArray1(self) -> "StepElement_Array1OfSurfaceSection &":
        return _StepElement.StepElement_HArray1OfSurfaceSection_ChangeArray1(self)


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

    __swig_destroy__ = _StepElement.delete_StepElement_HArray1OfSurfaceSection

# Register StepElement_HArray1OfSurfaceSection in _StepElement:
_StepElement.StepElement_HArray1OfSurfaceSection_swigregister(StepElement_HArray1OfSurfaceSection)

class StepElement_HArray1OfCurveElementSectionDefinition(StepElement_Array1OfCurveElementSectionDefinition, 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):
        _StepElement.StepElement_HArray1OfCurveElementSectionDefinition_swiginit(self, _StepElement.new_StepElement_HArray1OfCurveElementSectionDefinition(*args))

    def Array1(self) -> "StepElement_Array1OfCurveElementSectionDefinition const &":
        return _StepElement.StepElement_HArray1OfCurveElementSectionDefinition_Array1(self)

    def ChangeArray1(self) -> "StepElement_Array1OfCurveElementSectionDefinition &":
        return _StepElement.StepElement_HArray1OfCurveElementSectionDefinition_ChangeArray1(self)


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

    __swig_destroy__ = _StepElement.delete_StepElement_HArray1OfCurveElementSectionDefinition

# Register StepElement_HArray1OfCurveElementSectionDefinition in _StepElement:
_StepElement.StepElement_HArray1OfCurveElementSectionDefinition_swigregister(StepElement_HArray1OfCurveElementSectionDefinition)

class StepElement_HArray1OfMeasureOrUnspecifiedValue(StepElement_Array1OfMeasureOrUnspecifiedValue, 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):
        _StepElement.StepElement_HArray1OfMeasureOrUnspecifiedValue_swiginit(self, _StepElement.new_StepElement_HArray1OfMeasureOrUnspecifiedValue(*args))

    def Array1(self) -> "StepElement_Array1OfMeasureOrUnspecifiedValue const &":
        return _StepElement.StepElement_HArray1OfMeasureOrUnspecifiedValue_Array1(self)

    def ChangeArray1(self) -> "StepElement_Array1OfMeasureOrUnspecifiedValue &":
        return _StepElement.StepElement_HArray1OfMeasureOrUnspecifiedValue_ChangeArray1(self)


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

    __swig_destroy__ = _StepElement.delete_StepElement_HArray1OfMeasureOrUnspecifiedValue

# Register StepElement_HArray1OfMeasureOrUnspecifiedValue in _StepElement:
_StepElement.StepElement_HArray1OfMeasureOrUnspecifiedValue_swigregister(StepElement_HArray1OfMeasureOrUnspecifiedValue)

class StepElement_HArray1OfHSequenceOfSurfaceElementPurposeMember(StepElement_Array1OfHSequenceOfSurfaceElementPurposeMember, 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):
        _StepElement.StepElement_HArray1OfHSequenceOfSurfaceElementPurposeMember_swiginit(self, _StepElement.new_StepElement_HArray1OfHSequenceOfSurfaceElementPurposeMember(*args))

    def Array1(self) -> "StepElement_Array1OfHSequenceOfSurfaceElementPurposeMember const &":
        return _StepElement.StepElement_HArray1OfHSequenceOfSurfaceElementPurposeMember_Array1(self)

    def ChangeArray1(self) -> "StepElement_Array1OfHSequenceOfSurfaceElementPurposeMember &":
        return _StepElement.StepElement_HArray1OfHSequenceOfSurfaceElementPurposeMember_ChangeArray1(self)


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

    __swig_destroy__ = _StepElement.delete_StepElement_HArray1OfHSequenceOfSurfaceElementPurposeMember

# Register StepElement_HArray1OfHSequenceOfSurfaceElementPurposeMember in _StepElement:
_StepElement.StepElement_HArray1OfHSequenceOfSurfaceElementPurposeMember_swigregister(StepElement_HArray1OfHSequenceOfSurfaceElementPurposeMember)

class StepElement_HArray1OfVolumeElementPurposeMember(StepElement_Array1OfVolumeElementPurposeMember, 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):
        _StepElement.StepElement_HArray1OfVolumeElementPurposeMember_swiginit(self, _StepElement.new_StepElement_HArray1OfVolumeElementPurposeMember(*args))

    def Array1(self) -> "StepElement_Array1OfVolumeElementPurposeMember const &":
        return _StepElement.StepElement_HArray1OfVolumeElementPurposeMember_Array1(self)

    def ChangeArray1(self) -> "StepElement_Array1OfVolumeElementPurposeMember &":
        return _StepElement.StepElement_HArray1OfVolumeElementPurposeMember_ChangeArray1(self)


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

    __swig_destroy__ = _StepElement.delete_StepElement_HArray1OfVolumeElementPurposeMember

# Register StepElement_HArray1OfVolumeElementPurposeMember in _StepElement:
_StepElement.StepElement_HArray1OfVolumeElementPurposeMember_swigregister(StepElement_HArray1OfVolumeElementPurposeMember)

class StepElement_HArray1OfCurveElementEndReleasePacket(StepElement_Array1OfCurveElementEndReleasePacket, 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):
        _StepElement.StepElement_HArray1OfCurveElementEndReleasePacket_swiginit(self, _StepElement.new_StepElement_HArray1OfCurveElementEndReleasePacket(*args))

    def Array1(self) -> "StepElement_Array1OfCurveElementEndReleasePacket const &":
        return _StepElement.StepElement_HArray1OfCurveElementEndReleasePacket_Array1(self)

    def ChangeArray1(self) -> "StepElement_Array1OfCurveElementEndReleasePacket &":
        return _StepElement.StepElement_HArray1OfCurveElementEndReleasePacket_ChangeArray1(self)


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

    __swig_destroy__ = _StepElement.delete_StepElement_HArray1OfCurveElementEndReleasePacket

# Register StepElement_HArray1OfCurveElementEndReleasePacket in _StepElement:
_StepElement.StepElement_HArray1OfCurveElementEndReleasePacket_swigregister(StepElement_HArray1OfCurveElementEndReleasePacket)

class StepElement_HArray2OfSurfaceElementPurposeMember(StepElement_Array2OfSurfaceElementPurposeMember, 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):
        _StepElement.StepElement_HArray2OfSurfaceElementPurposeMember_swiginit(self, _StepElement.new_StepElement_HArray2OfSurfaceElementPurposeMember(*args))

    def Array2(self) -> "StepElement_Array2OfSurfaceElementPurposeMember const &":
        return _StepElement.StepElement_HArray2OfSurfaceElementPurposeMember_Array2(self)

    def ChangeArray2(self) -> "StepElement_Array2OfSurfaceElementPurposeMember &":
        return _StepElement.StepElement_HArray2OfSurfaceElementPurposeMember_ChangeArray2(self)


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

    __swig_destroy__ = _StepElement.delete_StepElement_HArray2OfSurfaceElementPurposeMember

# Register StepElement_HArray2OfSurfaceElementPurposeMember in _StepElement:
_StepElement.StepElement_HArray2OfSurfaceElementPurposeMember_swigregister(StepElement_HArray2OfSurfaceElementPurposeMember)

class StepElement_HArray2OfSurfaceElementPurpose(StepElement_Array2OfSurfaceElementPurpose, 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):
        _StepElement.StepElement_HArray2OfSurfaceElementPurpose_swiginit(self, _StepElement.new_StepElement_HArray2OfSurfaceElementPurpose(*args))

    def Array2(self) -> "StepElement_Array2OfSurfaceElementPurpose const &":
        return _StepElement.StepElement_HArray2OfSurfaceElementPurpose_Array2(self)

    def ChangeArray2(self) -> "StepElement_Array2OfSurfaceElementPurpose &":
        return _StepElement.StepElement_HArray2OfSurfaceElementPurpose_ChangeArray2(self)


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

    __swig_destroy__ = _StepElement.delete_StepElement_HArray2OfSurfaceElementPurpose

# Register StepElement_HArray2OfSurfaceElementPurpose in _StepElement:
_StepElement.StepElement_HArray2OfSurfaceElementPurpose_swigregister(StepElement_HArray2OfSurfaceElementPurpose)

class StepElement_HArray2OfCurveElementPurposeMember(StepElement_Array2OfCurveElementPurposeMember, 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):
        _StepElement.StepElement_HArray2OfCurveElementPurposeMember_swiginit(self, _StepElement.new_StepElement_HArray2OfCurveElementPurposeMember(*args))

    def Array2(self) -> "StepElement_Array2OfCurveElementPurposeMember const &":
        return _StepElement.StepElement_HArray2OfCurveElementPurposeMember_Array2(self)

    def ChangeArray2(self) -> "StepElement_Array2OfCurveElementPurposeMember &":
        return _StepElement.StepElement_HArray2OfCurveElementPurposeMember_ChangeArray2(self)


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

    __swig_destroy__ = _StepElement.delete_StepElement_HArray2OfCurveElementPurposeMember

# Register StepElement_HArray2OfCurveElementPurposeMember in _StepElement:
_StepElement.StepElement_HArray2OfCurveElementPurposeMember_swigregister(StepElement_HArray2OfCurveElementPurposeMember)

class StepElement_HSequenceOfCurveElementSectionDefinition(StepElement_SequenceOfCurveElementSectionDefinition, 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):
        _StepElement.StepElement_HSequenceOfCurveElementSectionDefinition_swiginit(self, _StepElement.new_StepElement_HSequenceOfCurveElementSectionDefinition(*args))

    def Sequence(self) -> "StepElement_SequenceOfCurveElementSectionDefinition const &":
        return _StepElement.StepElement_HSequenceOfCurveElementSectionDefinition_Sequence(self)

    def Append(self, *args) -> "void":
        return _StepElement.StepElement_HSequenceOfCurveElementSectionDefinition_Append(self, *args)

    def ChangeSequence(self) -> "StepElement_SequenceOfCurveElementSectionDefinition &":
        return _StepElement.StepElement_HSequenceOfCurveElementSectionDefinition_ChangeSequence(self)


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

    __swig_destroy__ = _StepElement.delete_StepElement_HSequenceOfCurveElementSectionDefinition

# Register StepElement_HSequenceOfCurveElementSectionDefinition in _StepElement:
_StepElement.StepElement_HSequenceOfCurveElementSectionDefinition_swigregister(StepElement_HSequenceOfCurveElementSectionDefinition)

class StepElement_HSequenceOfCurveElementPurposeMember(StepElement_SequenceOfCurveElementPurposeMember, 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):
        _StepElement.StepElement_HSequenceOfCurveElementPurposeMember_swiginit(self, _StepElement.new_StepElement_HSequenceOfCurveElementPurposeMember(*args))

    def Sequence(self) -> "StepElement_SequenceOfCurveElementPurposeMember const &":
        return _StepElement.StepElement_HSequenceOfCurveElementPurposeMember_Sequence(self)

    def Append(self, *args) -> "void":
        return _StepElement.StepElement_HSequenceOfCurveElementPurposeMember_Append(self, *args)

    def ChangeSequence(self) -> "StepElement_SequenceOfCurveElementPurposeMember &":
        return _StepElement.StepElement_HSequenceOfCurveElementPurposeMember_ChangeSequence(self)


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

    __swig_destroy__ = _StepElement.delete_StepElement_HSequenceOfCurveElementPurposeMember

# Register StepElement_HSequenceOfCurveElementPurposeMember in _StepElement:
_StepElement.StepElement_HSequenceOfCurveElementPurposeMember_swigregister(StepElement_HSequenceOfCurveElementPurposeMember)

class StepElement_HSequenceOfElementMaterial(StepElement_SequenceOfElementMaterial, 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):
        _StepElement.StepElement_HSequenceOfElementMaterial_swiginit(self, _StepElement.new_StepElement_HSequenceOfElementMaterial(*args))

    def Sequence(self) -> "StepElement_SequenceOfElementMaterial const &":
        return _StepElement.StepElement_HSequenceOfElementMaterial_Sequence(self)

    def Append(self, *args) -> "void":
        return _StepElement.StepElement_HSequenceOfElementMaterial_Append(self, *args)

    def ChangeSequence(self) -> "StepElement_SequenceOfElementMaterial &":
        return _StepElement.StepElement_HSequenceOfElementMaterial_ChangeSequence(self)


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

    __swig_destroy__ = _StepElement.delete_StepElement_HSequenceOfElementMaterial

# Register StepElement_HSequenceOfElementMaterial in _StepElement:
_StepElement.StepElement_HSequenceOfElementMaterial_swigregister(StepElement_HSequenceOfElementMaterial)

class StepElement_HSequenceOfSurfaceElementPurposeMember(StepElement_SequenceOfSurfaceElementPurposeMember, 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):
        _StepElement.StepElement_HSequenceOfSurfaceElementPurposeMember_swiginit(self, _StepElement.new_StepElement_HSequenceOfSurfaceElementPurposeMember(*args))

    def Sequence(self) -> "StepElement_SequenceOfSurfaceElementPurposeMember const &":
        return _StepElement.StepElement_HSequenceOfSurfaceElementPurposeMember_Sequence(self)

    def Append(self, *args) -> "void":
        return _StepElement.StepElement_HSequenceOfSurfaceElementPurposeMember_Append(self, *args)

    def ChangeSequence(self) -> "StepElement_SequenceOfSurfaceElementPurposeMember &":
        return _StepElement.StepElement_HSequenceOfSurfaceElementPurposeMember_ChangeSequence(self)


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

    __swig_destroy__ = _StepElement.delete_StepElement_HSequenceOfSurfaceElementPurposeMember

# Register StepElement_HSequenceOfSurfaceElementPurposeMember in _StepElement:
_StepElement.StepElement_HSequenceOfSurfaceElementPurposeMember_swigregister(StepElement_HSequenceOfSurfaceElementPurposeMember)





