Vous êtes sur la page 1sur 27

SeismoStruct 2018

*.SPF Input File Format


2 SeismoStruct input file format * .SPF Seismosoft ltd.

Main Constants
NodFrd = 6
ShortNameLength = 16
MaxNameLength = 32
maxFilePathLength = 255
maxSecPatternLength = 60
maxDescriptionLength = 255

Main Variable Types


integer: 32-bit signed integer SizeOf(integer)=4

double: Double precision floating-point value (8 bytes) SizeOf(double)=8

real: Alias of Double SizeOf(real)=8

wideChar: holds a Unicode character SizeOf(widechar)=2

NameString: holds the name of materials, elements etc. SizeOf(Namestring)=64


NameString = array[0.. (maxNameLength-1)] of wideChar;

ModelString: holds the name of models, sections & curves (ASCII characters) SizeOf(UnitString)=17
ModelString = string[ShortNameLength];

UnitString: holds the name of units (ASCII characters) SizeOf(UnitString)=33


UnitString = string[maxNameLength];

PathString: holds the file name paths SizeOf(PathString)= 510


PathString = array[0.. (maxFilePathLength-1)] of wideChar;

DescriptionString:holds a description string SizeOf(DescriptionString)= 510


DescriptionString = array[0.. (maxDescriptionLength-1)] of wideChar;

ReinfPatternString: reinf. pattern string, e.g corners (4@20mm) SizeOf(ReinfPatternString)= 120


ReinfPatternString = array[0.. (maxSecPatternLength-1)] of wideChar;

TFileSectionRec highlights the end of a section (e.g. end of Material Models) and the beginning of a new section
(e.g. beginning of Sections Models) in the SPF file SizeOf(TFileSectionRec)=13
type
TFileSectionRec = record
SectionTitle: string[8];
SectionID: integer;
end;
 SectionTitle should always be 'Section:'. If not, the file will be identified as
corrupt
 SectionID is 0 for the first TFileSectionRec and increases by one in each
occurrence of the record
3 SeismoStruct input file format * .SPF Seismosoft ltd.

Analysis Types Constants


DynamicThID = 1 Dynamic time-history analysis
StaticThID = 2 Static time-history analysis
PushoverID = 3 Static pushover analysis
AdPushoverID = 4 Static adaptive pushover analysis
EigenID = 5 Eigenvalue analysis
StaticID = 6 Static analysis (non-variable load)
IdaID = 7 Incremental Dynamic Analysis
RsaID = 8 Response Spectrum Analysis
PushoverWithTDID = 9 Static pushover analysis with Target Displ. calculation
AdPushoverWithTDID = 10 Adaptive pushover analysis with Target Displ.
calculation
4 SeismoStruct input file format * .SPF Seismosoft ltd.

Material Constants
stl_blID = 0;
stl_mpID = 1;
stl_bl2ID =2;
stl_gmpID =3;
stl_roID = 4;
stl_drID = 5;
stl_mnID = 6;
con_maID = 7;
con_tlID = 8;
con_cmID = 9;
con_hsID = 10;
se_smaID = 11;
frp_tlID = 12;
el_matID = 13;

Section Constants
// 30 Plain/steel sections
rssID = 0;
rhsID = 1;
cssID = 2;
chsID = 3;
sitsID = 4;
agssID = 5;
dacssID = 6;
di1ID = 7;
di2ID = 8;
di1tbpID = 9;
di2tbpID = 10;
di1wpID = 11;
di2wpID = 12;
di1tbwpID = 13;
di2tbwpID = 14;
bbdcID = 15;
bbdccpID = 16;
bbdctbpID = 17;
bbdaID = 18;
bbdacpID = 19;
itbpID = 20;
itbwpID = 21;
itpID = 22;
ibpID = 23;
ibriID = 24;
ibrtID = 25;
sfaID = 26;
dabtbID = 27;
bbfaID = 28;
dadgID = 29;
// 15 reinforced concrete sections
// columns
rcrsID = 30;
rcqsID = 31;
rcrrcsID = 32;
rccsID = 33;
rczcsID = 34;
rclcsID = 35;
rctcsID = 36;
// beams
5 SeismoStruct input file format * .SPF Seismosoft ltd.

rctsID = 37;
rcarsID = 38;
// walls
rcrwsID = 39;
rcbwsID = 40;
rcuwsID = 41;
rczwsID = 42;
rclwsID = 43;
// hollow
rcrhsID = 44;
rcrrchsID = 45;
rcchsID = 46;
// other
rcbgsID = 47;
// 13 jacketed reinforced concrete sections
rcjrsID = 48;
rcjrrcsID = 49;
rcjrs3ID = 50;
rcjrs2ID = 51;
rcjrs1ID = 52;
rcjcsID = 53;
rcjzcsID = 54;
rcjlcsID = 55;
rcjlcs3ID = 56;
rcjtcsID = 57;
rcjtcs3ID = 58;
rcjtsID = 59;
rcjts3ID = 60;
rcjts1ID = 61;
rcjarsID = 62;
rcjars1ID = 63;
// 5 composite sections
cpisID = 64;
pecsID = 65;
fecsID = 66;
crsID = 67;
ccsID = 68;

Element Type Constants


A1-A20: structural type of elements, frame, truss, infill, link
B1&B2: mass elements
C1: dampiing element
A1 element type infrmDB element infrmDB_ID = 3
A2 element type link element linkID = 7
A6 element type elfrm element elfrmID = 4
A7 element type infill element infilID = 6
A9 element type infrmFBPH element infrmFBPH_ID = 1
A10 element type infrmFB element infrmFB_ID = 0
A11 element type infrmDBPH element infrmDBPH_ID = 2
A20 element type truss element trussID = 5
B1 element type lmass element lmassID = 8
B2 element type dmass element dmassID = 9
C1 element type ddamp element dashptID = 10

Response Curve Constants


inf_strutID = 0;
inf_shearID = 1;
lin_symID = 2;
6 SeismoStruct input file format * .SPF Seismosoft ltd.

