3D PLM PPR Hub Open Gateway

Knowledge Modeler

Frequently Asked Questions

Quick Reference

Abstract

Here is a quick-access list of all the FAQs we have received from CAA partners as well as DS internal developers. The questions are sorted by area of interest. In answers, links to the relevant documents or use cases are provided for a more detailed information.

They deal with the Knowledge modeler, that is, the KnowledgeInterfaces frameworks.

Retrieving Factories and Dictionaries
How do I get a handler on the function factory (CATICkeFunctionFactory)?
How do I get a handler on the parameter factory (CATICkeParmFactory)?
How do I get a handler on the parameter dictionary (CATIParmDictionary)?

Relations
How do I create volatile formulas?
How do I indicate that a relation must be updated along with the Part?

Parameters
How do I retrieve the current unit of a parameter?
When parameters are put on reference objects what happens if I instantiate the reference?
How do I retrieve the parameter that emits a 'Change Value Notification'?

Compilation
I have a compilation error in CATCkeBoolean.h


Retrieving Factories and Dictionaries

How do I get a handler on the function factory (CATICkeFunctionFactory)?

Use the static method CATCkeGlobalFunctions::GetFunctionFactory.

How do I get a handler on the parameter factory (CATICkeParmFactory)?

A pointer to the parameter factory interface can be retrieved from a feature container using QueryInterface.

How do I get a handler on the parameter dictionary (CATIParmDictionary)?

Use the static method CATCkeGlobalFunctions::GetParmDictionary.

Relations

How do I create volatile formulas?

It is impossible to create volatile formulas with the current state of the CAA API.

How do I indicate that a relation must be updated along with the Part?

Use the IntegrateToUpdate of the CATICkeRelationExp interface.

Parameters

How do I retrieve the current unit of a parameter?

First retrieve the type of the parameter, and then use QueryInterface on the type for finding the magnitude.

//spPp1 is a smart pointer to the parameter.
CATICkeType_var spType = spPp1->Type();
if(spType != NULL_var )
{
  cout << " Type name is (CATICkeType::Name(): " << spType->Name().CastToCharPtr() << endl;
  HRESULT rc = spType -> QueryInterface(IID_CATICkeMagnitude, (void**) &piMagnitude);
  if (SUCCEEDED(rc)) 
  {	  
    cout << " Magnitude name is (CATICkeMagnitude::Name): " << piMagnitude->Name().CastToCharPtr() << endl;
  }
  CATICkeUnit_var  unit = magn->CurrentUnit();
}

When parameters are put on reference objects what happens if I instantiate the reference?

If this object is instantiated the parameters of the instance are the parameters of the reference object.

How do I retrieve the parameter that emits a 'Change Value Notification'?

The second argument of the method triggered as callback when the parameter emits a "change value notification" is the parameter itself.

void CAALifMyFeatureEventsExt::OnChangeValueEvent
             (CATCallbackEvent iEvent,
                         void* iFrom,
              CATNotification* iNotification,
              CATSubscriberData iInfo,
              CATCallback iCallback)
{
  //Retrieve the parameter that sent the event.
  CATBaseUnknown* cbup = (CATBaseUnknown*)iFrom;
  CATICkeParm_var spToParameter = cbup;
}

Compilation

I have a compilation error in CATCkeBoolean.h

This problem can occur on UNIX platform due to a conflict with MOTIF headers. The correct way to handle this is to include the following code before all other includes in the file producing the error.

#define CATCkeDefs_h
#include "CATCke.h"

History

Version: 1 [Dec 2001] Document created
[Top]

Copyright © 2001, Dassault Systèmes. All rights reserved.