staad-analysis — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited staad-analysis (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
cmd.PerformAnalysis(printOption) — adds the PERFORM ANALYSIS command. Call ONCE only.staad.SaveModel(True) + staad.AnalyzeEx(1, 0, 1) — saves the file, then runs the solver.Both steps are required. PerformAnalysis alone does NOT run the solver.
AnalyzeExAnalyzeEx is the preferred solver function — it returns a status code and runs both analysis and design. AnalyzeModel is a simpler alternative with no return value (analysis only, no design).
cmd = staad.Command
staad.SetSilentMode(True)
staad.SaveModel(True)
status = staad.AnalyzeEx(1, 0, 1) # silent, visible, waitTillComplete
staad.SetSilentMode(False)
# status: 2=OK, 3=warnings, 4=errors, -1=terminatedAfter a run, retrieve the solver's error/warning text. These COM functions exist only on STAAD.Pro v26+ — confirm the connected instance's version from list_instances / get_status before calling (see staad-core → Version Compatibility). On older STAAD they raise an "update STAAD.Pro" error.
These methods live on the root staad object.
errors = staad.GetAnalysisErrorMessages() # solver error messages
warnings = staad.GetAnalysisWarningMessages() # solver warning messagesGetAnalysisStatus() raises an exception when the run returned an error (negative) status code — execute_code reports it; no try/except needed unless you want to continue after a failure.
| Value | Output |
|---|---|
| 0 | No print |
| 1 | Load data |
| 2 | Statics check |
| 3 | Statics load |
| 4 | Mode shapes |
| 5 | Both |
| 6 | All |
cmd = staad.Command
cmd.PerformPDeltaAnalysisNoConverge(NoOfIterations=5, PrintOption=0)
cmd.PerformPDeltaAnalysisEx(
NoOfIterations=20, PrintOption=0,
bSmallDelta=1, # 1=P-small-delta, 0=P-large-delta
AddGeometricStiffness=1 # 1=include geometric stiffness
)cmd.PerformBucklingAnalysis(MaxNoOfIterations=10, PrintOption=0)
cmd.PerformBucklingAnalysisEx(
Method=0, # 0=Iterative, 1=Eigen
MaxNoOfIterations=15, PrintOption=0
)cmd.PerformCableAnalysis(NoOfIterations=25, PrintOption=0)
cmd.PerformCableAnalysisEx(
AdvancedCableAnalysis=1,
AdvOptions=[1, 0], # [REFORM, KGEOM]
Params=[145, 300, 1e-4, 0.0, 1.0, 1, 0.0],
PrintOption=0
)cmd.PerformDirectAnalysis(
Option=1, # 1=LRFD, 2=ASD
Params=[0.01, 0.01, 1, 15], # [TAUTOL, DISPTOL, ITERDIRECT, PDiter]
AddOptions=[0, 0], # [REDUCEDEI, TBITER]
PrintOption=0
)cmd.PerformNonlinearAnalysisEx(
PrintOption=0, Arclength=0.0,
NoOfIterations=5, Tolerance=0.0009,
Steps=10, Rebuild=0,
AddGeometricStiffness=1,
DispLimitData=[joint, DOF, target] # DOF: 1-3=trans, 4-6=rot
)cmd.SetFloorDiaphragmBaseCommand(elevation)
cmd.DeleteFloorDiaphragmBaseCommand()cmd.SetCheckSoftStoryCommand(DesignCode=3)
cmd.SetCheckIrregularitiesCommand(DesignCode=3)cmd.DeleteAllAnalysisCommands()cmd.CreateSteelDesignCommand(
NDesignCode=1067, NCommandNo=9380,
IntValues=[1], FloatValues=[], StringValues=[],
NAssignList=[1, 2, 3]
)For workflows, prefer the staad-steel-design skill which uses the Design sub-module.
See run-analysis.py for a complete working example.
PerformAnalysis more than once — it adds duplicate commandsSaveModel before AnalyzeModel — the engine reads from the .std file on diskAnalyzeModel/AnalyzeEx in SetSilentMode(True/False) to prevent blocking dialogsAnalyzeEx(1, 0, 1) — never AnalyzeModelAnalyzeEx runs both analysis AND design; AnalyzeModel runs analysis onlyPerformAnalysis + AnalyzeEx for models with compression-only supports.~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.