engiGetEntityNoArguments

This call returns the number of arguments, this includes the arguments of its (nested) parents and inverse argumnets.

Syntax

//   Visual Studio for Windows
public:
__int32 __declspec(dllexport) __stdcall engiGetEntityNoArguments(
            __int32 entity
        );

//   Linux, OS-X and non-Visual Studio Windows solutions
public:
int32_t engiGetEntityNoArguments(
            int32_t entity
        );    

Property entity

Size: 32 bit / 4 byte (value)
Handle of an entity (schema item/class), for example IFCWALLSTANDARDCASE as defined in IFC4.exp.

Examples

Here you can find code snippits that show how the API call engiGetEntityNoArguments can be used.

__int32 WriteEntityStructure(__int32 ifcEntity)
{
    if  (ifcEntity) {
        //
        //  Iterate over the parents
        //
        __int32	attributeCnt = WriteEntityStructure(engiGetEntityParent(ifcEntity));

        //
        //  Print Entity name
        //
        char    * entityName = 0;
        engiGetEntityName(ifcEntity, sdaiSTRING, &entityName);
        std::cout << "Entity  " << entityName << std::endl;

        //
        //  Walk over attributes
        //
        while  (attributeCnt < engiGetEntityNoArguments(ifcEntity)) {
            char    * attributeName = 0;
            __int32 attributeType = 0;
            engiGetEntityArgumentName(ifcEntity, attributeCnt, sdaiSTRING, &attributeName);
            engiGetEntityArgumentType(ifcEntity, attributeCnt, &attributeType);

            std::cout << "  " << attributeName << "  ";
            switch  (attributeType) {
                case  sdaiSTRING:
                    std::cout << "STRING";
                    break;

                ...

                default:
                    break;
            }
            std::cout << std::endl;

            attributeCnt++;
        }

        return  attributeCnt;
    }

    return  0;
}