Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
668 commits
Select commit Hold shift + click to select a range
bd8c9e2
fix: Implement fallback to default stiffener thickness values when cu…
nishikantmandal007 Jan 21, 2026
a479eaa
feat: Iterate through available intermediate stiffener thicknesses to…
nishikantmandal007 Jan 21, 2026
ee9663f
fix: Corrected minor axis plastic modulus calculation and refined pla…
nishikantmandal007 Jan 21, 2026
e748465
Integrated struts: bolted to end gusset CAD
Harshan-164 Jan 12, 2026
526eb37
integrated CAD for the module compression member: struts welded to en…
Harshan-164 Jan 13, 2026
5a99b68
Supports added at both the ends of the simply supported beams
Harshan-164 Jan 14, 2026
7ce6d13
implemented fixed support block in cantilever model and fixed minor b…
Harshan-164 Jan 14, 2026
a301927
made changes in supports of simply supported beams
Harshan-164 Jan 14, 2026
c70d2a0
made changes to cantilever support
Harshan-164 Jan 14, 2026
fc597aa
fixed support issues
Harshan-164 Jan 17, 2026
6763b10
dynamic drawing for spacing details is enabled for struts:bolted to e…
Harshan-164 Jan 18, 2026
62f028b
enabled dynamic diagram for spacing details in lap joint bolted module
Harshan-164 Jan 18, 2026
e97d762
done minor works in lap joint bolted and bolted end gusset spacing de…
Harshan-164 Jan 18, 2026
19fe382
Integrated struts: bolted to end gusset CAD
Harshan-164 Jan 12, 2026
57f6900
added supports to plate girder module
Harshan-164 Jan 18, 2026
8192bef
changed length of plate = 2*overlapping length, from 3*overlapping le…
Harshan-164 Jan 20, 2026
b16f227
fixed the support height in plate girder, and made it 75% of depth
Harshan-164 Jan 21, 2026
0709947
fixed the butt joint bolted, plate length
Harshan-164 Jan 21, 2026
57be915
fixed the butt joint bolted, plate length
Harshan-164 Jan 21, 2026
8e36e35
removed unwanted files
Harshan-164 Jan 21, 2026
7f0fb14
fixed the supports dimension logic in simply supported beam and plate…
Harshan-164 Jan 21, 2026
6930b01
Removed Splash Page Animation
mhsuhail00 Jan 20, 2026
6ed97d5
fix: Save csv btn output dock
mhsuhail00 Jan 20, 2026
73a4246
Reconnected Import Osi on Home Page
mhsuhail00 Jan 20, 2026
9d86b96
fix: PG bounds popup
mhsuhail00 Jan 21, 2026
727f2e4
Revert "added flat plates in tension member bolted"
mhsuhail00 Jan 21, 2026
5fb683b
fix: empty putput dock after failed design
mhsuhail00 Jan 21, 2026
0fd5eea
Add crash handler
Zehen-249 Jan 21, 2026
9aa3ad2
Updated splah Page
mhsuhail00 Jan 22, 2026
cd8dbe8
Updated color & labels in Cantilever, Purlin, SS Beam
mhsuhail00 Jan 22, 2026
8f0ba3e
Fixed 3D Cube in CAD
mhsuhail00 Jan 22, 2026
a13dbcc
removed hatches in cantilever supports
Harshan-164 Jan 22, 2026
7a718cd
uncomment internet connectivity object
Zehen-249 Jan 22, 2026
7f78fe0
Remove freeze detection from error handler
Zehen-249 Jan 22, 2026
21d5a53
use system latex in linux mac os
Zehen-249 Jan 22, 2026
6493cd4
fixed toggle, ITS spacing, end panels in plate girder module
Harshan-164 Jan 22, 2026
2d57ea5
Replace CrashLogger with TerminalLogger
Zehen-249 Jan 22, 2026
363f67c
feat: Use `PLATE_THICKNESS_SAIL` when 'All' is selected for web, top …
nishikantmandal007 Jan 22, 2026
ce6e6fd
fix/ added deafult all value selected in stiffner
nishikantmandal007 Jan 22, 2026
a579514
fixed the default opening of plate_girder
nishikantmandal007 Jan 22, 2026
94242f8
feat: Add `PySide6.QtCore.Qt` import and remove the body of `Int_stif…
nishikantmandal007 Jan 22, 2026
7257732
feat: Calculate and display warping and torsion constants uncondition…
nishikantmandal007 Jan 22, 2026
fbe904c
Corrected the "Shear Capacity" ($V_d$) output to reflect the actual g…
nishikantmandal007 Jan 22, 2026
e7484ec
feat: Implement and integrate IS 800:2007 Table 15 for calculating th…
nishikantmandal007 Jan 22, 2026
23dbb5c
some changes
nishikantmandal007 Jan 22, 2026
6787202
removed unwanted comments
nishikantmandal007 Jan 22, 2026
46183fb
Updated Splash Page
mhsuhail00 Jan 22, 2026
17fe3e6
Updated #module_section_label
mhsuhail00 Jan 22, 2026
3561df0
Updated module images - name changes
mhsuhail00 Jan 22, 2026
b174a7f
Updated Constructsteel size & center align svgcards
mhsuhail00 Jan 22, 2026
bd90af0
Updated logic for module card trigger
mhsuhail00 Jan 22, 2026
438963c
Updated PG module image
mhsuhail00 Jan 22, 2026
d2406d0
Disabled PEB and Truss Connections
mhsuhail00 Jan 22, 2026
f943c3c
Added Supported
mhsuhail00 Jan 22, 2026
bd50d28
Disabled Purlin Report Generation
mhsuhail00 Jan 22, 2026
c99cdf2
fix: Validation error & output dock empty after failed design
mhsuhail00 Jan 22, 2026
a0bd7bf
Issue Resolved #42
mhsuhail00 Jan 22, 2026
c33381d
close application on crash
Zehen-249 Jan 23, 2026
dd11024
Updated Navbar Icons
mhsuhail00 Jan 23, 2026
96dd6a5
fix/ Effective_length factor M_cr calculation
nishikantmandal007 Jan 23, 2026
03dded3
Temporary diable of Isave input file in place
nishikantmandal007 Jan 23, 2026
e1f2ee1
new popUI for additional inputs
nishikantmandal007 Jan 23, 2026
5f2fbdf
fix/ additional pop up fix
nishikantmandal007 Jan 23, 2026
5ee74cb
Disabled Video Tutorials
mhsuhail00 Jan 23, 2026
ed55cd6
fix/ report gen fixed images
nishikantmandal007 Jan 23, 2026
ff9f30a
fix/ lap joint welded
nishikantmandal007 Jan 23, 2026
d403705
shift TerminalLogger into main method
Zehen-249 Jan 23, 2026
96bd8e8
fix cli module set_osdaglogger call
Zehen-249 Jan 23, 2026
da5ca25
Report fixes of plate girder
RoushanRaj-cmd Jan 23, 2026
5ab0062
fix: Common group Logic Added
mhsuhail00 Jan 23, 2026
8275385
Fix save 3d cad for all the modules
Faizan-9077 Jan 23, 2026
cb9568b
Revert: Output double logic
mhsuhail00 Jan 23, 2026
62d9379
add conda recipe, fix import issues
Zehen-249 Jan 24, 2026
d288a63
Add release version
Zehen-249 Jan 24, 2026
a7c4fe1
Updated About Osdag Dialog
mhsuhail00 Jan 24, 2026
1e4b7ae
updated Version label on splash page
mhsuhail00 Jan 24, 2026
e06accf
Fix non-working graphics view actions and implement mouse-based pan/r…
Faizan-9077 Jan 24, 2026
5c22062
Updated Ask a Question Dialog Text
mhsuhail00 Jan 24, 2026
1a09651
Removed Video Tutorials from Resources
mhsuhail00 Jan 24, 2026
392e7ba
Updated Database IS Label in top right button bar
mhsuhail00 Jan 24, 2026
f0b84b4
fix: Issue #154 Empty Material List
mhsuhail00 Jan 25, 2026
0305100
feat: close Osdag closing all tabs until cancelled
mhsuhail00 Jan 25, 2026
fa044ba
Fix in Base Plate Connection Report
RoushanRaj-cmd Jan 24, 2026
078af4b
fixed butt joint bolted
Harshan-164 Jan 25, 2026
d8698cf
Restricted UR Value and Removed Osi and Tutorial button
yugh88 Jan 26, 2026
df89ca5
feat: Resize with windows aero on custom Title Bar
mhsuhail00 Jan 26, 2026
5ca67f3
fix: double group logic in output dock
mhsuhail00 Jan 27, 2026
dd4a914
fix: spacing issues on home page
mhsuhail00 Jan 27, 2026
9119613
fix: Resize implementation in Linux
mhsuhail00 Jan 27, 2026
d24e1ab
Disabled Plugin Button
mhsuhail00 Jan 27, 2026
3641a09
Disabled Purlin Flexural Member only from ui_data.py
mhsuhail00 Jan 27, 2026
7c1cfea
feat: Corrected bolt row/column interpretation and spacing calculatio…
nishikantmandal007 Jan 25, 2026
14783f4
Revert "Report fixes of plate girder"
nishikantmandal007 Jan 25, 2026
f2a89a5
feat: Add input validation for PSO visualization and refactor 3D mode…
nishikantmandal007 Jan 25, 2026
bcc5d67
refactor: Remove logic for hiding and unchecking CAD component checkb…
nishikantmandal007 Jan 25, 2026
9d831c3
fix/Save input osi file
nishikantmandal007 Jan 27, 2026
7174e81
Updated about us
mhsuhail00 Jan 27, 2026
2bf1eae
Update requirements.txt
Zehen-249 Jan 28, 2026
0dd2da7
fix: windows snap detection on template page
mhsuhail00 Jan 28, 2026
a581631
updated contributor interns structure
mhsuhail00 Jan 28, 2026
0996ef7
remove pyqt dependency
Zehen-249 Jan 28, 2026
d87858e
Fix meta.yaml
Zehen-249 Jan 28, 2026
8985254
update requirements.txt
Zehen-249 Jan 28, 2026
8275117
Fix pdflatex import
Zehen-249 Jan 28, 2026
a3ca700
Update helper msg
Zehen-249 Jan 28, 2026
9d9cd84
feat: Add web crippling check for thin webs and incorporate its resul…
nishikantmandal007 Jan 28, 2026
ec36e21
feat: Implement manage CAD component UI visibility.
nishikantmandal007 Jan 28, 2026
ff41989
refactor: implement row-first increment algorithm for bolt layout cal…
nishikantmandal007 Jan 28, 2026
ce4e277
Combined Beam and Column List for Connection Modules
mhsuhail00 Jan 28, 2026
4bb6656
Fixed button sizing in design_summary
mhsuhail00 Jan 28, 2026
c8093ee
Added CONTRIBUTORS.MD and used it in about_osdag.py
mhsuhail00 Jan 28, 2026
48cd253
Updated README.md
mhsuhail00 Jan 28, 2026
9bc4ee8
Updated Module Images
mhsuhail00 Jan 29, 2026
917e4a9
Deleted unusual file after rebase
mhsuhail00 Jan 29, 2026
185adaa
Changed Naming for Simple Connection to Plate(d) Connection
mhsuhail00 Jan 29, 2026
d418485
Beam/Column Splices spacing dialog error fixed
mhsuhail00 Jan 29, 2026
7c43f00
fix: Individual tab close button detection
mhsuhail00 Jan 29, 2026
9f60ebf
feat: Implement AISContextLock and safe_processEvents for thread-safe…
nishikantmandal007 Jan 30, 2026
d31bae7
feat: Implement application exit confirmation and refine shutdown cle…
nishikantmandal007 Jan 30, 2026
624f1e7
feat: Implement AISContextLock acquisition and release to prevent rac…
nishikantmandal007 Jan 30, 2026
ab37bb6
fix: Prevent heap corruption by prioritizing PSO resource cleanup and…
nishikantmandal007 Jan 30, 2026
978e246
feat: improve CAD model generation by flattening shape lists and retu…
nishikantmandal007 Jan 30, 2026
298ea40
refactor: Prevent double OCC cleanup and use-after-free errors during…
nishikantmandal007 Jan 30, 2026
d72de8d
Reverted Close Osdag Process
mhsuhail00 Jan 30, 2026
14971da
Use osdag_latex_env module for report generation
Zehen-249 Jan 30, 2026
b3427d3
update meta.yaml
Zehen-249 Jan 31, 2026
4b0fc09
update get_latex_executabel
Zehen-249 Jan 31, 2026
c91d6a4
fix: BG color of Windows DWM
mhsuhail00 Jan 31, 2026
780313c
Updated About Osdag Dialog
mhsuhail00 Jan 31, 2026
288308d
Added Go to Home on closing last tab
mhsuhail00 Jan 31, 2026
ac6da08
Setup for left/right control btn and style change
mhsuhail00 Feb 1, 2026
355d6f8
Updated butt join module img
mhsuhail00 Feb 1, 2026
0ef2c35
Removed auto dock/undock & initial view
mhsuhail00 Feb 1, 2026
d909e3b
Renaming input/output labels
mhsuhail00 Feb 1, 2026
d5f2f11
Position of control btn to left in mac
mhsuhail00 Feb 2, 2026
b5ff423
Report Changes
RoushanRaj-cmd Feb 1, 2026
41febc8
Removed the temporary code
Faizan-9077 Feb 2, 2026
b75194d
Fixed and updated save 3d cad for flexural members modules
Faizan-9077 Feb 2, 2026
302f5ac
Fixed start jittering by delay
mhsuhail00 Feb 1, 2026
7d315f2
fix: Standardize pointing hand cursor appearance across platforms by …
nishikantmandal007 Feb 2, 2026
3bb942a
feat: Remove 'Design' tab and derive design force type from axial for…
nishikantmandal007 Feb 2, 2026
11f1d16
fix: Reduce minimum bolt count for butt joints to 2 and correct CAD p…
nishikantmandal007 Feb 2, 2026
5c7ab07
feat: change control btn position
mhsuhail00 Feb 2, 2026
908e54c
Minor Fixes
mhsuhail00 Feb 2, 2026
ea886a3
Updated BC_BW_EOW
mhsuhail00 Feb 2, 2026
ed8ee85
Info/Warning Popup btn style changed
mhsuhail00 Feb 2, 2026
f880def
Fixed & Updated Download Database
mhsuhail00 Feb 2, 2026
0cc4e32
updated advisors about osdag
mhsuhail00 Feb 3, 2026
8ca74ec
feat: Add pointing hand cursor to interactive elements in the About O…
nishikantmandal007 Feb 3, 2026
bc210f0
fix: Prevent crashes during 3D viewer cleanup by adding `IsDisplayed`…
nishikantmandal007 Feb 3, 2026
3ca410e
updated about osdag - acknowledgement
mhsuhail00 Feb 3, 2026
231200c
update packaging
Zehen-249 Feb 3, 2026
342b006
Fix: Pre-tensioned string anomalies
mhsuhail00 Feb 3, 2026
4301ccb
fix: default KEY_DP_DETAILING_GAP to 10 for all modules
mhsuhail00 Feb 3, 2026
16bfe33
Added default_fn for missing tabs in additonal inputs
mhsuhail00 Feb 3, 2026
2890283
fix: finplate spacing text
mhsuhail00 Feb 3, 2026
ed4d0c7
fix: Additional Input Material reset when changing Material in Input …
mhsuhail00 Feb 4, 2026
83b4615
Updated Shear Connectivity imgs
mhsuhail00 Feb 4, 2026
b5099b7
feat: Enhance PSO visualization with synchronous canvas updates and a…
nishikantmandal007 Feb 4, 2026
6d7e11a
feat: Correctly calculate moment capacity and section moduli for mino…
nishikantmandal007 Feb 4, 2026
eece1fb
feat: Implement automatic weld size selection for lap joint welded co…
nishikantmandal007 Feb 4, 2026
39a8a79
fix: Swap `n_bolts` and `1` assignments between `self.plate.bolts_one…
nishikantmandal007 Feb 4, 2026
8845a16
feat: Support iterating through a list of user-specified weld sizes a…
nishikantmandal007 Feb 4, 2026
bf08c30
feat: Implement a design retry mechanism for bolted compression members.
nishikantmandal007 Feb 4, 2026
9d0d6e3
refactor: Improve Plate Girder UI layout by always showing output fie…
nishikantmandal007 Feb 4, 2026
d23f128
Spacing dialog fixes
mhsuhail00 Feb 4, 2026
c159d97
Commented Some Spacing/Pattern buttons
mhsuhail00 Feb 4, 2026
5eb7740
feat: display PSO visualization as a popup window instead of embeddin…
nishikantmandal007 Feb 4, 2026
8fb2ef9
Updated Description in Plate Girder Tabs
mhsuhail00 Feb 4, 2026
2616adb
Added license-dependencies.txt
mhsuhail00 Feb 4, 2026
4f9a194
Commented Some Spacing/Pattern buttons
mhsuhail00 Feb 4, 2026
edd33a9
Resolve errors in legacy osdag module
Zehen-249 Feb 5, 2026
0f3c087
fix: top right btn in home
mhsuhail00 Feb 5, 2026
61c813e
fix: empty output dock on design when closed output dock
mhsuhail00 Feb 5, 2026
26b09d5
fix: btb bolted spacing button
mhsuhail00 Feb 5, 2026
f861193
fix: minimal spacing fix
mhsuhail00 Feb 5, 2026
11fda84
fix: Recent projects frame size overflow on hover
mhsuhail00 Feb 5, 2026
7c36322
fix: spacing details minor fixes
mhsuhail00 Feb 5, 2026
db2f98c
fix: centered capacity details dialog
mhsuhail00 Feb 5, 2026
c29b28f
CustomMessagebox btn color changed
mhsuhail00 Feb 5, 2026
be46833
renamed Plate(d) to Plated
mhsuhail00 Feb 5, 2026
b45297d
fix: spacing detail dimentions
mhsuhail00 Feb 5, 2026
f534112
fix: opening crash Base Plate
mhsuhail00 Feb 5, 2026
5a9fc03
fix: Clear btn in additional inputs
mhsuhail00 Feb 5, 2026
0ea35a5
fix: 3D component fix in Moment Connection
mhsuhail00 Feb 5, 2026
53eb266
fix: additionalInputs tab for SSB, Cantilever, Struts
mhsuhail00 Feb 5, 2026
4687c20
fix: Base Plate outputs detailing:Typical detailing
mhsuhail00 Feb 6, 2026
026b013
fix: bb welded 3d_cad_comp crash
mhsuhail00 Feb 6, 2026
4b8f4b9
disabled: Add btn in Cantiliever, SSB, Column Design
mhsuhail00 Feb 6, 2026
0c54828
Updated dependency source for osdag_latex_env
mhsuhail00 Feb 6, 2026
6243a62
linux cursor size updated
parthckaria Feb 6, 2026
098d57f
Temporarily disable OCCT viewcube
nishikantmandal007 Feb 28, 2026
f30b646
feat: implement custom Navicube overlay and refactor viewer interaction
nishikantmandal007 Mar 13, 2026
92b0b97
fix: ensure view cube displays correctly after CAD initialization and…
nishikantmandal007 Mar 13, 2026
6d8d82c
Refactor code structure for improved readability and maintainability
nishikantmandal007 Mar 13, 2026
957a7ed
fix: improve Navicube overlay positioning and visibility handling in …
nishikantmandal007 Mar 13, 2026
07bb26e
fix: optimize Navicube overlay synchronization and update display logic
nishikantmandal007 Mar 13, 2026
a6cdad1
fix: enhance NaviCube overlay with improved geometry handling and opa…
nishikantmandal007 Mar 13, 2026
24189c9
fix: adjust NaviCube overlay dimensions and improve label font handling
nishikantmandal007 Mar 13, 2026
40da484
fix: refine NaviCube overlay synchronization to eliminate zoom/jiggle…
nishikantmandal007 Mar 13, 2026
576e6e4
fix: enhance NaviCube overlay interaction synchronization and improve…
nishikantmandal007 Mar 13, 2026
dc841ba
fix: improve NaviCube overlay camera synchronization and stability du…
nishikantmandal007 Mar 13, 2026
201e2dd
fix: add current_highlighted_owner attribute to CustomViewer3d for im…
nishikantmandal007 Mar 13, 2026
9f3e729
feat: implement OCCNaviCubeSync for seamless synchronization between …
nishikantmandal007 Mar 13, 2026
c823dcc
fix: enhance NaviCubeOverlay with padding and world space adjustments…
nishikantmandal007 Mar 13, 2026
50a2d82
feat: replace local navicube with navcube library integration
nishikantmandal007 Mar 15, 2026
d932462
fix: correct hasattr checks from 'navicube' to 'navcube' after rename
nishikantmandal007 Mar 15, 2026
d10ac35
fix: correct navcube attribute lookup in template_page zoom button po…
nishikantmandal007 Mar 15, 2026
28a9f89
chore: add navcube to dependencies
nishikantmandal007 Mar 15, 2026
1a74996
fix: rename all navicube identifiers to navcube for consistency
nishikantmandal007 Mar 15, 2026
d9e0285
style: apply engineering-neutral NavCube theme matching Osdag UI
nishikantmandal007 Mar 15, 2026
f81b99d
gizmo set to false
nishikantmandal007 Mar 15, 2026
1dc9daf
style: NavCube black borders, Osdag green hover, no gizmo
nishikantmandal007 Mar 15, 2026
b76785d
Cube size made consistent
nishikantmandal007 Mar 16, 2026
7eb5528
fixed buttons
nishikantmandal007 Mar 17, 2026
0622718
cube size made consistent across all screens
nishikantmandal007 Mar 19, 2026
b99c7c4
cube size enhanced
nishikantmandal007 Mar 20, 2026
726ba71
1. PSO window (pso_visualizer.py:527): Removed Qt.WindowStaysOnTopHi…
nishikantmandal007 Mar 28, 2026
3be7e26
Debug modde set to Flase in PG module
nishikantmandal007 Mar 29, 2026
b8add69
Updated fin plate and end plate capacity , Block shear and tension logic
Ayushman-22 Mar 25, 2026
a607da0
Updated Shear Block and Section Capacity
Ayushman-22 Mar 26, 2026
5723455
Updated shear connection spacing and capacity outputs
Ayushman-22 Mar 30, 2026
501374d
Fix: enable fin plate capacity buttons in output dock
Ayushman-22 Mar 30, 2026
3448a9f
Updated home window text for GUI task
MohammedSharukkhanM Feb 22, 2026
80b6562
Initial setup and environment verification for Osdag
MohammedSharukkhanM Feb 21, 2026
6555154
Conversion of 'nos' to 'no'
MohammedSharukkhanM Mar 12, 2026
b954379
Final standardization of hover labels and Splice Plate naming
MohammedSharukkhanM Mar 13, 2026
f7b9a6c
Final standardization of hover labels and Splice Plate naming -2nd ch…
MohammedSharukkhanM Mar 21, 2026
244b8b1
uncommented unnecessary comment lines
MohammedSharukkhanM Mar 30, 2026
01549a1
Wrapper Update
kavish1919 Mar 18, 2026
ede9ed4
Add database_connector and update IFC generator logic
kavish1919 Mar 25, 2026
b7c7303
Update remaining IFC scripts and components
kavish1919 Mar 28, 2026
6f54921
Minor comment typo fix in output dock for IFC save dialog
kavish1919 Mar 28, 2026
2b483a8
Add ifcopenshell to requirements.txt
kavish1919 Mar 28, 2026
97c6243
Save local geometry mapper and generator changes prior to dev pull
kavish1919 Mar 29, 2026
3c47b48
Add module reload logic for cad_extraction to ensure fresh geometry e…
kavish1919 Mar 29, 2026
55985c9
Update IFC geometry mapping and CAD extraction for Fin Plate connecti…
kavish1919 Mar 30, 2026
760cbc0
Refactor IFC export integration into main export workflow
Faizan-9077 Mar 30, 2026
8012200
Update cleat angle capacity with failure pattern
Ayushman-22 Mar 30, 2026
dc5c482
Fix : Failure Patterns
Ayushman-22 Mar 31, 2026
d48027e
fix:spacing_dialog routing and capacity dialog issues
Ayushman-22 Mar 31, 2026
a0c629c
Updated fin plate and end plate capacity , Block shear and tension logic
Ayushman-22 Mar 25, 2026
0040ca1
Updated shear connection spacing and capacity outputs
Ayushman-22 Mar 30, 2026
3b474b8
Fix: enable fin plate capacity buttons in output dock
Ayushman-22 Mar 30, 2026
745ecc2
Fix cleat angle
Ayushman-22 Mar 31, 2026
d2655db
Fix cleat angle capacity
Ayushman-22 Mar 31, 2026
ca1dfdd
Fix cleat angle KeyError for supporting leg
Ayushman-22 Mar 31, 2026
7d718e7
Fix cleat angle KeyError for supporting leg
Ayushman-22 Mar 31, 2026
9c943aa
Fix: Cleat Angle Capacity Failure Pattern
Ayushman-22 Apr 1, 2026
ba3031d
add capacity details in output deck
Ayushman-22 Apr 2, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
5 changes: 4 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ Osdag_Workspace/*
/backup
OUTPUT_FILES/Output_PDF/*
Output_PDF/*
**/osdag_gui/data/reports/*
**/ResourceFiles/images/3d.png
**/ResourceFiles/images/front.png
**/ResourceFiles/images/side.png
Expand All @@ -37,4 +38,6 @@ Output_PDF/*
**/ResourceFiles/last_designs/*
**/ResourceFiles/html_page/*
*.xlsx
*.code-workspace
*.code-workspace
**/testing_code/
!license-dependencies.txt
50 changes: 50 additions & 0 deletions IFC_Generator_Status_Report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
# Osdag IFC Generator Status Report

