Good day,
i have the same problem as: https://community.esri.com/message/395796?commentID=395796#comment-395796?q=dormer
i did try the 3 solutions but non seem to work anymore.
the rule work becouse the gable roof angle is >45% but if i set it to <45% it fails.
I like this approach (word.north, etc) because I can use lidar data to search for the domers and then fill a field on what location on the roof they are.
@StartRule
Lot -->
extrude(20)
comp (f) {front: Front | side:Wall | top:Roof}
Front -->
color (1,0,0)
Wall -->
color (0,1,0)
Roof-->
roofGable(50)
comp(f) {world.north : Roofdormer | world.west : Wall |world.east : Wall | world.south : roof }
Roofdormer-->
color (0,0,1)
split(x){'0.40 : roof | '0.2 : DormerLocation | '0.40: roof}
DormerLocation-->
split(y){'0.4: roof | '0.3 :Dormer| '0.5: roof}
roof-->
color (1,0,0)