I recommend ditching Brep and using AssocPersSubentityIdPE , its much faster than Brep, Here’s a sample using Python wrappers for ObjectARX.
import traceback
from pyrx_imp import Rx, Ge, Gi, Db, Ap, Ed, Br
def PyRxCmd_doit1() -> None:
try:
ps, id, pnt = Ed.Editor.entSel("\nSelect: ", Db.Solid3d.desc())
dbent = Db.Solid3d(id,Db.OpenMode.kForWrite)
pe = Db.AssocPersSubentIdPE(dbent.queryX(Db.AssocPersSubentIdPE.desc()))
for idx,faceId in enumerate(pe.getAllSubentities(dbent, Db.SubentType.kFaceSubentType)):
clr = Db.Color()
clr.setColorIndex(idx)
dbent.setSubentColor(faceId,clr)
except Exception as err:
traceback.print_exception(err)