You can use a Dynamic report to query for registration instances where a capacity has been set and has been reached. Using a Dynamic Report block add the query and settings below:
SELECT RI.Id
,RI.[Name] AS [RegistrationInstance]
,RI.[IsActive]
,Registrants.[Count] AS [Registrants]
,RI.MaxAttendees
,CAST(CASE WHEN Registrants.[Count] >= RI.MaxAttendees THEN 1 ELSE 0 END AS BIT) AS [Full]
FROM RegistrationInstance RI
OUTER APPLY (
SELECT COUNT(*) AS [Count]
FROM Registration R
INNER JOIN RegistrationRegistrant RR On RR.RegistrationId = R.Id
WHERE R.IsTemporary = 0
AND R.RegistrationInstanceId = RI.Id
) Registrants
WHERE RI.MaxAttendees > 0

You can see it on our demo site here too: https://demo.9embers.com/page/2269