| Quintiq file version 2.0 | 
| #parent: #root | 
| Method FindClassTypes (const Lib3DS_QueryParameters queryParam_i, Boolean isIncludeSubclassTypes_i) const as constcontent owning Lib3DS_ClassTypes | 
| { | 
|   Description: | 
|   [* | 
|     Find the instances of ClassTypes based on the type listed in the QueryParameters. | 
|     Give true in isIncludeSubclassTypes_i to also include the subclasses of the types in the QueryParameters. | 
|     The ClassTypes returned will be unique. | 
|   *] | 
|   TextBody: | 
|   [* | 
|     result := construct( Lib3DS_ClassTypes, constcontent ); | 
|      | 
|     traverse( queryParam_i, Type, type ) | 
|     { | 
|       classType := Lib3DS_ClassType::FindClassType( type.Name() ); | 
|       if( not isnull( classType ) ) | 
|       { | 
|         result.Add( classType ); | 
|          | 
|         if( isIncludeSubclassTypes_i ) | 
|         { | 
|           subclassTypes := selectset( classType, AllSubTypes.SubType, st, true ); | 
|           result := result.Union( subclassTypes ); // do union to keep them unique | 
|         } | 
|       } | 
|     } | 
|      | 
|     return &result; | 
|   *] | 
|   InterfaceProperties { Accessibility: 'Module' } | 
| } |