# Data Classes
Model is the main class that associates with Gsa model file. Data and results can be extracted from an opened model.
# Model
# Model handling related functions:
Parameters: filename -- full path including folders
Model();
Model(string fileName);
Model Clone(Model source);
ReturnValue Open(string fileName);
ReturnValue Close();
ReturnValue Save();
ReturnValue SaveAs(string fileName);
# Analysis and Results related functions:
Parameters: analysisTaskID -- Analysis Task number; analysisCaseID -- Analysis Case number. Analysis case name is like "Analysis Case 1" and description is like "L1 + L2".
Note: Add or Delete analysis case functions are supported on analysis tasks with solution type Static, Static P-Delta, Static NL.
ReadOnlyDictionary<int, AnalysisCaseResult> Results();
bool Analyse(int analysisTaskID);
bool DeleteResults (int analysisTaskID);
ReadOnlyDictionary<int, AnalysisTask> AnalysisTasks();
string AnalysisCaseDescription(int analysisCaseID);
string AnalysisCaseName(int analysisCaseID);
ReturnValue AddAnalysisCaseToTask(int analysisTaskID,string name,string description);
ReturnValue DeleteAnalysisCaseFromTask(int analysisTaskID,int analyisCaseID);
bool SetAnalysisCaseDescription(int analysisCaseID,string description);
int AddAnalysisTask(); //Note: Added task type is Linear Static
int AddCombinationCase(string name, string description);
# Axes related functions:
Parameters: axisID is Axis reference number
ReadOnlyDictionary<int, Axis> Axes();
int AddAxis(Axis axis);
void AddAxes(ReadOnlyCollection<Axis> axes);
void DeleteAxes(ReadOnlyCollection<int> axisIDs);
void DeleteAxes(int axisID, int numberOfAxes);
void DeleteAxis(int axisID);
# Beam loads related functions:
Parameters: beamLoadID is beam load reference number
ReadOnlyCollection<BeamLoad> BeamLoads();
int AddBeamLoad(BeamLoad beamLoad);
void AddBeamLoads(ReadOnlyCollection<BeamLoad> beamLoads);
void DeleteBeamLoad(int beamLoadID);
void DeleteBeamLoads(int beamLoadID, int numberOfBeamLoads);
void SetBeamLoad(int beamLoadID, BeamLoad beamLoad);
# Elements related functions:
Parameters: elementID is element reference number; elementsList is a string to specify the list of elements like "1 to 10", "PB1" or it can be a list name like "roof elements".
ReadOnlyDictionary<int, Element> Elements();
ReadOnlyDictionary<int, Element> Elements(string elementsList);
int AddElement(Element element);
void AddElements(ReadOnlyCollection<Element> elements);
void CreateElementsFromMembers();
void CollapseCoincidentNodes(double tolerance);
void DeleteElement(int elementID);
void DeleteElements(string elementsList);
void DeleteElements(ReadOnlyCollection<int> elementIDs);
void SetElement(int elementID, Element element);
void SetElements(ReadOnlyDictionary<int, Element> elements);
double ElementArea(int elementID);
ReadOnlyCollection<double> ElementDirectionCosine(int elementID);
double ElementLength(int elementID);
double ElementVolume(int elementID);
# Analysis Material related functions:
Parameters: analysisMaterialID is analysis material reference number
ReadOnlyCollection<AnalysisMaterial> AnalysisMaterials(); // Only elastic isotropic
int AddAnalysisMaterial(AnalysisMaterial material);
void DeleteAnalysisMaterial(int analysisMaterialID);
void SetAnalysisMaterial(int analysisMaterialID, AnalysisMaterial material);
# Face loads related functions:
Parameters: faceLoadID is face load reference number
ReadOnlyCollection<FaceLoad> FaceLoads();
int AddFaceLoad(FaceLoad faceLoad);
void AddFaceLoads(ReadOnlyCollection<FaceLoad> faceLoads);
void DeleteFaceLoad(int faceLoadID);
void DeleteFaceLoads(int faceLoadID, int numberOfFaceLoads);
void SetFaceLoad(int faceLoadID, FaceLoad faceLoad);
# Gravity loads related functions:
Parameters: gravityLoadID is gravity load reference number
ReadOnlyCollection<GravityLoad> GravityLoads();
int AddGravityLoad(GravityLoad gravityLoad);
void AddGravityLoads(ReadOnlyCollection<GravityLoad> gravityLoads);
void DeleteGravityLoad(int gravityLoadID);
void DeleteGravityLoads(int gravityLoadID, int numberOfGravityLoads);
void SetGravityLoad(int gravityLoadID, GravityLoad gravityLoad);
# Members related functions:
Parameters: memberID is member reference number; memebersList is a string to specify the list of members like "1 to 10" or it can be a list name like "Roof members".
ReadOnlyDictionary<int, Member> Members();
ReadOnlyDictionary<int, Member> Members(string membersList);
int AddMember(Member member);
void AddMembers(ReadOnlyCollection<Member> members);
void DeleteMember(int memberID);
void DeleteMembers(ReadOnlyCollection<int> memberIDs);
void DeleteMembers(string membersList);
void SetMember(int memberID, Member member);
void SetMembers(ReadOnlyDictionary<int, Member> members);
double MemberArea(int memberID);
ReadOnlyCollection<double> MemberDirectionCosine(int memberID);
double MemberLength(int memberID);
# Node loads related functions:
Parameters: nodeLoadID is node load reference number
ReadOnlyCollection<NodeLoad> NodeLoads(NodeLoadType type);
int AddNodeLoad(NodeLoadType type, NodeLoad nodeLoad);
void AddNodeLoads(NodeLoadType type, ReadOnlyCollection<NodeLoad> nodeLoads);
void DeleteNodeLoad(NodeLoadType type, int nodeLoadID);
void DeleteNodeLoads(NodeLoadType type, int nodeLoadID, int numberOfNodeLoads);
void SetNodeLoad(NodeLoadType type, int nodeLoadID, NodeLoad nodeLoad);
# Nodes related functions:
Parameters: nodeID is node reference number; nodesList is a string to specify the list of nodes like "100 to 201" or it can a list name like "roof nodes".
ReadOnlyDictionary<int, Node> Nodes();
ReadOnlyDictionary<int, Node> Nodes(string nodesList);
int AddNode(Node node);
void AddNodes(ReadOnlyCollection<Node> nodes);
void DeleteNode(int nodeID);
void DeleteNodes(ReadOnlyCollection<int> nodeIDs);
void DeleteNodes(string nodesList);
void SetNode(int nodeID, Node node);
void SetNodes(ReadOnlyDictionary<int, Node> nodes);
# 2D property related functions:
Parameters: prop2DID is 2D property reference number
ReadOnlyDictionary<int, Prop2D> Prop2Ds();
int AddProp2D(Prop2D prop2D);
void AddProp2Ds(ReadOnlyCollection<Prop2D> prop2Ds);
void DeleteProp2D(int prop2DID);
void DeleteProp2Ds(int prop2DID, int numberOfProp2Ds);
void DeleteProp2Ds(ReadOnlyCollection<int> prop2DIDs);
void SetProp2D(int prop2DID, Prop2D prop2D);
void SetProp2Ds(ReadOnlyDictionary<int, Prop2D> prop2Ds);
# 3D property related functions:
Parameters: prop3DID is 3D property reference number
ReadOnlyDictionary<int, Prop3D> Prop3Ds();
int AddProp3D(Prop3D prop3D);
void AddProp3Ds(ReadOnlyCollection<Prop3D> prop3Ds);
void DeleteProp3D(int prop3DID);
void DeleteProp3Ds(int prop3DID, int numberOfProp3Ds);
void DeleteProp3Ds(ReadOnlyCollection<int> prop3DIDs);
void SetProp3D(int prop3DID, Prop3D prop3D);
void SetProp3Ds(ReadOnlyDictionary<int, Prop3D> prop3Ds);
# Sections related functions:
Parameters: sectionID is section reference number
ReadOnlyDictionary<int, Section> Sections();
int AddSection(Section section);
void AddSections(ReadOnlyCollection<Section> sections);
void DeleteSection(int sectionID);
void DeleteSections(int sectionID, int numberOfSections);
void DeleteSections(ReadOnlyCollection<int> sectionIDs);
void SetSection(int sectionID, Section section);
void SetSections(ReadOnlyDictionary<int, Section> sections);
# Sections modifier related functions:
Parameters: sectionModifierID is the reference number corresponding to the modified section
ReadOnlyDictionary<int, SectionModifier> SectionModifiers();
int AddSectionModifier(SectionModifier sectionModifier);
void AddSectionModifiers(ReadOnlyCollection<SectionModifier> sectionModifiers);
void DeleteSectionModifier(int sectionModifierID);
void DeleteSectionModifiers(int sectionModifierID, int numberOfSectionModifiers);
void DeleteSectionModifiers(ReadOnlyCollection<int> sectionModifierIDs);
void SetSectionModifier(int sectionModifierID, SectionModifier sectionModifier);
void SetSectionModifiers(
ReadOnlyDictionary<int, SectionModifier> sectionModifiers);
# List related functions:
ReadOnlyDictionary<int, EntityList> Lists();
ReadOnlyDictionary<int, EntityList> Lists(string listDescription);
int AddList(EntityList list);
void AddLists(ReadOnlyCollection
lists); void DeleteList(int listId);
void DeleteLists(ReadOnlyCollection<string> list);
void DeleteLists(ReadOnlyCollection<int> listIds);
void SetList(listId, EntityList list);
void SetLists(ReadOnlyDictionary<int, EntityList> lists);
ReadOnlyDictionary<int> ExpandList(EntityList list);
ReadOnlyDictionary<int> ExpandList(EntityList list, int highestEntityId);
# Titles related functions:
Titles Titles();
# AnalysisMaterial
# Properties
double CoefficientOfThermalExpansion { get; set; }
double Density { get; set; }
double PoissonsRatio { get; set; }
double ShearModulus { get; set; }
double ElasticModulus { get; set; }
# AnalysisTask
# Properties
int Type { get; set; }
ReadOnlyCollection<int> Cases { get; }
ReadOnlyCollection<int> TaskDependencies { get; }
string Name { get; set; }
# Axis
# Properties
AxisType Type { get; set;}
string Name { get; set;}
Vector3 Origin { get; set;}
Vector3 XVector { get; set;}
Vector3 XYPlane { get; set;}
# Functions
string TypeAsString();
# BeamLoad
# Properties
BeamLoadType Type { get; set; }
bool IsProjected { get; set; }
Direction Direction { get; set; }
int AxisProperty { get; set; }
int Case { get; set; }
string Elements { get; set; }
string Name { get; set; }
# Functions
Parameter: position is 0 based index.
position = O represents Position 1
position = 1 represents Position 2
double Position(int position);
double Value(int position);
void SetPosition(int position, double value);
void SetValue(int position, double value);
string DirectionAsString();
string TypeAsString();
# Positions and values
Position 1
This is only relevant for point loads and patch loads. For a point load this is the location of the load measured from end 1 of the beam; for a patch load it is the start of the patch load measured from end 1 of the beam Position 1 can be specified as a length or as a percentage of the length of the element, e.g. either 1.2 or 15%. As the variable is double, %values to be entered as negative values i.e. equivalent to 15% is -0.15
Value 1
Load magnitude. For a point load this is the load value; for a uniform load this is the load intensity; for a linear load this is the load intensity at end 1; for a patch load this is the load intensity at Position 1.
Position 2
This is only relevant for patch loads and is the end of the patch load measured from end 1 of the beam. Position 2 can be specified as a length or as a percentage of the length of the element, e.g. either 2.4 or 85%. As the variable is double, %values to be entered as negative values i.e. equivalent to 85% is -0.85
Value 2
Load magnitude. For a linear load this is the load intensity at end 2 and for a patch load this is the load intensity at Position 2.
# Element
# Properties
bool IsDummy { get; set; }
double OrientationAngle { get; set; }
ElementType Type { get; set; }
int Group { get; set; }
int OrientationNode { get; set; }
int Property { get; set; }
Offset Offset { get; set; }
ReadOnlyCollection<int> Topology { get; set; }
string Name { get; set; }
ValueType Colour { get; set; }
# Functions
EndRelease GetEndRelease(int iTopology);
Bool6 Release(int iTopology);
void SetEndRelease(int iTopology, EndRelease endRelease);
void SetRelease(int iTopology, Bool6 release);
string TypeAsString();
# EntityList
# Properties
string Name { get; set; }
string Definition { get; set; }
EntityType Type { get; set; }
# FaceLoad
# Properties
bool IsProjected { get; set; }
Direction Direction { get; set; }
FaceLoadType Type { get; set; }
int AxisProperty { get; set; }
int Case { get; set; }
string Elements { get; set; }
string Name { get; set; }
Vector2 Position { get; set; }
# Functions
double Value(int position);
void SetValue(int position, double value);
string TypeAsString();
# Variable -- position
Position (int) - varies from 1 to 4, value is the pressure corresponding to the position.
Position (vector2) - Position of load is applicable for point load type. The position of the point load to be specified in ( r , s ) coordinates based on two-dimensional shape function. Coordinates vary from −1 to 1 for Quad4 and Quad8 and vary from 0 to 1 for Triangle3 and Triangle6.
# GravityLoad
# Properties
int Case { get; set; }
string Elements { get; set; }
string Name { get; set; }
Vector3 Factor { get; set; }
# Member
# Properties
AnalysisOrder Type2D { get; set; }
bool IsDummy { get; set; }
double MeshSize { get; set; }
double OrientationAngle { get; set; }
ElementType Type1D { get; set; }
int Group { get; set; }
int MemberEnd1 { get; set; }
int MemberEnd2 { get; set; }
int OrientationNode { get; set; }
int Property { get; set; }
MemberType Type { get; set; }
Offset Offset { get; set; }
AutomaticOffset AutomaticOffset { get; set; }
string Name { get; set; }
string Topology { get; set; }
ValueType Colour { get; set; }
bool IsIntersector { get; set; }
Nullable<double> EquivalentUniformMomentFactor { get; set; }
Nullable<double> MomentAmplificationFactorStrongAxis { get; set; }
Nullable<double> MomentAmplificationFactorWeakAxis { get; set; }
# Functions
EndRelease GetEndRelease(int iTopology);
void SetEndRelease(int iTopology, EndRelease endRelease);
string Type1DAsString();
string Type2DAsString();
string TypeAsString();
# NodeLoad
# Properties
Direction Direction { get; set; }
double Value { get; set; }
int AxisProperty { get; set; }
int Case { get; set; }
string Name { get; set; }
string Nodes { get; set; }
# Node
# Properties
Bool6 Restraint { get; set; }
int AxisProperty { get; set; }
int DamperProperty { get; set; }
int MassProperty { get; set; }
int SpringProperty { get; set; }
string Name { get; set; }
ValueType Colour { get; set; }
Vector3 Position { get; set; }
# Prop2D
# Properties
double Thickness { get; set; }
int AxisProperty { get; set; }
int MaterialAnalysisProperty { get; set; }
int MaterialGradeProperty { get; set; }
MaterialType MaterialType { get; set; }
Property2D_Type Type { get; set; }
SupportType SupportType { get; set; }
int ReferenceEdge { get; set; }
string Name { get; set; }
ValueType Colour { get; set; }
# Functions
string MaterialTypeAsString();
string TypeAsString();
# Prop3D
# Properties
int AxisProperty { get; set; }
int MaterialAnalysisProperty { get; set; }
int MaterialGradeProperty { get; set; }
MaterialType MaterialType { get; set; }
string Name { get; set; }
ValueType Colour { get; set; }
# Functions
string MaterialTypeAsString();
# Section
# Properties
double Area { get; }
double Iyy { get; }
double Iyz { get; }
double Izz { get; }
double J { get; }
double Ky { get; }
double Kz { get; }
double SurfaceAreaPerLength { get; }
double VolumePerLength { get; }
int MaterialAnalysisProperty { get; set; }
int MaterialGradeProperty { get; set; }
int Pool { get; set; }
MaterialType MaterialType { get; set; }
string Name { get; set; }
string Profile { get; set; }
ValueType Colour { get; set; }
# Functions
string MaterialTypeAsString();
# SectionModifier
# Properties
double AdditionalMass { get; set; }
SectionModifierAttribute AreaModifier { get; set; }
SectionModifierAttribute I11Modifier { get; set; }
SectionModifierAttribute I22Modifier { get; set; }
bool IsBendingAxesPrincipal { get; set; }
bool IsReferencePointCentroid { get; set; }
SectionModifierAttribute JModifier { get; set; }
SectionModifierAttribute K11Modifier { get; set; }
SectionModifierAttribute K22Modifier { get; set; }
SectionModifierStressType StressOption { get; set; }
SectionModifierAttribute VolumeModifier { get; set; }
# Titles
# Properties
string Calculation { get; set; }
string Initials { get; set; }
string JobNumber { get; set; }
string Notes { get; set; }
string SubTitle { get; set; }
string Title { get; set; }