In CityEngine, if we have two roads structured as two concentric circles, the block generated by the inner circle will be completely covered by the outer one (as is shown in picture below, though it's not circle, but the situation is just alike)
when there's no outer circle, the block generated is like this:
and when the shape of outer block is formed, the inner block cannot be chosen any more.
I think it's like an island, and the proper topology should be like only the region (or block) between two circles is formed, and the region inside the inner circle is cut out. Is there a way to make this possible?
The graph engine only creates blocks based on segments that are connected to each other. Therefore what you describe is expected. So far we consider your case as very rare, therefore we dont cover it. What is your exact use case? This might help to better understand the problem and to prioritise the issue.
As soon as you connect the inner with the outer circle (make sure the two loops are in the same layer) the block generation is 90% what you look for. you could then convert to static shapes and manually improve the result.