ChatGPT experiment inside Sketchup

Hey I asked ChatGPT to create a couple sketchup models on my laptop, inspired by James Bond movie environments: The Villains Lair & Chinese Casino.

You need to allow a few permissions etc but essentially very simple to setup and within minutes the model is pasted straight into your instance of Sketchup. Not too bloated or meshy, quite clean and simple.. ok its fairly basic but shows how it can interpret styles and I like a lot of the details.

Ok here’s another one.. you can use chatgbt to build extensions. For instance:

We build a lot of ‘flats’ for events. Just simple walls that get covered in print etc. I always thought it would be handy for a dynamic component to fill in the timber and sheet elements, to speed things up.

Anyway gave it a bash an within an hour I have a working extension that does exactly this. I have no coding experience whatsoever.

I can draw a rectangle for the desired area to cover, right click and activate my extension and it fills in the flats. If I need to resize simply scale and press space, or select to recalculate.

Ive set parameters of sheet and timber sizes.

What other use cases could this have?

Theatre-Flat-Builder-0.2.1.rbz (8.9 KB)

Install

In SketchUp desktop on Mac or Windows, open Extensions → Extension Manager → Install Extension, then select Theatre-Flat-Builder-0.2.1.rbz.

The earlier 0.1 prototype was loaded into the current Mac SketchUp session. Install the updated RBZ and restart SketchUp to use version 0.2.1 consistently. Save your model before restarting. This is a locally developed, unsigned extension; it has not been published or signed through Extension Warehouse.

Create a wall

  1. Close any open component/group editing context.
  2. Choose Extensions → Theatre Flat Builder → Create wall….
  3. Enter wall width and flat height in millimetres, choose 20 × 45 or 20 × 70 timber, and optionally list available stock lengths separated by commas.
  4. Click to place the bottom-left front corner. Width runs along the red axis and height along blue. Use SketchUp Move/Rotate to position the completed assembly. Escape cancels placement.

For example, width 3000, height 4000, timber 20 × 45, stock 2400, 4200 creates three separate flat components: 1220 + 1220 + 560 mm. It uses a 2440 mm lower sheet and 1560 mm upper sheet for each flat.

Fit a drawn rectangle

  1. At model level, draw an upright rectangular face using SketchUp’s Rectangle tool, snapping to the space you need to fill. It can run at any angle around the vertical axis.
  2. Select the face (its boundary edges may also be selected) and right-click Build flats from rectangle…. A group containing only one rectangle also works.
  3. Choose timber and optional stock lengths, then confirm. Width, height and position are taken directly from the rectangle.

By default the rectangle is replaced in a single undoable operation. Alternatively choose Keep rectangle. Framing goes behind the face’s front side; reverse the face before conversion if you want the framing on the other side. Keep-source mode deliberately leaves a coplanar reference face, so it may flicker against the skin until moved or hidden.

Use rectangular, upright faces with four corners and no holes. Horizontal, tilted, skewed and irregular faces are rejected. Close any component/group editing context first. The tool converts the whole selected face; draw a separate rectangle rather than selecting an existing building face that you want to retain.

Scale and snap an existing wall

  1. Select the whole generated wall, at model level. You can select it before or after activating Scale; do not enter the wall and scale individual timber members or inner flat components.
  2. Use SketchUp’s Scale handles to fit its width/height, including snapping to your surrounding geometry.
  3. Finish scaling and press Space to return to Select. The wall automatically rebuilds to that footprint, restoring actual timber sizes and 6 mm facing.

The width determines how many separate flats are needed. Scaling one copy does not change other copies. The transformed front surface and origin are retained, including rotated and mirrored walls. Depth scaling is discarded so framing stays its specified thickness; use front-face points when snapping because a snapped back face may shift as thickness is restored.

Automatic rebuilding occurs when moving directly from Scale to Select, not continuously while dragging. If you switch to a different tool, use the right-click Rebuild flats to scaled size command. Regeneration is a separate Undo step: Undo once restores the stretched state; Undo again reverses the preceding scale. After undoing only the rebuild, repeat Rebuild flats to scaled size before exporting.

