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)