Here is what I prompted ChatGPT with:
Okay, now that you have helped me actually program most of the Medeek APIs (wall, truss, foundation and floor). I would like for you to attempt to use the API to generate some ruby code I can dump into the console in order to create a simple garage (four exterior walls) with a simple fink truss roof.
I also forgot to add that this should have a slab on grade foundation that measures 24' x 36'. The walls align with the edges of the foundation (outside of framing) and the truss roof will also be 24' x 36'. On the one gable end will be a 16' garage door 84" in height (default, so don't worry about the height. On one of the long walls there should be a regular 36" x 80" door, centered 6' from the corner. On the other long wall a 36" x 48" window (centered on wall) and on the other short wall opposite the garage door wall should also be a 36" x 48" window (centered on the wall). The fink truss roof should be a 6:12 pitch, leave everything else as default.
After one mistake (it put the roof assembly on the ground initially, not sure why it missed that but it did), it produced this piece of code, which I then copied and pasted into the console and hit enter:
model = Sketchup.active_model
ents = model.active_entities
wall_mod = Medeek_Engineering_Inc_Extensions::MedeekWallPlugin::Wall::MedeekMethods
truss_mod = Medeek_Engineering_Inc_Extensions::MedeekTrussPlugin::MedeekMethods
sog_mod = Medeek_Engineering_Inc_Extensions::MedeekFoundationPlugin::Sog::MedeekMethods
# --- helper: run an API call and return the new top-level group it created ---
def capture_new_group(ents)
before = ents.grep(Sketchup::Group)
yield
after = ents.grep(Sketchup::Group)
new_groups = after - before
return new_groups.first
end
model.start_operation('Create Medeek Garage', true)
begin
# ---------------------------------------------------------------------------
# GEOMETRY
# 24' x 36' slab/wall/truss footprint
# Coordinates in inches
#
# Layout:
# SW = (0,0,0)
# SE = (432,0,0)
# NE = (432,288,0)
# NW = (0,288,0)
#
# Walls are drawn counterclockwise around the exterior perimeter so the
# outside of framing aligns with the slab perimeter.
# ---------------------------------------------------------------------------
p0 = [0.0, 0.0, 0.0] # SW
p1 = [432.0, 0.0, 0.0] # SE
p2 = [432.0, 288.0, 0.0] # NE
p3 = [0.0, 288.0, 0.0] # NW
footprint = [p0, p1, p2, p3]
# ---------------------------------------------------------------------------
# 1. Slab-on-grade foundation
# ---------------------------------------------------------------------------
sog_group = capture_new_group(ents) do
sog_mod.sog_draw(footprint)
end
# ---------------------------------------------------------------------------
# 2. Exterior walls
# South wall: p0 -> p1 (36')
# East wall: p1 -> p2 (24')
# North wall: p2 -> p3 (36')
# West wall: p3 -> p0 (24') <-- garage door wall
# ---------------------------------------------------------------------------
south_wall = capture_new_group(ents) do
wall_mod.wall_draw(p0, p1, 'Rectangular', 'Int-Ext')
end
east_wall = capture_new_group(ents) do
wall_mod.wall_draw(p1, p2, 'Rectangular', 'Int-Ext')
end
north_wall = capture_new_group(ents) do
wall_mod.wall_draw(p2, p3, 'Rectangular', 'Int-Ext')
end
west_wall = capture_new_group(ents) do
wall_mod.wall_draw(p3, p0, 'Rectangular', 'Int-Ext')
end
# ---------------------------------------------------------------------------
# 3. Openings
#
# WEST gable wall (24' wall): centered 16' garage door
# wall length = 288", centered opening location = 144"
#
# SOUTH long wall (36' wall): 36" x 80" door
# center placed 72" from SW corner
#
# NORTH long wall (36' wall): centered 36" x 48" window
# wall length = 432", centered opening location = 216"
#
# EAST short wall (24' wall): centered 36" x 48" window
# wall length = 288", centered opening location = 144"
# ---------------------------------------------------------------------------
# 16' garage door on west wall, centered
wall_mod.wall_garage_draw(144.0, 192.0, 84.0, 'Rectangle', west_wall)
# 3' x 6'-8" man door on south wall, center 6' from SW corner
wall_mod.wall_door_draw(72.0, 36.0, 80.0, 'Rectangle', south_wall)
# Centered window on north wall
wall_mod.wall_win_draw(216.0, 36.0, 48.0, 'Rectangle', north_wall)
# Centered window on east wall
wall_mod.wall_win_draw(144.0, 36.0, 48.0, 'Rectangle', east_wall)
# ---------------------------------------------------------------------------
# 4. Fink truss roof over same 24' x 36' footprint, 6:12 pitch
# FIX 1: raise roof to top of walls
# FIX 2: reorder points so gable orientation is rotated 90 degrees
# ---------------------------------------------------------------------------
wall_height = 97.125
tp0 = [0.0, 0.0, wall_height] # SW
tp1 = [0.0, 288.0, wall_height] # NW
tp2 = [432.0, 288.0, wall_height] # NE
tp3 = [432.0, 0.0, wall_height] # SE
truss_footprint = [tp0, tp1, tp2, tp3]
truss_group = capture_new_group(ents) do
truss_mod.common_truss_draw(6.0, 'Fink', truss_footprint)
end
model.commit_operation
puts 'Medeek garage created successfully.'
puts "SOG group: #{sog_group ? sog_group.name : 'not captured'}"
puts "South wall: #{south_wall ? south_wall.name : 'not captured'}"
puts "East wall: #{east_wall ? east_wall.name : 'not captured'}"
puts "North wall: #{north_wall ? north_wall.name : 'not captured'}"
puts "West wall: #{west_wall ? west_wall.name : 'not captured'}"
puts "Truss group: #{truss_group ? truss_group.name : 'not captured'}"
rescue => e
model.abort_operation
puts "ERROR: #{e.class} - #{e.message}"
puts e.backtrace.join("\n")
end
The result was this:


ChatGPT just built (in SketchUp) my new detached garage in under five minutes. It was even offering to modify the windows to sliders and other modifications if I needed to stray from the defaults that I had used.
These AI engines will continue to improve and eventually they may be able to do much more than design a simple four wall structure like this. Things are going to get really interesting in the next couple of years.