lin_asmID = 3;
bl_symID = 4;
bl_asmID = 5;
bl_kinID = 6;
trl_symID = 7;
trl_asmID = 8;
pinched_asmID = 9;
MIMK_bilinID = 10;
MIMK_peakID = 11;
MIMK_pinchedID = 12;
Non_lin_ElastID = 13;
plstID = 14;
TakedaID = 15;
Takeda_asmID = 16;
Ramberg_OsgoodID = 17;
Richard_AbbottID = 18;
ssi_pyID = 19;
gap_hkID = 20;
multi_linID = 21;
smoothID = 22;
Bouc_WenID = 23; // not active yet

Rigid Constraint Constants


RigidLinkID = 0
RigidDiaphragmID = 1
EqualDOFID = 2

Other Types of Variables used


type
TStructuralCode = (EC8, ASCE41_13, NTC08, KANEPE, TBDY, NTC18, noStructuralCode);

type
TTargetDspMethod = (EC8_TD, ASCE41_13_TD, NTC08_TD, NTC18_TD, KANEPE_TD, TBDY_TD,
CSM_TD, ACSM_TD, DCM_TD, N2_TD);

type
TGlobalDamping = (StfProportional, MasProportional, Rayleigh, None);

type
TGlobalSTFDamping = (InitialSTF, TangentSTF);

type
TFRP_type = (Carbon, Aramid, Glass, steel, noFRP);

type
TConstrTyp = (RigidDiaphragm, RigidLink, EqualDOF, NoneConstType);

type
TDiaphragmTyp = (XYplane, XZplane, YZplane);

type
TCrvTyp = (FromFileCurve, UserDefinedCurve);

type
TLoadCategory = (PermanentLoad, DynamicTHLoad, StaticTHLoad, IncrementalLoad);

type
7 SeismoStruct input file format * .SPF Seismosoft ltd.

TLoadType = (FrcLoad, DspLoad, AccLoad);

type
TTypeOfPhase = (Load, Response, AutoResponse, AdLoad, AdResponse, nonP);

type
TPCriNotification = (PCriStop, PCriPause, PCriNotify, PCriNoAction);

type
TGrpItemsState = (nonList, GrpOfNodes, GrpOfElements);

type
TModalCombination = (MC_ABSSUM, MC_SRSS, MC_CQC);

type
TTransDirection = (plus_x, plus_y, plus_z, minus_x, minus_y, minus_z);

type
TSpectrumType = (Type_1, Type_2);

type
TSoilClass = (A_Soil, B_Soil, C_Soil, D_Soil, E_Soil);

type
TImportanceClass = (Importance_I, Importance_II, Importance_III, Importance_IV);

type
TTopographicCategory = (Topography_T1, Topography_T2, Topography_T3, Topography_T4);
8 SeismoStruct input file format * .SPF Seismosoft ltd.

SeismoStruct 2018 input file format


(1) Main Title
(i) TSPFTitleRec = record SizeOf(SPFTitleRec)=144
type
TSPFTitleRec = record
ProgramID : NameString;
Version : integer;
Release : integer;
Build : integer;
Version_No: integer;
VerifyProgramID: NameString;
end;
 ProgramID and VerifyProgramID should always be ' /&SeismoStruct file&/'. If not,
the file will come out corrupt
 Version = 2018
 Release = 1
 Build = 1
 Version_No: 86, it is the release number of the SPF file; it is used to check
older files and keep backwards comptibility

(ii) TFileSectionRec SizeOf(TFileSectionRec)=13

(2) Main Project Data


(i) TMainProjectRec = record SizeOf(TMainProjectRec)=250
type
TMainProjectRec = record
AnalysisType: integer;
NoMats,NoSecs: integer;
NoA1Classes, NoA2Classes, NoA6Classes, NoA7Classes: integer;
NoA9Classes,NoA10Classes,NoA11Classes,NoA20Classes: integer;
NoB1Classes, NoB2Classes, NoC1Classes : integer;
NoNodes,NoElems,NoConstr: integer;
NoCrv,NoStg,NoLod,NoElmLod,NoPhs: integer;
NoCChecks,NoCri,NoStrs,NoGrp,NoRSA: integer;
NoA3Classes, NoA4Classes, NoA5Classes, NoA8Classes: integer;
NoA12Classes,NoA13Classes,NoA14Classes,NoA15Classes: integer;
NoB3Classes, NoB4Classes, NoC2Classes, NoC3Classes : integer;
IntSlot1,IntSlot2,IntSlot3,IntSlot4,IntSlot5: integer;
IntSlot6,IntSlot7,IntSlot8,IntSlot9,IntSlot10: integer;
RealSlot1,RealSlot2,RealSlot3,RealSlot4,RealSlot5,RealSlot6: real;
isSPFcreatorFile: boolean;
BoolSlot2,BoolSlot3,BoolSlot4,BoolSlot5,BoolSlot6: boolean;
end;
 General data of the structural model: Analysis type, No. of materials, No. of
sections, No. of A1-A20,B1,B2 & C1 Classes (not elements!), No. of nodes,
elements, constraints, curves, stages, point loads, element loads, phases, code-
based checks, performance criteria, stress-points, groups, RSA combinations.
 Emply integer, real and boolean slots are included in the record for forward
compatibility. Slots also exist for newer element types, e.g. A3, A4, B3, B4 C2,
C3
 isSPFcreatorFile is true if the file is created with the SPF_Creator, and false in
any other case

(ii) TFileSectionRec SizeOf(TFileSectionRec)=13

(3) Units
9 SeismoStruct input file format * .SPF Seismosoft ltd.

(i) TProgramUnits = record SizeOf(TProgramUnits)=202


LengthUnit,ForceUnit,MassUnit: UnitString;
AccUnit,StressUnit,WeightUnit: UnitString;
UnitsType_Reinf: integer;
end;
 LengthUnit: 'mm', 'm', 'in', ft'.
 ForceUnit: 'N', 'kN', 'MN', 'lb', 'kip'
 MassUnit: 'tonne', 'ktonne', 'kg', 'tonne', it should be compatible with
LengthUnit and ForceUnit
 AccUnit: LengthUnit+'/sec2'
 StressUnit: 'MPa', 'GPa', 'Pa', 'kPa', it should be compatible with