## 1. Introduction
The Osdag IFC Generator is a critical module engineered to export Osdag's highly detailed 3D structural steel connections into the Industry Foundation Classes (IFC) format. The main objective of this tool is to provide seamless interoperability with prominent commercial BIM applications—such as Revit, Tekla, and Archicad—while rigidly adhering to LOD 500 standards for as-built and field-verified modeling. By reliably extracting precise geometries, physical bolt hole voids, and comprehensive engineering metadata, the generator ensures that essential structural design data is completely preserved and functional during the BIM handover process.

## 2. File Breakdown: `export_ifc` Directory
The `export_ifc` / `export_ifc_v2` module is structured into distinct, modular scripts that separate data extraction from IFC file generation:
* **`__init__.py`**: Standard Python package initialization file.
* **`cad_extraction.py`**: Contains reusable CAD extraction utilities. It is responsible for parsing complex OSDAG GUI objects and safely extracting lists of simple physical primitives (Members, Plates, Bolts, Welds). It serializes these objects into lightweight, JSON-compatible dictionaries, effectively stripping away heavy OpenCASCADE geometry dependencies.
* **`geometry_mapper.py`**: The core geometric engine. It translates local coordinates and dimensions from Osdag into explicit buildingSMART IFC geometries. It generates 2D profiles (`IfcArbitraryClosedProfileDef`), extrusions (`IfcExtrudedAreaSolid`), robust hardware instances (`IfcMappedItem`), and handles complex boolean cutting operations for bolt voids.
* **`ifc_generator.py`**: The primary orchestration class (`OsdagIfcExporter`). It initializes the IFC file environment, establishes the mandatory spatial hierarchy sequence (`Project` → `Site` → `Building` → `Storey`), manages deterministic GUID generation, and orchestrates the geometric and metadata mappers to assemble the final product.
* **`metadata_mapper.py`**: Handles semantic data injection. It maps engineering specifics (material grades, profiles, capacities, loads, design codes) into custom buildingSMART property sets (`Pset_OsdagDesignData`). It also groups the separate physical items into a unified structural `IfcElementAssembly`.
* **`subprocess_ifc_exporter.py`**: An independent execution script designed to be run as an isolated subprocess. It ingests the serialized JSON CAD payload, reconstructs lightweight object mockups, and triggers the `OsdagIfcExporter`. This architectural isolation guarantees that any `ifcopenshell` faults or high-memory operations do not crash the main Osdag PyQt GUI.

