OCCT3D OCCT 8.0.1
OCCT documentation

Search guides and API reference

Enter at least two characters.

    Open CASCADE Technology Reference Manual 8.0.1
    StepData_StepModel Class Reference

    Gives access to. More...

    #include <StepData_StepModel.hxx>

    Inheritance diagram for StepData_StepModel:

    Public Member Functions

     StepData_StepModel ()
     Creates an empty STEP model with an empty header.
    occ::handle< Standard_TransientEntity (const int numnum) const
     returns entity given its rank. Same as InterfaceEntity, but with a shorter name
    void GetFromAnother (const occ::handle< Interface_InterfaceModel > &other) override
     gets header from another Model (uses Header Protocol)
    occ::handle< Interface_InterfaceModelNewEmptyModel () const override
     Returns a New Empty Model, same type as <me>, i.e. StepModel.
    Interface_EntityIterator Header () const
     returns Header entities under the form of an iterator
    bool HasHeaderEntity (const occ::handle< Standard_Type > &atype) const
     says if a Header entity has a specified type
    occ::handle< Standard_TransientHeaderEntity (const occ::handle< Standard_Type > &atype) const
     Returns Header entity with specified type, if there is.
    void ClearHeader () override
     Clears the Header.
    void AddHeaderEntity (const occ::handle< Standard_Transient > &ent)
     Adds an Entity to the Header.
    void VerifyCheck (occ::handle< Interface_Check > &ach) const override
     Specific Check, checks Header Items with HeaderProtocol.
    void DumpHeader (Standard_OStream &S, const int levellevel=0) const override
     Dumps the Header, with the Header Protocol of StepData. If the Header Protocol is not defined, for each Header Entity, prints its Type. Else sends the Header under the form of HEADER Section of an Ascii Step File <level> is not used because Header is not so big.
    void ClearLabels () override
     erases specific labels, i.e. clears the map (entity-ident)
    void SetIdentLabel (const occ::handle< Standard_Transient > &ent, const int ident)
     Attaches an ident to an entity to produce a label (does nothing if <ent> is not in <me>).
    int IdentLabel (const occ::handle< Standard_Transient > &ent) const
     returns the label ident attached to an entity, 0 if not in me
    void PrintLabel (const occ::handle< Standard_Transient > &ent, Standard_OStream &S) const override
     Prints label specific to STEP norm for a given entity, i.e. if a LabelIdent has been recorded, its value with '#', else the number in the model with '#' and between ().
    occ::handle< TCollection_HAsciiStringStringLabel (const occ::handle< Standard_Transient > &ent) const override
     Returns a string with the label attached to a given entity, same form as for PrintLabel.
    Resource_FormatType SourceCodePage () const
     Return the encoding of STEP file for converting names into UNICODE. Initialized from "read.step.codepage" variable by constructor, which is Resource_UTF8 by default.
    void SetSourceCodePage (Resource_FormatType theCode)
     Return the encoding of STEP file for converting names into UNICODE.
    void SetLocalLengthUnit (const double theUnit)
     Sets local length unit using for transfer process.
    double LocalLengthUnit () const
     Returns local length unit using for transfer process (1 by default).
    void SetWriteLengthUnit (const double theUnit)
     Sets length unit using for writing process.
    double WriteLengthUnit () const
     Returns length unit using for writing process (1 by default).
    bool IsInitializedUnit () const
     Returns the unit initialization flag True - the unit was initialized False - the unit value was not initialized, the default value is used.
    Public Member Functions inherited from Interface_InterfaceModel
    void Destroy ()
     Clears the list of entities (service WhenDelete).
     ~Interface_InterfaceModel () override
    void SetProtocol (const occ::handle< Interface_Protocol > &proto)
     Sets a Protocol for this Model It is also set by a call to AddWithRefs with Protocol It is used for : DumpHeader (as required), ClearEntities ...
    virtual occ::handle< Interface_ProtocolProtocol () const
     Returns the Protocol which has been set by SetProtocol, or AddWithRefs with Protocol.
    void SetGTool (const occ::handle< Interface_GTool > &gtool)
     Sets a GTool for this model, which already defines a Protocol.
    occ::handle< Interface_GToolGTool () const
     Returns the GTool, set by SetProtocol or by SetGTool.
    bool & DispatchStatus ()
     Returns the Dispatch Status, either for get or set A Model which is produced from Dispatch may share entities with the original (according to the Protocol), hence these non-copied entities should not be deleted.
    virtual void Clear ()
     Erases contained data; used when a Model is copied to others : the new copied ones begin from clear Clear calls specific method ClearHeader (see below).
    virtual void ClearEntities ()
     Clears the entities; uses the general service WhenDelete, in addition to the standard Memory Manager; can be redefined.
    int NbEntities () const
     Returns count of contained Entities.
    bool Contains (const occ::handle< Standard_Transient > &anentity) const
     Returns True if a Model contains an Entity (for a ReportEntity, looks for the ReportEntity itself AND its Concerned Entity).
    int Number (const occ::handle< Standard_Transient > &anentity) const
     Returns the Number of an Entity in the Model if it contains it. Else returns 0. For a ReportEntity, looks at Concerned Entity. Returns the Directory entry Number of an Entity in the Model if it contains it. Else returns 0. For a ReportEntity, looks at Concerned Entity.
    const occ::handle< Standard_Transient > & Value (const int numnum) const
     Returns an Entity identified by its number in the Model Each sub-class of InterfaceModel can define its own method Entity to return its specific class of Entity (e.g. for VDA, VDAModel returns a VDAEntity), working by calling Value Remark : For a Reported Entity, (Erroneous, Corrected, Unknown), this method returns this Reported Entity. See ReportEntity for other questions.
    int NbTypes (const occ::handle< Standard_Transient > &ent) const
     Returns the count of DISTINCT types under which an entity may be processed. Defined by the Protocol, which gives default as 1 (dynamic Type).
    occ::handle< Standard_TypeType (const occ::handle< Standard_Transient > &ent, const int numnum=1) const
     Returns a type, given its rank : defined by the Protocol (by default, the first one).
    const char * TypeName (const occ::handle< Standard_Transient > &ent, const bool complete=true) const
     Returns the type name of an entity, from the list of types (one or more ...) <complete> True (D) gives the complete type, else packages are removed WARNING : buffered, to be immediately copied or printed.
    Interface_DataState EntityState (const int numnum) const
     Returns the State of an entity, given its number.
    bool IsReportEntity (const int numnum, const bool semantic=false) const
     Returns True if <num> identifies a ReportEntity in the Model Hence, ReportEntity can be called.
    occ::handle< Interface_ReportEntityReportEntity (const int numnum, const bool semantic=false) const
     Returns a ReportEntity identified by its number in the Model, or a Null Handle If <num> does not identify a ReportEntity.
    bool IsErrorEntity (const int numnum) const
     Returns True if <num> identifies an Error Entity : in this case, a ReportEntity brings Fail Messages and possibly an "undefined" Content, see IsRedefinedEntity.
    bool IsRedefinedContent (const int numnum) const
     Returns True if <num> identifies an Entity which content is redefined through a ReportEntity (i.e. with literal data only) This happens when an entity is syntactically erroneous in the way that its basic content remains empty. For more details (such as content itself), see ReportEntity.
    bool ClearReportEntity (const int numnum)
     Removes the ReportEntity attached to Entity <num>. Returns True if done, False if no ReportEntity was attached to <num>. Warning : the caller must assume that this clearing is meaningful.
    bool SetReportEntity (const int numnum, const occ::handle< Interface_ReportEntity > &rep)
     Sets or Replaces a ReportEntity for the Entity <num>. Returns True if Report is replaced, False if it has been replaced Warning : the caller must assume that this setting is meaningful.
    bool AddReportEntity (const occ::handle< Interface_ReportEntity > &rep, const bool semantic=false)
     Adds a ReportEntity as such. Returns False if the concerned entity is not recorded in the Model Else, adds it into, either the main report list or the list for semantic checks, then returns True.
    bool IsUnknownEntity (const int numnum) const
     Returns True if <num> identifies an Unknown Entity : in this case, a ReportEntity with no Check Messages designates it.
    void FillSemanticChecks (const Interface_CheckIterator &checks, const bool clear=true)
     Fills the list of semantic checks. This list is computed (by CheckTool). Hence, it can be stored in the model for later queries <clear> True (D) : new list replaces <clear> False : new list is cumulated.
    bool HasSemanticChecks () const
     Returns True if semantic checks have been filled.
    const occ::handle< Interface_Check > & Check (const int numnum, const bool syntactic) const
     Returns the check attached to an entity, designated by its Number. 0 for global check <semantic> True : recorded semantic check <semantic> False : recorded syntactic check (see ReportEntity) If no check is recorded for <num>, returns an empty Check.
    virtual void Reservate (const int nbent)
     Does a reservation for the List of Entities (for optimized storage management). If it is not called, storage management can be less efficient. <nbent> is the expected count of Entities to store.
    virtual void AddEntity (const occ::handle< Standard_Transient > &anentity)
     Internal method for adding an Entity. Used by file reading (defined by each Interface) and Transfer tools. It adds the entity required to be added, not its refs : see AddWithRefs. If <anentity> is a ReportEntity, it is added to the list of Reports, its Concerned Entity (Erroneous or Corrected, else Unknown) is added to the list of Entities. That is, the ReportEntity must be created before Adding.
    void AddWithRefs (const occ::handle< Standard_Transient > &anent, const occ::handle< Interface_Protocol > &proto, const int levellevel=0, const bool listall=false)
     Adds to the Model, an Entity with all its References, as they are defined by General Services FillShared and ListImplied. Process is recursive (any sub-levels) if <level> = 0 (Default) Else, adds sub-entities until the required sub-level. Especially, if <level> = 1, adds immediate subs and that's all.
    void AddWithRefs (const occ::handle< Standard_Transient > &anent, const int levellevel=0, const bool listall=false)
     Same as above, but works with the Protocol of the Model.
    void AddWithRefs (const occ::handle< Standard_Transient > &anent, const Interface_GeneralLib &lib, const int levellevel=0, const bool listall=false)
     Same as above, but works with an already created GeneralLib.
    void ReplaceEntity (const int nument, const occ::handle< Standard_Transient > &anent)
     Replace Entity with Number=nument on other entity - "anent".
    void ReverseOrders (const int after=0)
     Reverses the Numbers of the Entities, between <after> and the total count of Entities. Thus, the entities : 1,2 ... after, after+1 ... nb-1, nb become numbered as : 1,2 ... after, nb, nb-1 ... after+1 By default (after = 0) the whole list of Entities is reversed.
    void ChangeOrder (const int oldnum, const int newnum, const int countcount=1)
     Changes the Numbers of some Entities : <oldnum> is moved to <newnum>, same for <count> entities. Thus : 1,2 ... newnum-1 newnum ... oldnum .. oldnum+count oldnum+count+1 .. gives 1,2 ... newnum-1 oldnum .. oldnum+count newnum ... oldnum+count+1 (can be seen as a circular permutation).
    void GetFromTransfer (const Interface_EntityIterator &aniter)
     Gets contents from an EntityIterator, prepared by a Transfer tool (e.g TransferCopy). Starts from clear.
    bool SetCategoryNumber (const int numnum, const int valval)
     Records a category number for an entity number Returns True when done, False if <num> is out of range.
    int CategoryNumber (const int numnum) const
     Returns the recorded category number for a given entity number 0 if none was defined for this entity.
    void FillIterator (Interface_EntityIterator &iter) const
     Allows an EntityIterator to get a list of Entities.
    Interface_EntityIterator Entities () const
     Returns the list of all Entities, as an Iterator on Entities (the Entities themselves, not the Reports).
    Interface_EntityIterator Reports (const bool semantic=false) const
     Returns the list of all ReportEntities, i.e. data about Entities read with Error or Warning information (each item has to be casted to Report Entity then it can be queried for Concerned Entity, Content, Check ...) By default, returns the main reports, is <semantic> is True it returns the list for semantic checks.
    Interface_EntityIterator Redefineds () const
     Returns the list of ReportEntities which redefine data (generally, if concerned entity is "Error", a literal content is added to it : this is a "redefined entity".
    const occ::handle< Interface_Check > & GlobalCheck (const bool syntactic=true) const
     Returns the GlobalCheck, which memorizes messages global to the file (not specific to an Entity), especially Header.
    void SetGlobalCheck (const occ::handle< Interface_Check > &ach)
     Allows to modify GlobalCheck, after getting then completing it Remark : it is SYNTACTIC check. Semantics, see FillChecks.
    void Print (const occ::handle< Standard_Transient > &ent, Standard_OStream &ss, const int modemode=0) const
     Prints identification of a given entity in <me>, in order to be printed in a list or phrase <mode> < 0 : prints only its number <mode> = 1 : just calls PrintLabel <mode> = 0 (D) : prints its number plus '/' plus PrintLabel If <ent> == <me>, simply prints "Global" If <ent> is unknown, prints "??/its type".
    virtual void PrintToLog (const occ::handle< Standard_Transient > &ent, Standard_OStream &S) const
     Prints label specific to each norm in log format, for a given entity. By default, just calls PrintLabel, can be redefined.
    virtual int NextNumberForLabel (const char *const labellabel, const int lastnum=0, const bool exact=true) const
     Searches a label which matches with one entity. Begins from <lastnum>+1 (default:1) and scans the entities until <NbEntities>. For the first which matches <label>, this method returns its Number. Returns 0 if nothing found Can be called recursively (labels are not specified as unique) <exact> : if True (default), exact match is required else, checks the END of entity label.
    Public Member Functions inherited from Standard_Transient
     Standard_Transient ()
     Empty constructor.
     Standard_Transient (const Standard_Transient &)
     Copy constructor – does nothing.
    Standard_Transientoperator= (const Standard_Transient &)
     Assignment operator, needed to avoid copying reference counter.
    virtual ~Standard_Transient ()=default
     Destructor must be virtual.
    virtual const opencascade::handle< Standard_Type > & DynamicType () const
     Returns a type descriptor about this object.
    bool IsInstance (const opencascade::handle< Standard_Type > &theType) const
     Returns a true value if this is an instance of Type.
    bool IsInstance (const char *const theTypeName) const
     Returns a true value if this is an instance of TypeName.
    bool IsKind (const opencascade::handle< Standard_Type > &theType) const
     Returns true if this is an instance of Type or an instance of any class that inherits from Type. Note that multiple inheritance is not supported by OCCT RTTI mechanism.
    bool IsKind (const char *const theTypeName) const
     Returns true if this is an instance of TypeName or an instance of any class that inherits from TypeName. Note that multiple inheritance is not supported by OCCT RTTI mechanism.
    Standard_TransientThis () const
     Returns non-const pointer to this object (like const_cast). For protection against creating handle to objects allocated in stack or call from constructor, it will raise exception Standard_ProgramError if reference counter is zero.
    int GetRefCount () const noexcept
     Get the reference counter of this object.
    void IncrementRefCounter () noexcept
     Increments the reference counter of this object. Uses relaxed memory ordering since incrementing only requires atomicity, not synchronization with other memory operations.
    int DecrementRefCounter () noexcept
     Decrements the reference counter of this object; returns the decremented value. Uses release ordering for the decrement to ensure all writes to the object are visible before the count reaches zero. An acquire fence is added only when the count reaches zero, ensuring proper synchronization before deletion. This is more efficient than using acq_rel for every decrement.
    virtual void Delete () const
     Memory deallocator for transient classes.

    Data Fields

    DESTEP_Parameters InternalParameters

    Additional Inherited Members

    typedef void base_type
     Returns a type descriptor about this object.
    Static Public Member Functions inherited from Interface_InterfaceModel
    static const char * ClassName (const char *const typnam)
     From a CDL Type Name, returns the Class part (package dropped) WARNING : buffered, to be immediately copied or printed.
    static bool HasTemplate (const char *const namename)
     Returns true if a template is attached to a given name.
    static occ::handle< Interface_InterfaceModelTemplate (const char *const namename)
     Returns the template model attached to a name, or a Null Handle.
    static bool SetTemplate (const char *const namename, const occ::handle< Interface_InterfaceModel > &model)
     Records a new template model with a name. If the name was already recorded, the corresponding template is replaced by the new one. Then, WARNING : test HasTemplate to avoid surprises.
    static occ::handle< NCollection_HSequence< occ::handle< TCollection_HAsciiString > > > ListTemplates ()
     Returns the complete list of names attached to template models.
    static constexpr const char * get_type_name ()
     Returns a type descriptor about this object.
    static const opencascade::handle< Standard_Type > & get_type_descriptor ()
     Returns type descriptor of Standard_Transient class.
    Protected Member Functions inherited from Interface_InterfaceModel
     Interface_InterfaceModel ()
     Defines empty InterfaceModel, ready to be filled.

    Detailed Description

    Gives access to.

    • entities in a STEP file,
    • the STEP file header.

    Constructor & Destructor Documentation

    ◆ StepData_StepModel()

    StepData_StepModel::StepData_StepModel ( )

    Creates an empty STEP model with an empty header.

    Member Function Documentation

    ◆ AddHeaderEntity()

    void StepData_StepModel::AddHeaderEntity ( const occ::handle< Standard_Transient > & ent)

    Adds an Entity to the Header.

    ◆ ClearHeader()

    void StepData_StepModel::ClearHeader ( )
    overridevirtual

    Clears the Header.

    Implements Interface_InterfaceModel.

    ◆ ClearLabels()

    void StepData_StepModel::ClearLabels ( )
    overridevirtual

    erases specific labels, i.e. clears the map (entity-ident)

    Implements Interface_InterfaceModel.

    ◆ DumpHeader()

    void StepData_StepModel::DumpHeader ( Standard_OStream & S,
    const int level = 0 ) const
    overridevirtual

    Dumps the Header, with the Header Protocol of StepData. If the Header Protocol is not defined, for each Header Entity, prints its Type. Else sends the Header under the form of HEADER Section of an Ascii Step File <level> is not used because Header is not so big.

    Implements Interface_InterfaceModel.

    ◆ Entity()

    occ::handle< Standard_Transient > StepData_StepModel::Entity ( const int num) const

    returns entity given its rank. Same as InterfaceEntity, but with a shorter name

    ◆ GetFromAnother()

    void StepData_StepModel::GetFromAnother ( const occ::handle< Interface_InterfaceModel > & other)
    overridevirtual

    gets header from another Model (uses Header Protocol)

    Implements Interface_InterfaceModel.

    ◆ HasHeaderEntity()

    bool StepData_StepModel::HasHeaderEntity ( const occ::handle< Standard_Type > & atype) const

    says if a Header entity has a specified type

    ◆ Header()

    Interface_EntityIterator StepData_StepModel::Header ( ) const

    returns Header entities under the form of an iterator

    ◆ HeaderEntity()

    occ::handle< Standard_Transient > StepData_StepModel::HeaderEntity ( const occ::handle< Standard_Type > & atype) const

    Returns Header entity with specified type, if there is.

    ◆ IdentLabel()

    int StepData_StepModel::IdentLabel ( const occ::handle< Standard_Transient > & ent) const

    returns the label ident attached to an entity, 0 if not in me

    ◆ IsInitializedUnit()

    bool StepData_StepModel::IsInitializedUnit ( ) const
    inline

    Returns the unit initialization flag True - the unit was initialized False - the unit value was not initialized, the default value is used.

    ◆ LocalLengthUnit()

    double StepData_StepModel::LocalLengthUnit ( ) const

    Returns local length unit using for transfer process (1 by default).

    ◆ NewEmptyModel()

    occ::handle< Interface_InterfaceModel > StepData_StepModel::NewEmptyModel ( ) const
    overridevirtual

    Returns a New Empty Model, same type as <me>, i.e. StepModel.

    Implements Interface_InterfaceModel.

    ◆ PrintLabel()

    void StepData_StepModel::PrintLabel ( const occ::handle< Standard_Transient > & ent,
    Standard_OStream & S ) const
    overridevirtual

    Prints label specific to STEP norm for a given entity, i.e. if a LabelIdent has been recorded, its value with '#', else the number in the model with '#' and between ().

    Implements Interface_InterfaceModel.

    ◆ SetIdentLabel()

    void StepData_StepModel::SetIdentLabel ( const occ::handle< Standard_Transient > & ent,
    const int ident )

    Attaches an ident to an entity to produce a label (does nothing if <ent> is not in <me>).

    ◆ SetLocalLengthUnit()

    void StepData_StepModel::SetLocalLengthUnit ( const double theUnit)

    Sets local length unit using for transfer process.

    ◆ SetSourceCodePage()

    void StepData_StepModel::SetSourceCodePage ( Resource_FormatType theCode)
    inline

    Return the encoding of STEP file for converting names into UNICODE.

    ◆ SetWriteLengthUnit()

    void StepData_StepModel::SetWriteLengthUnit ( const double theUnit)

    Sets length unit using for writing process.

    ◆ SourceCodePage()

    Resource_FormatType StepData_StepModel::SourceCodePage ( ) const
    inline

    Return the encoding of STEP file for converting names into UNICODE. Initialized from "read.step.codepage" variable by constructor, which is Resource_UTF8 by default.

    ◆ StringLabel()

    occ::handle< TCollection_HAsciiString > StepData_StepModel::StringLabel ( const occ::handle< Standard_Transient > & ent) const
    overridevirtual

    Returns a string with the label attached to a given entity, same form as for PrintLabel.

    Implements Interface_InterfaceModel.

    ◆ VerifyCheck()

    void StepData_StepModel::VerifyCheck ( occ::handle< Interface_Check > & ach) const
    overridevirtual

    Specific Check, checks Header Items with HeaderProtocol.

    Reimplemented from Interface_InterfaceModel.

    ◆ WriteLengthUnit()

    double StepData_StepModel::WriteLengthUnit ( ) const

    Returns length unit using for writing process (1 by default).

    Field Documentation

    ◆ InternalParameters

    DESTEP_Parameters StepData_StepModel::InternalParameters

    The documentation for this class was generated from the following file: