bimtex

assembly

Projection screen

projection-screen dresses asset:av-screen — and nothing else. Appearance is invisible to the drawing set, so adding this changes no plan, no section and no elevation.

  • 9of 500 meshes
  • 2slots
  • 1finish

Drag to orbit · scroll to zoom

The build. Made here, now, by the same interpreter a model gets.
Projection screen, shown as a photorealistic visual reference
The reference. AI-generated, not bimtex output — the authored input this body was written against.
$surface
$frame

This definition leaves $surface and $frame open, and a look line fills them. Every combination is one body — same geometry, same selector, same sheets — so the block below rewrites itself as you pick. Only materials are slottable: a size would have to agree with the plan, so it stays on the entity.

Paste this

Every part: the 2 materialdefs the body resolves to, then the definition. Copying the lookdef alone still compiles and still validates — it just renders grey.

{"t":"materialdef","id":"pal-charcoal","of":"paint","value":20}
{"t":"materialdef","id":"pal-white","of":"paint","value":92}
{"t":"lookdef","id":"projection-screen","for":"asset:av-screen","desc":"Freestanding framed projection screen on a tripod support.","slots":{"surface":"pal-white","frame":"pal-charcoal"},"preview":{"projection":"perspective","azimuth":-28,"elevation":14,"fov":34,"margin":1.04},"body":{"type":"Group","children":[{"type":"Mesh","material":"$surface","geometry":{"type":"BoxGeometry","width":2.94,"height":1.48,"depth":0.1},"position":[0,1.39,0]},{"type":"Mesh","material":"$frame","geometry":{"type":"RoundedBoxGeometry","width":3,"height":0.045,"depth":0.07,"radius":0.01,"segments":2},"position":[0,2.1775,0]},{"type":"Mesh","material":"$frame","geometry":{"type":"RoundedBoxGeometry","width":3,"height":0.045,"depth":0.07,"radius":0.01,"segments":2},"position":[0,0.6025,0]},{"type":"Mesh","material":"$frame","geometry":{"type":"RoundedBoxGeometry","width":0.045,"height":1.62,"depth":0.07,"radius":0.01,"segments":2},"position":[-1.4775,1.39,0]},{"type":"Mesh","material":"$frame","geometry":{"type":"RoundedBoxGeometry","width":0.045,"height":1.62,"depth":0.07,"radius":0.01,"segments":2},"position":[1.4775,1.39,0]},{"type":"Mesh","material":"$frame","geometry":{"type":"CylinderGeometry","radiusTop":0.025,"radiusBottom":0.025,"height":0.62,"radialSegments":16},"position":[0,0.31,0]},{"type":"Mesh","material":"$frame","geometry":{"type":"TubeGeometry","path":[[0,0.18,0],[-0.55,0,0.04]],"radius":0.018,"radialSegments":10,"tubularSegments":12}},{"type":"Mesh","material":"$frame","geometry":{"type":"TubeGeometry","path":[[0,0.18,0],[0.55,0,0.04]],"radius":0.018,"radialSegments":10,"tubularSegments":12}},{"type":"Mesh","material":"$frame","geometry":{"type":"TubeGeometry","path":[[0,0.18,0],[0,0,-0.04]],"radius":0.018,"radialSegments":10,"tubularSegments":12}}],"scale":[0.999999999,0.992605466,0.872078941]}}

Or take the whole pack, which brings every entry and every material at once:

cat packs/assembly.ndjson model.ndjson > dressed.ndjson
Download assembly pack 18 KB · NDJSON ↓