LengthUnit and ForceUnit
 WeightUnit: ForceUnit +'/'+ LengthUnit + '3'
 UnitsType_Reinf: 0 for SI rebar types, 1 for US rebar types

(ii) TFileSectionRec SizeOf(TFileSectionRec)=13


 The position of the SPF file at this location is always 635.
10 SeismoStruct input file format * .SPF Seismosoft ltd.

(4) Materials (Materials tab)


(i)loop over all the defined materials
SPF_MainMat_ver18_Rec = record SizeOf(SPF_MainMatRec)=898
nam: NameString;
Typ: ModelName;
Prp: array[0..Pred(MaxMatPrp)] of real;
IsExistMat: boolean;
MeanStrength,LBStrength: real;
end;
 Name, type & properties of material, IsExistingMaterial, Mean & lower-bound
strength
 MaxMatPrp = 100

(ii) TFileSectionRec SizeOf(TFileSectionRec)=13

(5) Sections (Sections tab)


(i)loop over all the defined sections
SPF_MainSec_ver18_Rec = record SizeOf(SPF_MainSec_ver2_Rec)=25165
nam: NameString;
Typ: ModelName;
Mat: array [0..Pred(AvMaxSecMat )] of NameString;
dim: array [0..Pred(AvMaxSecDim )] of real;
Lpat: array [0..Pred(AvMaxSecReinfPat)] of TReinfPattern;
NoAReinf: integer;
AReinf: array [0..Pred(MaxSecReinfAddBars)] of TSec_AReinf_data;
TPat: array [0..Pred(AvMaxSecTReinfPat)] of TTransReinfPattern;
FRP: TFRP_wrap_data;
Conf: TSec_Conf_data;
Shear: TSec_Shear_data;
AMass: real; // parameter not used, left for backwards compatibility reasons
end;

TReinfPattern = record SizeOf(TReinfPattern)=12


LPatType: integer;
NoBars: integer;
BarDim: integer; // for SI: 5,6,7..50 for Imperial: 3,4,5..18
end;

TTransReinfPattern = record SizeOf(TTransReinfPattern)=24


TPatType: integer;
NoBars_22: integer;
NoBars_33: integer;
BarDim: integer; //for SI: 5,6,7..50 for Imperial: 3,4,5..18
spacing: real;
spiral: boolean; //spiral hoops
end;

TFRP_wrap_data = record SizeOf(TFRP_wrap_data)=154


name: NameString;
Typ: TFRP_type;
Thickness, Ef, ffu, efu: real;
UseLaminatePrp: boolean;
NoDirections: integer;
beta: array [0 .. 3] of real;

NoLayers: integer;
RoundingR: real;
Factor_na:real;
11 SeismoStruct input file format * .SPF Seismosoft ltd.

end;

TSec_Conf_data = record SizeOf(TSec_Conf_data)=66


autoCalc: boolean;
closed135: boolean;
ConfFactor: array [0 .. (AvMaxSecConcRegions-1)] of real;
end;

TSec_AReinf_data = record SizeOf(TSec_AReinf_data)=24


Area,D2, D3: real;
end;

TSec_Shear_data = record SizeOf(TSec_Shear_data)=19


useValue : boolean;
autoCalc : boolean;
IncAxial : boolean;
ShearCap22: real;
ShearCap33: real;
end;
 Name, type materials, & dimensions, longitudinal reinforcement patterns, No. and
data (d2,d3,As) for additional longitudinal reinforcement, transverse
reinforcement patterns, FRP, confinement & shear data and additional section mass
 AvMaxSecMat = 6
 AvMaxSecDim = 15
 AvMaxSecReinfPat = 19
 MaxSecReinfAddBars = 999
 AvMaxSecTReinfPat = 5
 AvMaxSecConcRegions = 8
 AMass does not appear in the SeismoStruct GUI. The variable existed until
SeismoStruct v7 and is left for backwards compatibility

(ii) TFileSectionRec SizeOf(TFileSectionRec)=13


12 SeismoStruct input file format * .SPF Seismosoft ltd.

(6) Element Classes (Element Classes tab)

GENERAL: In all element classes local type of damping is defined


TDampPattern = record SizeOf(TDampPattern)=50
Typ: TGlobalDamping;
MassParam: real;
StfParam: real;
Period1,DampRatio1: real;
Period2,DampRatio2: real;
IsTangentSTF: boolean;
end;

(6.i) A1-infrmDB Element Classes


Loop over all the A1 Classes
SPF_MainA1Rec = record SizeOf(SPF_MainA1Rec)=258
nam: NameString;
NoSecs: integer;
Sec: array[0..1] of NameString;
Fib: integer;
Dmp: TDampPattern;
mas: real;
end;
 Name, number of sections, section names (1 or 2), number of fibers, damping and
additional mass

(6.ii) A6-elfrm Element Classes


Loop over all the A6 Classes
SPF_MainA6_ver2_Rec = record SizeOf(SPF_MainA6_ver2_Rec)=227
nam: NameString;
UserDefinedSec: boolean;
Sec: NameString;
Prm: array[0..4] of real;
Dmp: TDampPattern;
mas: real;
end;
 Name, UserDefinedSec (if the EA,EI,GJ values are user-defined) section name, EA,
EI2, EI3, GJ and Self-Mass parameters damping and additional mass

(6.iii) A7-infill Element Classes


Loop over all the A7 Classes
SPF_MainA7_ver18_Rec = record SizeOf(SPF_MainA7Rec)=700
nam: NameString;
Crv: array[0..1] of ModelName;
Prm: array[0..Pred(2*NoMaxCurvPar)] of real;
Oth: array[0..8] of real;
Dmp: TDampPattern;
end;
 Name, response curve types for strut and shear, curve parameters, other parameters
and damping
 NoMaxCurvPar = 30

(6.iv) A9-infrmFBPH Element Classes


Loop over all the A9 Classes
SPF_MainA9Rec = record SizeOf(SPF_MainA9Rec)=266
nam: NameString;
13 SeismoStruct input file format * .SPF Seismosoft ltd.

NoSecs: integer;
Sec: array[0..1] of NameString;
Fib: integer;
hng: real;
Dmp: TDampPattern;
mas: real;
end;
 Name, number of sections, section names (1 or 2), number of fibers, plastic hinge
