Model.absorbmember#

Model.absorbmember(collection, break_angle, create_legs, along_line=0, auto_detect_thin_solids=0, autoweld=0, create_member_sections=0, create_sketch=0, elemconfig='', elemdensity=0.0, elemsize=0.0, elemtype='', planelength=0.0, planewidth=0.0, prefix='', realize=0, sectiontype='none', useelemdensity=False, vertexangle=0.000000, numcontrollocs=0, intersectingentitytype='elems', topologycleanupfactor=0.000000)#

Absorbs selected entities (1D elements or lines) to create members and memberjoints (from connecting nodes or points). If 1D elements are absorbed and they have a beamsection assigned to them, a membersection containing the beamsection is created and assigned to the member. No cleaning operation is performed at the end of the absorption.

Parameters:
  • collection (Collection) – The collection containing the entities. Valid entity types are elements and lines.

  • break_angle (double) – The break angle limit (in degrees) to define if two continuous members may be merged into a single member.

  • create_legs (unsigned int) – The flag defining if legs should be created on memberjoints. Valid values are 0 and 1. If 1, the leg size is set to 10% of the member size.

  • along_line (unsigned int) – The flag to create control locations of member on the line selected. Valid values are 0 and 1.

  • auto_detect_thin_solids (unsigned int) – The flag to detect thin solids for the realized beam section of the member section. This flag works only if the intersectingentitytype="solids" (solids’ ID). Valid values are 0 and 1.

  • autoweld (unsigned int) – The flag to perform auto weld on the realized beam section of the member section. Valid values are 0 and 1.

  • create_member_sections (unsigned int) – The flag to create member sections on memberjoints and members created during the process. Valid values are 0 and 1.

  • create_sketch (unsigned int) – The flag to create sketch entity on beam section when member section is realized. Only supported for sectiontype="real". Valid values are 0 and 1.

  • elemconfig (hwString) – The element config of the 1D elements of member joint mesh (i.e., bar2, rod).

  • elemdensity (double) – The element density to be used for meshing the member joint leg.

  • elemsize (double) – The size of the 1D elements to be created during meshing if elemdensity is not specified.

  • elemtype (hwString) – The element type of the 1D element of member joint mesh (i.e., CBAR, CBEAM, CROD).

  • planelength (double) – The length of the member section plane.

  • planewidth (double) – The width of the member section plane.

  • prefix (hwString) – The prefix for the member name.

  • realize (unsigned int) – The flag to realize member joints, members and member sections created during the process. Valid values are 0 and 1.

  • sectiontype (hwString) –

    The section type string for beam section. Valid values are:

    real - Creates shell or solid beam sections.

    boundingbox - Creates a standard box type beam section equivalent to the bounding box of the real section.

  • useelemdensity (bool) – The flag determines if element density is to be used for meshing the member joint. Valid values are False or True.

  • vertexangle (double) – Section contour is smoothened if vertex angle between two lines is below this limit. Valid values are between 0 to 90.0.

  • numcontrollocs (unsigned int) – Reserved for future use.

  • intersectingentitytype (unsigned hwString) – Intersecting entity type ID to intersect the face of member sections. Valid values are elements, surfaces and solids.

  • topologycleanupfactor (double) – The topology cleanup factor to use.

Examples#

Absorbing displayed lines in the current model#
import hm
import hm.entities as ent

model = hm.Model()

# Create a collection of all displayed lines in the current model.
line_col = hm.CollectionByDisplayed(model, ent.Line)

model.absorbmember(collection=line_col, break_angle=True, create_legs=1)
Absorbing elements ID 1-100 with a name prefix top_#
import hm
import hm.entities as ent

model = hm.Model()

# Create a collection of elements with ID 1-100.
filter = hm.FilterByEnumeration(ent.Element, list(range(1, 101)))
elem_col = hm.Collection(model, filter)

model.absorbmember(collection=elem_col, break_angle=True, create_legs=1, prefix="top_")
Absorbing a collection of line with ID 3 to create sections#
import hm
import hm.entities as ent

model = hm.Model()

model.absorbmember(
    collection=hm.Collection(model, ent.Line, [3]),
    create_legs=0,
    create_member_sections=1,
    numcontrollocs=3,
    realize=1,
    autoweld=1,
    auto_detect_thin_solids=1,
    create_sketch=0,
    along_line=1,
    intersectingentitytype="elems",
    planelength=300,
    planewidth=300,
    vertexangle=60,
    break_angle=1,
    elemconfig="bar2",
    elemtype="CBEAM",
    elemsize=40.0,
    sectiontype="real",
)