Interactive CEL course · English

Learn CEL.
Run every idea.

Start with the language itself. Read one concept, change a real expression, and see its result immediately in your browser.

TRY CELruns in your browser
EXPRESSION'Hello, ' + name + '!'
INPUT{ "name": "Maya" }
RESULT"Hello, Maya!"

Seven chapters. Twenty-eight interactive lessons.

Build a general CEL foundation before moving to any host-specific integration. Every lesson follows the same read, run, change, and explain format.

A simple learning loop.

Every lesson tells you what to do, where to do it, and what result to expect.

Read

Understand one small part of the expression.

Change and run

Edit the expression or its JSON input and run it immediately.

Keep your place

Progress stays in this browser and can be reset at any time.

When syntax is no longer enough

From requirement to rule. From rule to proof.

Build expressions for 24 word problems, then prove them against positive, negative, and boundary cases.

24 challenges4 cases eachimmediate results
Enter the practical course
ONE EXPRESSION · FOUR TESTS4/4 passed
CEL EXPRESSIONorder.active && order.items.all(item, item.price > 0)
01Valid orderPASS
02Inactive orderPASS
03Empty listPASS
04Invalid pricePASS
Every result is checked by value and type.

Bentley ProjectWise environment

PW CEL. Contexts, lookups, extensions, and migration.

Learn what ProjectWise exposes to CEL, inspect all built-in lookup datasets, understand Bentley-specific functions, and compare legacy configurations with PW CEL.

LOOKUPDMS.UsersCELgetLookup('DMS.Users').select()
Open PW CEL