length percentage, damping and additional mass

(6.v) A10-infrmFB Element Classes


Loop over all the A10 Classes
SPF_MainA10Rec = record SizeOf(SPF_MainA10Rec)=774
nam: NameString;
NoSecs: integer;
Sec: array[0..9] of NameString;
Int: integer;
Fib: integer;
Dmp: TDampPattern;
mas: real;
end;
 Name, number of sections, section names (1-10), number of integration sections,
number of fibers, damping and additional mass

(6.vi) A11-infrmDBPH Element Classes


Loop over all the A11 Classes
SPF_MainA11Rec = record SizeOf(SPF_MainA11Rec)=254
nam: NameString;
NoSecs: integer;
Sec: array[0..1] of NameString;
Dmp: TDampPattern;
mas: real;
end;
 Name, number of sections, section names (1 or 2), damping and additional mass

(6.vii) A20-truss Element Classes


Loop over all the A20 Classes
SPF_MainA20Rec = record SizeOf(SPF_MainA20Rec)=258
nam: NameString;
NoSecs: integer;
Sec: array[0..1] of NameString;
Fib: integer;
Dmp: TDampPattern;
mas: real;
end;
 Name, number of sections, section names (1 or 2), number of fibers, damping and
additional mass

(6.viii) A2-link Element Classes


Loop over all the A2 Classes
SPF_MainA2_ver18_Rec = record SizeOf(SPF_MainA2_ver18_Rec)=1656
nam: NameString;
Crv: array[0..5] of ModelName;
Prm: array[0..Pred(6*NoMaxCurvPar)] of real;
Dmp: TDampPattern;
end;
 Name, response curve types in the 6 DOFs, parameters for the 6 curves and damping
14 SeismoStruct input file format * .SPF Seismosoft ltd.

 NoMaxCurvPar = 30

(6.ix) B1-lmass Element Classes


Loop over all the B1 Classes
SPF_MainB1Rec = record SizeOf(SPF_MainB1Rec)=162
nam: NameString;
mas: array[0..5] of real;
Dmp: TDampPattern;
end;
 Name, mass parameters in the 6 DOFs and damping

(6.x) B2-dmass Element Classes


Loop over all the B2 Classes
SPF_MainB2Rec = record SizeOf(SPF_MainB2Rec)=122
nam: NameString;
mas: real;
Dmp: TDampPattern;
end;
 Name, mass per length parameter and damping

(6.xi) C1-ddamp Element Classes


Loop over all the C1 Classes
SPF_MainC1Rec = record SizeOf(SPF_MainC1Rec)=112
nam: NameString;
Prm: array[0..5] of real;
end;
 Name and damping parameters in the 6 DOFs

(xii) TFileSectionRec SizeOf(TFileSectionRec)=13


15 SeismoStruct input file format * .SPF Seismosoft ltd.

(7) Nodes: (Nodes and Restraints tabs)


(i)loop over all the defined nodes
SPF_MainNodes_ver18_Rec = record SizeOf(SPF_MainNodes_ver18_Rec)=96
nam: NameString;
x: real;
y: real;
z: real;
IsStructural: boolean;
fixed_Dir: array [0 .. 5] of boolean;
Output: boolean;
end;
 Name, x,y & z coordinates, if it is a strucural node, restraints in the 6 DOFs,
and if the nodal deformations are output during the analysis

(ii) TFileSectionRec SizeOf(TFileSectionRec)=13

(8) Elements (Element Connectivity and Code-based Checks tabs)


(i)loop over all the defined elements
SPF_MainElems_ver18_Rec = record SizeOf(SPF_MainElems_ver18_Rec)=1183
= record
nam: NameString;
Cls: NameString;
ElemTyp: integer;
Nod1: NameString;
Nod2: NameString;
Nod3: NameString;
Nod4: NameString;
Nod5: NameString; //not used
Nod6: NameString; //not used
Nod7: NameString; //not used
Nod8: NameString; //not used
Nod1_orient: NameString;
Nod2_orient: NameString;
x1: real;
y1: real;
Z1: real;
x2: real;
y2: real;
Z2: real;
x3: real;
y3: real;
Z3: real;
x4: real;
y4: real;
Z4: real;
x5: real; //not used
y5: real; //not used
Z5: real; //not used
x6: real; //not used
y6: real; //not used
Z6: real; //not used
x7: real; //not used
y7: real; //not used
Z7: real; //not used
x8: real; //not used
y8: real; //not used
Z8: real; //not used
X1_orient: real;
16 SeismoStruct input file format * .SPF Seismosoft ltd.

Y1_orient: real;
Z1_orient: real;
X2_orient: real;
Y2_orient: real;
Z2_orient: real;
OffsetX1: real; // X,Y,Z: the GLOBAL axes system
OffsetY1: real; // 1 or 2: 1st & 2nd node
OffsetZ1: real;
OffsetX2: real;
OffsetY2: real;
OffsetZ2: real;
Releases: array [0 .. 5] of boolean;
Activation: real;
Deactivation: real;
OutPut: boolean;
OutputStrs: boolean;
//-------------------------------------------------------------
IsPrimary: boolean;
WithoutDetailing: boolean;
BrittleBars, SmoothBars, IsAccessible: boolean;
LapTypeIndex, LapLengthIndex: integer;
LapLength: double;
//-------------------------------------------------------------
IntSlot1,IntSlot2,IntSlot3,IntSlot4,IntSlot5,IntSlot6: integer;
RealSlot1,RealSlot2,RealSlot3,RealSlot4,RealSlot5,RealSlot6: real;
BoolSlot1,BoolSlot2,BoolSlot3,BoolSlot4,BoolSlot5,BoolSlot6: boolean;
end;
 Name, class name, names of nodes 1-8 (currently up to 4 nodes are needed, the
additional nodes are kept for forward compatibility), names of orientation nodes 1
& 2, x/y/z coordinates of nodes 1-8 and orientation nodes 1-2, Offsets x/y/z of
the 1st and 2nd node (needed for the frame elements), DOF releases (6 internal
DOFs: M2a, M3a, M2b, M3b, F, Mt), activation & deactivation times, parameter to
determine if the element forces and internal stresses are output during the
analysis, and code-based parameters (the parameters are easy to understand from
the Advanced Properties dialog box)
 Empty slots are provided for integer, real and boolean variables, in order to keep
