GetSelectedObjectCount Method (ISelectionManager) Send Feedback
See Also  Example
SelCount[out]
Number of selected entities
SSType
Type of selection as defined in dsSelectionSetType_e
Gets the number of selected entities in the current selection set.

Syntax

Visual Basic 
Function GetSelectedObjectCount( _
   ByVal SSType As dsSelectionSetType_e _
) As System.Integer
C# 
System.int GetSelectedObjectCount( 
   dsSelectionSetType_e SSType
)
JavaScript 
GetSelectedObjectCount( 
   SSType : String
) : Number
COM native C++ 
HRESULT GetSelectedObjectCount( 
   dsSelectionSetType_e SSType,
   LONG* SelCount
) 
C++ 
DSRESULT GetSelectedObjectCount( 
   dsSelectionSetType_e SSType,
   long* SelCount
) 

Parameters

SSType
Type of selection as defined in dsSelectionSetType_e
SelCount[out] or Return Value
Number of selected entities

Example

This code snippet shows how to write the names, captions, and values of the selected objects to a file.

COM native C++

        long selCount = dsSelManager->GetSelectedObjectCount( dsSelectionSetType_Current );
        strPrint.Format( L"Selected objects: (%d):\r\n", selCount );
        fileOutput.WriteString( strPrint );

        if( selCount > 0 )
        {
            for( long i = 0; i < selCount; ++i )
            {
                //Get selected object type
                dsObjectType_e retObjType;
                IDispatchPtr selObj = dsSelManager->GetSelectedObject( dsSelectionSetType_Current, i, &retObjType );

                //If selected object is Block instance
                if( dsBlockInstanceType == retObjType )
                {
                    IBlockInstancePtr blkIns( selObj );
                   
                    //Get Block definition name and write it to output file
                    bstr_t blockName = blkIns->GetBlockDefinition()->GetName();
                    strPrint.Format( L"Instance of (%s) block definition\r\n", blockName.operator const wchar_t*() );
                    fileOutput.WriteString( strPrint );                   
                }
                else
                    //If selected object is BlockAttribute definition
                    if( dsAttributeDefinitionType == retObjType )
                    {
                        IAttributeDefinitionPtr AttDefs( selObj );

                        //Get BlockAttribute definition name
                        bstr_t AttDefName = AttDefs->GetName();

                        strPrint.Format( L"Attribute definition (%s) \r\n", AttDefName.operator const wchar_t*() );
                        fileOutput.WriteString( strPrint );

                        //Get BlockAttribute definition caption
                        bstr_t AttDefCaption = AttDefs->GetCaption();

                        strPrint.Format( L"\tCaption: %s\r\n", AttDefCaption.operator const wchar_t*() );
                        fileOutput.WriteString( strPrint );

                        strPrint.Format( L"\tName: %s\r\n", AttDefName.operator const wchar_t*() );
                        fileOutput.WriteString( strPrint );
                       
                        //Get BlockAttribute definition value
                        bstr_t AttDefValue = AttDefs->GetValue();

                        strPrint.Format( L"\tValue: %s\r\n", AttDefValue.operator const wchar_t*() );
                        fileOutput.WriteString( strPrint );                       
                    }

Example

Remarks

You can also use this method to determine if a valid selection was made.
 

See Also

Availability

DraftSight V1R1