Since documentation for RegionPlot[]
contains no examples nor synopses that describe how RegionPlot
should be have on a region or a list of regions/Graphics
primitives, I don't think one can say authoritatively that a list of disks is a nonstandard argument. RegionPlot[]
does accept a list as a single region to be plotted, and it treats it in a reasonable way, which I will explain below.
While the internal machinations are different, effectively what is plotted is
RegionPlot[{
DiscretizeGraphics[Graphics@RegionConcSect], (* could use DiscretizeRegion[] here *)
DiscretizeGraphics[Graphics@RegionRebar]
},
AspectRatio -> Automatic]

Of course, any disk will be discretized as a polygon, but in this case, the results are unsatisfactory.
One straightforward way to get a better plot is to use RegionUnion
on the rebar:
(* internally calls DiscretizeRegion[] on RegionUnion[] *)
RegionPlot[{RegionConcSect, RegionUnion @@ RegionRebar}, AspectRatio -> Automatic]

One can use PlotStyle -> {style1, style2}
, substituting whatever styles are desired for styling the rectangle and the disks.
My feeling is that a list of graphics primitives is intended to be supported. What is really missing (imo) is a way to pass discretization options, such as MaxCellMeasure
, to RegionPlot
. The first example above, which I will explain below, illustrates that the default behavior is understandable and that the user could adjust the behavior by setting MaxCellMeasure
in the way a user sometimes has to set PlotPoints
or MaxRecursion
in plotting. For instance, it would be nice to be able to achieve the following through options to RegionPlot
without having to discretize graphics (or regions) explicitly.
RegionPlot[{
DiscretizeGraphics[Graphics@RegionConcSect],
DiscretizeGraphics[Graphics@RegionRebar, MaxCellMeasure -> {"Length" -> 10.}]
},
AspectRatio -> Automatic]

To understand better what to expect from RegionPlot
, here is an explanation of what is happening internally. RegionPlot
picks a MaxCellMeasure
setting based on the bounds of the region being plotted. The list RegionRebar
is treated as a single object to be plotted, which has rather large bounds and gets a pretty big MaxCellMeasure
setting. By contrast, RegionUnion @@ RegionRebar
evaluates to RegionUnion[Disk[<>], Disk[<>],...]
and symbolically represents the union of several regions instead of a single graphics. RegionPlot
calls DiscretizeRegion
on this, and the procedure that analyzes the union results in a finer discretization. One might criticize the default behavior for not plotting the list like RegionUnion @@ RegionRebar
instead of like Graphics@RegionRebar
.
RegionPlot
, since you are providing it a nested list of regions, which is not really standard syntax. UseFlatten@{RegionConcSect, RegionRebar}
as its argument instead. Here is the result I see. $\endgroup$Show
. See my answer below for an example. $\endgroup$