## 3. Detailed IFC Generation Pipeline
The end-to-end process of generating an IFC file from an Osdag connection model follows a strict, isolated pipeline:

1. **Trigger & Extraction**: The user requests an IFC export from the Osdag UI. The system triggers `cad_extraction.py`, which utilizes a unified dispatcher to parse the active CAD Module based on its connection class (e.g., `FinPlateCAD`). It iterates through the class properties to categorize and extract all visual parts into logical structural groups (members, plates, fasteners, welds).
2. **Serialization & Offloading**: To avoid crashing the GUI with heavy standard libraries, `cad_extraction.py` serializes the categorized CAD parts and the engineering metadata into a flat JSON dictionary. This JSON payload is temporarily written to disk.
3. **Subprocess Dispatch**: The main Osdag GUI thread spawns a separate background process targeting `subprocess_ifc_exporter.py`, passing the newly created JSON file path as a command-line argument.
4. **Data Rehydration**: The subprocess runs, reads the JSON payload, and dynamically reconstructs lightweight Python object namespaces that mimic the original CAD elements' numeric properties, but without the baggage of PySide or OpenCASCADE.
5. **IFC Initialization**: The `OsdagIfcExporter` (`ifc_generator.py`) is instantiated. It generates a blank file using the specified schema (e.g., `IFC2X3`), defines the standard unit assignments, and builds the baseline spatial project hierarchy.
6. **Geometry Construction**: The exporter loops through the structural groups, passing each item to `GeometryMapper` (`geometry_mapper.py`):
* **Beams & Plates**: Mapped to `IfcExtrudedAreaSolid`.
* **Fasteners (Bolts, Nuts, Washers)**: Mapped once and instanced repetitively using `IfcMappedItem` to save file size.
* **Voids**: For every bolt passing through a plate, `GeometryMapper` creates a cylindrical `IfcOpeningElement` and performs an `IfcRelVoidsElement` cut to generate true LOD 500 physical holes.
7. **Metadata Binding**: As geometries are finalized, `MetadataMapper` (`metadata_mapper.py`) generates `Pset_OsdagDesignData` property sets containing the joint's design loads, capacities, and material traits, binding them to the respective 3D entities.
8. **Assembly & Finalization**: All connection components are aggregated into a top-level `IfcElementAssembly` (representing the joint as a whole single part) and fixed to the Building Storey. The underlying `ifcopenshell` engine writes the complete data tree to the desired `.ifc` output path, and the subprocess gracefully exits.

