Edge load (API)

Edge load (API)

stathiseleftheriadis
Enthusiast Enthusiast
2,528 Views
18 Replies
Message 1 of 19

Edge load (API)

stathiseleftheriadis
Enthusiast
Enthusiast

Hi,

 

Is there a way to assign a linear load on a single edge (29_Edge(4) or a selection of slab edges with the API? 

 

Edge.jpg

Thanks

0 Likes
Accepted solutions (1)
2,529 Views
18 Replies
Replies (18)
Message 2 of 19

Romanich
Mentor
Mentor

As far as I know it is not possible to select a single edge like 29_Edge(4) via API.

Do you find the posts helpful? "LIKE" these posts!
Have your question been answered successfully? Click 'ACCEPT SOLUTION' button.

Roman Zhelezniak

Robot Evangelist & Passionate Civil Structural Engineer

LinkedIn | Robot & Хобот | App Store for Robot
EESignature


0 Likes
Message 3 of 19

stathiseleftheriadis
Enthusiast
Enthusiast

Thanks

 

Initially, I thought it can be done like this

 

SDL = (RobotSimpleCase)Robapp.Project.Structure.Cases.Get(10);
// int IL_B = CaseIL.Records.New(IRobotLoadRecordType.I_LRT_UNIFORM);
LoadRecord = (RobotLoadRecord)SDL.Records.Get(1);
LoadRecord.SetValue(System.Convert.ToInt16(IRobotLinearOnEdgesRecordValues.I_LOERV_PX), 0);
LoadRecord.SetValue(System.Convert.ToInt16(IRobotLinearOnEdgesRecordValues.I_LOERV_PY), 0);
LoadRecord.SetValue(System.Convert.ToInt16(IRobotLinearOnEdgesRecordValues.I_LOERV_PZ), -1500);
LoadRecord.Objects.Add(EdgeSelection);

But I'm struggling to get the selection of edges. 

 

I event tried 

 LoadRecord.Objects.AddText("29_(4)");

But it's not working

0 Likes
Message 4 of 19

Rafal.Gaweda
Autodesk Support
Autodesk Support

Hi @stathiseleftheriadis 

 

Roman is right. It is not implemented in API.



Rafal Gaweda
0 Likes
Message 5 of 19

stathiseleftheriadis
Enthusiast
Enthusiast

Thanks Rafal. 

 

So as an alternative I'm creating small edge panels around the slab with height similar to slab thickness and then I apply FE Uniform load to those (which can be done in API). Do you think that would yield similar results?

 

Capture.PNG

0 Likes
Message 6 of 19

Rafal.Gaweda
Autodesk Support
Autodesk Support
Accepted solution

Dear @stathiseleftheriadis

 

Exactly !

See example:

https://forums.autodesk.com/t5/robot-structural-analysis-forum/error-2110-problem-with-linear-loads/...

 

But you may encounter this:

Objects not assigned to record if macro used more than one time on opened Robot

 

 



Rafal Gaweda
Message 7 of 19

stathiseleftheriadis
Enthusiast
Enthusiast

Great. So far I haven't encountered any issues. I'm running it on a recursive algorithm in a case study with balcony loads. I run a test with more than 500 simulations and it was OK. 

 

My only concern was the edge stiffness benefit due to the thickness of the panel but I reckon it would be minimal. 

0 Likes
Message 8 of 19

Anonymous
Not applicable

Hi @stathiseleftheriadis and @Rafal.Gaweda,

 

Nice work around to solve the problem. I can create these edge panels along the boundary of the slab, but shouldn't I keep the thickness of these edge panels as less as possible ? Why did you take their thicknesses as equal to the thickness of the base slab?

0 Likes
Message 9 of 19

Anonymous
Not applicable

hi @stathiseleftheriadis and @Rafal.Gaweda, I am looking to apply my linear load on these edge panels. 

0 Likes
Message 10 of 19

Rafal.Gaweda
Autodesk Support
Autodesk Support

Hi @Anonymous

 

As @Romanich mentioned - fake bars there or add lines there and apply loads to them

 



Rafal Gaweda
0 Likes
Message 11 of 19

Anonymous
Not applicable

Hi @Rafal.Gaweda

 

str.Nodes.Create(1, 0, 0, BaseLevel + WallHeight);
str.Nodes.Create(2, 0, B, BaseLevel + WallHeight);
str.Nodes.Create(3, W, B, BaseLevel + WallHeight);
str.Nodes.Create(4, W, 0, BaseLevel + WallHeight);

str.Bars.Create(1, 1, 2);
str.Bars.Create(2, 2, 3);
str.Bars.Create(3, 3, 4);
str.Bars.Create(4, 4, 1);

 

/Apply dead load of roof slab

RobotSimpleCase deadweight_roof = str.Cases.CreateSimple(5, "Dead weight of roof", IRobotCaseNature.I_CN_PERMANENT, IRobotCaseAnalizeType.I_CAT_STATIC_LINEAR);
deadweight_roof.Records.New(IRobotLoadRecordType.I_LRT_UNIFORM);
IRobotLoadRecord2 LoadRec4 = deadweight_roof.Records.Get(1) as IRobotLoadRecord2;

LoadRec4.SetValue(2, -2000);
LoadRec4.SetValue(11, 1);
LoadRec4.Objects.FromText("1,2,3,4");

 

This doesn't throw an error. But it doesn't reflect the loading either. I am unable to figure out where I have gone wrong

0 Likes
Message 12 of 19

Rafal.Gaweda
Autodesk Support
Autodesk Support

Hi @Anonymous

 

Use :

LoadRec4.Objects.FromText("1 2 3 4");

instead of 

LoadRec4.Objects.FromText("1,2,3,4");


Rafal Gaweda
0 Likes
Message 13 of 19

Anonymous
Not applicable
It doesn't work 😞
0 Likes
Message 14 of 19

Anonymous
Not applicable

Is it because I haven't initialised the bars?

0 Likes
Message 15 of 19

Rafal.Gaweda
Autodesk Support
Autodesk Support

Hi @Anonymous

 

Try : 

RobotLoadRecord LoadRec4 =....

 



Rafal Gaweda
0 Likes
Message 16 of 19

Anonymous
Not applicable

Hi @Rafal.Gaweda,

 

Thank you for your reply. But it still doesn't work. 😞

0 Likes
Message 17 of 19

Anonymous
Not applicable

I found the bug. It should be I_LRT_BAR_UNIFORM  and not I_LRT_UNIFORM.

0 Likes
Message 18 of 19

Anonymous
Not applicable

Hi @Rafal.Gaweda and @Romanich,

 

How do I assign properties to the bars so that the overall effect on my calculations is minimum? (since the bars shouldn't technically be there in the first place). Any suggestions are welcome

0 Likes
Message 19 of 19

Anonymous
Not applicable

Hello,

 

I am facing the same problem. Can you please share me how you added the edge in your code .. 

0 Likes