3D models from 2D drawings
Build building or bridge models that match plan, section and elevation drawings.
20 project-authored proposals · taxonomy v1.1 · 0 new benchmark runs. Verifiers and partial-credit rules below are designs, not executed results.
- Typical applications
- Rhino · SketchUp · Revit
- Class GUI-need label
G2· GUI-essential
Task proposals · 20
Expand to inspect the complete original wording and proposed checks. Original proposal text remains English in both interfaces.
R07.05.01.03-T01 Model a library building and tower from six PDF drawings on a fixed origin
Original instruction
From input/library_*.pdf (2 plans, 2 sections, 2 elevations, 1:200) model the two-storey library hall and the 9-storey annex tower in Rhino 8, starting from fixtures/base_site.3dm whose origin is the drawings' grid A/1. Use mm, closed polysurfaces per element, layers WALL, SLAB, ROOF, GLAZ, COL. Save out/library.3dm and export out/library.obj.
- Platforms
win· Windowsmac· macOS- Applications
- Rhino
- Interfaces
desk· Desktop GUI- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
geom· Precise geometrynav· Pan/zoom/scrollvis· Visual judgment- Work product
WP04· 3D/spatial model- Conditions
licensed· Licensed pro applong· Long-horizon- Proposed difficulty
- 5 / 5
Proposed verifier
rhino3dm + trimesh: voxel IoU (100 mm) vs reference ≥0.80; key heights (eaves, parapets, tower top) within 50 mm; closed solids ratio ≥90%; layer names used; OBJ in mm. RhinoPython, RhinoCommon plugins and Grasshopper disabled; command history must show modelling commands.
Proposed partial credit
15% origin/scale correct; 40% IoU (scaled 0.5→0.8); 25% key heights; 20% solids closed & layers
R07.05.01.03-T02 Model a pedestrian footbridge from its general-arrangement drawing into a site model
Original instruction
Using input/footbridge_GA.pdf (elevation, plan, 2 cross-sections), model the 42 m steel footbridge (deck, two edge girders, 3 piers with footings, handrails, ramps to existing ground) into fixtures/riverside.3dm, aligned to abutment points AB1/AB2 already in the file. Save out/footbridge.3dm and export OBJ.
- Platforms
win· Windowsmac· macOS- Applications
- Rhino
- Interfaces
desk· Desktop GUI- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
CL· CLI-sufficient- Interaction primitives
geom· Precise geometrynav· Pan/zoom/scrollvis· Visual judgment- Work product
WP04· 3D/spatial model- Conditions
licensed· Licensed pro app- Proposed difficulty
- 4 / 5
Proposed verifier
Deck end points within 20 mm of AB1/AB2; deck profile (sampled every 2 m) within 30 mm of GA levels; pier positions within 50 mm; girder section dims within 5 mm; chamfer distance to reference ≤0.08 m; existing site objects unchanged. Scripting disabled.
Proposed partial credit
25% alignment to abutments; 25% deck profile; 35% piers & girders/rails; 15% chamfer distance
R07.05.01.03-T03 Model a house from plan and two elevations in SketchUp with tagged groups
Original instruction
In SketchUp 2025 model the bungalow in input/bungalow_plan.pdf and elevations (front/side, 1:100): walls 250 mm, window/door openings, hipped roof at 25°. Each element type is a group tagged Walls, Openings, Roof, Slab. Units mm. Save out/bungalow.skp.
- Platforms
win· Windowsmac· macOS- Applications
- SketchUp
- Interfaces
desk· Desktop GUI- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
CL· CLI-sufficient- Interaction primitives
geom· Precise geometrydrag· Drag & dropvis· Visual judgment- Work product
WP04· 3D/spatial model- Conditions
licensed· Licensed pro app- Proposed difficulty
- 3 / 5
Proposed verifier
Export via SketchUp C API: groups per tag; wall footprint vs plan Hausdorff ≤30 mm; 11 openings with sizes ±20 mm; roof pitch 25±0.5°; ridge height ±30 mm; overall voxel IoU ≥0.85. Ruby console and extensions disabled.
Proposed partial credit
35% walls; 25% openings; 25% roof; 15% grouping & tags
R07.05.01.03-T04 Extrude an imported DWG floor plan into walls of correct heights
Original instruction
Import input/studio_plan.dwg (mm) into SketchUp, create a face from the wall outlines and push/pull walls to 2,700 mm, with the 3 openings cut through at heights per input/opening_table.csv. Keep the imported CAD on tag CAD-IMPORT hidden. Save out/studio.skp.
- Platforms
win· Windowsmac· macOS- Applications
- SketchUp
- Interfaces
desk· Desktop GUI- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
CL· CLI-sufficient- Interaction primitives
geom· Precise geometrydrag· Drag & dropclick· Point & click- Work product
WP04· 3D/spatial model- Conditions
licensed· Licensed pro app- Proposed difficulty
- 2 / 5
Proposed verifier
C API export: wall solid footprint equals DWG outline (≤5 mm); height 2,700±2; 3 openings with sill/head per CSV ±5 mm; CAD import on hidden tag; Ruby disabled.
Proposed partial credit
40% walls extruded correctly; 40% openings; 20% import tag hidden
R07.05.01.03-T05 Build a Revit model of a two-level house from imported CAD plans and a section
Original instruction
In Revit 2025 start from template fixtures/res_template.rte, link input/house_GF.dwg, house_FF.dwg and read heights from input/section_AA.pdf. Create levels, walls (types from template matched by thickness), floors, stairs, a gable roof, and doors/windows at the drawn positions. Save out/house.rvt.
- Platforms
win· Windows- Applications
- Revit
- Interfaces
desk· Desktop GUI- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
CL· CLI-sufficient- Interaction primitives
geom· Precise geometryclick· Point & clickvis· Visual judgment- Work product
WP04· 3D/spatial model- Conditions
licensed· Licensed pro applong· Long-horizon- Proposed difficulty
- 4 / 5
Proposed verifier
Batch IFC export: levels at section heights ±5 mm; wall centrelines vs DWG ≤20 mm with correct types; openings count/positions ±50 mm; roof pitch/ridge ±1°/30 mm; voxel IoU ≥0.85 vs reference. Dynamo/API disabled.
Proposed partial credit
15% levels; 30% walls; 35% openings & floors/stair; 20% roof
R07.05.01.03-T06 Model a roof truss from a structural drawing as profile extrusions
Original instruction
From input/truss_T1.pdf (Pratt truss, 18 m span, member sizes listed), model all members in Rhino as extrusions of their section profiles (SHS/CHS per schedule) along centrelines, each member on layer by size, with node coordinates matching the drawing. Save out/truss_T1.3dm.
- Platforms
win· Windowsmac· macOS- Applications
- Rhino
- Interfaces
desk· Desktop GUI- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
CL· CLI-sufficient- Interaction primitives
geom· Precise geometryclick· Point & clickvis· Visual judgment- Work product
WP04· 3D/spatial model- Conditions
licensed· Licensed pro app- Proposed difficulty
- 3 / 5
Proposed verifier
rhino3dm: member count equals schedule (29); each member's axis endpoints within 5 mm of node key; section bbox dims per schedule ±1 mm; layer per size; scripting disabled.
Proposed partial credit
40% node geometry; 30% section sizes; 20% member count; 10% layers
R07.05.01.03-T07 Model a straight concrete stair from its section drawing
Original instruction
From input/stair_section.pdf (13 risers of 170 mm, going 260 mm, waist 150 mm, width 1,200 mm) model the stair in Rhino as one closed polysurface starting at the origin with the first riser on the XZ plane. Save out/stair.3dm.
- Platforms
win· Windowsmac· macOS- Applications
- Rhino
- Interfaces
desk· Desktop GUI- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
CL· CLI-sufficient- Interaction primitives
geom· Precise geometryclick· Point & click- Work product
WP04· 3D/spatial model- Conditions
licensed· Licensed pro app- Proposed difficulty
- 2 / 5
Proposed verifier
Single closed polysurface; volume within 0.5% of analytical; bbox 3120×1200×2210 mm ±2; riser count 13 via section sampling. Scripting disabled.
Proposed partial credit
40% volume; 40% riser/going geometry; 20% closed & placed at origin
R07.05.01.03-T08 Model a hip-and-valley roof from a roof plan with mixed pitches
Original instruction
input/roof_plan.pdf shows an L-shaped house with eaves at 2,800 mm, main roof 30°, wing 35°, hips and one valley. Model the roof surfaces in SketchUp so ridges and valleys meet exactly, with 450 mm overhangs and 200 mm fascia. Save out/roof.skp.
- Platforms
win· Windowsmac· macOS- Applications
- SketchUp
- Interfaces
desk· Desktop GUI- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
CL· CLI-sufficient- Interaction primitives
geom· Precise geometrydrag· Drag & dropvis· Visual judgment- Work product
WP04· 3D/spatial model- Conditions
licensed· Licensed pro app- Proposed difficulty
- 4 / 5
Proposed verifier
C API: roof faces' slopes per wing ±0.3°; ridge heights ±10 mm vs computed; hip/valley lines shared edges (watertight roof mesh); eave offset 450±5 mm; fascia depth. Ruby disabled.
Proposed partial credit
35% pitches; 25% ridge heights; 25% watertight intersections; 15% overhang/fascia
R07.05.01.03-T09 Build a terrain surface from contour lines and cut a level building pad
Original instruction
Import input/site_contours.dwg (0.5 m contours, elevations stored as Z) into Rhino, build a terrain mesh or surface from them, then cut a level building pad at +102.50 m matching the footprint in input/pad.dwg with 1:2 batters to existing ground. Save out/site.3dm.
- Platforms
win· Windowsmac· macOS- Applications
- Rhino
- Interfaces
desk· Desktop GUI- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
CL· CLI-sufficient- Interaction primitives
geom· Precise geometryvis· Visual judgmentclick· Point & click- Work product
WP04· 3D/spatial model- Conditions
licensed· Licensed pro app- Proposed difficulty
- 3 / 5
Proposed verifier
Sample 500 points: terrain Z within 0.15 m of TIN from contours outside pad; inside pad Z=102.50±0.01; batter slopes 1:2±5%; cut/fill volumes within 5% of reference. Scripting disabled.
Proposed partial credit
35% terrain accuracy; 25% pad level & footprint; 20% batters; 20% volumes
R07.05.01.03-T10 Model an eight-storey office frame from a grid plan and typical section
Original instruction
From input/office_grid.pdf (grids A-G at 8.1 m, 1-5 at 7.5 m) and typical_section.pdf (floor-to-floor 3.8 m, slab 300, columns 600×600, core walls 300), model columns, slabs with core cut-outs and core walls for 8 floors plus roof in Rhino. Save out/frame.3dm with layers per element.
- Platforms
win· Windowsmac· macOS- Applications
- Rhino
- Interfaces
desk· Desktop GUI- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
CL· CLI-sufficient- Interaction primitives
geom· Precise geometryclick· Point & clicknav· Pan/zoom/scroll- Work product
WP04· 3D/spatial model- Conditions
licensed· Licensed pro app- Proposed difficulty
- 3 / 5
Proposed verifier
Column count 35×8 at grid nodes ±5 mm; slab top elevations 3.8n ±5 mm; core openings match plan; total concrete volume within 1%. Scripting disabled.
Proposed partial credit
35% columns; 30% slabs & levels; 20% core; 15% volume
R07.05.01.03-T11 Model a kitchen cabinet run from shop drawings as reusable components
Original instruction
From input/kitchen_shop_dwg.pdf model the 4.2 m base and wall cabinet run in SketchUp: carcasses, doors, drawer fronts, worktop 40 mm with 20 mm overhang, plinth 100 mm. Identical units must be instances of the same component (named per shop drawing codes). Save out/kitchen.skp.
- Platforms
win· Windowsmac· macOS- Applications
- SketchUp
- Interfaces
desk· Desktop GUI- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
CL· CLI-sufficient- Interaction primitives
geom· Precise geometrydrag· Drag & dropclick· Point & click- Work product
WP04· 3D/spatial model- Conditions
licensed· Licensed pro app- Proposed difficulty
- 3 / 5
Proposed verifier
C API: component definitions per code with instance counts per drawing; unit widths/heights ±1 mm; worktop overhang 20±1; overall bbox ±2 mm. Ruby disabled.
Proposed partial credit
35% unit dimensions; 30% component reuse; 20% worktop/plinth; 15% naming
R07.05.01.03-T12 Sweep a box-girder bridge section along a curved alignment with a vertical profile
Original instruction
Using input/bridge_xsec.pdf (single-cell box, 11.5 m deck) and input/alignment_profile.pdf (R=450 m horizontal curve, 2.5% to -1.5% vertical curve L=120 m), model the 180 m deck in Rhino by sweeping the section along the 3D alignment, keeping the section vertical, plus 4 piers at the stations listed. Save out/viaduct.3dm.
- Platforms
win· Windowsmac· macOS- Applications
- Rhino
- Interfaces
desk· Desktop GUI- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
CL· CLI-sufficient- Interaction primitives
geom· Precise geometrynav· Pan/zoom/scrollvis· Visual judgment- Work product
WP04· 3D/spatial model- Conditions
licensed· Licensed pro app- Proposed difficulty
- 4 / 5
Proposed verifier
Deck centerline samples every 10 m: XY within 20 mm of alignment; Z within 10 mm of profile; section dims at 5 stations ±5 mm and plumb (≤0.2°); piers at stations ±50 mm. Scripting disabled.
Proposed partial credit
30% horizontal alignment; 25% vertical profile; 25% section fidelity; 20% piers
R07.05.01.03-T13 Model a timber pavilion frame from a plan and an axonometric drawing
Original instruction
From input/pavilion_plan.pdf and pavilion_axo.pdf model the glulam pavilion in Rhino: 12 posts 200×200, ring beam 200×400, 24 rafters 100×300 to a central oculus ring at the height labelled, each member a closed solid on layer by type. Save out/pavilion.3dm.
- Platforms
win· Windowsmac· macOS- Applications
- Rhino
- Interfaces
desk· Desktop GUI- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
CL· CLI-sufficient- Interaction primitives
geom· Precise geometryvis· Visual judgmentnav· Pan/zoom/scroll- Work product
WP04· 3D/spatial model- Conditions
licensed· Licensed pro app- Proposed difficulty
- 3 / 5
Proposed verifier
Member counts by layer (12/1/24/1); post positions ±10 mm; rafter end heights ±15 mm; section sizes ±1 mm; all solids closed. Scripting disabled.
Proposed partial credit
25% posts; 20% ring beam; 35% rafters; 20% oculus & closure
R07.05.01.03-T14 Rebuild a historic facade from a measured elevation and reference photo
Original instruction
From input/facade_elev.pdf (1:50 measured survey) and photo facade.jpg, model the 4-storey street facade in SketchUp with window reveals 150 mm, cornice and string courses as follow-me profiles from input/profiles.dwg, pilasters and entrance arch. Save out/facade.skp.
- Platforms
win· Windowsmac· macOS- Applications
- SketchUp
- Interfaces
desk· Desktop GUI- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
geom· Precise geometrypath· Continuous pathvis· Visual judgment- Work product
WP04· 3D/spatial model- Conditions
licensed· Licensed pro app- Proposed difficulty
- 4 / 5
Proposed verifier
Window opening rectangles vs survey IoU ≥0.9 each; reveal depth 150±5; cornice profile cross-section Hausdorff ≤5 mm; overall height ±20 mm; rendered front view vs survey line drawing edge-F1 ≥0.8. Ruby disabled.
Proposed partial credit
35% openings; 25% profiles; 20% overall dims; 20% rendered match
R07.05.01.03-T15 Model a steel spiral staircase from plan and section
Original instruction
From input/spiral_stair.pdf (Ø2,000 mm, central column Ø168, 14 treads at 24° rotation, rise 185 mm, landing at top) model the stair in Rhino: column, wedge treads 10 mm plate, helical handrail Ø42 at 900 mm above nosing. Save out/spiral.3dm.
- Platforms
win· Windowsmac· macOS- Applications
- Rhino
- Interfaces
desk· Desktop GUI- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
CL· CLI-sufficient- Interaction primitives
geom· Precise geometrypath· Continuous pathvis· Visual judgment- Work product
WP04· 3D/spatial model- Conditions
licensed· Licensed pro app- Proposed difficulty
- 3 / 5
Proposed verifier
Tread count 14; rotation increments 24±0.2°; rise 185±1; outer radius 1,000±2; handrail helix sampled points 900±10 mm above nosing line; landing present. Scripting disabled.
Proposed partial credit
40% tread geometry; 20% column; 30% helical handrail; 10% landing
R07.05.01.03-T16 Model an existing three-level building in Revit from survey PDF plans
Original instruction
From input/survey_L0.pdf, L1.pdf, L2.pdf, roof.pdf and section_BB.pdf (1:100 scanned), create levels and grids and model walls, floors, stairs, doors, windows and the flat roof in Revit using the closest template types. Save out/existing.rvt and export IFC.
- Platforms
win· Windows- Applications
- Revit
- Interfaces
desk· Desktop GUI- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
geom· Precise geometryvis· Visual judgmentnav· Pan/zoom/scroll- Work product
WP04· 3D/spatial model- Conditions
licensed· Licensed pro applong· Long-horizon- Proposed difficulty
- 5 / 5
Proposed verifier
IFC vs reference: per-level wall centreline F1 at 100 mm tolerance ≥0.85; openings count/position ±100 mm; level heights ±20 mm; voxel IoU ≥0.8. Dynamo/API disabled.
Proposed partial credit
15% levels/grids; 40% walls (F1); 25% openings; 20% floors/stairs/roof
R07.05.01.03-T17 Model a garage from inconsistent drawings and flag the discrepancy
Original instruction
Model the garage in input/garage_plan.pdf and garage_section.pdf in SketchUp. The plan and section disagree on the eaves height. Model per the plan's dimension, and write the conflicting values and sheet references to out/rfi.txt as a question rather than guessing.
- Platforms
win· Windowsmac· macOS- Applications
- SketchUp
- Interfaces
desk· Desktop GUI- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
CL· CLI-sufficient- Interaction primitives
geom· Precise geometrydrag· Drag & droptype· Text & forms- Work product
WP04· 3D/spatial model- Conditions
licensed· Licensed pro appclarify· Ask when unclear- Proposed difficulty
- 3 / 5
Proposed verifier
Model geometry per plan ±10 mm (eaves at plan value); rfi.txt contains both values and both sheet refs and phrased as a question; penalty if model uses section value. SketchUp Ruby console and Ruby extensions are disabled; the .skp must be saved by SketchUp, and writes to it by other processes are flagged by a file audit log.
Proposed partial credit
60% model geometry; 40% discrepancy correctly raised
R07.05.01.03-T18 Control pair of T06: build the truss model by script
Original instruction
Control pair of T06. Build the same truss_T1 model (29 members, profiles from schedule, layers by size) using only a script: rhino3dm/RhinoPython or CadQuery exporting to 3DM/STEP. No viewport interaction.
- Platforms
win· Windowsmac· macOSlin· Linux- Applications
- Rhino · CadQuery
- Interfaces
api· API/SDK- GUI need · task setting
CL· CLI-sufficient- GUI need · ordinary access
CL· CLI-sufficient- Interaction primitives
code· Code & commands- Work product
WP04· 3D/spatial model- Conditions
- None declared
- Proposed difficulty
- 3 / 5
Proposed verifier
Same checks as T06 (nodes ±5 mm, sections ±1 mm, member count, layers). Used to compare GUI vs script modality.
Proposed partial credit
40% node geometry; 30% section sizes; 20% member count; 10% layers
R07.05.01.03-T19 Model a cable-stayed bridge pylon, deck and fan cables from elevation drawings
Original instruction
From input/csb_elevation.pdf, pylon.pdf and deck_xsec.pdf, model the 220 m single-pylon cable-stayed bridge in Rhino: A-shaped pylon with tapering legs, steel deck, 2×16 fan cables as Ø200 pipes between anchor points listed in input/anchors.csv, and back-stay anchorage. Save out/csb.3dm with layers PYLON, DECK, CABLES.
- Platforms
win· Windowsmac· macOS- Applications
- Rhino
- Interfaces
desk· Desktop GUI- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
CL· CLI-sufficient- Interaction primitives
geom· Precise geometrynav· Pan/zoom/scrollvis· Visual judgment- Work product
WP04· 3D/spatial model- Conditions
licensed· Licensed pro applong· Long-horizon- Proposed difficulty
- 5 / 5
Proposed verifier
Cable endpoints within 20 mm of anchors.csv (32 cables); pylon leg taper and apex height ±30 mm; deck section ±5 mm, length ±50 mm; pipe radius 100 mm; layer usage. Scripting disabled.
Proposed partial credit
20% pylon; 25% deck; 45% cables at anchors; 10% layers
R07.05.01.03-T20 Extrude a block of context buildings from footprints and a heights table
Original instruction
Import input/context_footprints.dwg into SketchUp and extrude each of the 26 footprints to the height in input/heights.csv (keyed by the footprint's text label), each as a group named by its ID on tag CONTEXT. Save out/context.skp.
- Platforms
win· Windowsmac· macOS- Applications
- SketchUp
- Interfaces
desk· Desktop GUI- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
CL· CLI-sufficient- Interaction primitives
drag· Drag & dropclick· Point & clickgeom· Precise geometry- Work product
WP04· 3D/spatial model- Conditions
licensed· Licensed pro app- Proposed difficulty
- 2 / 5
Proposed verifier
26 groups named by ID; footprint ≤5 mm; heights equal CSV ±10 mm; tag CONTEXT. Ruby disabled.
Proposed partial credit
60% heights correct (scaled); 25% groups named; 15% tag
Mapped research references
Existing benchmark-to-class links from the research catalog. They are not record-level annotations, executions or product endorsements.