forward compatibility

(ii) TFileSectionRec SizeOf(TFileSectionRec)=13


17 SeismoStruct input file format * .SPF Seismosoft ltd.

(9) Constraints: (Constraints tab)


(i)loop over all the defined rigid constraints
SPF_MainConstrRec = record SizeOf(SPF_MainConstrRec)=76+NoSlvNods*64
= record
Typ: TConstrTyp;
mas: NameString;
DiaphragmTyp: TDiaphragmTyp;
dof: array[0..(NodFrd-1)] of boolean;
NoSlvNods: integer;
slv: array of NameString;
end;
 Type of constraint, name of master node, type of rigid diaphragm (RigidDiaphragm
type only), DOFs restrained (RigidLink and EqualDOF types only), number of slave
nodes, and array [0..(NoSlv-1)] with the names of the slave nodes
 TConstrTyp = (RigidDiaphragm, RigidLink, EqualDOF, NoneConstType). Size=1byte
 TDiaphragmTyp = (XYplane, XZplane, YZplane) . Size=1 byte

(ii) TFileSectionRec SizeOf(TFileSectionRec)=13

(10) Curves: (Curves tab)


(i)loop over all the defined curves (for static or dynamic time-history analysis)
SPF_MainCrvRec = record SizeOf(SPF_MainCrvRec)=579+2*CrvStesp*8
= record
nam: NameString;
Typ: TCrvTyp;
des: DescriptionString;
CrvSteps: integer;
CrvTim,CrvAcc: array of real;
end;
 Name of curve, type of curve, description of curve, number of steps and arrays
[0..(CrvSteps-1)] of (i) the time values and (ii) the acceleration values
 TCrvTyp = (FromFileCurve, UserDefinedCurve). Size=1 byte

(ii) TFileSectionRec SizeOf(TFileSectionRec)=13

(11) Stages: (Stages tab)


(i)loop over all the defined stages (for static or dynamic time-history analysis)
SPF_MainStgRec = record SizeOf(SPF_MainStgRec)=28
beg: real;
fin: real;
stp: integer;
dt: real;
end;
 start and end time, number of steps, and time-step

(ii) TFileSectionRec SizeOf(TFileSectionRec)=13


18 SeismoStruct input file format * .SPF Seismosoft ltd.

(12) Point Loads: (Loads tab)


(i)loop over all the defined point loads
SPF_MainLodRec = record SizeOf(SPF_MainLodRec)=142
cat: TLoadCategory;
Nod: NameString;
dir: integer;
Typ: TLoadType;
val: real;
Crv: NameString;
end;
 load category, node where the load is applied, direction (0..5), type of load
(force, displacement, acceleration), value and curve name (for DynamicTHLoad or
StaticTHLoad loads)
 TLoadCategory = (PermanentLoad, DynamicTHLoad, StaticTHLoad, IncrementalLoad).
Size=1 byte
 TLoadType = (FrcLoad, DspLoad, AccLoad). Size=1 byte

(ii) TFileSectionRec SizeOf(TFileSectionRec)=13

(13) Element Loads: (Loads tab)


(i)loop over all the defined element loads
SPF_MainElmLodRec = record SizeOf(SPF_MainLodRec)=78
cat: TLoadCategory;
elm: NameString;
dir: integer;
Typ: TLoadType;
val: real;
end;
 load category (only PermanentLoad permitted), element where the load is applied,
direction (0..5), type of load (only force permiited) and value
 TLoadCategory = (PermanentLoad, DynamicTHLoad, StaticTHLoad, IncrementalLoad);
 TLoadType = (FrcLoad, DspLoad, AccLoad);

(ii) TFileSectionRec SizeOf(TFileSectionRec)=13

(14) Phases: (Phases tab)


(i)loop over all the defined phases (for pushover analysis)
SPF_MainPhsRec = record SizeOf(SPF_MainPhsRec)=89
Typ: TTypeOfPhase;
lof: real;
stp: integer;
Nod: NameString;
dir: integer;
dsp: real;
end;
 type of phase (load control, response control, automatic response control,
adaptive load control, adaptive response control), load factor (for load control
and adaptive load control), number of steps (all but automatic response control),
controlled node (for response control and adaptive response control), direction
(for the 3 response control types), displacement (for the 3 response control
types)
 TTypeOfPhase = (Load, Response, AutoResponse, AdLoad, AdResponse, nonP). Size=1
byte

(ii) TFileSectionRec SizeOf(TFileSectionRec)=13


19 SeismoStruct input file format * .SPF Seismosoft ltd.

(15) Capacity Checks: (Capacity Checks tab)


(i)loop over all the defined capacity checks
SPF_MainCChecksRec = record SizeOf(SPF_MainCChecksRec)=600+NoELm*64
nam: NameString;
des: DescriptionString;
Typ: integer;
NoElm: integer;
elm: array of NameString;
ResidualStrength: integer;
ntf: TPCriNotification;
StructuralCode: TStructuralCode;
LimitStateID: integer;
col: TColor;
vis: integer;
end;
 name & description of check, type of check (0: chord rotation capacity, 1: shear
capacity), number (integer) and names (array 0..(NoElm-1))of the elements to be
checked, residual stength ratio, type of notification (i.e. action to be made upon
achievement of the strength), Structural Code, ID of the limit state (0:
operational level, 1: damage limitation, 2: significant damage, 3: near collapse -
similar names exists in different codes, the operational level limit state might
not be prsent in some Codes), color and visual effects ID
 TStructuralCode = (EC8, ASCE41_13, NTC08, KANEPE, TBDY, NTC18, noStructuralCode).
Size=1 byte
 TPCriNotification = (PCriStop, PCriPause, PCriNotify, PCriNoAction). Size=1 byte

(ii) TFileSectionRec SizeOf(TFileSectionRec)=13

(16) Performance Criteria: (Performance Criteria tab)