## 4. Current Wrapper Capabilities
The latest iteration of the IFC Wrapper (`export_ifc`) has achieved substantial milestones in terms of geometric fidelity and structural detailing:
* **Extensive Connection Support**: Advanced CAD extraction logic cleanly identifies and processes 28 explicit connection classes. This robust dispatcher seamlessly supports Simple Plated Joints, Shear Connections, Base Plates, Moment Connections (End Plate & Cover Plate architectures), and Truss/Tension networks.
* **LOD 500 Geometry Mapping**: The internal `GeometryMapper` utilizes precise parametric IFC profiles (e.g., `IfcRectangleHollowProfileDef`, `IfcArbitraryClosedProfileDef`) for accurate programmatic definitions of structural members (I-Sections, Angles, Channels, Hollow Sections) and miscellaneous plates (Stiffeners, Gussets).
* **High-Fidelity Fastener Instancing**: Hardware items such as bolts, nuts, washers, and curved anchor bolts are meticulously modeled using `IfcMappedItem` for highly lightweight scaling. Furthermore, true boolean cut operations (`IfcOpeningElement`) are applied directly to connection plates to dynamically generate physical bolt hole voids.
* **Semantic Hierarchy and Metadata**: Exports formulate and maintain a rigorous spatial hierarchy (`Project` → `Site` → `Building` → `Storey`). The wrapper dynamically injects exhaustive engineering metadata—covering materials, load calculations, and design status—via the custom `Pset_OsdagDesignData` property set.
* **Stable Entity Tracking**: The system leverages mathematically deterministic GUID generation (UUIDv5) based on internal Osdag item identifiers. This ensures robust and stable model element tracking across multiple iterative exports.

