using a delphi unit directly in script

Yes, you should register in scripter the classes from that unit you want to use from the script, using one of the many registration methods as described here:

https://doc.tmssoftware.com/biz/scripter/guide/scripter.html#accessing-delphi-objects

Probably the easiest and most straightforward way is to register the classes using RTTI.

For example:

Scripter.DefineClassByRTTI(TElements);
Scripter.DefineClassByRTTI(TOuvrages);