If you have lots that are not dynamic (i.e. not generated automatically by street networks) and streets in the scene, then it is possible to use edge attributes to sample street widths.
To mimic your case, I created a lot with 4 buildings on it.
Lot -->
split(x) { ~cell_size: split(z) { ~cell_size: Cell }* }*
Cell -->
offset(-offset_dist, inside)
extrude(10)
Mass
The lot is surrounded by streets with widths as indicated in the (last) screenshot below. Select the lot, go to Shapes -> Compute Edge Attributes. This will create object attributes with the prefix /edgeattr/. Streetwidths are calculated based on the streets near the shape.
Compute edge attributes tool—ArcGIS CityEngine Resources | Documentation
This code samples the edge attribute streetwidths for each side of each building and resizes the facade according to the sampled value.
Mass -->
comp(f) { side: Side }
Side -->
s('1, edgeAttr.getFloat("streetwidths"), '1)
set(material.opacity, 0.5)
Sampling happens by projecting the current shape geometry onto the outline of the initial shape. Note that in your case with curvy streets where a building side might correspond to multiple streets, the function will only sample one of the streets.
edgeAttr functions—ArcGIS CityEngine Resources | Documentation