Read the Brepsยค
The STEP file is the same geometry with no compas_tf concepts in it: solids, the way a shop gets them.

237 solids, 19.5 MB, no compas_tf needed to open it. Compare the scene tree with the page before: two flat entries. STEP carries no names and no hierarchy, so there is nothing to mirror.
import pathlib
from compas.colors import Color
from compas.tolerance import TOL
from compas_occt.brep import OCCBrep
from compas_viewer import Viewer
from compas_tf.viewer import zoom_to
data_dir = pathlib.Path(__file__).parent.parent / "data"
STEP_FILE = data_dir / "cantilevers_baked_model.stp"
CONTACTS_STEP_FILE = data_dir / "cantilevers_baked_contacts.stp"
# The 0.001 default is 1 micron on a building: 2.93M triangles against 19.8k.
TOL.lineardeflection = 1.0
# Solids only - no elements, no tree, no names. The contacts are loose faces, so
# they need their own file: .solids would drop them.
breps = OCCBrep.from_step(STEP_FILE).solids
contacts = OCCBrep.from_step(CONTACTS_STEP_FILE).faces
print(f"{len(breps)} solids, {sum(len(brep.faces) for brep in breps)} faces, {len(contacts)} contacts")
viewer = Viewer()
parts = viewer.scene.add_group("model")
for brep in breps:
viewer.scene.add(brep, parent=parts)
group = viewer.scene.add_group("contacts")
for face in contacts:
viewer.scene.add(face.to_polygon(), parent=group, facecolor=Color(1, 0, 0), linecolor=Color(1, 0, 0), show_points=False)
# The camera's far plane is 1000 mm, so without this the building starts clipped.
zoom_to(viewer, [brep.aabb for brep in breps])
viewer.show()
The model is one compound, so .solids splits out the parts. The contacts are a
second file: they are loose faces, which .solids would drop. Coplanar faces
were merged before writing, so 13730 mesh faces come back as 4779 Brep faces,
each drilled face carrying its hole loops.
Set the deflection. At the 0.001 default the building tessellates to 2.93M
triangles in 67 s; at 1.0 it is 19.8k in 2.0 s, same picture.
STEP drops names. Every face reads back unnamed, so this page can draw the contacts but not say what they join. Order survives, and the sidecar uses it - see the next page.