Basic ITK Customization Concept Part-01













Basic ITK Customization Part-01


Need of “Teamcenter Unified Application Customization”

We can customize Teamcenter so that it would meet your company’s requirements as per PLM Process needs and Designer working preferences.

What can be customized Siemens Teamcenter Unified Application?

1.User Interface Display

We can customize the display of both the rich client Interface,thin client and Active Workspace Interface.

2.Teamcenter Behaviour:

  • We can change or customize Teamcenter behavior by integrating third-party external applications using Integrating Toolkit ( ITK) and Teamcenter Service-oriented architecture (SOA).
  • We can customize Teamcenter behavior with ITK toolkit by build Extensions, Operations, Runtime properties and Workflow Handlers.

3.Teamcenter Data Model:

We can create your own data model that defines business objects, Rules and LOV used in Siemens Teamcenter.

4.Data Display:

We can customize how data from database display in User Interface and it’s format by using ‘XML Stylesheet Rendering’.


List of Approach and Methods used in Teamcenter Customization


Its allows you to customize the server using business object, Properties, Operations, extensions,and user exit.

2. Teamcenter Services(SOA).

Teamcenter services allow different applications to communicate with each other using services.

3.Integration Toolkit


  •  The ITK Program is part of server-side customization. We can use it to interact with the third-party tools or user-developed applications with Teamcenter.
  • Integration Toolkit is a set of C and CPP programming language used directly by Siemens Teamcenter and NX.
  • Teamcenter return value of ITK function is typically called ‘ifail’,if it is successful then return is Zero and if it is not successful then returns is non-zero with error code.
  • ITK API’s ( application programming interface) is the set of definitions and protocols for building and integrating application Software.

                           Teamcenter-Unified Customization Basics

ITK function Signature

  • All ITK functions name has a Standard format (Signature) that attempts to give the most possible information in a small space.
  • All Information is the ITK reference function guide. (Siemens does create ITK API in Adobe PDF format and its available in HTML format)

ITK API Format

int module_verb_class_modifier ( const type variable-name[] /* [Input/Output/OutputFormatted] */ );

int :

Mostly all ITK functions return an integer error code. ITK code can be run to the EMH_ask_error_text function.


This is the module designator. The module contains are a group of classes and applications.

Example:- Dataset, DatasetType, Tool, and classes are all handled by the AE(Application Encapsulation) module and                    Other modules are PSM, POM, FL, and MAIL.


This is the first keyword describing an action to be taken on an object or set of objects. Common Operations are add, ask, copy, create, find, remove and set.


Teamcenter is an object-Oriented System, It is not necessary to have a function for every action in every class.

Classes are available on the POM_Application_Object and Workspace object.


A modifier can be defined to how the action of the verb applies to the class.

Example:- RLM_update_af_status function:- status indicates what is being updated in the af (authorization folder).


Input pointer variables that are not meant to be modified normally are declared with a const to ensure that they are not accidentally modified.


Teamcenter can be mostly used below the data type of the argument.

Example:-char(Character).Int(integer) and tag_t (tag).


This is a variable name that is descriptive enough so a programmer does not need to look it up in the document.


Dimension values can be defined arrays where the calling program is bonded for allocating space.


Basically the argument is Input, Output and Output-Free.

Output-free measure that the ITK function allocates space for the returned data and this space should be freed with the Memory Management function like MEM_free.

Variable Naming Conventions

Variables in the interface are normally as descriptive as possible consisting of keywords separated by underscores.

1. Typedefs end with _t

This keyword is used to redefine the name of an already existing variable.This keyword is useful when we are dealing with long datatypes especially Structure Declarations. It is used to simplify the syntax of a structure.

2. Enums end with _e

It is a data type that contains a fixed set of constants.

3. Constants end with _c

ITK Program can’t be alter for Variable or Values it remains Constant.


Include files

  • All ITK programs must include tc/tc.h.
  • The include files are located in sub-directories of the TC_ROOT/include directory. You must include the sub-directory when calling the include file.
  • ITK functions have their prototypes and useful constants and types in a file called classname.h.






#include <sa/am.h>

#include <sa/sa_errors.h>

#include <sa/person.h>

#include <sa/role.h>

#include <sa/group.h>


Batch ITK Program:

  • Batch ITK program is the standalone ITK program that are run on the Teamcenter command line.

These are used to generate reports also perform database maintenance and migration.


Please click below to configuration Visual Studio for ITK program

     Microsoft Visual Studio Project Configuration for Teamcenter unified ITK Program


Basic concepts to write Batch ITK programs.

1. Batch ITK programs have an entry defined as ITK_user_main

ITK_user_main(int argc,char*argv[])


If TC auto_login preference in the Teamcenter database is set to true then you do not need to enter a TC username, password or group as long as Operating System user matches with Teamcenter session.


Initialize ITK program for use also logs into POM(Persistent Object Manager).


Batch ITK template for login to TC.

Program1:-ITK Program for Teamcenter Login.

int ITK_user_main(int argc,char*argv[])


int ifail=0;

char* error=NULL;

Ifail = ITK_init module(“Infodba “,”infodba”,”dba “);

If (ifail==ITK_ok)

printf(“Teamcenter login successfully“);




printf(“error is: %s”,error);


return ifail;


We will more post on  PLM Tutorial–>Teamcenter Customization in upcoming days.

Kindly provide your valuable comment on the below Comment section and We will try to provide the best workaround.

Kindly subscribe to your Email-Id at ( and drop any suggestions/queries to (


13 thoughts on “Basic ITK Customization Concept Part-01”

  1. Just fyi. One of the lines above mentions ” All itk programs must include tc\tc.h” … Post tc version 12 this is deprecated and no longer available. There is a replacement avaiavale though. Can’t recall the name but the info is present tc itk api references

    1. Hi Karan,
      tc.h is header file and some function/API is deprecated like ITEM_create_item and ITEM_ask_description more not header extension.

      I hope your doubt is clear if not, please reply to the same comment I will explain.

      Global Team

  2. Hello, i want to check whether item revision has status or not. Using itk. Which api works for that.
    Another this is i want to create form through work flow and has to attach to item revision on which workflow apply for that i user epm-create-form,epm-create-relation. Form is creating but not attaching to item revision.
    Thanks in advance

  3. Hello, Can you show me how to access the details of Home folder of user Teamcenter, after successful login into the Teamcenter?

  4. Hi,
    I’m new to ITK, I want to create a new item using ITK can anyone please help me on this

    Thank you…

Leave a Reply

Your email address will not be published. Required fields are marked *