(i)loop over all the defined point loads
SPF_MainCri_ver2_Rec = record SizeOf(SPF_MainCri_ver2_Rec)=673+NoELm*64
nam: NameString;
des: DescriptionString;
Typ: integer;
val: real;
AllMaterials: boolean;
Mat: NameString;
NoElm: integer;
elm: array of NameString;
ResidualStrength: integer;
ntf: TPCriNotification;
CoreOnly: boolean;
EquationID: integer;
col: TColor;
vis: integer;
end;
 name & description of criterion, type of criterion (0..8: for a description refer
to the Type of Criterion drop-down menu in the Performance Criteria dialog box),
value of the criterion (where required), AllMaterials check for strain-based
performance criteria, name of material for strain-based performance criteria,
number and names (array 0..(NoElm-1))of the elements to be checked, residual
stength ratio, type of notification (i.e. action to be made upon achievement of
the strength), CoreOnly check for the concrete strain-based criteria, ID of the
equation to be used to check the capacity, colour and visual effects ID
 TPCriNotification = (PCriStop, PCriPause, PCriNotify, PCriNoAction) . Size=1 byte

(ii) TFileSectionRec SizeOf(TFileSectionRec)=13


20 SeismoStruct input file format * .SPF Seismosoft ltd.

(17) Stress-points: (Output tab)


(i)loop over all the defined stress-points
SPF_MainStrs_ver2_Rec = record SizeOf(SPF_MainStrsRec)=280
nam: NameString;
elm: NameString;
Sec: NameString;
Mat: NameString;
ConfID: integer;
gaus: integer;
coor: array [0..1] of real;
end;
 name of stress point, element, section name, material name, confinement region ID,
integration section and coordinates of the location of the stress point

(ii) TFileSectionRec SizeOf(TFileSectionRec)=13

(18) Groups: (Groups dialog box)


(i)loop over all the defined Groups
SPF_MainGrpRec = record SizeOf(SPF_MainGrpRec)=73+64* NoItm
nam: NameString;
Typ: TGrpItemsState;
NoItm: integer;
itm: array of NameString;
col: TColor;
end;
 group name and type (nodes or elements), number of nodes/elements, array of names
of nodes/elements (0..(NoItm-1)), and colour
 TGrpItemsState = (nonList, GrpOfNodes, GrpOfElements);

(b) TFileSectionRec SizeOf(TFileSectionRec)=13

(19) RSA combinations: (Response Spectrum Analysis tab)


(i)loop over all the defined RSA combinations
SPF_MainRSA_ver18_Rec = record SizeOf(SPF_MainRSA_ver18_Rec)=133
nam: NameString;
spf: array[0..2] of real;
lcfTyp: integer;
lcf: array[0..3] of real;
mcm: TModalCombination;
emm: real;
end;
 combination name, spectrum factors, load case combination type, load case factors,
moda combination method, min. cumulative effective modal mass
 TModalCombination = (MC_ABSSUM, MC_SRSS, MC_CQC). Size = 1byte

(ii) TFileSectionRec SizeOf(TFileSectionRec)=13


21 SeismoStruct input file format * .SPF Seismosoft ltd.

(20) Program Settings: (Program Settings dialog box)


(i) the record includes the Program Settings
TProgramSettings = record SizeOf(TProgramSettings_ver18)=599
//------ general ------
BinaryOutput,TextOutput,MultipleTextOutput,IssueWarnings: boolean;
KeepSettings,HotTrack,ApplyStressRecovery: boolean;
//------------------------------------------------------------------
//------ elements ------
A9tolerance,A10tolerance: real;
maxA9Iter,maxA9Level,maxA10Iter,maxA10Level: integer;
A9SubDivide_fbd_ite,A10SubDivide_fbd_ite,ShowPCriInEdges: boolean;
//------------------------------------------------------------------
// ------ Wizard ------
ElemProportion4,ElemProportion51,ElemProportion52: integer;
//------------------------------------------------------------------
// integration.scheme
InteScheme: integer;
MainAlpha,MainBeta,MainGamma: real;
//------------------------------------------------------------------
// ------ iterative.strategy options ------
NoIter,MinIter,NoInitReform,DivIter: integer;
MultIncrease1,MultIncrease2,MultIncrease3: real;
MultDecrease1,MultDecrease2,MultDecrease3: real;
MaxReduction,MaxConv: real;
//------------------------------------------------------------------
// ------ convergence.criteria options ------
TypeOfCnvCriteria: integer;
Ref_toleranceFrc,Ref_toleranceMnt,DispRef,RotaRef: real;
// ------ eigenvalue options ------
EigenSolver,NoEigen,NoEigenX,NoEigenY,NoEigenZ,EigenSteps: integer;
// ------ cracked stiffness ------
Eigen_CrackedSecs: boolean;
Eigen_TypeOfCrackedSecs: integer;
Eigen_ColCrackedSecs,Eigen_BeamCrackedSecs, Eigen_WallCrackedSecs: real;
Eigen_ElfrmCrackedSecs,Eigen_TrussCrackedSecs,Eigen_InfillCrackedSecs: real;
//------------------------------------------------------------------
// ------ Response Spectrum analysis ------
RSADamping,MinEffModalMass: real;
RSADirX,RSADirY,RSADirZ: boolean;
//------------------------------------------------------------------
// ------ damping ------
DampScheme,STFDampScheme: integer;
RayleighPer1,RayleighPer2,RayleighDmp1,RayleighDmp2: real;
ParmMAS,ParmSTF: real;
//------------------------------------------------------------------
// ------ gravity & mass ------
GValue: real;
GravityDir: TTransDirection;
DefineMassFrom,DefineLoadsFrom: integer;
GravityXcoeff,GravityYcoeff,GravityZcoeff: real;
SecondOrderEffects,ElasticAnalysis: boolean;
MassXdir,MassYdir,MassZdir: boolean;
MassRXdir,MassRYdir,MassRZdir: boolean;
//------------------------------------------------------------------
// ------ constraints ------
ConstraintsType,PenaltyExp,PenaltyExpDiaphragm: integer;
//------------------------------------------------------------------
// ------ solver ------
SolverType,CGexp: integer;
22 SeismoStruct input file format * .SPF Seismosoft ltd.

