ISO 10303-24:2001
(Main)Industrial automation systems and integration - Product data representation and exchange - Part 24: Implementation methods: C language binding of standard data access interface
Industrial automation systems and integration - Product data representation and exchange - Part 24: Implementation methods: C language binding of standard data access interface
This part of ISO 10303 specifies a C programming language late binding of the capability specified in ISO 10303-22 - Standard data access interface (SDAI). This binding is a late binding and as such, none of the constants, data types, and functions depend on the application schema being accessed. The following are within the scope of this part of ISO 10303: - access to and manipulation of data types and entities which are specified in ISO 10303-22; - convenience functions suitable to this language binding; - late binding requirements specified in ISO 10303-22. The following are outside the scope of this part of ISO 10303: - memory arrangement of data structures used by implementations of this part of ISO 10303; - early binding requirements as specified in ISO 10303-22; - all items listed as out of scope in ISO 10303-22.
Systèmes d'automatisation industrielle et intégration — Représentation et échange de données de produits — Partie 24: Méthode de mise en application: Liant de langage C à l'interface d'accès aux données normalisées
General Information
Overview
ISO 10303-24:2001 defines the C language late binding for the Standard Data Access Interface (SDAI) of the ISO 10303 (STEP) family. In plain terms, this part of the ISO 10303 suite specifies how C programs can access, query and manipulate product data through SDAI using a late-binding approach - none of the constants, data types or functions depend on the application schema being accessed. The standard targets interoperable product data representation and exchange for industrial automation and PLM systems.
Key Topics
- Late binding of SDAI (C binding): runtime access to EXPRESS-schema-based data without schema-specific compile-time types.
- SDAI operations exposed in C: environment, session, repository, SDAI-model, schema instance, scope, type, entity instance and application instance operations (create, copy, delete, query, validate, save/undo).
- Data types and constants: EXPRESS and SDAI primitive/entity/aggregate types mapped to C-binding types, iterators, non-persistent lists, error codes and convenience data blocks.
- Convenience functions & error handling: language-specific helpers and late-binding error handling conventions.
- Conformance and naming conventions: requirements for conformant implementations and header/macro usage.
- Out of scope: memory layout of implementation data structures and early binding requirements (those are explicitly excluded).
Applications
ISO 10303-24 (C language binding of SDAI) is practical for:
- Building interoperability layers between CAD, CAM, CAE and PLM systems that consume STEP (ISO 10303) data in C-based applications.
- Implementing data exchange, validation and transformation tools that must work across different EXPRESS schemas at runtime.
- Creating custom repositories or SDAI-compliant servers/clients in C that perform queries, instantiation, scoped copy/delete and schema validation.
- Embedding STEP access into embedded systems or HPC tools where C is required for performance or platform constraints.
Who would use this standard
- Software developers and engineers implementing STEP/SDAI tools in C/C++.
- PLM integrators, CAD/CAM software vendors, system integrators, and middleware developers needing schema-independent product data access.
- Architects of data repositories and standards-compliant exchange services.
Related Standards
- ISO 10303-22 - Standard Data Access Interface (SDAI) (required basis for this binding)
- Other parts of ISO 10303 (STEP) family, including EXPRESS language definitions and application protocols.
Keywords: ISO 10303-24, SDAI C binding, STEP C binding, product data representation, late binding, EXPRESS, ISO 10303-22, product data exchange, PLM interoperability.
Frequently Asked Questions
ISO 10303-24:2001 is a standard published by the International Organization for Standardization (ISO). Its full title is "Industrial automation systems and integration - Product data representation and exchange - Part 24: Implementation methods: C language binding of standard data access interface". This standard covers: This part of ISO 10303 specifies a C programming language late binding of the capability specified in ISO 10303-22 - Standard data access interface (SDAI). This binding is a late binding and as such, none of the constants, data types, and functions depend on the application schema being accessed. The following are within the scope of this part of ISO 10303: - access to and manipulation of data types and entities which are specified in ISO 10303-22; - convenience functions suitable to this language binding; - late binding requirements specified in ISO 10303-22. The following are outside the scope of this part of ISO 10303: - memory arrangement of data structures used by implementations of this part of ISO 10303; - early binding requirements as specified in ISO 10303-22; - all items listed as out of scope in ISO 10303-22.
This part of ISO 10303 specifies a C programming language late binding of the capability specified in ISO 10303-22 - Standard data access interface (SDAI). This binding is a late binding and as such, none of the constants, data types, and functions depend on the application schema being accessed. The following are within the scope of this part of ISO 10303: - access to and manipulation of data types and entities which are specified in ISO 10303-22; - convenience functions suitable to this language binding; - late binding requirements specified in ISO 10303-22. The following are outside the scope of this part of ISO 10303: - memory arrangement of data structures used by implementations of this part of ISO 10303; - early binding requirements as specified in ISO 10303-22; - all items listed as out of scope in ISO 10303-22.
ISO 10303-24:2001 is classified under the following ICS (International Classification for Standards) categories: 25.040.40 - Industrial process measurement and control. The ICS classification helps identify the subject area and facilitates finding related standards.
You can purchase ISO 10303-24:2001 directly from iTeh Standards. The document is available in PDF format and is delivered instantly after payment. Add the standard to your cart and complete the secure checkout process. iTeh Standards is an authorized distributor of ISO standards.
Standards Content (Sample)
INTERNATIONAL ISO
STANDARD 10303-24
First edition
2001-12-15
Industrial automation systems and
integration — Product data representation
and exchange —
Part 24:
Implementation methods: C language
binding of standard data access interface
Systèmes d'automatisation industrielle et intégration — Représentation et
échange de données de produits —
Partie 24: Méthode de mise en application: Liant de langage C à l'interface
d'accès aux données normalisées
Reference number
©
ISO 2001
PDF disclaimer
This PDF file may contain embedded typefaces. In accordance with Adobe's licensing policy, this file may be printed or viewed but shall not
be edited unless the typefaces which are embedded are licensed to and installed on the computer performing the editing. In downloading this
file, parties accept therein the responsibility of not infringing Adobe's licensing policy. The ISO Central Secretariat accepts no liability in this
area.
Adobe is a trademark of Adobe Systems Incorporated.
Details of the software products used to create this PDF file can be found in the General Info relative to the file; the PDF-creation parameters
were optimized for printing. Every care has been taken to ensure that the file is suitable for use by ISO member bodies. In the unlikely event
that a problem relating to it is found, please inform the Central Secretariat at the address given below.
© ISO 2001
All rights reserved. Unless otherwise specified, no part of this publication may be reproduced or utilized in any form or by any means, electronic
or mechanical, including photocopying and microfilm, without permission in writing from either ISO at the address below or ISO's member body
in the country of the requester.
ISO copyright office
Case postale 56 • CH-1211 Geneva 20
Tel. + 41 22 749 01 11
Fax + 41 22 749 09 47
E-mail copyright@iso.ch
Web www.iso.ch
Printed in Switzerland
ii © ISO 2001 – All rights reserved
Contents page
1 Scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
2 Normative references . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
3 Terms, definitions, and abbreviations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
3.1 Terms defined in ISO 10303-1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
3.2 Terms defined in ISO 10303-11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
3.3 Terms defined in ISO 10303-22 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
3.4 Other definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
3.5 Abbreviations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
4 Overview of the C language late binding of SDAI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
4.1 Language bindings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
4.2 Conformance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
4.3 Use of late binding functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
4.3.1 Invalid parameter values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
4.3.2 Error handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
4.3.3 Memory management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
4.3.4 The SDAI header file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
4.3.5 Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
4.4 Naming and typographical conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
5 Constants and data type definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
5.1 Standard error codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
5.2 EXPRESS constants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
5.3 EXPRESS data types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
5.3.1 Bit data type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
5.3.2 EXPRESS simple data types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
5.3.3 Enumeration data type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
5.3.4 Select data type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
5.3.5 Entity data type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
5.3.6 Aggregate data types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
5.4 SDAI data types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
5.4.1 SDAI primitive data types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
5.4.2 SDAI entity data types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
5.4.3 Iterator data type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
5.4.4 Non-persistent list data type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
5.4.5 Query source data type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
5.4.6 SDAI access type data type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
5.5 C late binding-specific data types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
5.5.1 Attribute data block data type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
5.5.2 Aggregate index data type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
5.5.3 Error code data type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
5.5.4 Error handler data type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
5.5.5 Transaction commit mode data type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
5.5.6 NULL identifier data type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
©ISO 2001 – All rights reserved iii
6 C late binding functions of the SDAI operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
6.1 Environment operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
6.1.1 Open session . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
6.1.2 C late binding specific arithmetic operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
6.1.3 C late binding specific error handling operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
6.1.4 C late binding specific instance operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
6.2 Session operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
6.2.1 Record event . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
6.2.2 Set event recording . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
6.2.3 Close session . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
6.2.4 Open repository . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
6.2.5 Start transaction read-write or read-only access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
6.2.6 Break transaction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
6.2.7 End transaction access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
6.2.8 Create non-persistent list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
6.2.9 Delete non-persistent list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
6.2.10 SDAI query . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
6.2.11 C late binding specific recording operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
6.2.12 C late binding specific attribute data block operations . . . . . . . . . . . . . . . . . . . . . . . . 26
6.3 Repository operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
6.3.1 Create SDAI-model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
6.3.2 Create schema instance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
6.3.3 Close repository . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
6.4 Schema instance operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
6.4.1 Delete schema instance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
6.4.2 Rename schema instance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
6.4.3 Add SDAI-model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
6.4.4 Remove SDAI-model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
6.4.5 Validate global rule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
6.4.6 Validate uniqueness rule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
6.4.7 Validate instance reference domain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
6.4.8 Validate schema instance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
6.4.9 Is validation current . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
6.4.10 Schema instance operations for convenience . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
6.5 SDAI-model operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
6.5.1 Delete SDAI-model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
6.5.2 Rename SDAI-model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
6.5.3 Start SDAI-model access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
6.5.4 Promote SDAI-model to read-write access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
6.5.5 End SDAI-model access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
6.5.6 Get entity definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
6.5.7 Create entity instance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
6.5.8 Undo changes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
6.5.9 Save changes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
6.5.10 SDAI-model operations for convenience . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
6.6 Scope operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
6.6.1 Add to scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
6.6.2 Is scope owner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
6.6.3 Get scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
iv ©ISO 2001 – All rights reserved
6.6.4 Remove from scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
6.6.5 Add to export list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
6.6.6 Remove from export list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
6.6.7 Scoped delete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
6.6.8 Scoped copy in same SDAI-model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
6.6.9 Scoped copy to other SDAI-model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
6.6.10 Validate scope reference restrictions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
6.6.11 Scope operations for convenience . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
6.7 Type operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
6.7.1 Get complex entity definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
6.7.2 Is subtype of . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
6.7.3 Is SDAI subtype of . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
6.7.4 Is domain equivalent with . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
6.7.5 Type operations for convenience . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
6.8 Entity instance operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
6.8.1 Get attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
6.8.2 Test attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
6.8.3 Find entity instance SDAI-model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
6.8.4 Get instance type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
6.8.5 Is instance of . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
6.8.6 Is kind of . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
6.8.7 Is SDAI kind of . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
6.8.8 Find entity instance users . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
6.8.9 Find entity instance usedin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
6.8.10 Get attribute value bound . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
6.8.11 Find instance roles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
6.8.12 Find instance data types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
6.8.13 Entity instance operations for convenience . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
6.9 Application instance operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
6.9.1 Copy application instance in same SDAI-model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
6.9.2 Copy application instance to other SDAI-model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
6.9.3 Delete application instance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
6.9.4 Put attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
6.9.5 Unset attribute value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
6.9.6 Create aggregate instance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
6.9.7 Create aggregate instance ADB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
6.9.8 Get persistent label . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
6.9.9 Get session identifier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
6.9.10 Get description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
6.9.11 Validate where rule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
6.9.12 Validate required explicit attributes assigned . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
6.9.13 Validate inverse attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
6.9.14 Validate explicit attributes references . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
6.9.15 Validate aggregates size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
6.9.16 Validate aggregates uniqueness . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
6.9.17 Validate array not optional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
6.9.18 Validate string width . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
6.9.19 Validate binary width . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
6.9.20 Validate real precision . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
©ISO 2001 – All rights reserved v
6.9.21 Application instance operations for convenience . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
6.10 Entity instance aggregate operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
6.10.1 Get member count . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
6.10.2 Is member . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
6.10.3 Create iterator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
6.10.4 Delete iterator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
6.10.5 Beginning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
6.10.6 Next . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
6.10.7 Get current member . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
6.10.8 Get value bound by iterator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
6.10.9 Get lower bound . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
6.10.10 Get upper bound . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
6.11 Application instance aggregate operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
6.11.1 Create aggregate instance as current member . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
6.11.2 Put current member . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
6.11.3 Remove current member . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
6.12 Application instance unordered collection operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
6.12.1 Add unordered . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
6.12.2 Create aggregate instance unordered . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
6.12.3 Remove unordered . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
6.13 Entity instance ordered collection operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
6.13.1 Get by index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
6.13.2 End . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
6.13.3 Previous . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
6.13.4 Get value bound by index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
6.14 Application instance ordered collection operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
6.14.1 Put by index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
6.14.2 Create aggregate instance by index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
6.15 Entity instance array operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
6.15.1 Test by index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
6.15.2 Test current member . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
6.15.3 Get lower index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
6.15.4 Get upper index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
6.16 Application instance array operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
6.16.1 Unset value by index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
6.16.2 Unset value current member . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
6.16.3 Reindex array . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
6.16.4 Reset array index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
6.17 Application instance list operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
6.17.1 Add before current member . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
6.17.2 Add after current member . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
6.17.3 Add by index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
6.17.4 Create aggregate instance before current member . . . . . . . . . . . . . . . . . . . . . . . . . . 117
6.17.5 Create aggregate instance after current member . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
6.17.6 Add aggregate instance by index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
6.17.7 Remove by index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
6.18 C late binding specific SELECT TYPE operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
6.18.1 Put ADB type path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
6.18.2 Get ADB type path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
vi ©ISO 2001 – All rights reserved
6.18.3 Validate type path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
Annex A (normative) Information object registration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
Annex B (informative) The C late binding header include file . . . . . . . . . . . . . . . . . . . . 125
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
Tables page
Table 1 - SDAI C late binding error indicators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Table 2 - EXPRESS built-in constants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Table 3 - SDAI primitive data types mapped to C late binding . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Table 4 - SDAI entity data types mapped to C late binding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
©ISO 2001 – All rights reserved vii
Foreword
ISO (the International Organization for Standardization) is a worldwide federation of national stan-
dards bodies (ISO member bodies). The work of preparing International Standards is normally carried
out through ISO technical committees. Each member body interested in a subject for which a technical
committee has been established has the right to be represented on that committee. International organi-
zations, governmental and non-governmental, in liaison with ISO, also take part in the work. ISO col-
laborates closely with the International Electrotechnical Commission (IEC) on all matters of
electrotechnical standardization.
International Standards are drafted in accordance with the rules given in the ISO/IEC Directives, Part 3.
The main task of technical committees is to prepare International Standards. Draft International
Standards adopted by the technical committees are circulated to the member bodies for voting.
Publication as an International Standard requires approval by at least 75 % of the member bodies
casting a vote.
At tention is drawn to the possibility that some of the elements of this part of ISO 10303 may be the
subject of patent rights. ISO shall not be held responsible for identifying any or all such patent rights.
International Standard ISO 10303-24 was prepared by Technical Committee ISO/TC 184, Industrial
automation systems and integration, Subcommittee SC 4, Industrial data.
This International Standard is organized as a series of parts, each published separately. The structure of
this International Standard is described in ISO 10303-1.
Each part of this International Standard is a member of one of the following series: description meth-
ods, implementation methods, conformance testing methodology and framework, integrated generic
resources, integrated application resources, application protocols, abstract test suites, application inter-
preted constructs, and application modules. This part is a member of the implementation methods
series.
A complete list of parts of ISO 10303 is available from the Internet:
Annex A forms a normative part of this part of ISO 10303. Annex B is for information only.
viii ©ISO 2001 – All rights reserved
Introduction
ISO 10303 is an International Standard for the computer-interpretable representation of product infor-
mation and for the exchange of product data. The objective is to provide a neutral mechanism capable
of describing products throughout their life cycle. This mechanism is suitable not only for neutral file
exchange, but also as a basis for implementing and sharing product databases, and as a basis for
archiving.
This part of ISO 10303 specifies a C programming language late binding of capability specified in ISO
10303-22, the standard data access interface (SDAI). The SDAI defines a data access interface to data
defined using ISO 10303-11 (EXPRESS). The SDAI specifies operations that give the application pro-
grammer the capability to manipulate data through an interface based upon its description in the defin-
ing schema or schemas. This part of ISO 10303 specifies manifestation of that interface in the C
programming language that is independent of the EXPRESS data definitions being manipulated. The
standardization of a data access interface along with data definitions facilitates integration of different
software components from different vendors.
The document is structured corresponding to ISO 10303-22. The major subdivisions in this part of ISO
10303 are:
— Clause 4 is an overview of the C language late binding to the SDAI. It specifies the requirements
common to all C language late binding functions.
— Clause 5 specifies the C language late bindings to the EXPRESS and binding specific constants
and data types.
— Clause 6 specifies the C language late binding functions to the SDAI operations to handle the pro-
gramming environment.
— The specification of the C language late binding functions for the SDAI operations follows the cat-
egories defined in ISO 10303-22 clause 10.
Computer application systems are implemented using computing languages. Since there are many
computing languages, many SDAI language bindings are possible. Additional SDAI language bindings
are specified as other parts of ISO 10303 within the implementation method series.
Implementations of this part of ISO 10303 are not required to support the complete set of capabilities
specified in ISO 10303-22. Specific sets of capability are grouped into implementation classes. The
implementation classes against which conformance may be claimed are defined in ISO 10303-22
clause 13.
©ISO 2001 – All rights reserved ix
INTERNATIONAL STANDARD ISO 10303-24:2001(E)
Industrial automation systems and integration —
Product data representation and exchange —
Part 24: Implementation methods:
C language binding of standard data access interface
1 Scope
This part of ISO 10303 specifies a C programming language late binding of the capability specified in
ISO 10303-22 - Standard data access interface (SDAI). This binding is a late binding and as such, none
of the constants, data types, and functions depend on the application schema being accessed.
The following are within the scope of this part of ISO 10303:
— access to and manipulation of data types and entities which are specified in ISO 10303-22;
— convenience functions suitable to this language binding;
— late binding requirements specified in ISO 10303-22.
The following are outside the scope of this part of ISO 10303:
— memory arrangement of data structures used by implementations of this part of ISO 10303;
— early binding requirements as specified in ISO 10303-22;
— all items listed as out of scope in ISO 10303-22.
2 Normative references
The following normative documents contain provisions which, through reference in this text, constitute
provisions of this part of ISO 10303. For dated references, subsequent amendments to, or revisions of,
any of these publications do not apply. However, parties to agreements based on this part of ISO 10303
are encouraged to investigate the possibility of applying the most recent editions of the normative doc-
uments indicated below. For undated references, the latest edition of the normative document referred
to applies. Members of ISO and IEC maintain registers of currently valid International Standards.
ISO/IEC 9899:1999, Programming languages — C
©ISO 2001 – All rights reserved 1
ISO/IEC 8824-1:1998, Information technology — Abstract Syntax Notation One (ASN.1): Specification
of basic notation
ISO 10303-1:1994, Industrial automation systems and integration - Product data representation and
exchange - Part 1: Overview and fundamental principles
ISO 10303-11:1994, Industrial automation systems and integration - Product data representation and
exchange - Part 11: Description methods: The EXPRESS language reference manual
ISO 10303-21:1994, Industrial automation systems and integration - Product data representation and
exchange - Part 21: Implementation methods: Clear text encoding of the exchange structure
ISO 10303-22:1998, Industrial automation systems and integration - Product data representation and
exchange - Part 22: Implementation methods: Standard data access interface
3 Terms, definitions, and abbreviations
3.1 Terms defined in ISO 10303-1
For the purposes of this part of ISO 10303, the following terms defined in ISO 10303-1 apply.
— application;
— application protocol;
— conformance testing;
— data;
— implementation method;
— information;
— model.
3.2 Terms defined in ISO 10303-11
For the purposes of this part of ISO 10303, the following terms defined in ISO 10303-11 apply.
— complex entity data type;
— data type;
—entity;
2 ©ISO 2001 – All rights reserved
— entity data type;
— entity instance;
— instance.
3.3 Terms defined in ISO 10303-22
For the purposes of this part of ISO 10303, the following terms defined in ISO 10303-22 apply.
— application schema;
— constraint;
— identifier;
— iterator;
— implementation class;
— repository;
— schema instance;
— SDAI language binding;
— SDAI-model;
— session;
— validation.
3.4 Other definitions
For the purposes of this part of ISO 10303, the following definitions apply:
3.4.1
attribute data block
a C structure containing both a value and the data type of the value that is accessed through a handle.
3.4.2
function
a C language late binding specific interpretation of an SDAI operation, a combination of several SDAI
operations or an operation unique to this binding.
©ISO 2001 – All rights reserved 3
3.4.3
function prototype
the definition of a C programming language function in an include file.
3.4.4
handle C type
a function parameter that is a C language pointer type containing the address of a datum or a structured
data.
3.5 Abbreviations
For the purposes this part of ISO 10303, the following abbreviations apply:
aggr Aggregate
app Application
attr Attribute
ADB Attribute Data Block
BN By name
Deq Domain equivalent
Enum Enumeration
Id Identifier
Itr Iterator
NPL Non-persistent List
Rep Repository
RO Read only
RW Read write
SDAI Standard Data Access Interface
Trx Transaction
Uni Uniqueness
4 ©ISO 2001 – All rights reserved
4 Overview of the C language late binding of SDAI
4.1 Language bindings
ISO 10303-22 specifies operations independently of any programming language. Language bindings of
the operations are developed for programming languages to define the capability required of conform-
ing implementations. Two types of language bindings are identified: late bindings and early bindings.
The concept of language bindings is defined in ISO 10303-22 clause 4. This part of ISO 10303 speci-
fies a C language late binding of the SDAI operations.
This part of ISO 10303 supports all of the functionality defined in ISO 10303-22. There is not a
one-to-one correspondence between the operations described in ISO 10303-22 and the functions
defined in this part of ISO 10303. This part of ISO 10303 extends the functionality defined in ISO
10303-22 to provide more efficient or convenient operations.
4.2 Conformance
An implementation of this part of ISO 10303 shall conform to an implementation class as specified in
ISO 10303-22 clause 13. The implementation shall support all C language binding functions whose
original specification in ISO 10303-22 contains an operation required by the implementation level and
shall support all convenience functions defined in this part of ISO 10303.
4.3 Use of late binding functions
4.3.1 Invalid parameter values
If a parameter to a C late binding function has an invalid value (such as a value outside the domain of
the function, a pointer outside the address space of the program, or a NULL pointer), the behaviour of
the function is not specified in this part of ISO 10303.
4.3.2 Error handling
In the event an error is detected during the execution of a function, the values of the input parameters,
the state of the implementation, and the application data managed by the implementation shall be
unchanged, except in the event of a fatal underlying system error where the outcome is dependent on
system and implementation design. Whether the output parameters are affected in the event of an error
is left to the implementation.
4.3.3 Memory management
When applicable, functions are strongly typed to return either a designated value or an instance identi-
fier. The function parameters do not include output parameters except where required to return
untyped data in application managed storage. The output parameters are typed void* to accept arbi-
trarily typed pointers to output buffers for attribute and aggregate member values or ADBs passed from
the implementation to the application program.
©ISO 2001 – All rights reserved 5
The SDAI implementation shall be responsible for allocating and deallocating memory for attribute
values of the EXPRESS data types BINARY, ENUMERATION, and STRING, and the application pro-
gram is responsible for the contents of that memory. The SDAI implementation shall allocate memory
in a fashion such that it is large enough for any character or binary string to be read. The value of that
memory shall be unchanged until the next time a character or binary string is read, or until the end of
the session.
If the SDAI implementation supports the computation of EXPRESS DERIVE attributes, the implenta-
tion shall allocate and deallocate memory for the computed value. The value of that memory shall be
unchanged until the next time a DERIVE attribute is read, or until the end of the session.
If the SDAI implementation supports the computation of EXPRESS INVERSE attributes, the implen-
tation shall allocate and deallocate memory for the NPL containing the result. The value of the NPL
shall be unchanged until the next time an INVERSE attribute is read, or until the end of the session.
4.3.4 The SDAI header file
An implementation shall provide a C late binding program header file, named sdai.h, for inclusion
into the application program by the C preprocessor directive #include . This header file
shall contain all the declarations of types, constants, and functions defined in this part of ISO 10303.
An example header file is provided in annex B.
4.3.5 Macros
Any SDAI operation may be implemented as a macro defined in the sdai.h header file. Any invoca-
tion of an operation that is implemented as a macro shall expand resulting in each parameter being
evaluated exactly once, fully protected by parentheses where required.
4.4 Naming and typographical conventions
In this part of ISO 10303, C language function, type, and constant names are typeset in a monospace
font to distinguish them from ordinary text.
The prefix sdai is used for all C programming language function, type, and constant names. Case is
used to delimit separate words or parts of identifiers and to differentiate among function, type, and con-
stant names as follows:
— function names are prefixed by a lowercase sdai and each word in the function name starts with
an uppercase letter;
EXAMPLE 1 sdaiOpenSession for the SDAI Open Session operation.
— type names are prefixed by Sdai starting with an uppercase letter s and each word in the type
name starts with an uppercase letter;
EXAMPLE 2 SdaiNamedType for EXPRESS named types.
6 ©ISO 2001 – All rights reserved
— constant names are prefixed by a lowercase sdai and the constant name is all uppercase letters.
EXAMPLE 3 sdaiRO for read-only.
5 Constants and data type definitions
5.1 Standard error codes
ISO 10303-22 clause 11 defines a set of SDAI error indicators. These error indicators with the addition
of the C language binding specific error indicators defined in Table 1 define the set of error indicators
mapped into C programming language constants to which all implementations shall support access via
the Error Query function (see 6.1.3.1). The constant name is the name of the SDAI error indicator pre-
fixed by sdai.
EXAMPLE sdaiMO_NEXS for SDAI-model does not exist.
The error code constants shall be included in the sdai.h header file. The value and type of the error
code constants are not defined in ISO 10303-22 nor in this part of ISO 10303. The error code value and
error base specified need only be supported as attributes of the error event defined in ISO 10303-22:
7.4.7.
Table 1 - SDAI C late binding error indicators
Error Error
Description Error code
indicator base
NO_ERR No error Not applicable
AB_NEXS Attribute data block does not exist 2400
5.2 EXPRESS constants
Table 2 specifies the EXPRESS built-in constants represented by C language constants or macros.
These built in constants shall be included in the sdai.h header file.
5.3 EXPRESS data types
5.3.1
...
ISO 10303-24:2001 is a standard that specifies a C programming language late binding for the capabilities of ISO 10303-22, which is the standard data access interface (SDAI). This late binding means that the constants, data types, and functions in the C language binding do not depend on the application schema being accessed. This part of ISO 10303 covers the access and manipulation of data types and entities specified in ISO 10303-22, as well as convenience functions suitable for this language binding. It also includes the late binding requirements specified in ISO 10303-22. However, it does not cover the memory arrangement of data structures used by implementations, early binding requirements as specified in ISO 10303-22, or any items listed as out of scope in ISO 10303-22.
ISO 10303-24:2001は、ISO 10303-22で指定された機能のCプログラミング言語による遅延バインディングを規定しています。この遅延バインディングは、アプリケーションスキーマに依存せず、C言語バインディングの定数、データ型、および関数を提供します。このISO 10303の一部では、ISO 10303-22で指定されたデータ型とエンティティへのアクセスと操作、およびこの言語バインディングに適した便利な機能、ISO 10303-22で指定された遅延バインディングの要件が対象となります。ただし、このISO 10303の一部では、実装に使用されるデータ構造のメモリ配列、ISO 10303-22で指定された早期バインディングの要件、およびISO 10303-22で対象外とされたすべての項目は対象外です。
ISO 10303-24:2001은 C 프로그래밍 언어를 사용하여 ISO 10303-22 - 표준 데이터 접근 인터페이스 (SDAI)에 지정된 기능을 도입하는 늦은 바인딩을 규정하는 표준입니다. 이 늦은 바인딩은 상호 운용성을 위해 응용 프로그램 스키마에 의존하지 않는 상수, 데이터 유형 및 함수를 제공합니다. 이 표준은 ISO 10303-22에 지정된 데이터 유형 및 엔티티에 대한 접근과 조작, 이 언어 바인딩에 적합한 편의 기능, ISO 10303-22에 명시된 늦은 바인딩 요구 사항을 다룹니다. 그러나 이 표준은 이 구현의 데이터 구조의 메모리 배열, ISO 10303-22에 지정된 초기 바인딩 요구 사항, 그리고 ISO 10303-22에서 범위 제외된 모든 항목을 다루지 않습니다.








Questions, Comments and Discussion
Ask us and Technical Secretary will try to provide an answer. You can facilitate discussion about the standard in here.
Loading comments...