CreateBridgeModel1 - Copy
CreateBridgeModel1 - Copy
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Runtime.Remoting.Metadata.W3cXsd2001;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace BridgeModelerCSharpExample
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
bool AttachToInstance;
AttachToInstance = false;
bool SpecifyPath;
SpecifyPath = false;
string ProgramPath;
if (AttachToInstance)
{
try
{
mySAPObject =
myHelper.GetObject("CSI.CSiBridge.API.SapObject");
}
catch (Exception ex)
{
MessageBox.Show("No running instance of the program found or
failed to attach.");
return;
}
}
else
{
if (SpecifyPath)
{
try
{
mySAPObject = myHelper.CreateObject(ProgramPath);
}
catch (Exception ex)
{
MessageBox.Show("Cannot start a new instance of the program
from " + ProgramPath);
return;
}
}
else
{
try
{
mySAPObject =
myHelper.CreateObjectProgID("CSI.CSiBridge.API.SapObject");
}
catch (Exception ex)
{
MessageBox.Show("Cannot start a new instance of the
program.");
return;
}
}
ret = mySAPObject.ApplicationStart();
}
ret = mySapModel.InitializeNewModel(eUnits.kip_in_F);
double StartStation = 0;
string InitialBearing = "Default";
double Grade = 0;
string Skew = "Default";
double Radius = 3000;
double SuperElevation = 0;
double[] SpanLength = new double[] { 600, 750, 750, 600 }; // four
spans, length of each span in inches
int SectionType = 3;
ret = MyBridgeModeler.NewBridgeModel(StartStation, InitialBearing,
Grade, Skew, Radius, SuperElevation, ref SpanLength, SectionType);
//
// Modify bridge object to use new bent
//
int NumberNamesBridgeObj = -1;
string[] MyNameBridgeObj = null;
ret = MyBridgeModeler.BridgeObject.GetNameList(ref
NumberNamesBridgeObj, ref MyNameBridgeObj);
ret =
MyBridgeModeler.BridgeObject.BentAssign.SetBentAssignment(myBridgeObjName,
mySpanName, NewBent, "Default");
//
// Modify deck section
//
int NumberNamesDeckSect = -1;
string[] MyNameDeckSect = null;
int[] BridgeSectionType = null;
ret = MyBridgeModeler.DeckSection.GetNameList(ref NumberNamesDeckSect,
ref MyNameDeckSect, ref BridgeSectionType);
//modify overhang
double OverhangLength = -1;
double DistanceToFillet = -1;
double OuterThickness = -1;
ret =
MyBridgeModeler.DeckSection.PrecastConcreteIGirder.GetRightOverhangDimensions(myDec
kSectionName, ref OverhangLength, ref DistanceToFillet, ref OuterThickness);
double NewOverhangLength = OverhangLength + 24;
double NewDistanceToFillet = DistanceToFillet + 12;
ret =
MyBridgeModeler.DeckSection.PrecastConcreteIGirder.SetRightOverhangDimensions(myDec
kSectionName, NewOverhangLength, NewDistanceToFillet, OuterThickness);
//
// Update bridge
//
int Action = 4; // Clear and Create Linked Model
ret =
MyBridgeModeler.BridgeObject.UpdateWithSameParameters(myBridgeObjName, Action);
//save model
ret = mySapModel.File.Save(ModelPath);
ret = mySapModel.Results.Setup.DeselectAllCasesAndCombosForOutput();
ret = mySapModel.Results.Setup.SetCaseSelectedForOutput("DEAD");
//close program
mySAPObject.ApplicationExit(false);
//clean up variables
mySapModel = null;
mySAPObject = null;
}
}
}