//------------------------------------------------------------------
// ------ adaptive pushover parameters ------
AdaptType: integer;
SettingsLoadingType,SettingsIncrPercent: integer;
SettingsCombinationType,SettingsAdaptiveFreq: integer;
SettingsAdaptCQCdamp,SettingsAdaptCQClamda: real;
SettingsSingleMode,SettingsSingleModeDir: integer;
AdaptDir: array[0..5] of boolean;
//------------------------------------------------------------------
IntSlot1,IntSlot2,IntSlot3,IntSlot4,IntSlot5: integer;
IntSlot6,IntSlot7,IntSlot8,IntSlot9,IntSlot10: integer;
RealSlot1,RealSlot2,RealSlot3,RealSlot4,RealSlot5: real;
RealSlot6,RealSlot7,RealSlot8,RealSlot9,RealSlot10: real;
BoolSlot1,BoolSlot2,BoolSlot3,BoolSlot4,BoolSlot5: boolean;
BoolSlot6,BoolSlot7,BoolSlot8,BoolSlot9,BoolSlot10: boolean;
end;
 The properies variables are arranged per tab (general, elements, wizard etc.) and
their names are self-exlpanatory
 At the end of the record 10 integer, real and boolean variables are reserved for
forward compatibility

(ii) TFileSectionRec SizeOf(TFileSectionRec)=13


23 SeismoStruct input file format * .SPF Seismosoft ltd.

(21) Code Requirements:


(Target Displacement tab and Safety Factors & Knowledge Level dialog boxes, accessed from the Code-based Checks
tab)
(i) the record includes the Structural Code Settings
TCodeRequirements_ver18 = record SizeOf(TCodeRequirements_ver18)=967
//------- GENERAL SETTINGS & LIMIT STATES -------
StructuralCode: TStructuralCode;

LimitStateOL: boolean;
LimitStateDL: boolean;
LimitStateSD: boolean;
LimitStateNC: boolean;

KnowledgeLevel: integer;
ConfidenceFactor: real;
CFCustomValue: boolean;
Material_Properties_From_Default_Values_USA:boolean;

//------- SPECTRA SETTINGS -------


SA_10prct_EC8: real; //employed in EC8, NTC08 & KANEPE
SAS_50prct_USA, SAL_50prct_USA: real; // employed in ASCE41-13 & TBDY
SAS_20prct_USA, SAL_20prct_USA: real;
SAS_05prct_USA, SAL_05prct_USA: real;
SAS_02prct_USA, SAL_02prct_USA: real;
SA_81prct_ITA: real; // employed in NTC-2008 for TR=30
SA_63prct_ITA: real; // employed in NTC-2008 for TR=50
SA_10prct_ITA: real; // employed in NTC-2008 for TR=475
SA_05prct_ITA: real; // employed in NTC-2008 for TR=975
SA_10prct_GRE: real; //employed in KANEPE
SAS_68prct_TUR, SAL_68prct_TUR: real; // employed in TBDY
SAS_50prct_TUR, SAL_50prct_TUR: real;
SAS_10prct_TUR, SAL_10prct_TUR: real;
SAS_02prct_TUR, SAL_02prct_TUR: real;
DampingIndex: integer;
DampingValue: real;
SpectrumType: TSpectrumType;
SoilClass: TSoilClass;
ImportanceClass: TImportanceClass;
TopographicCategory: TTopographicCategory;
//------- LOADING COMBINATION SETTINGS -------
GravityLoadsCoefficient: real;
LiveLoadsCoefficient: real;
SnowLoadsCoefficient: real;
OccupancyPurposeID: integer; //for TBDY

//------- CODE SPECIFIC SETTINGS -------


IndicateCoordinates_ITA, SelectLocation_ITA: boolean;
Long_ITA, Lati_ITA: real;
LocationID_ITA: integer;
LifeTime_ITA: real;
ImportanceClass_ITA: integer;
Fo_ITA: array [0 .. 3] of real;
Tc_star_ITA: array [0 .. 3] of real;
TransTL_USA: real;
PerfObjectives_USA: array [0 .. 3, 0 .. 3] of boolean;
PerfObjectives_GRE: array [0 .. 2, 0 .. 1] of boolean;
PerfObjectives_TUR: array [0 .. 3, 0 .. 3] of boolean;

NoMaterialSets: integer;
24 SeismoStruct input file format * .SPF Seismosoft ltd.

//------- TARGET DISPLACEMENT SETTINGS -------


TargetDspMethod: TTargetDspMethod;
CalcTD: boolean;
ControlNode: NameString;
ControlDir: integer;
IsShearBuilding_USA_GRE: boolean;
StructuralType1_GRE: boolean;
LoadPatternUni_USA: boolean;

// EuroCodes safety factors


EC8_gamma_el_shear_P, EC8_gamma_el_shear_S: real;
EC8_gamma_el_theta_tot_rect_P, EC8_gamma_el_theta_tot_rect_S: real;
EC8_gamma_el_theta_pl_rect_P, EC8_gamma_el_theta_pl_rect_S: real;
EC8_gamma_el_theta_tot_circ_P, EC8_gamma_el_theta_tot_circ_S: real;
EC8_gamma_c, EC8_gamma_s, EC8_gamma_fd: real;
NewBooleanSlot1: boolean; //EC8_designVals_for_fd: boolean;
EC8_jnt_gamma_RD: real;
EC8_UseA3Expressions, EC8_UseA10aExpressions: boolean;
// Italian Code safety factors
ITA_gamma_el_theta_tot_rect_P, ITA_gamma_el_theta_tot_rect_S: real;
ITA_gamma_el_theta_tot_circ_P, ITA_gamma_el_theta_tot_circ_S: real;
ITA_gamma_c, ITA_gamma_s, ITA_acc, ITA_gamma_fd, ITA_gamma_m: real;
NewBooleanSlot2: boolean; //ITA_designVals_for_fd: boolean;
ITA_jnt_gamma_RD: real;
// Greek Code safety factors
GRE_gamma_c_Brittle_KL1, GRE_gamma_s_Brittle_KL1: real;
GRE_gamma_c_Brittle_KL2, GRE_gamma_s_Brittle_KL2: real;
GRE_gamma_c_Brittle_KL3, GRE_gamma_s_Brittle_KL3: real;
GRE_coeff_StandardAccess_Brittle, GRE_coeff_ReducedAccess_Brittle: real;
GRE_gamma_m_Ductile_KL1, GRE_gamma_m_Ductile_KL2, GRE_gamma_m_Ductile_KL3: real;
GRE_coeff_StandardAccess_Ductile, GRE_coeff_ReducedAccess_Ductile: real;
GRE_Gamma_Rd: real;
GRE_Gamma_Sd_DMG1, GRE_Gamma_Sd_DMG2, GRE_Gamma_Sd_DMG3: real;
GRE_UseA3Expressions: boolean;
GRE_gamma_fd: real;
// Various variables – empty slots for future use
NewBooleanSlot3: boolean;
NoOfStoreys: integer;//used for the target displacement calculation ,GRE & USA
IntSlot2,IntSlot3,IntSlot4,IntSlot5,IntSlot6: integer;
IntSlot7,IntSlot8,IntSlot9: integer;
RealSlot1,RealSlot2,RealSlot3,RealSlot4,RealSlot5: real;
RealSlot6,RealSlot7,RealSlot8,RealSlot9: real;
BoolSlot1,BoolSlot2,BoolSlot3,BoolSlot4,BoolSlot5: boolean;
BoolSlot6,BoolSlot7,BoolSlot8,BoolSlot9: boolean;
NameSlot1: NameString;
end;

 The names of the properies variables are self-exlpanatory, the suffices _EC8,
