Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
languagecpp
themeConfluence
EdmiError edmiTypeOfAttrBN (SdaiAppInstance instance,
                             SdaiString      attrName, 
                             SdaiInteger     options, 
                             SdaiInteger     *membersInResult, 
                             void            *result);  

Implements the Express built in function TypeOf as defined in section 15.25 TypeOf – general function; in ISO 10303-11:1994(E) : The EXPRESS Language Reference Manual.

...

This operation is only applicable on data models. The actual data model must be open before this operation can be successfully performed.

...

The actual argument to the TypeOf function is the attribute value

...

<attrId> in the specified instance <instance>.

...

Dependent of the <options> argument, each returned element will either be a string as defined in the Express TypeOf function, or as an SdaiInstance that uniquely identify the type in an EDMdatabase.

...

Arguments

...

edmiTypeOfAttrBN
TypeNameComment
SdaiAppInstance

instance

A numeric instanceID that uniquely identifies the instance of interest in the EDMdatabase.

SdaiString

attrName

Specifies the name of the attribute of interest. Attribute names are case insensitive. An attribute name must be qualified with the entity name that declares the attribute when the attribute name is not unique within the specified instance.

SdaiInteger

options

Specifies the options that are enabled in the invocation of the

edmiTypeOfAttr function. The <options> value should be specified as a bitwise OR between the options to enable. All options name are defined in the header file sdai.h .

See detailed descriptions of the available options below.

SdaiInteger

membersInResult

Address of a SdaiInteger variable that will receive the returned number of elements in the result data set.

void

result

Address of a variable that will receive the aggregateID of the scratch aggregate or address of the memory buffer that holds the resulting data set.

Return Value

...

Insert excerpt
US:_r_EDMInterface
US:_r_EDMInterface
nopaneltrue
Option Description

Options

...

 




OptionComment

AS_SCRATCH_AGGR

The result of the operation will be returned in a new created scratch aggregate. The scratch aggregate will be a SET OF STRING or SET OF Entiy_Instance.

A numeric aggregateID that uniquely identifies the resulting scratch aggregate instance will be returned in the <result> argument.

  AS_SCRATCH_AGGR is the default value of the <options> argument.

AS_MEMORY_BUFFER

The operation result aggregate will be returned as a memory buffer in the calling application's virtual memory. The memory address (byte address) of the memory buffer will be returned in the <result> argument.

The memory buffer will be an array of SdaiString or SdaiInstance.
The virtual memory in the calling application's memory will be allocated by EDMinterface. This virtual memory should be released by the calling application, using the EDMinterface operation edmiFree when the data is no longer needed by the application.

AS_STRINGS

The resulting data set will be a memory buffer of SdaiString or a SET OF STRING (scratch aggregate)

AS_INSTANCE_IDS

The resulting data set will be a memory buffer of SdaiInstance or a SET OF ENTITY_INSTANCE (scratch aggregate)

...

Example

...

 

Code Block
languagecpp
EdmiError rstat;
 SdaiAppInstance instance;
 SdaiInteger membersInResult;
 SdaiAggr result;
 SdaiString str;
 int i;
 . . .
 if (rstat = edmiTypeOfAttrBN (instance,
 "Document", 
 AS_STRINGS | AS_SCRATCH_AGGR,

...

 
 &membersInResult,

...

 
 (void *) &result)) {

...

 
 /* Error in operation */

...

 
 printf("\nError: %s in edmiTypeOfAttrBN \n",

...

 
 edmiGetErrorText(rstat));

...

 
 goto error;

...

 
 }
 /* Printing out the returned (string) type */

...


 for (i = 0; i < membersInResult; i++) {

...


 edmiGetAggrElement(result, i, sdaiSTRING, &str);

...


 if (str == NULL) {

...

 
 /* Error in operation */

...

 
 printf("\nError: %s in edmiGetAggrElement \n",

...

 
 edmiGetErrorText(sdaiErrorQuery()));

...

 
 goto error;

...

 
 } 
 printf("\n%s", str);

...

 
 edmiFree(str);

...

 
 }
 sdaiDeleteAggr(result); /* Delete scratch aggregate */

...


 . . .

 

See also

Filter by label (Content by label)
showLabelsfalse
showSpacefalse
cqllabel = "model" and parent = "6062220"