RAM DataAccess: user specified sizes for lateral beams and columns?

Hi:

I have an application which creates RAM models using the DataAccess COM API.  I would like to manually specify column and beam sizes of lateral members and have the user specified values remain after beam and column analysis.

For beams, manually setting the size in RAM modeler results in the expected/desired behavior.  However, setting the strSectionID property on layoutbeams seems to not be quite equivalent -- when I do this, my assigned sizes are visible in RAM modeler, but the model does not seem to see my set sizes as "user specified" (e.g. they won't show up under "show options -> user specified") and the set sizes are then overwritten by beam design.  Is there some additional setting I need to make via the DataAcesss API to have my set sizes behave the same as those done manually in RAM modeler?

I also have the same issue for lateral system columns in my application.

Thanks much!

   --FritzM.

  • Use the IBeam and IColumn interfaces.  Floor types can be referenced on multiple stories.  Although gravity beam sizes will be the same on each story, lateral beam and column sizes can vary.  Hence, you need to use the individual member interfaces rather than the layout interfaces.  In general, when creating a model from scratch you will want to add all of the information for the floors and then set the story specific information.



    Answer Verified By: Fritz Mueller 

  • Hi Eric,

    Sorry for re-opening this thread, but I've been encountering the same problem as Fritz. I'm trying to add concrete beams via IBeamLayout, then assigning them a concrete property via the IBeam Interface as you suggested. See below:

    //Add Concrete Section Props
    var concSects = ram.GetConcreteSectionProps();
    var beamSect = concSects.AddRect("DummyBeam", EUniqueMemberTypeID.eTypeBeam, UnitConverter.MetersToInches(0.6, 6),
    UnitConverter.MetersToInches(0.3, 6));

    //Add beam
    var layoutBeam = layoutBeams.Add(EMATERIALTYPES.EConcreteMat,
    UnitConverter.MetersToInches(x1, 6),
    UnitConverter.MetersToInches(y1, 6), 0.0,
    UnitConverter.MetersToInches(x2, 6), UnitConverter.MetersToInches(y2, 6), 0.0);

    layoutBeam.eFramingType = EFRAMETYPE.MemberIsLateral;

    //Assign section
    var beams = story.GetBeams();

    for (var beamCount = 0; beamCount < beams.GetCount(); beamCount++)
    {
    var beam = beams.GetAt(beamCount);
    beam.strSectionLabel = beamSect.strLabel;
    beam.lSectionID = beamSect.lUID;
    }

    when I open the model, and turn on the show sizes, the correct section label show up. However, the user sized member is not drawn to scale. If I then go to the Ram Frame module, and run the model, I get that the frame beams have no section assigned to them.