_USA, _ITA, _GRE & _TUR refer to the European, US, Italian, Greek and Turkish
Codes respectively
 At the end of the record 9 integer, 10 real and 10 boolean variables are reserved
for forward compatibility. The 10th integer slot has already been used
 NewBooleanSlot1, NewBooleanSlot2 & NewBooleanSlot3: are 3 old boolean variables
that are not needed anymore, the slot is kept for future use
 TStructuralCode = (EC8, ASCE41_13, NTC08, KANEPE, TBDY, NTC18, noStructuralCode);
 TTargetDspMethod = (EC8_TD, ASCE41_13_TD, NTC08_TD, NTC18_TD, KANEPE_TD, TBDY_TD,
CSM_TD, ACSM_TD, DCM_TD, N2_TD);
 TSoilClass = (A_Soil, B_Soil, C_Soil, D_Soil, E_Soil);
25 SeismoStruct input file format * .SPF Seismosoft ltd.

 TImportanceClass = (Importance_I, Importance_II, Importance_III, Importance_IV);


 TTopographicCategory = (Topography_T1, Topography_T2, Topography_T3,
Topography_T4);

(ii) TFileSectionRec SizeOf(TFileSectionRec)=13


26 SeismoStruct input file format * .SPF Seismosoft ltd.

(22) Spectrum Value and Settings: (Adaptive Pushover and RSA tabs)
(i) read a record that includes the Spectrum Settings
TSpectrumSettings = record SizeOf(TSpectrumSettings)=542
LoadSpectrumType : integer;
sprTimeCol,sprAccCol,sprFirstline,sprLastline: integer;
SprAccRows: integer;
SprFile : PathString;
sprDamp: real;
end;
 Spectrum type (0: spectrum not defined, 1: from given accelerogram, 2: user
defined spectrum), time & acceleration columns in the time-history file, first and
last line considered, total record rows, path of the acceleration file, damping
value.
 After the spectrum settings one time-acceleration time-history record and two
spectal shapes are stored.
 The record stores the time-history values (time&Accelearion) that were used for
the calculation of the specrum, when the From a Given Acceleragram setting has
been selected
 Regarding the two spectral shapes: (i) the first keeps the spectral shapes that
has been calculated using an acceleration time-history record above (ii) the
second is the user-defined spectrum. Both shapes are kept

(ii) read the stored time & acceleration values of the loaded accelerogram
TSpectrumValues = record SizeOf(TSpectrumValues)=8+2*SprRows*8
SprRows_: integer;
TimeSpr_,AccSpr_: array of real;
end;
 stores time & acceleration values of the accelerogram that is used for the
calculation of the defined spectrum

(iii) read the stored period & spectral acceleration of spectrum 1


TSpectrumValues = record SizeOf(TSpectrumValues)=8+2*SprRows*8
SprRows_: integer;
TimeSpr_,AccSpr_: array of real;
end;
 stores period & spectral acceleration values of spectrum 2

(iv) read the stored period & spectral acceleration of spectrum 2


TSpectrumValues = record SizeOf(TSpectrumValues)=8+2*SprRows*8
SprRows_: integer;
TimeSpr_,AccSpr_: array of real;
end;
 stores period & spectral acceleration values of spectrum 2

(v) TFileSectionRec SizeOf(TFileSectionRec)=13


27 SeismoStruct input file format * .SPF Seismosoft ltd.

(23) IDA Settings: (IDA tab)


(i) read a record that includes the IDA Settings
TIDASettings = record SizeOf(TIDASettings)=170+ NoIDAdistinctVal*8
IDAstartEnd,IDAdistinct: boolean;
IDAstartSF,IDAendSF,IDAstepSF,IDAtimeTol: real;
NoIDAdistinctVal: integer;
IDAdistinctVal: array of real;
IDANode1,IDANode2: NameString;
IDAdir: integer;
end;
 IDAstartEnd,IDAdistinct: determine if the Start-End-Step and/or Distinct Scaling
Factors options have been selected
 The other variables can be easily understood from the IDA tab

(ii) TFileSectionRec SizeOf(TFileSectionRec)=13

(24) Output Settings: (Output tab)


(i) read a record that includes the Output Settings
OtptSettingsRec = record SizeOf(OtptSettingsRec)=153

OtptFrequency: integer;
PostMultiplier,PostMultiplierEig: real;
PlotNode1,PlotNode2: NameString;
PlotDir: integer;
OtptRelDispl: boolean;
end;
 The first variables contain settings for the output frequency and the real-time
plotting.
 The other settings contain the names of the lists of nodes, elements and groups of
nodes & elements, and boolean variables that determine if output data are to be
output for these nodes/elements in the results *.srf file
 No TFileSectionRec is stored at the end of the file

Vous aimerez peut-être aussi