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.
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.
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.
Pipeline: ETABS (.e2k) → E2KParser → E2KAdapter → StructuralModel → Drawing Generators → DxfWriter (ezdxf) → DXF → AutoCAD COM → DWG
steel_drawing_automation/etabs/e2k_parser.pytokenizes.e2k(stories, grids, points, frames).e2k_adapter.pybuildsStructuralModel(grids, stories, sections, members, loads).classification/section_resolver.pyapplies.sdnauthoritative marks when present.drawings/plan.pydraws story plans (GRID, COLUMN as squares, BEAM/BRACE lines, section labelsB1 [IPE400], grid-to-grid dimensions, title block).drawings/elevation.pyprojects members onto grid planes (X-Z / Y-Z).drawings/schedule.pyemits column/beam/brace tables (Mark, Section, Length).cad/dxf_writer.pywrites viaezdxf;cad/autocad.pyoptionally opens in AutoCAD via COM and batch-converts DXF → DWG.- Layers defined in
cad/layers.py.
.e2kparsing for stories, grids, nodes, frame members, and sections- Authoritative
.sdnresolution 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
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)
- Python 3.12
ezdxf>=1.3.0,numpy>=1.26,PyYAML>=6.0,pydantic>=2.5- Optional:
pywin32for AutoCAD COM,pytestfor tests
pip install -r requirements.txt
# For AutoCAD COM on Windows:
pip install pywin32Parse to JSON only:
python main.py parse samples/sample_danial.e2k -o OUTPUT/model.jsonGenerate 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_MYPROJECTEach 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.
- Section dimensions from
.e2kare 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 INPUTin the drawings. - DWG is a proprietary Autodesk format — generation requires AutoCAD for the final conversion.
Mohammad Shamsi — Structural Engineering, Sharif University of Technology