There's no need to use geometryEngine for this case. You can take advantage of CIMLineSymbol and offset the line symbol from the geometry. Here's a code pen that does this with a highway layer: https://codepen.io/kekenes/pen/eYgeVEB
The lines of note are here:
[5/14 2:37 PM] Kristian Ekenes
{
type: "cim",
// CIM Line Symbol
data: {
type: "CIMSymbolReference",
symbol: {
type: "CIMLineSymbol",
symbolLayers: [
{
primitiveName: "highway",
// white dashed layer at center of the line
type: "CIMSolidStroke",
effects: [
{
type: "CIMGeometricEffectOffset",
offset: 5,
option: 0
}
]
}
]
}
}
}
When using geoemtryEngine offset, you first need to query for the geometries, then modify them using offset and add them back to the view as a client-side feature layer. That's a lot of work on your part.
CIMLineSymbol allows you to request the features only one time and symbolize the various circuits on offsets depending on the value you provide the symbol. Let me know if you need further assistance.
Kristian