Creating a Concept

You can create Libraries which can contain a variable number of Concepts definitions, each one containing different items.

  • A name identifying the Concept as well as its Father Concept. Like in object-oriented programming, KML Concepts can inherit from other ones. The Root type for all KML Concepts is BaseConcept.
  • Object definition (optional) is the first step in the Concept definition. It defines the type of the concrete object associated with the current Concept. If not defined in the Concept or one of its father Concepts, the concrete object type is set to feature by default. If you want to define a Concept that will not have a concrete equivalent you can set its type to VoidType.
  • Attributes, Children, Rules and Properties sections (in any order, potentially empty…), are optional.
Once a Concept has been declared, it can be used like a Knowledge Type in EKL expressions or in other Concepts. The order in which Concepts are declared is not important.
Note: You can use the Wizard to help you create the Concept skeleton and declare the specified attributes. You must then write the evaluators part of the script.
Concept <ConceptName> : <FatherConceptName> 
{
        Object: <ConcreteObjectType>; 
        Attributes
       {
                		[…]
      	}
       Children
       {
                		[…]
       }
       Rules
       {
                		[…]
       } 
       Properties
       {
		                […]
       }
 }	
Note: In a KML Concept or Template, the Generated Objects are objects whose Concept is declared as "can be replayed" and whose Object is an instance, like a subtype of PLMCoreInstance or PLMCoreRepInstance for example.
Concept MyConcept : BaseConcept
{
                Object: VPMInstance;
[…]
                Properties
                {
                       InstantiationReplayable = TRUE;
                }
}   


Before you begin: You must have created a Library.
See Also
Creating a Library
Defining Children
Defining an Attribute
Defining Concept Properties
  1. Click Create a new Concept using the Wizard .
    The New Concept Wizard dialog box opens.
  2. Enter the Concept name in the Name field, MyTable in our example.
  3. Click ... and select BaseConcept in the Select a Type dialog box.
  4. Enter the inputs of the Concept.
    1. Click + located next to the Inputs field.
      The New input dialog box opens.
    2. Enter the Attribute name, tableheight for example.
    3. Click ... to select the Length type and click OK.
    4. Click OK.
    The attribute is created.
  5. Repeat the above step to create a footradius attribute of length type.
  6. Enter the Neutrals of the Concept.
    1. Click + located next to the Neutrals field.
      The New Neutral dialog box appears.
    2. Enter the Neutral name, topreference for example.
    3. Click ... to select the VPMReference type and click OK.
    4. Click OK
    The Neutral is created.
  7. Repeat the above step to create an instantiatedObject neutral of VPMInstance type.
  8. Define the Concept children.
    1. Click + located next to the Children field.
      The New Child dialog box opens.
    2. Enter the Child name, MyTableTop for example.
    3. Click ... to select the BaseConcept type and click OK.
    4. Click OK.
  9. Repeat the above step to create a MyTableFoot child of BaseConcept type.


  10. Click OK.

The concept is added to the Library.

Note: You can also key in your concept script directly in the Know-how Apps Logic Editor.

To view an example, import the KMLSample.3dxml file located in win_b64\startup\Knowledgeware\KMLSamples\Sample1 in the installation folder.