1+ namespace EtabSharp . Mcp . Models ;
2+
3+ // ─── Project Summary ─────────────────────────────────────────────────────────
4+
5+ public record ProjectSummary (
6+ string FileName ,
7+ string Version ,
8+ UnitsInfo Units ,
9+ int StoryCount ,
10+ double TotalHeight ,
11+ int MaterialCount ,
12+ int FrameCount ,
13+ int AreaCount ,
14+ int LoadPatternCount ,
15+ int LoadCaseCount ,
16+ bool AnalysisComplete ,
17+ BaseReactionSummary ? BaseReactions
18+ )
19+ {
20+ public static ProjectSummary NotConnected ( ) => new (
21+ FileName : "" ,
22+ Version : "" ,
23+ Units : new UnitsInfo ( "" , "" , "" ) ,
24+ StoryCount : 0 ,
25+ TotalHeight : 0 ,
26+ MaterialCount : 0 ,
27+ FrameCount : 0 ,
28+ AreaCount : 0 ,
29+ LoadPatternCount : 0 ,
30+ LoadCaseCount : 0 ,
31+ AnalysisComplete : false ,
32+ BaseReactions : null
33+ ) ;
34+ }
35+
36+ public record UnitsInfo ( string Force , string Length , string Temperature ) ;
37+
38+ // ─── Base Reactions ───────────────────────────────────────────────────────────
39+
40+ public record BaseReactionSummary (
41+ int Count ,
42+ List < ReactionItem > Reactions
43+ ) ;
44+
45+ public record ReactionItem (
46+ string LoadCase ,
47+ string StepType ,
48+ double StepNumber ,
49+ double Fx ,
50+ double Fy ,
51+ double Fz ,
52+ double Mx ,
53+ double My ,
54+ double Mz
55+ ) ;
56+
57+ // ─── Building Information ─────────────────────────────────────────────────────
58+
59+ public record BuildingInformationResult (
60+ bool Success ,
61+ string ? Error ,
62+ ModelInfoResult ? ModelInfo ,
63+ StoryInfoResult ? Stories ,
64+ CategorySummary ? Materials ,
65+ CategorySummary ? FrameSections ,
66+ CategorySummary ? AreaSections ,
67+ CategorySummary ? LoadPatterns ,
68+ CategorySummary ? LoadCases ,
69+ LoadCombinationsResult ? LoadCombinations ,
70+ GroupsResult ? Groups
71+ ) ;
72+
73+ public record ModelInfoResult ( string Filename , string Version , UnitsInfo Units ) ;
74+
75+ public record StoryInfoResult (
76+ int Count ,
77+ double TotalHeight ,
78+ List < StoryItem > Stories
79+ ) ;
80+
81+ public record StoryItem (
82+ string Name ,
83+ double Height ,
84+ double Elevation ,
85+ bool IsMasterStory ,
86+ string SimilarToStory
87+ ) ;
88+
89+ public record CategorySummary (
90+ int TotalCount ,
91+ List < CategoryGroup > ByType
92+ ) ;
93+
94+ public record CategoryGroup ( string Type , int Count , List < string > Items ) ;
95+
96+ public record LoadCombinationsResult ( int TotalCount , List < string > Combinations ) ;
97+
98+ public record GroupsResult ( int TotalCount , List < GroupItem > Groups ) ;
99+
100+ public record GroupItem ( string Name , int ObjectCount ) ;
101+
102+ // ─── Analysis Results ─────────────────────────────────────────────────────────
103+
104+ public record FrameForcesResult (
105+ bool Success ,
106+ string ? Error ,
107+ int TotalResults ,
108+ int ResultsShown ,
109+ string ? Note ,
110+ List < FrameForceItem > ? Forces
111+ ) ;
112+
113+ public record FrameForceItem (
114+ string Frame ,
115+ string Element ,
116+ string LoadCase ,
117+ string StepType ,
118+ double ObjectStation ,
119+ double ElementStation ,
120+ ForceComponents Forces
121+ ) ;
122+
123+ public record ForceComponents (
124+ double Axial ,
125+ double Shear2 ,
126+ double Shear3 ,
127+ double Torsion ,
128+ double Moment2 ,
129+ double Moment3
130+ ) ;
131+
132+ public record JointDisplacementsResult (
133+ bool Success ,
134+ string ? Error ,
135+ int TotalResults ,
136+ int ResultsShown ,
137+ string ? Note ,
138+ List < JointDisplacementItem > ? Displacements
139+ ) ;
140+
141+ public record JointDisplacementItem (
142+ string Point ,
143+ string Element ,
144+ string LoadCase ,
145+ string StepType ,
146+ double StepNumber ,
147+ DisplacementComponents Displacements
148+ ) ;
149+
150+ public record DisplacementComponents (
151+ double Ux , double Uy , double Uz ,
152+ double Rx , double Ry , double Rz
153+ ) ;
154+
155+ public record StoryDriftsResult (
156+ bool Success ,
157+ string ? Error ,
158+ int Count ,
159+ List < StoryDriftItem > ? Drifts
160+ ) ;
161+
162+ public record StoryDriftItem (
163+ string Story ,
164+ string LoadCase ,
165+ string StepType ,
166+ string Direction ,
167+ double Drift ,
168+ string Label ,
169+ LocationXYZ Location
170+ ) ;
171+
172+ public record LocationXYZ ( double X , double Y , double Z ) ;
173+
174+ public record ModalResultsData (
175+ bool Success ,
176+ string ? Error ,
177+ int TotalModes ,
178+ List < ModeItem > ? Modes ,
179+ List < ParticipationFactorItem > ? ParticipationFactors ,
180+ List < MassRatioItem > ? MassRatios
181+ ) ;
182+
183+ public record ModeItem (
184+ string LoadCase ,
185+ double Mode ,
186+ double Period ,
187+ double Frequency ,
188+ double CircularFrequency ,
189+ double Eigenvalue
190+ ) ;
191+
192+ public record ParticipationFactorItem (
193+ string LoadCase ,
194+ double Mode ,
195+ double Period ,
196+ double Ux , double Uy , double Uz ,
197+ double Rx , double Ry , double Rz
198+ ) ;
199+
200+ public record MassRatioItem (
201+ string LoadCase ,
202+ double Mode ,
203+ double Period ,
204+ double Ux , double Uy , double Uz ,
205+ double SumUx , double SumUy , double SumUz
206+ ) ;
0 commit comments