Você pode converter uma classe em uma de suas subclasses (chamada conversão de tipo) usando a sintaxe NewReference := type_to_cast_to[Reference], em que type_to_cast_to é o tipo que você deseja usar. Esta é uma expressão falível porque a conversão de tipo falhará se o objeto não puder ser convertido naquele tipo; por exemplo, se a classe for um tipo diferente da subclasse.
O exemplo a seguir mostra como converter TaggedDevice, que tem o tipo creative_device_base, em um tipo customizable_light_device para que você possa usar suas funções específicas. Se TaggedDevice não for um dispositivo Luz Personalizável, ele não fará a chamada TurnOn().
if (LightDevice := customizable_light_device[TaggedDevice]):
LightDevice.TurnOn()