Category: Basics

Knowledge-ware Formulas: Variable, Operators, and Expressions

Formulas are Knowledge-ware objects of type AdvisorFormula, which is a specialized AdvisorRelation. I usually explain formulas as single-line Rules written in EKL*. They serve as the building blocks for constructing complex Parameter relationships. Formulas are composed of variables, operators, and/or functions and methods**. A formula can drive only one parameter. It also must return a […]

The Physical Product PositionMatrix

I showed earlier how to extract origin-coordinates and rotation-angles from Axis Systems’ components. Atsushi followed with a post on working with vectors and I recently showed how to perform Axis To Axis transformations on geometric features. Today I’ll focus on Physical Product’sPositionMatrix; more specifically, the VPMInstance PositionMatrix. Instance Position Vs Occurrence Position A Physical ProductReference […]

Understanding The Shape Representation

I explained earlier the Drawing Representation model and touched upon a few notions: Aggregated vs Shared Representations, Collections, and Representation’s Root. Let’s now take a look at the more complex Shape Representation, and some of the differences between the dotnet and the EKL APIs. The Shape Data Mode Shapes are Representations whose V_discipline attribute value […]

Scaling Drawing Views

Scope We often produce 2D documentation of parts varying in size; trying to fit them all on a single-sheet size per project deliverable/package, and we are aware that CATIA drawing has many inefficiencies, one of the most common bottlenecks found is scaling views to fit. Today I will provide an automation example to mitigate scaling […]

Understanding The Drawing Representation

CATIA’s data model is structured around two main object types: Physical Products (Parts and Products) that hold information pertaining to structure, and Representations that hold information relating to descriptions– whether 3D geometry as in Shapes and Skeletons, or Knowledgeware features as in Knowledge Engineering Specifications, or 2D view drawings as in Drawings. An overview of […]

Engineering Templates Explained

One of the most robust functionalities supported by CATIA’s Knowledgeware is the ability to create reusable content: User Defined Features or Power Copy features, which can be instantiated within Representations; Engineering Templates, which can be instantiated within Physical Products. This functionality enables the encapsulation of compelx relationship and enterprise best practices; supporting Knowledge Based Engineering […]

Working With Vectors

Working with mathematical vectors in code is valuable. It requires only math calculation, and a code executing time is faster than a code dependent on a geometrical object attributes. Maher showed, in a previous post how to extract direction components from an AxisSystem matrix using EKL. In this post, I’ll dig deeper into how Vectors […]

Walking CATIA’s Trees with C-Sharp

In the post on CATIA Automation APIs, I described the languages one can use to automate CATIA. In this post, we’ll learn how to walk a CATIA tree using C-sharp. I assume that the readers is somewhat familiar with Object Oriented Programming concepts. API CHM (Compiled HTML) Document Before we start, let’s take how to […]

xGenerative Design (And A Fibonacci Series Example)

Parametric modeling, an approach to build geometry, permits data manipulation via exposing controls (operands and parameters) to end users. CATIA allows manipulating these controls via User-Interface (UI) tools or programmatically via EKL in Knowledge-ware objects. Users with basic computer science background will immediately map programming concepts onto CATIA: tools are like constructors in object-oriented-programming; features […]

Managing Geometry in EKL

EKL rules can be used to manage geometric elements within UDFs, Powercopies, and Engineering Templates to provide a high level of automation of both internal parameters (such as nomenclature) as well geometric configuration. To understand this concept let’s first take a look at "geometric parameters" and how they can be used to create configurable models. […]

Reading An Axis System With EKL

This EKL code shows how to read data from an Axis System object to create corresponding Point object at the origin, as well as XY, YZ, and ZX planes matching those of the axis system. /* inputs: -axis: AxisSystem -geoset: OpenBodyFeature */ let originVector(Vector) let originXmag, originYmag, originZmag(Real) let axMatrix(Matrix) let xxMag, xyMag, xzMag (Real) […]

CATIA For V5 And Digital Project Users

This is a short post for Digital Project V5 users that are curious about how it compares to 3DX. Gehry Technologies, now Trimble Consulting, created Digital Project in the early 2000s as an AEC-specific version of Dassault’s CATIA V5. It had an A&S (Architecture and Structures) workbench that offered a number of AEC tools for […]


In this post, I’ll draw a few parallels between REVIT and CATIA. System REVIT comprises three domains: Architecture, Structure, and MEP. Each domain comes with a list of tools. CATIA is broken down to roles/licenses. A role comes with many apps, each comprising many tools. Similar to REVIT, some tools may reappear in different apps […]

Making a Grid of Points in EKL

Writing EKL code requires a Template Designer License, (KDI). It is customary for ones to start their first programming project with a "Hello World". So let’s not break the tradition. Create An Action As mention in earlier, Action objects will be able to create and set features, while Rule objects can only set already existing […]

Behaviors of Knowledge-ware Objects

For a quick introduction to how and where CATIA stores knowledge-ware objects, take a look at this post. EKL (Enterprise Knowledge Language) code can be written within any knowledge-ware Relation, including: Action, Reaction, Check, Rule, KnowlegePattern, and Optimization objects. States Before looking at how these objects differ, lets look at the idea of State. Active […]