## 5. Current Limitations
Despite the highly robust geometric modeling, the IFC Generator currently faces a few technical limitations that require resolution:
* **Flexural Member Export Instability**: Certain complex spatial configurations and orientations of flexural members occasionally result in internal topological mapping failures, which can yield empty or unopenable IFC bodies.
* **Dispatcher Mismatches**: Although largely mitigated, relying on dynamic Osdag connection modeling means legacy setups sometimes fail. Occasional mismatches between GUI abstraction classes (e.g., `FinPlateCAD`) and internal Osdag system definitions (e.g., `ColFlangeBeamWeb`) can still invoke partial geometry bypasses during CAD extraction.
* **Arbitrary Profile Deficiencies**: Heavy reliance on purely 2D point arrays (`IfcArbitraryClosedProfileDef`) for mapping complex custom stiffeners and asymmetric gusset plates can occasionally lead to inverted normal faces or "non-planar" warnings in strict external BIM validators.
* **Incomplete Standard Classifications**: While the geometric detailing meets LOD 500, the full integration of rigorous international classifications—such as OmniClass or Uniclass structural code tagging—remains partially hardcoded or unimplemented.

## 6. In Progress Tasks
To transition this generator tool to true production readiness and complete BIM compatibility, the following objectives are actively being pursued by the team:
* **Debugging Flexural Members**: We are actively investigating the `CommonDesignLogic` module and respective CAD extractors to resolve pipeline failures and topological errors specifically targeting complex flexural member CAD generation.
* **Expanding Property Sets**: Finalizing the `metadata_mapper.py` routines to ensure the automated and comprehensive translation of native Osdag metrics into standard buildingSMART Psets, beyond just the current custom dictionaries.
* **Testing and Interoperability Validation**: Conducting rigorous, environment-agnostic testing of generated IFC2x3 and IFC4 files to mathematically verify zero data loss when importing the structural setups into target BIM hubs like Revit and Tekla Structures.
* **CLI Integration**: Bridging the generation wrapper capabilities directly into the Osdag Command Line Interface (CLI). This will facilitate swift, automated batch BIM-model exports straight from raw `.osi` files without imposing GUI dependency on the end-user.
Loading