If the requested size exceeds 4000 mm, creates an unsupported narrow remainder, or needs longer stock than configured, the extension reports it and leaves the scaled wall untouched. Undo the scale, or adjust it to a valid size, then rebuild. Skewed transformations and zero-size walls cannot be rebuilt.

Edit dimensions numerically

Select a generated wall and choose Edit selected wall…. Each edit affects that selected wall, even if it was copied. Position, orientation and top-level tag are preserved.

Regeneration replaces generated members and sheets. Manual member edits, member-level tags/materials, attached geometry inside the wall and custom component details are not preserved. Keep additional details outside the generated wall.

The fresh installation puts these commands under Extensions → Theatre Flat Builder and in the appropriate right-click menus. When updating the already running 0.1 session, fitting commands appear in an additional Theatre Flat Builder — Fit & Resize menu until restart.

Construction rules

  • Maximum individual flat width: 1220 mm. Use full-width flats first and one remainder.
  • Maximum height: 4000 mm, enforced.
  • Timber: 20 mm thick, with selectable 45 or 70 mm depth. Side members run full height; horizontal members fit between them.
  • Facing: 6 mm, using 1220 × 2440 mm sheet stock, vertically oriented.
  • Regular horizontal centres: 620, 1230, 1840… mm from the bottom, matching the reference model: 610 mm centres measured from the bottom rail centre at 10 mm. Top and bottom rails remain flush to the ends.
  • At a horizontal sheet joint, turn a support so its 45 or 70 mm face contacts the sheeting. Its depth behind the sheet becomes 20 mm.
  • Move/turn the nearest regular cross-member if within 300 mm of the sheet joint. Otherwise add a support. End rails remain in place.
  • Sheet joints normally occur at 2440 mm. Just above that height, shorten the lower sheet enough to fit the turned support below the top rail without overlapping it. This can produce a narrow upper sheet strip; review that detail for workshop practicality.
  • No splices or cut joinery; separate butt-ended members are modelled without fasteners.
  • Practical prototype input limits: minimum flat/remainder width 60 mm, minimum height 100 mm, maximum wall width 244000 mm. A tiny remainder is rejected rather than silently changing the requested layout.

Stock lengths and cutting list

Stock lengths are optional and expressed in millimetres (for example 2400, 3600, 4200). If supplied, every timber cut must fit at least one length; otherwise generation is blocked. Blank means unspecified, not verified against available stock.

Select a generated wall and choose Export selected wall cutting list…. This saves a CSV with a row for every member and sheet, its flat number, dimensions and the smallest suitable configured timber stock length.

The CSV is a parts list, not a purchasing/nesting optimiser: it does not pack several cuts into stock lengths, account for saw kerf, or combine sheet offcuts across flats. Stock availability quantities are not tracked. Manual changes to generated parts may require regeneration before exporting.

Included files and validation

  • Theatre-Flat-Builder-0.2.1.rbz — installable extension, with readable Ruby source inside.
  • Example-3000x4000-wall.skp — generated example using 20 × 45 framing. Open directly or import into another model.
  • This guide.

The original geometry generator was checked against the supplied standard-flat model in SketchUp 2026 on Mac. Version 0.2.1 fixes scale extraction: it reads the full transformation matrix rather than the normalised axis directions. Automated regression tests cover width/height/depth scaling, rotations, mirrors, homogeneous scaling, the 3000 × 4000 layout, fixed physical part sizes, and deferred rebuild triggering. Live retesting of the updated Scale-to-Select workflow remains pending because the Ruby Console could not be opened through the current UI controls. Live geometry checks covered both timber widths at heights 2440, 2441 and 4000 mm, including solidness, part dimensions and volumes. Automated layout checks covered stock restrictions, height and width limits, sheet sizes and member intersections. Windows use has not yet been tested; the extension uses the cross-platform SketchUp Ruby API.

This prototype applies the agreed fabrication rules; it does not calculate structural capacity, bracing, rigging or fixings.