Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Steel Drawing Automation — ETABS to AutoCAD

Automated generation of steel shop drawings from ETABS analysis models. The tool parses ETABS .e2k and optional authoritative .sdn section schedules, builds a structural model, and produces DXF plans, elevations, and schedules ready for AutoCAD.

Overview

The project addresses the repetitive, error-prone translation from analysis model to fabrication drawings. Given an ETABS export, it produces layer-controlled DXF files for each story plan, each grid elevation, and member schedules, with validation reports for cross-checking.

The implementation was tested with ETABS 23 and AutoCAD 2026 and is structured as an installable Python package.

Engineering Problem

ETABS contains geometry, sections, and loads but not drawing intent. Manual drafting of plans/elevations and schedules duplicates information and introduces coordination errors. An automated extractor that respects authoritative section assignments (.sdn) reduces drafting time and ensures consistency.

Methodology

Pipeline: ETABS (.e2k) → E2KParser → E2KAdapter → StructuralModel → Drawing Generators → DxfWriter (ezdxf) → DXF → AutoCAD COM → DWG

  • steel_drawing_automation/etabs/e2k_parser.py tokenizes .e2k (stories, grids, points, frames).
  • e2k_adapter.py builds StructuralModel (grids, stories, sections, members, loads).
  • classification/section_resolver.py applies .sdn authoritative marks when present.
  • drawings/plan.py draws story plans (GRID, COLUMN as squares, BEAM/BRACE lines, section labels B1 [IPE400], grid-to-grid dimensions, title block).
  • drawings/elevation.py projects members onto grid planes (X-Z / Y-Z).
  • drawings/schedule.py emits column/beam/brace tables (Mark, Section, Length).
  • cad/dxf_writer.py writes via ezdxf; cad/autocad.py optionally opens in AutoCAD via COM and batch-converts DXF → DWG.
  • Layers defined in cad/layers.py.

Features

  • .e2k parsing for stories, grids, nodes, frame members, and sections
  • Authoritative .sdn resolution for member marks
  • Story plans, grid elevations, and member schedules as DXF
  • Validation and cross-check reports (VALIDATION_REPORT.txt, section_crosscheck.csv)
  • Automated DXF → DWG via AutoCAD COM (optional) and layer configuration
  • Test suite covering parsing, geometry, and section resolution

Project Structure

main.py                         # CLI: parse / drawings
requirements.txt
steel_drawing_automation/
  etabs/        # e2k_parser.py, e2k_adapter.py, sdn_parser.py
  model/        # structural_model.py, grids.py, members.py, sections.py
  geometry/     # transforms.py
  classification/# section_resolver.py, member_classifier.py
  drawings/     # plan.py, elevation.py, schedule.py
  cad/          # dxf_writer.py, autocad.py, layers.py
  config/       # settings.yaml
  validation/   # validator.py, crosscheck.py
  tests/        # test_e2k_parser.py, test_sdn_resolver.py, ...
samples/
  sample_danial.e2k             # representative ETABS model (anonymized)

Requirements

  • Python 3.12
  • ezdxf>=1.3.0, numpy>=1.26, PyYAML>=6.0, pydantic>=2.5
  • Optional: pywin32 for AutoCAD COM, pytest for tests

Installation

pip install -r requirements.txt
# For AutoCAD COM on Windows:
pip install pywin32

Usage

Parse to JSON only:

python main.py parse samples/sample_danial.e2k -o OUTPUT/model.json

Generate drawings:

python main.py drawings samples/sample_danial.e2k -o OUTPUT
# OUTPUT/Plans/Plan_Story1.dxf, OUTPUT/Elevations/Elevation_Grid_A.dxf, OUTPUT/Schedules/

Open first plan in AutoCAD and batch-convert DXF → DWG:

python main.py drawings samples/sample_danial.e2k --open-in-autocad
python -c "from steel_drawing_automation.cad.autocad import batch_convert; batch_convert('OUTPUT')"

For a custom model with an .sdn:

python main.py drawings "D:\path\to\model.e2k" --sdn "D:\path\to\model.sdn" -o OUTPUT_MYPROJECT

Results

Each DXF opens directly in AutoCAD 2026 with layers GRID, COLUMN, BEAM, BRACE. Schedules list Mark/Section/Length for quantity checks. The validation report flags unresolved sections and geometry warnings before plotting.

Limitations

  • Section dimensions from .e2k are nominal; schematic member sizes are used. True scale rendering requires an AISC/EURO section library (planned).
  • Connection details (bolts, welds, plates) are not in ETABS and are shown as REQUIRED INPUT in the drawings.
  • DWG is a proprietary Autodesk format — generation requires AutoCAD for the final conversion.

Author

Mohammad Shamsi — Structural Engineering, Sharif University of Technology

About

ETABS to AutoCAD steel shop drawing automation via ezdxf

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages