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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

# Register SwigPyIterator in _STEPConstruct:
_STEPConstruct.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 _STEPConstruct.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.Transfer
import OCC.Core.Message
import OCC.Core.TCollection
import OCC.Core.OSD
import OCC.Core.TColStd
import OCC.Core.Interface
import OCC.Core.MoniTool
import OCC.Core.TopoDS
import OCC.Core.TopAbs
import OCC.Core.TopLoc
import OCC.Core.gp
import OCC.Core.StepShape
import OCC.Core.StepGeom
import OCC.Core.StepData
import OCC.Core.Resource
import OCC.Core.StepRepr
import OCC.Core.StepBasic
import OCC.Core.StepAP203
import OCC.Core.XSControl
import OCC.Core.IFSelect
import OCC.Core.TopTools
import OCC.Core.Geom
import OCC.Core.GeomAbs
import OCC.Core.TColgp
import OCC.Core.Geom2d
import OCC.Core.StepVisual
import OCC.Core.Quantity

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



class STEPConstruct_DataMapOfAsciiStringTransient(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_DataMap< TCollection_AsciiString,opencascade::handle< Standard_Transient >,TCollection_AsciiString >::iterator":
        return _STEPConstruct.STEPConstruct_DataMapOfAsciiStringTransient_begin(self)

    def end(self) -> "NCollection_DataMap< TCollection_AsciiString,opencascade::handle< Standard_Transient >,TCollection_AsciiString >::iterator":
        return _STEPConstruct.STEPConstruct_DataMapOfAsciiStringTransient_end(self)

    def cbegin(self) -> "NCollection_DataMap< TCollection_AsciiString,opencascade::handle< Standard_Transient >,TCollection_AsciiString >::const_iterator":
        return _STEPConstruct.STEPConstruct_DataMapOfAsciiStringTransient_cbegin(self)

    def cend(self) -> "NCollection_DataMap< TCollection_AsciiString,opencascade::handle< Standard_Transient >,TCollection_AsciiString >::const_iterator":
        return _STEPConstruct.STEPConstruct_DataMapOfAsciiStringTransient_cend(self)

    def __init__(self, *args):
        _STEPConstruct.STEPConstruct_DataMapOfAsciiStringTransient_swiginit(self, _STEPConstruct.new_STEPConstruct_DataMapOfAsciiStringTransient(*args))

    def Exchange(self, theOther: "STEPConstruct_DataMapOfAsciiStringTransient") -> "void":
        return _STEPConstruct.STEPConstruct_DataMapOfAsciiStringTransient_Exchange(self, theOther)

    def Assign(self, theOther: "STEPConstruct_DataMapOfAsciiStringTransient") -> "NCollection_DataMap< TCollection_AsciiString,opencascade::handle< Standard_Transient >,TCollection_AsciiString > &":
        return _STEPConstruct.STEPConstruct_DataMapOfAsciiStringTransient_Assign(self, theOther)

    def Set(self, theOther: "STEPConstruct_DataMapOfAsciiStringTransient") -> "NCollection_DataMap< TCollection_AsciiString,opencascade::handle< Standard_Transient >,TCollection_AsciiString > &":
        return _STEPConstruct.STEPConstruct_DataMapOfAsciiStringTransient_Set(self, theOther)

    def ReSize(self, N: "Standard_Integer const") -> "void":
        return _STEPConstruct.STEPConstruct_DataMapOfAsciiStringTransient_ReSize(self, N)

    def Bind(self, theKey: "TCollection_AsciiString", theItem: "opencascade::handle< Standard_Transient > const &") -> "Standard_Boolean":
        return _STEPConstruct.STEPConstruct_DataMapOfAsciiStringTransient_Bind(self, theKey, theItem)

    def Bound(self, theKey: "TCollection_AsciiString", theItem: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< Standard_Transient > *":
        return _STEPConstruct.STEPConstruct_DataMapOfAsciiStringTransient_Bound(self, theKey, theItem)

    def IsBound(self, theKey: "TCollection_AsciiString") -> "Standard_Boolean":
        return _STEPConstruct.STEPConstruct_DataMapOfAsciiStringTransient_IsBound(self, theKey)

    def UnBind(self, theKey: "TCollection_AsciiString") -> "Standard_Boolean":
        return _STEPConstruct.STEPConstruct_DataMapOfAsciiStringTransient_UnBind(self, theKey)

    def Seek(self, theKey: "TCollection_AsciiString") -> "opencascade::handle< Standard_Transient > const *":
        return _STEPConstruct.STEPConstruct_DataMapOfAsciiStringTransient_Seek(self, theKey)

    def Find(self, *args) -> "Standard_Boolean":
        return _STEPConstruct.STEPConstruct_DataMapOfAsciiStringTransient_Find(self, *args)

    def ChangeSeek(self, theKey: "TCollection_AsciiString") -> "opencascade::handle< Standard_Transient > *":
        return _STEPConstruct.STEPConstruct_DataMapOfAsciiStringTransient_ChangeSeek(self, theKey)

    def ChangeFind(self, theKey: "TCollection_AsciiString") -> "opencascade::handle< Standard_Transient > &":
        return _STEPConstruct.STEPConstruct_DataMapOfAsciiStringTransient_ChangeFind(self, theKey)

    def __call__(self, *args) -> "opencascade::handle< Standard_Transient > &":
        return _STEPConstruct.STEPConstruct_DataMapOfAsciiStringTransient___call__(self, *args)

    def Clear(self, *args) -> "void":
        return _STEPConstruct.STEPConstruct_DataMapOfAsciiStringTransient_Clear(self, *args)
    __swig_destroy__ = _STEPConstruct.delete_STEPConstruct_DataMapOfAsciiStringTransient

    def Size(self) -> "Standard_Integer":
        return _STEPConstruct.STEPConstruct_DataMapOfAsciiStringTransient_Size(self)

# Register STEPConstruct_DataMapOfAsciiStringTransient in _STEPConstruct:
_STEPConstruct.STEPConstruct_DataMapOfAsciiStringTransient_swigregister(STEPConstruct_DataMapOfAsciiStringTransient)

class STEPConstruct_DataMapOfPointTransient(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_DataMap< gp_Pnt,opencascade::handle< Standard_Transient >,STEPConstruct_PointHasher >::iterator":
        return _STEPConstruct.STEPConstruct_DataMapOfPointTransient_begin(self)

    def end(self) -> "NCollection_DataMap< gp_Pnt,opencascade::handle< Standard_Transient >,STEPConstruct_PointHasher >::iterator":
        return _STEPConstruct.STEPConstruct_DataMapOfPointTransient_end(self)

    def cbegin(self) -> "NCollection_DataMap< gp_Pnt,opencascade::handle< Standard_Transient >,STEPConstruct_PointHasher >::const_iterator":
        return _STEPConstruct.STEPConstruct_DataMapOfPointTransient_cbegin(self)

    def cend(self) -> "NCollection_DataMap< gp_Pnt,opencascade::handle< Standard_Transient >,STEPConstruct_PointHasher >::const_iterator":
        return _STEPConstruct.STEPConstruct_DataMapOfPointTransient_cend(self)

    def __init__(self, *args):
        _STEPConstruct.STEPConstruct_DataMapOfPointTransient_swiginit(self, _STEPConstruct.new_STEPConstruct_DataMapOfPointTransient(*args))

    def Exchange(self, theOther: "STEPConstruct_DataMapOfPointTransient") -> "void":
        return _STEPConstruct.STEPConstruct_DataMapOfPointTransient_Exchange(self, theOther)

    def Assign(self, theOther: "STEPConstruct_DataMapOfPointTransient") -> "NCollection_DataMap< gp_Pnt,opencascade::handle< Standard_Transient >,STEPConstruct_PointHasher > &":
        return _STEPConstruct.STEPConstruct_DataMapOfPointTransient_Assign(self, theOther)

    def Set(self, theOther: "STEPConstruct_DataMapOfPointTransient") -> "NCollection_DataMap< gp_Pnt,opencascade::handle< Standard_Transient >,STEPConstruct_PointHasher > &":
        return _STEPConstruct.STEPConstruct_DataMapOfPointTransient_Set(self, theOther)

    def ReSize(self, N: "Standard_Integer const") -> "void":
        return _STEPConstruct.STEPConstruct_DataMapOfPointTransient_ReSize(self, N)

    def Bind(self, theKey: "gp_Pnt", theItem: "opencascade::handle< Standard_Transient > const &") -> "Standard_Boolean":
        return _STEPConstruct.STEPConstruct_DataMapOfPointTransient_Bind(self, theKey, theItem)

    def Bound(self, theKey: "gp_Pnt", theItem: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< Standard_Transient > *":
        return _STEPConstruct.STEPConstruct_DataMapOfPointTransient_Bound(self, theKey, theItem)

    def IsBound(self, theKey: "gp_Pnt") -> "Standard_Boolean":
        return _STEPConstruct.STEPConstruct_DataMapOfPointTransient_IsBound(self, theKey)

    def UnBind(self, theKey: "gp_Pnt") -> "Standard_Boolean":
        return _STEPConstruct.STEPConstruct_DataMapOfPointTransient_UnBind(self, theKey)

    def Seek(self, theKey: "gp_Pnt") -> "opencascade::handle< Standard_Transient > const *":
        return _STEPConstruct.STEPConstruct_DataMapOfPointTransient_Seek(self, theKey)

    def Find(self, *args) -> "Standard_Boolean":
        return _STEPConstruct.STEPConstruct_DataMapOfPointTransient_Find(self, *args)

    def ChangeSeek(self, theKey: "gp_Pnt") -> "opencascade::handle< Standard_Transient > *":
        return _STEPConstruct.STEPConstruct_DataMapOfPointTransient_ChangeSeek(self, theKey)

    def ChangeFind(self, theKey: "gp_Pnt") -> "opencascade::handle< Standard_Transient > &":
        return _STEPConstruct.STEPConstruct_DataMapOfPointTransient_ChangeFind(self, theKey)

    def __call__(self, *args) -> "opencascade::handle< Standard_Transient > &":
        return _STEPConstruct.STEPConstruct_DataMapOfPointTransient___call__(self, *args)

    def Clear(self, *args) -> "void":
        return _STEPConstruct.STEPConstruct_DataMapOfPointTransient_Clear(self, *args)
    __swig_destroy__ = _STEPConstruct.delete_STEPConstruct_DataMapOfPointTransient

    def Size(self) -> "Standard_Integer":
        return _STEPConstruct.STEPConstruct_DataMapOfPointTransient_Size(self)

# Register STEPConstruct_DataMapOfPointTransient in _STEPConstruct:
_STEPConstruct.STEPConstruct_DataMapOfPointTransient_swigregister(STEPConstruct_DataMapOfPointTransient)

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

    @staticmethod
    def FindCDSR(*args) -> "Standard_Boolean":
        r"""
        Find cdsr correcponding to the component in the specified assembly.

        Parameters
        ----------
        ComponentBinder: Transfer_Binder
        AssemblySDR: StepShape_ShapeDefinitionRepresentation
        ComponentCDSR: StepShape_ContextDependentShapeRepresentation

        Returns
        -------
        bool

        """
        return _STEPConstruct.stepconstruct_FindCDSR(*args)

    @staticmethod
    def FindEntity(*args) -> "opencascade::handle< StepRepr_RepresentationItem >":
        r"""
        Returns step entity of the (sub)type of representationitem which is a result of the tranalation of the shape, or null if no result is recorded.

        Parameters
        ----------
        FinderProcess: Transfer_FinderProcess
        Shape: TopoDS_Shape

        Returns
        -------
        opencascade::handle<StepRepr_RepresentationItem>
        The same as above, but in the case if item not found, repeats search on the same shape without location. the loc corresponds to the location with which result is found (either location of the shape, or null).

        Parameters
        ----------
        FinderProcess: Transfer_FinderProcess
        Shape: TopoDS_Shape
        Loc: TopLoc_Location

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

        """
        return _STEPConstruct.stepconstruct_FindEntity(*args)

    @staticmethod
    def FindShape(*args) -> "TopoDS_Shape":
        r"""
        Returns shape resulting from given step entity (null if not mapped).

        Parameters
        ----------
        TransientProcess: Transfer_TransientProcess
        item: StepRepr_RepresentationItem

        Returns
        -------
        TopoDS_Shape

        """
        return _STEPConstruct.stepconstruct_FindShape(*args)

    __repr__ = _dumps_object


    def __init__(self):
        _STEPConstruct.stepconstruct_swiginit(self, _STEPConstruct.new_stepconstruct())
    __swig_destroy__ = _STEPConstruct.delete_stepconstruct

# Register stepconstruct in _STEPConstruct:
_STEPConstruct.stepconstruct_swigregister(stepconstruct)

def stepconstruct_FindCDSR(*args) -> "Standard_Boolean":
    r"""
    Find cdsr correcponding to the component in the specified assembly.

    Parameters
    ----------
    ComponentBinder: Transfer_Binder
    AssemblySDR: StepShape_ShapeDefinitionRepresentation
    ComponentCDSR: StepShape_ContextDependentShapeRepresentation

    Returns
    -------
    bool

    """
    return _STEPConstruct.stepconstruct_FindCDSR(*args)

def stepconstruct_FindEntity(*args) -> "opencascade::handle< StepRepr_RepresentationItem >":
    r"""
    Returns step entity of the (sub)type of representationitem which is a result of the tranalation of the shape, or null if no result is recorded.

    Parameters
    ----------
    FinderProcess: Transfer_FinderProcess
    Shape: TopoDS_Shape

    Returns
    -------
    opencascade::handle<StepRepr_RepresentationItem>
    The same as above, but in the case if item not found, repeats search on the same shape without location. the loc corresponds to the location with which result is found (either location of the shape, or null).

    Parameters
    ----------
    FinderProcess: Transfer_FinderProcess
    Shape: TopoDS_Shape
    Loc: TopLoc_Location

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

    """
    return _STEPConstruct.stepconstruct_FindEntity(*args)

def stepconstruct_FindShape(*args) -> "TopoDS_Shape":
    r"""
    Returns shape resulting from given step entity (null if not mapped).

    Parameters
    ----------
    TransientProcess: Transfer_TransientProcess
    item: StepRepr_RepresentationItem

    Returns
    -------
    TopoDS_Shape

    """
    return _STEPConstruct.stepconstruct_FindShape(*args)

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

    def __init__(self, *args):
        r"""
        Creates tool and fills constant fields.

        Returns
        -------
        None

        """
        _STEPConstruct.STEPConstruct_AP203Context_swiginit(self, _STEPConstruct.new_STEPConstruct_AP203Context(*args))

    def Clear(self, *args) -> "void":
        r"""
        Clears all fields describing entities specific to each part.

        Returns
        -------
        None

        """
        return _STEPConstruct.STEPConstruct_AP203Context_Clear(self, *args)

    def DefaultApproval(self, *args) -> "opencascade::handle< StepBasic_Approval >":
        r"""
        Returns default approval entity which is used when no other data are available.

        Returns
        -------
        opencascade::handle<StepBasic_Approval>

        """
        return _STEPConstruct.STEPConstruct_AP203Context_DefaultApproval(self, *args)

    def DefaultDateAndTime(self, *args) -> "opencascade::handle< StepBasic_DateAndTime >":
        r"""
        Returns default date_and_time entity which is used when no other data are available.

        Returns
        -------
        opencascade::handle<StepBasic_DateAndTime>

        """
        return _STEPConstruct.STEPConstruct_AP203Context_DefaultDateAndTime(self, *args)

    def DefaultPersonAndOrganization(self, *args) -> "opencascade::handle< StepBasic_PersonAndOrganization >":
        r"""
        Returns default person_and_organization entity which is used when no other data are available.

        Returns
        -------
        opencascade::handle<StepBasic_PersonAndOrganization>

        """
        return _STEPConstruct.STEPConstruct_AP203Context_DefaultPersonAndOrganization(self, *args)

    def DefaultSecurityClassificationLevel(self, *args) -> "opencascade::handle< StepBasic_SecurityClassificationLevel >":
        r"""
        Returns default security_classification_level entity which is used when no other data are available.

        Returns
        -------
        opencascade::handle<StepBasic_SecurityClassificationLevel>

        """
        return _STEPConstruct.STEPConstruct_AP203Context_DefaultSecurityClassificationLevel(self, *args)

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

        Returns
        -------
        opencascade::handle<StepAP203_CcDesignApproval>

        """
        return _STEPConstruct.STEPConstruct_AP203Context_GetApproval(self, *args)

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

        Returns
        -------
        opencascade::handle<StepBasic_ApprovalDateTime>

        """
        return _STEPConstruct.STEPConstruct_AP203Context_GetApprovalDateTime(self, *args)

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

        Returns
        -------
        opencascade::handle<StepBasic_ApprovalPersonOrganization>

        """
        return _STEPConstruct.STEPConstruct_AP203Context_GetApprover(self, *args)

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

        Returns
        -------
        opencascade::handle<StepAP203_CcDesignDateAndTimeAssignment>

        """
        return _STEPConstruct.STEPConstruct_AP203Context_GetClassificationDate(self, *args)

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

        Returns
        -------
        opencascade::handle<StepAP203_CcDesignPersonAndOrganizationAssignment>

        """
        return _STEPConstruct.STEPConstruct_AP203Context_GetClassificationOfficer(self, *args)

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

        Returns
        -------
        opencascade::handle<StepAP203_CcDesignDateAndTimeAssignment>

        """
        return _STEPConstruct.STEPConstruct_AP203Context_GetCreationDate(self, *args)

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

        Returns
        -------
        opencascade::handle<StepAP203_CcDesignPersonAndOrganizationAssignment>

        """
        return _STEPConstruct.STEPConstruct_AP203Context_GetCreator(self, *args)

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

        Returns
        -------
        opencascade::handle<StepAP203_CcDesignPersonAndOrganizationAssignment>

        """
        return _STEPConstruct.STEPConstruct_AP203Context_GetDesignOwner(self, *args)

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

        Returns
        -------
        opencascade::handle<StepAP203_CcDesignPersonAndOrganizationAssignment>

        """
        return _STEPConstruct.STEPConstruct_AP203Context_GetDesignSupplier(self, *args)

    def GetProductCategoryRelationship(self, *args) -> "opencascade::handle< StepBasic_ProductCategoryRelationship >":
        r"""
        Return entities (roots) instantiated for the part by method init.

        Returns
        -------
        opencascade::handle<StepBasic_ProductCategoryRelationship>

        """
        return _STEPConstruct.STEPConstruct_AP203Context_GetProductCategoryRelationship(self, *args)

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

        Returns
        -------
        opencascade::handle<StepAP203_CcDesignSecurityClassification>

        """
        return _STEPConstruct.STEPConstruct_AP203Context_GetSecurity(self, *args)

    def Init(self, *args) -> "void":
        r"""
        Takes sdr (part) which brings all standard data around part (common for ap203 and ap214) and creates all the additional entities required for ap203.

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

        Returns
        -------
        None
        Takes tool which describes standard data around part (common for ap203 and ap214) and creates all the additional entities required for ap203 //! the created entities can be obtained by calls to methods getcreator(), getdesignowner(), getdesignsupplier(), getclassificationofficer(), getsecurity(), getcreationdate(), getclassificationdate(), getapproval(), getapprover(), getapprovaldatetime(), getproductcategoryrelationship().

        Parameters
        ----------
        SDRTool: STEPConstruct_Part

        Returns
        -------
        None
        Takes nauo which describes assembly link to component and creates the security_classification entity associated to it as required by the ap203 //! instantiated (or existing previously) entities concerned can be obtained by calls to methods getclassificationofficer(), getsecurity(), getclassificationdate(), getapproval(), getapprover(), getapprovaldatetime() takes tool which describes standard data around part (common for ap203 and ap214) and takes from model (or creates if missing) all the additional entities required by ap203.

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

        Returns
        -------
        None

        """
        return _STEPConstruct.STEPConstruct_AP203Context_Init(self, *args)

    def InitApprovalRequisites(self, *args) -> "void":
        r"""
        Initializes approver and approvaldatetime entities according to approval entity.

        Returns
        -------
        None

        """
        return _STEPConstruct.STEPConstruct_AP203Context_InitApprovalRequisites(self, *args)

    def InitAssembly(self, *args) -> "void":
        r"""
        Initializes all missing data which are required for assembly.

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

        Returns
        -------
        None

        """
        return _STEPConstruct.STEPConstruct_AP203Context_InitAssembly(self, *args)

    def InitRoles(self, *args) -> "void":
        r"""
        Initializes constant fields (shared entities).

        Returns
        -------
        None

        """
        return _STEPConstruct.STEPConstruct_AP203Context_InitRoles(self, *args)

    def InitSecurityRequisites(self, *args) -> "void":
        r"""
        Initializes classificationofficer and classificationdate entities according to security entity.

        Returns
        -------
        None

        """
        return _STEPConstruct.STEPConstruct_AP203Context_InitSecurityRequisites(self, *args)

    def RoleApprover(self, *args) -> "opencascade::handle< StepBasic_ApprovalRole >":
        r"""
        Return predefined personandorganizationrole and datetimerole entities named 'creator', 'design owner', 'design supplier', 'classification officer', 'creation date', 'classification date', 'approver'.

        Returns
        -------
        opencascade::handle<StepBasic_ApprovalRole>

        """
        return _STEPConstruct.STEPConstruct_AP203Context_RoleApprover(self, *args)

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

        Returns
        -------
        opencascade::handle<StepBasic_DateTimeRole>

        """
        return _STEPConstruct.STEPConstruct_AP203Context_RoleClassificationDate(self, *args)

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

        Returns
        -------
        opencascade::handle<StepBasic_PersonAndOrganizationRole>

        """
        return _STEPConstruct.STEPConstruct_AP203Context_RoleClassificationOfficer(self, *args)

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

        Returns
        -------
        opencascade::handle<StepBasic_DateTimeRole>

        """
        return _STEPConstruct.STEPConstruct_AP203Context_RoleCreationDate(self, *args)

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

        Returns
        -------
        opencascade::handle<StepBasic_PersonAndOrganizationRole>

        """
        return _STEPConstruct.STEPConstruct_AP203Context_RoleCreator(self, *args)

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

        Returns
        -------
        opencascade::handle<StepBasic_PersonAndOrganizationRole>

        """
        return _STEPConstruct.STEPConstruct_AP203Context_RoleDesignOwner(self, *args)

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

        Returns
        -------
        opencascade::handle<StepBasic_PersonAndOrganizationRole>

        """
        return _STEPConstruct.STEPConstruct_AP203Context_RoleDesignSupplier(self, *args)

    def SetDefaultApproval(self, *args) -> "void":
        r"""
        Sets default approval.

        Parameters
        ----------
        app: StepBasic_Approval

        Returns
        -------
        None

        """
        return _STEPConstruct.STEPConstruct_AP203Context_SetDefaultApproval(self, *args)

    def SetDefaultDateAndTime(self, *args) -> "void":
        r"""
        Sets default date_and_time entity.

        Parameters
        ----------
        dt: StepBasic_DateAndTime

        Returns
        -------
        None

        """
        return _STEPConstruct.STEPConstruct_AP203Context_SetDefaultDateAndTime(self, *args)

    def SetDefaultPersonAndOrganization(self, *args) -> "void":
        r"""
        Sets default person_and_organization entity.

        Parameters
        ----------
        po: StepBasic_PersonAndOrganization

        Returns
        -------
        None

        """
        return _STEPConstruct.STEPConstruct_AP203Context_SetDefaultPersonAndOrganization(self, *args)

    def SetDefaultSecurityClassificationLevel(self, *args) -> "void":
        r"""
        Sets default security_classification_level.

        Parameters
        ----------
        sc: StepBasic_SecurityClassificationLevel

        Returns
        -------
        None

        """
        return _STEPConstruct.STEPConstruct_AP203Context_SetDefaultSecurityClassificationLevel(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _STEPConstruct.delete_STEPConstruct_AP203Context

# Register STEPConstruct_AP203Context in _STEPConstruct:
_STEPConstruct.STEPConstruct_AP203Context_swigregister(STEPConstruct_AP203Context)

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

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

        Returns
        -------
        None

        """
        _STEPConstruct.STEPConstruct_Assembly_swiginit(self, _STEPConstruct.new_STEPConstruct_Assembly(*args))

    @staticmethod
    def CheckSRRReversesNAUO(*args) -> "Standard_Boolean":
        r"""
        Checks whether srr's definition of assembly and component contradicts with nauo definition or not, according to model schema (ap214 or ap203).

        Parameters
        ----------
        theGraph: Interface_Graph
        CDSR: StepShape_ContextDependentShapeRepresentation

        Returns
        -------
        bool

        """
        return _STEPConstruct.STEPConstruct_Assembly_CheckSRRReversesNAUO(*args)

    def GetNAUO(self, *args) -> "opencascade::handle< StepRepr_NextAssemblyUsageOccurrence >":
        r"""
        Returns nauo object describing the assembly link.

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

        """
        return _STEPConstruct.STEPConstruct_Assembly_GetNAUO(self, *args)

    def Init(self, *args) -> "void":
        r"""
        Initialises with starting values ax0 : origin axis (typically, standard xyz) loc : location to which place the item makes a mappeditem resulting value is returned by itemvalue.

        Parameters
        ----------
        aSR: StepShape_ShapeDefinitionRepresentation
        SDR0: StepShape_ShapeDefinitionRepresentation
        Ax0: StepGeom_Axis2Placement3d
        Loc: StepGeom_Axis2Placement3d

        Returns
        -------
        None

        """
        return _STEPConstruct.STEPConstruct_Assembly_Init(self, *args)

    def ItemLocation(self, *args) -> "opencascade::handle< StepGeom_Axis2Placement3d >":
        r"""
        Returns the location of the item, computed from starting aloc.

        Returns
        -------
        opencascade::handle<StepGeom_Axis2Placement3d>

        """
        return _STEPConstruct.STEPConstruct_Assembly_ItemLocation(self, *args)

    def ItemValue(self, *args) -> "opencascade::handle< Standard_Transient >":
        r"""
        Returns the value if no make... has been called, returns the starting sr.

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

        """
        return _STEPConstruct.STEPConstruct_Assembly_ItemValue(self, *args)

    def MakeRelationship(self, *args) -> "void":
        r"""
        Make a (shaperepresentationrelationship,...withtransformation) resulting value is returned by itemvalue.

        Returns
        -------
        None

        """
        return _STEPConstruct.STEPConstruct_Assembly_MakeRelationship(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _STEPConstruct.delete_STEPConstruct_Assembly

# Register STEPConstruct_Assembly in _STEPConstruct:
_STEPConstruct.STEPConstruct_Assembly_swigregister(STEPConstruct_Assembly)

def STEPConstruct_Assembly_CheckSRRReversesNAUO(*args) -> "Standard_Boolean":
    r"""
    Checks whether srr's definition of assembly and component contradicts with nauo definition or not, according to model schema (ap214 or ap203).

    Parameters
    ----------
    theGraph: Interface_Graph
    CDSR: StepShape_ContextDependentShapeRepresentation

    Returns
    -------
    bool

    """
    return _STEPConstruct.STEPConstruct_Assembly_CheckSRRReversesNAUO(*args)

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

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

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

        Parameters
        ----------
        aStepModel: StepData_StepModel

        Returns
        -------
        None

        """
        _STEPConstruct.STEPConstruct_ContextTool_swiginit(self, _STEPConstruct.new_STEPConstruct_ContextTool(*args))

    def AP203Context(self, *args) -> "STEPConstruct_AP203Context &":
        r"""
        Returns tool which maintains context specific for ap203.

        Returns
        -------
        STEPConstruct_AP203Context

        """
        return _STEPConstruct.STEPConstruct_ContextTool_AP203Context(self, *args)

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

        Parameters
        ----------
        enforce: bool,optional
        	default value is Standard_False

        Returns
        -------
        None

        """
        return _STEPConstruct.STEPConstruct_ContextTool_AddAPD(self, *args)

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

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

        """
        return _STEPConstruct.STEPConstruct_ContextTool_GetACname(self, *args)

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

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

        """
        return _STEPConstruct.STEPConstruct_ContextTool_GetACschemaName(self, *args)

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

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

        """
        return _STEPConstruct.STEPConstruct_ContextTool_GetACstatus(self, *args)

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

        Returns
        -------
        int

        """
        return _STEPConstruct.STEPConstruct_ContextTool_GetACyear(self, *args)

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

        Returns
        -------
        opencascade::handle<StepBasic_ApplicationProtocolDefinition>

        """
        return _STEPConstruct.STEPConstruct_ContextTool_GetAPD(self, *args)

    def GetDefaultAxis(self, *args) -> "opencascade::handle< StepGeom_Axis2Placement3d >":
        r"""
        Returns a default axis placement.

        Returns
        -------
        opencascade::handle<StepGeom_Axis2Placement3d>

        """
        return _STEPConstruct.STEPConstruct_ContextTool_GetDefaultAxis(self, *args)

    def GetProductName(self, *args) -> "opencascade::handle< TCollection_HAsciiString >":
        r"""
        Generates a product name basing on write.step.product.name parameter and current position in the assembly structure.

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

        """
        return _STEPConstruct.STEPConstruct_ContextTool_GetProductName(self, *args)

    def GetRootsForAssemblyLink(self, *args) -> "opencascade::handle< TColStd_HSequenceOfTransient >":
        r"""
        Produces and returns a full list of root entities required for assembly link identified by assembly (including nauo and cdsr).

        Parameters
        ----------
        assembly: STEPConstruct_Assembly

        Returns
        -------
        opencascade::handle<TColStd_HSequenceOfTransient>

        """
        return _STEPConstruct.STEPConstruct_ContextTool_GetRootsForAssemblyLink(self, *args)

    def GetRootsForPart(self, *args) -> "opencascade::handle< TColStd_HSequenceOfTransient >":
        r"""
        Produces and returns a full list of root entities required for part identified by sdrtool (including sdr itself).

        Parameters
        ----------
        SDRTool: STEPConstruct_Part

        Returns
        -------
        opencascade::handle<TColStd_HSequenceOfTransient>

        """
        return _STEPConstruct.STEPConstruct_ContextTool_GetRootsForPart(self, *args)

    def Index(self, *args) -> "Standard_Integer":
        r"""
        Returns current index of assembly component on current level.

        Returns
        -------
        int

        """
        return _STEPConstruct.STEPConstruct_ContextTool_Index(self, *args)

    def IsAP203(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if apd.schema_name is config_control_design.

        Returns
        -------
        bool

        """
        return _STEPConstruct.STEPConstruct_ContextTool_IsAP203(self, *args)

    def IsAP214(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if apd.schema_name is automotive_design.

        Returns
        -------
        bool

        """
        return _STEPConstruct.STEPConstruct_ContextTool_IsAP214(self, *args)

    def IsAP242(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if apd.schema_name is ap242_managed_model_based_3d_engineering.

        Returns
        -------
        bool

        """
        return _STEPConstruct.STEPConstruct_ContextTool_IsAP242(self, *args)

    def Level(self, *args) -> "Standard_Integer":
        r"""
        Returns current assembly level.

        Returns
        -------
        int

        """
        return _STEPConstruct.STEPConstruct_ContextTool_Level(self, *args)

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

        Returns
        -------
        None

        """
        return _STEPConstruct.STEPConstruct_ContextTool_NextIndex(self, *args)

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

        Returns
        -------
        None

        """
        return _STEPConstruct.STEPConstruct_ContextTool_NextLevel(self, *args)

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

        Returns
        -------
        None

        """
        return _STEPConstruct.STEPConstruct_ContextTool_PrevIndex(self, *args)

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

        Returns
        -------
        None

        """
        return _STEPConstruct.STEPConstruct_ContextTool_PrevLevel(self, *args)

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

        Parameters
        ----------
        name: TCollection_HAsciiString

        Returns
        -------
        None

        """
        return _STEPConstruct.STEPConstruct_ContextTool_SetACname(self, *args)

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

        Parameters
        ----------
        schemaName: TCollection_HAsciiString

        Returns
        -------
        None

        """
        return _STEPConstruct.STEPConstruct_ContextTool_SetACschemaName(self, *args)

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

        Parameters
        ----------
        status: TCollection_HAsciiString

        Returns
        -------
        None

        """
        return _STEPConstruct.STEPConstruct_ContextTool_SetACstatus(self, *args)

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

        Parameters
        ----------
        year: int

        Returns
        -------
        None

        """
        return _STEPConstruct.STEPConstruct_ContextTool_SetACyear(self, *args)

    def SetIndex(self, *args) -> "void":
        r"""
        Changes current index of assembly component on current level.

        Parameters
        ----------
        ind: int

        Returns
        -------
        None

        """
        return _STEPConstruct.STEPConstruct_ContextTool_SetIndex(self, *args)

    def SetLevel(self, *args) -> "void":
        r"""
        Changes current assembly level.

        Parameters
        ----------
        lev: int

        Returns
        -------
        None

        """
        return _STEPConstruct.STEPConstruct_ContextTool_SetLevel(self, *args)

    def SetModel(self, *args) -> "void":
        r"""
        Initialize applicationprotocoldefinition by the first entity of that type found in the model.

        Parameters
        ----------
        aStepModel: StepData_StepModel

        Returns
        -------
        None

        """
        return _STEPConstruct.STEPConstruct_ContextTool_SetModel(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _STEPConstruct.delete_STEPConstruct_ContextTool

# Register STEPConstruct_ContextTool in _STEPConstruct:
_STEPConstruct.STEPConstruct_ContextTool_swigregister(STEPConstruct_ContextTool)

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

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

        Returns
        -------
        None

        """
        _STEPConstruct.STEPConstruct_Part_swiginit(self, _STEPConstruct.new_STEPConstruct_Part(*args))

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

        Returns
        -------
        opencascade::handle<StepBasic_ApplicationContext>

        """
        return _STEPConstruct.STEPConstruct_Part_AC(self, *args)

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

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

        """
        return _STEPConstruct.STEPConstruct_Part_ACapplication(self, *args)

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

        Returns
        -------
        bool

        """
        return _STEPConstruct.STEPConstruct_Part_IsDone(self, *args)

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

        Parameters
        ----------
        aShape: StepShape_ShapeRepresentation
        aName: TCollection_HAsciiString
        AC: StepBasic_ApplicationContext

        Returns
        -------
        None

        """
        return _STEPConstruct.STEPConstruct_Part_MakeSDR(self, *args)

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

        Returns
        -------
        opencascade::handle<StepBasic_ProductContext>

        """
        return _STEPConstruct.STEPConstruct_Part_PC(self, *args)

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

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

        """
        return _STEPConstruct.STEPConstruct_Part_PCdisciplineType(self, *args)

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

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

        """
        return _STEPConstruct.STEPConstruct_Part_PCname(self, *args)

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

        Returns
        -------
        opencascade::handle<StepBasic_ProductDefinition>

        """
        return _STEPConstruct.STEPConstruct_Part_PD(self, *args)

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

        Returns
        -------
        opencascade::handle<StepBasic_ProductDefinitionContext>

        """
        return _STEPConstruct.STEPConstruct_Part_PDC(self, *args)

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

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

        """
        return _STEPConstruct.STEPConstruct_Part_PDCname(self, *args)

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

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

        """
        return _STEPConstruct.STEPConstruct_Part_PDCstage(self, *args)

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

        Returns
        -------
        opencascade::handle<StepBasic_ProductDefinitionFormation>

        """
        return _STEPConstruct.STEPConstruct_Part_PDF(self, *args)

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

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

        """
        return _STEPConstruct.STEPConstruct_Part_PDFdescription(self, *args)

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

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

        """
        return _STEPConstruct.STEPConstruct_Part_PDFid(self, *args)

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

        Returns
        -------
        opencascade::handle<StepRepr_ProductDefinitionShape>

        """
        return _STEPConstruct.STEPConstruct_Part_PDS(self, *args)

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

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

        """
        return _STEPConstruct.STEPConstruct_Part_PDSdescription(self, *args)

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

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

        """
        return _STEPConstruct.STEPConstruct_Part_PDSname(self, *args)

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

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

        """
        return _STEPConstruct.STEPConstruct_Part_PDdescription(self, *args)

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

        Returns
        -------
        opencascade::handle<StepBasic_ProductRelatedProductCategory>

        """
        return _STEPConstruct.STEPConstruct_Part_PRPC(self, *args)

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

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

        """
        return _STEPConstruct.STEPConstruct_Part_PRPCdescription(self, *args)

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

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

        """
        return _STEPConstruct.STEPConstruct_Part_PRPCname(self, *args)

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

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

        """
        return _STEPConstruct.STEPConstruct_Part_Pdescription(self, *args)

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

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

        """
        return _STEPConstruct.STEPConstruct_Part_Pid(self, *args)

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

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

        """
        return _STEPConstruct.STEPConstruct_Part_Pname(self, *args)

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

        Returns
        -------
        opencascade::handle<StepBasic_Product>

        """
        return _STEPConstruct.STEPConstruct_Part_Product(self, *args)

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

        Parameters
        ----------
        aShape: StepShape_ShapeDefinitionRepresentation

        Returns
        -------
        None

        """
        return _STEPConstruct.STEPConstruct_Part_ReadSDR(self, *args)

    def SDRValue(self, *args) -> "opencascade::handle< StepShape_ShapeDefinitionRepresentation >":
        r"""
        Returns sdr or null if not done.

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

        """
        return _STEPConstruct.STEPConstruct_Part_SDRValue(self, *args)

    def SRValue(self, *args) -> "opencascade::handle< StepShape_ShapeRepresentation >":
        r"""
        Returns sdr->usedrepresentation() or null if not done.

        Returns
        -------
        opencascade::handle<StepShape_ShapeRepresentation>

        """
        return _STEPConstruct.STEPConstruct_Part_SRValue(self, *args)

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

        Parameters
        ----------
        text: TCollection_HAsciiString

        Returns
        -------
        None

        """
        return _STEPConstruct.STEPConstruct_Part_SetACapplication(self, *args)

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

        Parameters
        ----------
        label: TCollection_HAsciiString

        Returns
        -------
        None

        """
        return _STEPConstruct.STEPConstruct_Part_SetPCdisciplineType(self, *args)

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

        Parameters
        ----------
        name: TCollection_HAsciiString

        Returns
        -------
        None

        """
        return _STEPConstruct.STEPConstruct_Part_SetPCname(self, *args)

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

        Parameters
        ----------
        label: TCollection_HAsciiString

        Returns
        -------
        None

        """
        return _STEPConstruct.STEPConstruct_Part_SetPDCname(self, *args)

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

        Parameters
        ----------
        label: TCollection_HAsciiString

        Returns
        -------
        None

        """
        return _STEPConstruct.STEPConstruct_Part_SetPDCstage(self, *args)

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

        Parameters
        ----------
        text: TCollection_HAsciiString

        Returns
        -------
        None

        """
        return _STEPConstruct.STEPConstruct_Part_SetPDFdescription(self, *args)

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

        Parameters
        ----------
        id: TCollection_HAsciiString

        Returns
        -------
        None

        """
        return _STEPConstruct.STEPConstruct_Part_SetPDFid(self, *args)

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

        Parameters
        ----------
        text: TCollection_HAsciiString

        Returns
        -------
        None

        """
        return _STEPConstruct.STEPConstruct_Part_SetPDSdescription(self, *args)

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

        Parameters
        ----------
        label: TCollection_HAsciiString

        Returns
        -------
        None

        """
        return _STEPConstruct.STEPConstruct_Part_SetPDSname(self, *args)

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

        Parameters
        ----------
        text: TCollection_HAsciiString

        Returns
        -------
        None

        """
        return _STEPConstruct.STEPConstruct_Part_SetPDdescription(self, *args)

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

        Parameters
        ----------
        text: TCollection_HAsciiString

        Returns
        -------
        None

        """
        return _STEPConstruct.STEPConstruct_Part_SetPRPCdescription(self, *args)

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

        Parameters
        ----------
        label: TCollection_HAsciiString

        Returns
        -------
        None

        """
        return _STEPConstruct.STEPConstruct_Part_SetPRPCname(self, *args)

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

        Parameters
        ----------
        text: TCollection_HAsciiString

        Returns
        -------
        None

        """
        return _STEPConstruct.STEPConstruct_Part_SetPdescription(self, *args)

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

        Parameters
        ----------
        id: TCollection_HAsciiString

        Returns
        -------
        None

        """
        return _STEPConstruct.STEPConstruct_Part_SetPid(self, *args)

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

        Parameters
        ----------
        label: TCollection_HAsciiString

        Returns
        -------
        None

        """
        return _STEPConstruct.STEPConstruct_Part_SetPname(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _STEPConstruct.delete_STEPConstruct_Part

# Register STEPConstruct_Part in _STEPConstruct:
_STEPConstruct.STEPConstruct_Part_swigregister(STEPConstruct_Part)

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

    @staticmethod
    def HashCode(*args) -> "Standard_Integer":
        r"""
        Computes a hash code for the point, in the range [1, theupperbound] @param thepoint the point which hash code is to be computed @param theupperbound the upper bound of the range a computing hash code must be within returns a computed hash code, in the range [1, theupperbound].

        Parameters
        ----------
        thePoint: gp_Pnt
        theUpperBound: int

        Returns
        -------
        int

        """
        return _STEPConstruct.STEPConstruct_PointHasher_HashCode(*args)

    @staticmethod
    def IsEqual(*args) -> "Standard_Boolean":
        r"""
        Returns true when the two keys are the same. two same keys must have the same hashcode, the contrary is not necessary.

        Parameters
        ----------
        Point1: gp_Pnt
        Point2: gp_Pnt

        Returns
        -------
        bool

        """
        return _STEPConstruct.STEPConstruct_PointHasher_IsEqual(*args)

    __repr__ = _dumps_object


    def __init__(self):
        _STEPConstruct.STEPConstruct_PointHasher_swiginit(self, _STEPConstruct.new_STEPConstruct_PointHasher())
    __swig_destroy__ = _STEPConstruct.delete_STEPConstruct_PointHasher

# Register STEPConstruct_PointHasher in _STEPConstruct:
_STEPConstruct.STEPConstruct_PointHasher_swigregister(STEPConstruct_PointHasher)

def STEPConstruct_PointHasher_HashCode(*args) -> "Standard_Integer":
    r"""
    Computes a hash code for the point, in the range [1, theupperbound] @param thepoint the point which hash code is to be computed @param theupperbound the upper bound of the range a computing hash code must be within returns a computed hash code, in the range [1, theupperbound].

    Parameters
    ----------
    thePoint: gp_Pnt
    theUpperBound: int

    Returns
    -------
    int

    """
    return _STEPConstruct.STEPConstruct_PointHasher_HashCode(*args)

def STEPConstruct_PointHasher_IsEqual(*args) -> "Standard_Boolean":
    r"""
    Returns true when the two keys are the same. two same keys must have the same hashcode, the contrary is not necessary.

    Parameters
    ----------
    Point1: gp_Pnt
    Point2: gp_Pnt

    Returns
    -------
    bool

    """
    return _STEPConstruct.STEPConstruct_PointHasher_IsEqual(*args)

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

    def __init__(self, *args):
        r"""
        Creates an empty tool.

        Returns
        -------
        None
        Creates a tool and loads it with worksession.

        Parameters
        ----------
        WS: XSControl_WorkSession

        Returns
        -------
        None

        """
        _STEPConstruct.STEPConstruct_Tool_swiginit(self, _STEPConstruct.new_STEPConstruct_Tool(*args))

    def FinderProcess(self, *args) -> "opencascade::handle< Transfer_FinderProcess > const &":
        r"""
        Returns finderprocess (writing; null if not loaded).

        Returns
        -------
        opencascade::handle<Transfer_FinderProcess>

        """
        return _STEPConstruct.STEPConstruct_Tool_FinderProcess(self, *args)

    def Graph(self, *args) -> "Interface_Graph const &":
        r"""
        Returns current graph (recomputing if necessary).

        Parameters
        ----------
        recompute: bool,optional
        	default value is Standard_False

        Returns
        -------
        Interface_Graph

        """
        return _STEPConstruct.STEPConstruct_Tool_Graph(self, *args)

    def Model(self, *args) -> "opencascade::handle< Interface_InterfaceModel >":
        r"""
        Returns current model (null if not loaded).

        Returns
        -------
        opencascade::handle<Interface_InterfaceModel>

        """
        return _STEPConstruct.STEPConstruct_Tool_Model(self, *args)

    def TransientProcess(self, *args) -> "opencascade::handle< Transfer_TransientProcess > const &":
        r"""
        Returns transientprocess (reading; null if not loaded).

        Returns
        -------
        opencascade::handle<Transfer_TransientProcess>

        """
        return _STEPConstruct.STEPConstruct_Tool_TransientProcess(self, *args)

    def WS(self, *args) -> "opencascade::handle< XSControl_WorkSession > const &":
        r"""
        Returns currently loaded worksession.

        Returns
        -------
        opencascade::handle<XSControl_WorkSession>

        """
        return _STEPConstruct.STEPConstruct_Tool_WS(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _STEPConstruct.delete_STEPConstruct_Tool

# Register STEPConstruct_Tool in _STEPConstruct:
_STEPConstruct.STEPConstruct_Tool_swigregister(STEPConstruct_Tool)

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

    def __init__(self, *args):
        r"""
        Creates empty tool.

        Returns
        -------
        None

        """
        _STEPConstruct.STEPConstruct_UnitContext_swiginit(self, _STEPConstruct.new_STEPConstruct_UnitContext(*args))

    def AreaDone(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if areafactor is computed.

        Returns
        -------
        bool

        """
        return _STEPConstruct.STEPConstruct_UnitContext_AreaDone(self, *args)

    def AreaFactor(self, *args) -> "Standard_Real":
        r"""
        Returns the areafactor.

        Returns
        -------
        float

        """
        return _STEPConstruct.STEPConstruct_UnitContext_AreaFactor(self, *args)

    def ComputeFactors(self, *args) -> "Standard_Integer":
        r"""
        Computes the length, plane angle and solid angle conversion factor . returns a status, 0 if ok.

        Parameters
        ----------
        aContext: StepRepr_GlobalUnitAssignedContext

        Returns
        -------
        int
        No available documentation.

        Parameters
        ----------
        aUnit: StepBasic_NamedUnit

        Returns
        -------
        int

        """
        return _STEPConstruct.STEPConstruct_UnitContext_ComputeFactors(self, *args)

    def ComputeTolerance(self, *args) -> "Standard_Integer":
        r"""
        Computes the uncertainty value (for length).

        Parameters
        ----------
        aContext: StepRepr_GlobalUncertaintyAssignedContext

        Returns
        -------
        int

        """
        return _STEPConstruct.STEPConstruct_UnitContext_ComputeTolerance(self, *args)

    @staticmethod
    def ConvertSiPrefix(*args) -> "Standard_Real":
        r"""
        Convert si prefix defined by enumertaion to corresponding real factor (e.g. 1e6 for mega).

        Parameters
        ----------
        aPrefix: StepBasic_SiPrefix

        Returns
        -------
        float

        """
        return _STEPConstruct.STEPConstruct_UnitContext_ConvertSiPrefix(*args)

    def HasUncertainty(self, *args) -> "Standard_Boolean":
        r"""
        Tells if a uncertainty (for length) is recorded.

        Returns
        -------
        bool

        """
        return _STEPConstruct.STEPConstruct_UnitContext_HasUncertainty(self, *args)

    def Init(self, *args) -> "void":
        r"""
        Creates new context (units are mm and radians, uncertainty equal to tol3d).

        Parameters
        ----------
        Tol3d: float

        Returns
        -------
        None

        """
        return _STEPConstruct.STEPConstruct_UnitContext_Init(self, *args)

    def IsDone(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if init was called successfully.

        Returns
        -------
        bool

        """
        return _STEPConstruct.STEPConstruct_UnitContext_IsDone(self, *args)

    def LengthDone(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if computefactors has calculated a lengthfactor.

        Returns
        -------
        bool

        """
        return _STEPConstruct.STEPConstruct_UnitContext_LengthDone(self, *args)

    def LengthFactor(self, *args) -> "Standard_Real":
        r"""
        Returns the lengthfactor.

        Returns
        -------
        float

        """
        return _STEPConstruct.STEPConstruct_UnitContext_LengthFactor(self, *args)

    def PlaneAngleDone(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if computefactors has calculated a planeanglefactor.

        Returns
        -------
        bool

        """
        return _STEPConstruct.STEPConstruct_UnitContext_PlaneAngleDone(self, *args)

    def PlaneAngleFactor(self, *args) -> "Standard_Real":
        r"""
        Returns the planeanglefactor.

        Returns
        -------
        float

        """
        return _STEPConstruct.STEPConstruct_UnitContext_PlaneAngleFactor(self, *args)

    def SolidAngleDone(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if computefactors has calculated a solidanglefactor.

        Returns
        -------
        bool

        """
        return _STEPConstruct.STEPConstruct_UnitContext_SolidAngleDone(self, *args)

    def SolidAngleFactor(self, *args) -> "Standard_Real":
        r"""
        Returns the solidanglefactor.

        Returns
        -------
        float

        """
        return _STEPConstruct.STEPConstruct_UnitContext_SolidAngleFactor(self, *args)

    def StatusMessage(self, *args) -> "char const *":
        r"""
        Returns a message for a given status (0 - empty) this message can then be added as warning for transfer.

        Parameters
        ----------
        status: int

        Returns
        -------
        char *

        """
        return _STEPConstruct.STEPConstruct_UnitContext_StatusMessage(self, *args)

    def Uncertainty(self, *args) -> "Standard_Real":
        r"""
        Returns the uncertainty value (for length) it has been converted with lengthfactor.

        Returns
        -------
        float

        """
        return _STEPConstruct.STEPConstruct_UnitContext_Uncertainty(self, *args)

    def Value(self, *args) -> "opencascade::handle< StepGeom_GeomRepContextAndGlobUnitAssCtxAndGlobUncertaintyAssCtx >":
        r"""
        Returns context (or null if not done).

        Returns
        -------
        opencascade::handle<StepGeom_GeomRepContextAndGlobUnitAssCtxAndGlobUncertaintyAssCtx>

        """
        return _STEPConstruct.STEPConstruct_UnitContext_Value(self, *args)

    def VolumeDone(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if volumefactor is computed.

        Returns
        -------
        bool

        """
        return _STEPConstruct.STEPConstruct_UnitContext_VolumeDone(self, *args)

    def VolumeFactor(self, *args) -> "Standard_Real":
        r"""
        Returns the volumefactor.

        Returns
        -------
        float

        """
        return _STEPConstruct.STEPConstruct_UnitContext_VolumeFactor(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _STEPConstruct.delete_STEPConstruct_UnitContext

# Register STEPConstruct_UnitContext in _STEPConstruct:
_STEPConstruct.STEPConstruct_UnitContext_swigregister(STEPConstruct_UnitContext)

def STEPConstruct_UnitContext_ConvertSiPrefix(*args) -> "Standard_Real":
    r"""
    Convert si prefix defined by enumertaion to corresponding real factor (e.g. 1e6 for mega).

    Parameters
    ----------
    aPrefix: StepBasic_SiPrefix

    Returns
    -------
    float

    """
    return _STEPConstruct.STEPConstruct_UnitContext_ConvertSiPrefix(*args)

class STEPConstruct_ExternRefs(STEPConstruct_Tool):
    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"""
        Creates an empty tool.

        Returns
        -------
        None
        Creates a tool and initializes it.

        Parameters
        ----------
        WS: XSControl_WorkSession

        Returns
        -------
        None

        """
        _STEPConstruct.STEPConstruct_ExternRefs_swiginit(self, _STEPConstruct.new_STEPConstruct_ExternRefs(*args))

    def AddExternRef(self, *args) -> "Standard_Integer":
        r"""
        Create a new external reference with specified attributes attached to a given sdr <format> can be null string, in that case this information is not written. else, it can be 'step ap214' or 'step ap203' returns index of a new extern ref.

        Parameters
        ----------
        filename: char *
        PD: StepBasic_ProductDefinition
        format: char *

        Returns
        -------
        int

        """
        return _STEPConstruct.STEPConstruct_ExternRefs_AddExternRef(self, *args)

    def Clear(self, *args) -> "void":
        r"""
        Clears internal fields (list of defined extern refs).

        Returns
        -------
        None

        """
        return _STEPConstruct.STEPConstruct_ExternRefs_Clear(self, *args)

    def DocFile(self, *args) -> "opencascade::handle< StepBasic_DocumentFile >":
        r"""
        Returns documentfile to which numth extern reference is associated. returns null if cannot be detected.

        Parameters
        ----------
        num: int

        Returns
        -------
        opencascade::handle<StepBasic_DocumentFile>

        """
        return _STEPConstruct.STEPConstruct_ExternRefs_DocFile(self, *args)

    def FileName(self, *args) -> "char const *":
        r"""
        Returns filename for numth extern reference returns null if filename is not defined or bad.

        Parameters
        ----------
        num: int

        Returns
        -------
        char *

        """
        return _STEPConstruct.STEPConstruct_ExternRefs_FileName(self, *args)

    def Format(self, *args) -> "opencascade::handle< TCollection_HAsciiString >":
        r"""
        Returns format identification string for the extern document returns null handle if format is not defined.

        Parameters
        ----------
        num: int

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

        """
        return _STEPConstruct.STEPConstruct_ExternRefs_Format(self, *args)

    def GetAP214APD(self, *args) -> "opencascade::handle< StepBasic_ApplicationProtocolDefinition >":
        r"""
        Returns the applicationprotocoldefinition of the pdm schema note: if not defined then create new apd with new application context.

        Returns
        -------
        opencascade::handle<StepBasic_ApplicationProtocolDefinition>

        """
        return _STEPConstruct.STEPConstruct_ExternRefs_GetAP214APD(self, *args)

    def Init(self, *args) -> "Standard_Boolean":
        r"""
        Initializes tool; returns true if succeeded.

        Parameters
        ----------
        WS: XSControl_WorkSession

        Returns
        -------
        bool

        """
        return _STEPConstruct.STEPConstruct_ExternRefs_Init(self, *args)

    def LoadExternRefs(self, *args) -> "Standard_Boolean":
        r"""
        Searches current step model for external references and loads them to the internal data structures note: does not clear data structures before loading.

        Returns
        -------
        bool

        """
        return _STEPConstruct.STEPConstruct_ExternRefs_LoadExternRefs(self, *args)

    def NbExternRefs(self, *args) -> "Standard_Integer":
        r"""
        Returns number of defined extern references.

        Returns
        -------
        int

        """
        return _STEPConstruct.STEPConstruct_ExternRefs_NbExternRefs(self, *args)

    def ProdDef(self, *args) -> "opencascade::handle< StepBasic_ProductDefinition >":
        r"""
        Returns productdefinition to which numth extern reference is associated. returns null if cannot be detected or if extern reference is not associated to sdr in a proper way.

        Parameters
        ----------
        num: int

        Returns
        -------
        opencascade::handle<StepBasic_ProductDefinition>

        """
        return _STEPConstruct.STEPConstruct_ExternRefs_ProdDef(self, *args)

    def SetAP214APD(self, *args) -> "void":
        r"""
        Set the applicationprotocoldefinition of the pdm schema.

        Parameters
        ----------
        APD: StepBasic_ApplicationProtocolDefinition

        Returns
        -------
        None

        """
        return _STEPConstruct.STEPConstruct_ExternRefs_SetAP214APD(self, *args)

    def WriteExternRefs(self, *args) -> "Standard_Integer":
        r"""
        Adds all the currently defined external refs to the model returns number of written extern refs.

        Parameters
        ----------
        num: int

        Returns
        -------
        int

        """
        return _STEPConstruct.STEPConstruct_ExternRefs_WriteExternRefs(self, *args)

    def checkAP214Shared(self, *args) -> "void":
        r"""
        Check (create if it is null) all shared entities for the model.

        Returns
        -------
        None

        """
        return _STEPConstruct.STEPConstruct_ExternRefs_checkAP214Shared(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _STEPConstruct.delete_STEPConstruct_ExternRefs

# Register STEPConstruct_ExternRefs in _STEPConstruct:
_STEPConstruct.STEPConstruct_ExternRefs_swigregister(STEPConstruct_ExternRefs)

class STEPConstruct_Styles(STEPConstruct_Tool):
    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"""
        Creates an empty tool.

        Returns
        -------
        None
        Creates a tool and initializes it.

        Parameters
        ----------
        WS: XSControl_WorkSession

        Returns
        -------
        None

        """
        _STEPConstruct.STEPConstruct_Styles_swiginit(self, _STEPConstruct.new_STEPConstruct_Styles(*args))

    def AddStyle(self, *args) -> "opencascade::handle< StepVisual_StyledItem >":
        r"""
        Adds a style to a sequence.

        Parameters
        ----------
        style: StepVisual_StyledItem

        Returns
        -------
        None
        Create a style linking giving psa to the item, and add it to the sequence of stored styles. if override is not null, then the resulting style will be of the subtype overridingstyleditem.

        Parameters
        ----------
        item: StepRepr_RepresentationItem
        PSA: StepVisual_PresentationStyleAssignment
        Override: StepVisual_StyledItem

        Returns
        -------
        opencascade::handle<StepVisual_StyledItem>
        Create a style linking giving psa to the shape, and add it to the sequence of stored styles. if override is not null, then the resulting style will be of the subtype overridingstyleditem. the sape is used to find corresponding step entity by call to stepconstruct::findentity(), then previous method is called.

        Parameters
        ----------
        Shape: TopoDS_Shape
        PSA: StepVisual_PresentationStyleAssignment
        Override: StepVisual_StyledItem

        Returns
        -------
        opencascade::handle<StepVisual_StyledItem>

        """
        return _STEPConstruct.STEPConstruct_Styles_AddStyle(self, *args)

    def ClearStyles(self, *args) -> "void":
        r"""
        Clears all defined styles and psa sequence.

        Returns
        -------
        None

        """
        return _STEPConstruct.STEPConstruct_Styles_ClearStyles(self, *args)

    def CreateMDGPR(self, *args) -> "Standard_Boolean":
        r"""
        Create mdgpr, fill it with all the styles previously defined, and add it to the model.

        Parameters
        ----------
        Context: StepRepr_RepresentationContext
        MDGPR: StepVisual_MechanicalDesignGeometricPresentationRepresentation

        Returns
        -------
        bool

        """
        return _STEPConstruct.STEPConstruct_Styles_CreateMDGPR(self, *args)

    def CreateNAUOSRD(self, *args) -> "Standard_Boolean":
        r"""
        Create mdgpr, fill it with all the styles previously defined, and add it to the model important: <initpds> must be null when use for nauo colors <initpds> initialised only for shuo case.

        Parameters
        ----------
        Context: StepRepr_RepresentationContext
        CDSR: StepShape_ContextDependentShapeRepresentation
        initPDS: StepRepr_ProductDefinitionShape

        Returns
        -------
        bool

        """
        return _STEPConstruct.STEPConstruct_Styles_CreateNAUOSRD(self, *args)

    @staticmethod
    def DecodeColor(*args) -> "Standard_Boolean":
        r"""
        Decodes step color and fills the quantity_color. returns true if ok or false if color is not recognized.

        Parameters
        ----------
        Colour: StepVisual_Colour
        Col: Quantity_Color

        Returns
        -------
        bool

        """
        return _STEPConstruct.STEPConstruct_Styles_DecodeColor(*args)

    @staticmethod
    def EncodeColor(*args) -> "opencascade::handle< StepVisual_Colour >":
        r"""
        Create step color entity by given quantity_color the analysis is performed for whether the color corresponds to one of standard colors predefined in step. in that case, predefinedcolour entity is created instead of rgbcolour.

        Parameters
        ----------
        Col: Quantity_Color

        Returns
        -------
        opencascade::handle<StepVisual_Colour>
        Create step color entity by given quantity_color the analysis is performed for whether the color corresponds to one of standard colors predefined in step. in that case, predefinedcolour entity is created instead of rgbcolour.

        Parameters
        ----------
        Col: Quantity_Color
        DPDCs: STEPConstruct_DataMapOfAsciiStringTransient
        ColRGBs: STEPConstruct_DataMapOfPointTransient

        Returns
        -------
        opencascade::handle<StepVisual_Colour>

        """
        return _STEPConstruct.STEPConstruct_Styles_EncodeColor(*args)

    def FindContext(self, *args) -> "opencascade::handle< StepRepr_RepresentationContext >":
        r"""
        Searches the step model for the representationcontext in which given shape is defined. this context (if found) can be used then in call to createmdgpr().

        Parameters
        ----------
        Shape: TopoDS_Shape

        Returns
        -------
        opencascade::handle<StepRepr_RepresentationContext>

        """
        return _STEPConstruct.STEPConstruct_Styles_FindContext(self, *args)

    def GetColorPSA(self, *args) -> "opencascade::handle< StepVisual_PresentationStyleAssignment >":
        r"""
        Returns a presentationstyleassignment entity which defines surface and curve colors as col. this psa is either created or taken from internal map where all psas created by this method are remembered.

        Parameters
        ----------
        item: StepRepr_RepresentationItem
        Col: StepVisual_Colour

        Returns
        -------
        opencascade::handle<StepVisual_PresentationStyleAssignment>

        """
        return _STEPConstruct.STEPConstruct_Styles_GetColorPSA(self, *args)

    def GetColors(self, *args) -> "Standard_Boolean":
        r"""
        Extract color definitions from the style entity for each type of color supported, result can be either null if it is not defined by that style, or last definition (if they are 1 or more).

        Parameters
        ----------
        style: StepVisual_StyledItem
        SurfCol: StepVisual_Colour
        BoundCol: StepVisual_Colour
        CurveCol: StepVisual_Colour
        RenderCol: StepVisual_Colour

        Returns
        -------
        RenderTransp: float
        IsComponent: bool

        """
        return _STEPConstruct.STEPConstruct_Styles_GetColors(self, *args)

    def Init(self, *args) -> "Standard_Boolean":
        r"""
        Initializes tool; returns true if succeeded.

        Parameters
        ----------
        WS: XSControl_WorkSession

        Returns
        -------
        bool

        """
        return _STEPConstruct.STEPConstruct_Styles_Init(self, *args)

    def LoadInvisStyles(self, *args) -> "Standard_Boolean":
        r"""
        Searches the step model for the inisibility enteties (which bring styles) and fills out sequence of styles.

        Parameters
        ----------
        InvSyles: TColStd_HSequenceOfTransient

        Returns
        -------
        bool

        """
        return _STEPConstruct.STEPConstruct_Styles_LoadInvisStyles(self, *args)

    def LoadStyles(self, *args) -> "Standard_Boolean":
        r"""
        Searches the step model for the mdgpr or dm entities (which bring styles) and fills sequence of styles.

        Returns
        -------
        bool

        """
        return _STEPConstruct.STEPConstruct_Styles_LoadStyles(self, *args)

    def MakeColorPSA(self, *args) -> "opencascade::handle< StepVisual_PresentationStyleAssignment >":
        r"""
        Create a presentationstyleassignment entity which defines two colors (for filling surfaces and curves) if isfornauo true then returns presentationstylebycontext.

        Parameters
        ----------
        item: StepRepr_RepresentationItem
        SurfCol: StepVisual_Colour
        CurveCol: StepVisual_Colour
        RenderCol: StepVisual_Colour
        RenderTransp: float
        isForNAUO: bool,optional
        	default value is Standard_False

        Returns
        -------
        opencascade::handle<StepVisual_PresentationStyleAssignment>

        """
        return _STEPConstruct.STEPConstruct_Styles_MakeColorPSA(self, *args)

    def NbStyles(self, *args) -> "Standard_Integer":
        r"""
        Returns number of defined styles.

        Returns
        -------
        int

        """
        return _STEPConstruct.STEPConstruct_Styles_NbStyles(self, *args)

    def Style(self, *args) -> "opencascade::handle< StepVisual_StyledItem >":
        r"""
        Returns style with given index.

        Parameters
        ----------
        i: int

        Returns
        -------
        opencascade::handle<StepVisual_StyledItem>

        """
        return _STEPConstruct.STEPConstruct_Styles_Style(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _STEPConstruct.delete_STEPConstruct_Styles

# Register STEPConstruct_Styles in _STEPConstruct:
_STEPConstruct.STEPConstruct_Styles_swigregister(STEPConstruct_Styles)

def STEPConstruct_Styles_DecodeColor(*args) -> "Standard_Boolean":
    r"""
    Decodes step color and fills the quantity_color. returns true if ok or false if color is not recognized.

    Parameters
    ----------
    Colour: StepVisual_Colour
    Col: Quantity_Color

    Returns
    -------
    bool

    """
    return _STEPConstruct.STEPConstruct_Styles_DecodeColor(*args)

def STEPConstruct_Styles_EncodeColor(*args) -> "opencascade::handle< StepVisual_Colour >":
    r"""
    Create step color entity by given quantity_color the analysis is performed for whether the color corresponds to one of standard colors predefined in step. in that case, predefinedcolour entity is created instead of rgbcolour.

    Parameters
    ----------
    Col: Quantity_Color

    Returns
    -------
    opencascade::handle<StepVisual_Colour>
    Create step color entity by given quantity_color the analysis is performed for whether the color corresponds to one of standard colors predefined in step. in that case, predefinedcolour entity is created instead of rgbcolour.

    Parameters
    ----------
    Col: Quantity_Color
    DPDCs: STEPConstruct_DataMapOfAsciiStringTransient
    ColRGBs: STEPConstruct_DataMapOfPointTransient

    Returns
    -------
    opencascade::handle<StepVisual_Colour>

    """
    return _STEPConstruct.STEPConstruct_Styles_EncodeColor(*args)

class STEPConstruct_ValidationProps(STEPConstruct_Tool):
    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"""
        Creates an empty tool.

        Returns
        -------
        None
        Creates a tool and loads it with worksession.

        Parameters
        ----------
        WS: XSControl_WorkSession

        Returns
        -------
        None

        """
        _STEPConstruct.STEPConstruct_ValidationProps_swiginit(self, _STEPConstruct.new_STEPConstruct_ValidationProps(*args))

    def AddArea(self, *args) -> "Standard_Boolean":
        r"""
        Adds surface area property for given shape (already mapped). returns true if success, false in case of fail.

        Parameters
        ----------
        Shape: TopoDS_Shape
        Area: float

        Returns
        -------
        bool

        """
        return _STEPConstruct.STEPConstruct_ValidationProps_AddArea(self, *args)

    def AddCentroid(self, *args) -> "Standard_Boolean":
        r"""
        Adds centroid property for given shape (already mapped). returns true if success, false in case of fail if instance is true, then centroid is assigned to an instance of component in assembly.

        Parameters
        ----------
        Shape: TopoDS_Shape
        Pnt: gp_Pnt
        instance: bool,optional
        	default value is Standard_False

        Returns
        -------
        bool

        """
        return _STEPConstruct.STEPConstruct_ValidationProps_AddCentroid(self, *args)

    def AddProp(self, *args) -> "Standard_Boolean":
        r"""
        General method for adding (writing) a validation property for shape which should be already mapped on writing itself. it uses findtarget() to find target step entity resulting from given shape, and associated context returns true if success, false in case of fail.

        Parameters
        ----------
        Shape: TopoDS_Shape
        Prop: StepRepr_RepresentationItem
        Descr: char *
        instance: bool,optional
        	default value is Standard_False

        Returns
        -------
        bool
        General method for adding (writing) a validation property for shape which should be already mapped on writing itself. it takes target and context entities which correspond to shape returns true if success, false in case of fail.

        Parameters
        ----------
        target: StepRepr_CharacterizedDefinition
        Context: StepRepr_RepresentationContext
        Prop: StepRepr_RepresentationItem
        Descr: char *

        Returns
        -------
        bool

        """
        return _STEPConstruct.STEPConstruct_ValidationProps_AddProp(self, *args)

    def AddVolume(self, *args) -> "Standard_Boolean":
        r"""
        Adds volume property for given shape (already mapped). returns true if success, false in case of fail.

        Parameters
        ----------
        Shape: TopoDS_Shape
        Vol: float

        Returns
        -------
        bool

        """
        return _STEPConstruct.STEPConstruct_ValidationProps_AddVolume(self, *args)

    def FindTarget(self, *args) -> "Standard_Boolean":
        r"""
        Finds target step entity to which validation props should be assigned, and corresponding context, starting from shape returns true if success, false in case of fail.

        Parameters
        ----------
        S: TopoDS_Shape
        target: StepRepr_CharacterizedDefinition
        Context: StepRepr_RepresentationContext
        instance: bool,optional
        	default value is Standard_False

        Returns
        -------
        bool

        """
        return _STEPConstruct.STEPConstruct_ValidationProps_FindTarget(self, *args)

    def GetPropNAUO(self, *args) -> "opencascade::handle< StepRepr_NextAssemblyUsageOccurrence >":
        r"""
        Returns cdsr associated with given ppd or null if not found (when, try getpropsdr).

        Parameters
        ----------
        PD: StepRepr_PropertyDefinition

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

        """
        return _STEPConstruct.STEPConstruct_ValidationProps_GetPropNAUO(self, *args)

    def GetPropPD(self, *args) -> "opencascade::handle< StepBasic_ProductDefinition >":
        r"""
        Returns sdr associated with given ppd or null if not found (when, try getpropcdsr).

        Parameters
        ----------
        PD: StepRepr_PropertyDefinition

        Returns
        -------
        opencascade::handle<StepBasic_ProductDefinition>

        """
        return _STEPConstruct.STEPConstruct_ValidationProps_GetPropPD(self, *args)

    def GetPropPnt(self, *args) -> "Standard_Boolean":
        r"""
        Returns value of centriod property (or false if it is not).

        Parameters
        ----------
        item: StepRepr_RepresentationItem
        Context: StepRepr_RepresentationContext
        Pnt: gp_Pnt

        Returns
        -------
        bool

        """
        return _STEPConstruct.STEPConstruct_ValidationProps_GetPropPnt(self, *args)

    def GetPropReal(self, *args) -> "Standard_Boolean":
        r"""
        Returns value of real-valued property (area or volume) if property is neither area nor volume, returns false else returns true and isarea indicates whether property is area or volume.

        Parameters
        ----------
        item: StepRepr_RepresentationItem

        Returns
        -------
        Val: float
        isArea: bool

        """
        return _STEPConstruct.STEPConstruct_ValidationProps_GetPropReal(self, *args)

    def GetPropShape(self, *args) -> "TopoDS_Shape":
        r"""
        Returns shape associated with given sdr or null shape if not found.

        Parameters
        ----------
        ProdDef: StepBasic_ProductDefinition

        Returns
        -------
        TopoDS_Shape
        Returns shape associated with given ppd or null shape if not found.

        Parameters
        ----------
        PD: StepRepr_PropertyDefinition

        Returns
        -------
        TopoDS_Shape

        """
        return _STEPConstruct.STEPConstruct_ValidationProps_GetPropShape(self, *args)

    def Init(self, *args) -> "Standard_Boolean":
        r"""
        Load worksession; returns true if succeeded.

        Parameters
        ----------
        WS: XSControl_WorkSession

        Returns
        -------
        bool

        """
        return _STEPConstruct.STEPConstruct_ValidationProps_Init(self, *args)

    def LoadProps(self, *args) -> "Standard_Boolean":
        r"""
        Searches for entities of the type propertydefinitionrepresentation in the model and fills the sequence by them.

        Parameters
        ----------
        seq: TColStd_SequenceOfTransient

        Returns
        -------
        bool

        """
        return _STEPConstruct.STEPConstruct_ValidationProps_LoadProps(self, *args)

    def SetAssemblyShape(self, *args) -> "void":
        r"""
        Sets current assembly shape sdr (for findcdsr calls).

        Parameters
        ----------
        shape: TopoDS_Shape

        Returns
        -------
        None

        """
        return _STEPConstruct.STEPConstruct_ValidationProps_SetAssemblyShape(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _STEPConstruct.delete_STEPConstruct_ValidationProps

# Register STEPConstruct_ValidationProps in _STEPConstruct:
_STEPConstruct.STEPConstruct_ValidationProps_swigregister(STEPConstruct_ValidationProps)





