Part#

Features in Abaqus/CAE include Parts, Datums, Partitions, and Assembly operations. Part commands create Feature objects on only the Part object. The commands that create Feature objects on only the rootAssembly object are described in Assembly commands. The commands that create Feature objects on both the Part and the rootAssembly objects are described in Feature commands.

Create parts#

class PartModel(name: str, description: str = '', stefanBoltzmann: float | None = None, absoluteZero: float | None = None, waveFormulation: SymbolicConstantType = 'NOT_SET', modelType: SymbolicConstantType = 'STANDARD_EXPLICIT', universalGas: float | None = None, copyConstraints: BooleanType = 1, copyConnectors: BooleanType = 1, copyInteractions: BooleanType = 1)[source]

Abaqus creates a Model object named Model-1 when a session is started.

Notes

This object can be accessed by:

mdb.models[name]

Methods

Part(name, dimensionality, type[, twist])

This method creates a Part object and places it in the parts repository.

class PartBase(name: str, dimensionality: SymbolicConstantType, type: SymbolicConstantType, twist: BooleanType = OFF)[source]
class PartBase(name: str, objectToCopy: str, scale: float = 1, mirrorPlane: SymbolicConstantType = NONE, compressFeatureList: BooleanType = OFF, separate: BooleanType = OFF)

The Part object defines the physical attributes of a structure. Parts are instanced into the assembly and positioned before an analysis.

Notes

This object can be accessed by:

import part
mdb.models[name].parts[name]
Attributes:
geometryValidity: Boolean

A Boolean specifying the validity of the geometry of the part. The value is computed, but it can be set to ON to perform feature and mesh operations on an invalid part. There is no guarantee that such operations will work if the part was originally invalid.

isOutOfDate: int

An Int specifying that feature parameters have been modified but that the part has not been regenerated. Possible values are 0 and 1.

timeStamp: float

A Float specifying when the part was last modified.

vertices: VertexArray

A VertexArray object specifying all the vertices in the part.

ignoredVertices: IgnoredVertexArray

An IgnoredVertexArray object specifying all the ignored vertices in the part.

edges: EdgeArray

An EdgeArray object specifying all the edges in the part.

ignoredEdges: IgnoredEdgeArray

An IgnoredEdgeArray object specifying all the ignored edges in the part.

faces: FaceArray

A FaceArray object specifying all the faces in the part.

cells: CellArray

A CellArray object specifying all the cells in the part.

features: dict[str, Feature]

A repository of Feature objects specifying all the features in the part.

featuresById: dict[str, Feature]

A repository of Feature objects specifying all Feature objects in the part. The Feature objects in the featuresById repository are the same as the Feature objects in the features’ repository. However, the key to the objects in the featuresById repository is an integer specifying the ID, whereas the key to the objects in the features’ repository is a string specifying the name. datums: list[Datum] A repository of Datum objects specifying all the datums in the part.

elements: MeshElementArray

A MeshElementArray object specifying all the elements in the part.

elemFaces: dict[str, MeshFace]

A repository of MeshFace objects specifying all the element faces in the part. For a given element and a given face index within that element, the corresponding MeshFace object can be retrieved from the repository by using the key calculated as (i*8 + j), where i and j are zero-based element and face indices, respectively.

elementFaces: MeshFaceArray

A MeshFaceArray object specifying all the unique element faces in the part.

nodes: MeshNodeArray

A MeshNodeArray object specifying all the nodes in the part.

retainedNodes: MeshNodeArray

A MeshNodeArray object specifying all the retained nodes in the substructure part.

sets: dict[str, Set]

A repository of Set objects specifying for more information, see Set.

allSets: dict[str, Set]

A repository of Set objects specifying the contents of the all :py:class:`~abaqus.Region.Set.Set`s repository is the same as the contents of the sets repository.

allInternalSets: dict[str, Set]

A repository of Set objects specifying picked regions.

surfaces: dict[str, Surface]

A repository of Surface objects specifying for more information, see Surface.

allSurfaces: dict[str, Surface]

A repository of Surface objects specifying the contents of the allSurfaces repository is the same as the contents of the surfaces repository.

allInternalSurfaces: dict[str, Surface]

A repository of Surface objects specifying picked regions.

skins: dict[str, Skin]

A repository of Skin objects specifying the skins created on the part.

stringers: dict[str, Stringer]

A repository of Stringer objects specifying the stringers created on the part.

referencePoints: ReferencePoints

A repository of ReferencePoint objects.

engineeringFeatures: EngineeringFeature

An EngineeringFeature object.

sectionAssignments: SectionAssignmentArray

A SectionAssignmentArray object.

materialOrientations: MaterialOrientationArray

A MaterialOrientationArray object.

compositeLayups: dict[str, CompositeLayup]

A repository of CompositeLayup objects.

elemEdges: dict[str, MeshEdge]

A repository of MeshEdge. MeshEdge` objects specifying all the element edges in the part. For a given element and a given edge index on a given face within that element, the corresponding MeshEdge. MeshEdge` object can be retrieved from the repository by using the key calculated as (i*32 + j*4 + k), where i, j, and k are zero-based element, face, and edge indices, respectively.

elementEdges: MeshEdgeArray

A MeshEdgeArray object specifying all the unique element edges in the part.

Methods

Part2DGeomFrom2DMesh(name, part, featureAngle)

This method creates a geometric Part object from the outline of an existing two-dimensional orphan mesh Part object and places it in the parts repository.

PartFromBooleanCut(name, instanceToBeCut, ...)

This method creates a Part in the parts repository after subtracting or cutting the geometries of a group of part instances from that of a base part instance.

PartFromBooleanMerge(name, instances[, ...])

This method creates a Part in the parts repository after merging two or more part instances.

PartFromExtrude2DMesh(name, part, depth, ...)

This method creates a Part object by extruding an existing two-dimensional orphan mesh Part object in the positive Z-direction and places it in the parts repository.

PartFromGeometryFile(name, geometryFile, ...)

This method creates a Part object and places it in the parts repository.

PartFromInstanceMesh(name[, partInstances, ...])

This method creates a Part object containing the mesh found in the supplied PartInstance objects and places the new Part object in the parts repository.

PartFromMesh(name[, copySets])

This method creates a Part object containing the mesh found in the part and places the new Part object in the parts repository.

PartFromMeshMirror(name, part, point1, point2)

This method creates a Part object by mirroring an existing orphan mesh Part object about a specified plane and places it in the parts repository.

PartFromNodesAndElements(name, ...[, twist])

This method creates a Part object from nodes and elements and places it in the parts repository.

PartFromOdb(name, odb[, fileName, instance, ...])

This method creates an orphan mesh Part object by reading an output database.

PartFromSection3DMeshByPlane(name, part, ...)

This method creates a Part object by cutting an existing three-dimensional orphan mesh Part object by a plane and places it in the parts repository.

PartFromSubstructure(name, substructureFile, ...)

This method creates a substructure Part object by reading a substructure sim file and places it in the parts repository.

Part2DGeomFrom2DMesh(name: str, part: PartBase, featureAngle: float, splineCurvatureLimit: float = 90, twist: BooleanType = 0)[source]

This method creates a geometric Part object from the outline of an existing two-dimensional orphan mesh Part object and places it in the parts repository. If the Part2DGeomFrom2DMesh method cannot create a valid two-dimensional shell section from the two-dimensional mesh, the method fails and creates an empty geometry part with a failed base shell feature.

Parameters:
name

A String specifying the repository key.

part

A Part object specifying an existing two-dimensional orphan mesh Part object.

featureAngle

A Float specifying the angle (in degrees) between line segments that triggers a break in the geometry.

splineCurvatureLimit

A Float specifying the traversal angle in degrees of the spline that triggers a break in the geometry. The default value is 90.

twist

A Boolean specifying whether to include a twist DEGREE OF FREEDOM in the part (only available when *dimensionality*=AXISYMMETRIC and *type*=DEFORMABLE_BODY). The default value is OFF.

Returns:
part: Part

A Part object If the specified part is not an orphan mesh part:

Specified part must be an orphan mesh.

If the Part2DGeomFrom2DMesh method cannot create a valid two-dimensional shell section from the two-dimensional mesh:

Planar shell feature failed

If the specified part is not two-dimensional:

Cannot create a geometry from a 3D part.

If the specified part is a rigid body:

Cannot create a geometry from a rigid body.

Notes

This function can be accessed by:

mdb.models[name].Part
PartFromBooleanCut(name: str, instanceToBeCut: str, cuttingInstances: tuple[abaqus.Part.PartBase.PartInstance])[source]

This method creates a Part in the parts repository after subtracting or cutting the geometries of a group of part instances from that of a base part instance.

Parameters:
name

A String specifying the repository key.

instanceToBeCut

A PartInstance specifying the base instance from which to cut other instances.

cuttingInstances

A sequence of PartInstance objects specifying the instances with which to cut the base instance.

Returns:
part: Part

A Part object

Notes

This function can be accessed by:

mdb.models[name].Part
PartFromBooleanMerge(name: str, instances: tuple[abaqus.Part.PartBase.PartInstance], keepIntersections: BooleanType = False, mergeNodes: SymbolicConstantType = 'BOUNDARY_ONLY', nodeMergingTolerance: float | None = None, removeDuplicateElements: BooleanType = 1, domain: SymbolicConstantType = 'GEOMETRY')[source]

This method creates a Part in the parts repository after merging two or more part instances. The part instances can be either Abaqus native parts or orphan mesh parts, but they cannot be a combination of both.

Parameters:
name

A String specifying the repository key.

instances

A sequence of PartInstance objects specifying the part instances to merge.

keepIntersections

A Boolean specifying whether the boundary intersections of Abaqus native part instances should be retained after the merge operation. The default value is False.

mergeNodes

A SymbolicConstant specifying whether the nodes of orphan mesh part instances should be retained after the merge operation. Possible values are BOUNDARY_ONLY, ALL, or NONE. The default value is BOUNDARY_ONLY.

nodeMergingTolerance

A Float specifying the maximum distance between nodes of orphan mesh part instances that will be merged and replaced with a single new node. The location of the new node is the average position of the deleted nodes. The default value is 10–6.

removeDuplicateElements

A Boolean specifying whether elements with the same connectivity after the merge will merged into a single element. The default value is ON.

domain

A SymbolicConstant specifying whether the part instances being merged are geometric instances or mesh instances. Possible values are GEOMETRY, MESH or BOTH. The default value is GEOMETRY.

Returns:
part: Part

A Part object

Notes

This function can be accessed by:

mdb.models[name].Part
PartFromExtrude2DMesh(name: str, part: PartBase, depth: float, elementSize: float)[source]

This method creates a Part object by extruding an existing two-dimensional orphan mesh Part object in the positive Z-direction and places it in the parts repository.

Parameters:
name

A String specifying the repository key.

part

A Part object specifying an existing two-dimensional orphan mesh Part object.

depth

A Float specifying the total extrusion distance.

elementSize

A Float specifying an approximate element length in the extruded direction.

Returns:
part: Part

A Part object - If the specified part is not an orphan mesh part:

Cannot extrude a geometric part.

  • If the specified part is not two-dimensional: Cannot extrude a 3D part.

  • If the specified part is a rigid body: Cannot change dimension of a rigid body.

Notes

This function can be accessed by:

mdb.models[name].Part
PartFromGeometryFile(name: str, geometryFile: AcisFile, dimensionality: SymbolicConstantType, type: SymbolicConstantType, bodyNum: int = 1, combine: BooleanType = False, booleanSolids: BooleanType = False, retainBoundary: BooleanType = False, usePartNameFromFile: BooleanType = 0, stitchTolerance: float = 1, twist: BooleanType = 0, scale: float = 1, convertToAnalytical: int = 0, convertToPrecise: int = 0)[source]

This method creates a Part object and places it in the parts repository.

Parameters:
name

A String specifying the repository key.

geometryFile

An AcisFile object specifying a file containing geometry.

dimensionality

A SymbolicConstant specifying the dimensionality of the part. Possible values are THREE_D, TWO_D_PLANAR, and AXISYMMETRIC.

type

A SymbolicConstant specifying the type of the part. Possible values are DEFORMABLE_BODY, EULERIAN, DISCRETE_RIGID_SURFACE, and ANALYTIC_RIGID_SURFACE.

bodyNum

An Int specifying the desired body to be selected from an ACIS object containing a list of N ACIS bodies. Possible values are 1 ≤≤ bodyNum ≤≤ N. The default value is 1.

combine

A Boolean specifying weather to create a single part by combining all the bodies in the ACIS object. This argument is ignored if bodyNum is specified. The default value is False.

booleanSolids

A Boolean specifying whether the solids should be boolean while combining all the bodies.The default value is FALSE.

retainBoundary

A Boolean specifying whether the intersecting boundaries should be retained while boolean the solids.The default value is FALSE.

usePartNameFromFile

A Boolean specifying whether the part names specified in a STEP file should be used as the names in the Abaqus model database. If this option is TRUE, the part names in the STEP file will be used; if FALSE, each imported part will be named using the text of the name argument followed by a number. This functionality is available only for import from STEP files; for import from all other types of files this option should be FALSE.

stitchTolerance

A Float indicating the maximum gap to be stitched. The value should be smaller than the minimum feature size and bigger than the maximum gap expected to be stitched in the model. Otherwise this command may remove small (sliver) edges that are smaller than the tolerance. The default value is 1.0

twist

A Boolean specifying whether to include a twist DEGREE OF FREEDOM in the part (only available when *dimensionality*=AXISYMMETRIC and *type*=DEFORMABLE_BODY). The default value is OFF.

scale

A Float specifying the scaling factor to apply to the imported geometric entities. The default value is 1.0.

convertToAnalytical

An Int specifying whether to convert to analytical entities. Possible values are 0 or 1. The default value is 0. If *convertToAnalytical*=1, all the numerical entities, such as splines, are converted to analytical entities, such as arcs and lines, during the repair phase of the command.

convertToPrecise

An Int specifying whether to convert to precise geometry. Possible value are 0 or 1. The default value is 0. If *convertToPrecise*=1, the application will attempt to re-evaluate the tolerant entities to be more precise.

Returns:
part: Part

A Part object - If the ACIS file is corrupt:

PartError: the file is corrupt

  • If the dimensionality does not correspond to what is found in the ACIS file: PartError: dimensionality does not match the contents of the file

  • If the type does not correspond to what is found in the ACIS file: PartError: type does not match the contents of the file

Notes

This function can be accessed by:

mdb.models[name].Part
PartFromInstanceMesh(name: str, partInstances: tuple[abaqus.Part.PartBase.PartInstance] = (), copyPartSets: BooleanType = False, copyAssemblySets: BooleanType = False)[source]

This method creates a Part object containing the mesh found in the supplied PartInstance objects and places the new Part object in the parts repository.

Parameters:
name

A String specifying the repository key.

partInstances

A sequence of PartInstance objects to be used in the creation of the new mesh part. If the partInstances argument is omitted, the new Part object contains the mesh of all the part instances in the assembly.

copyPartSets

A Boolean specifying whether to copy sets, surfaces, and attributes from the base part or parts of the specified part instances to the new part. The default is False.

copyAssemblySets

A Boolean specifying whether to copy assembly-level sets that reference entities of the specified part instances to the new part. The default is False.

Returns:
part: Part

A Part object - If the analysis type (deformable or rigid) is not consistent among the supplied part instances:

The selected part instances do not have a consistent analysis type.

  • If the assembly does not contain a mesh: The current assembly does not contain a mesh for a mesh part.

  • If the specified part instances do not contain a mesh: The selected part instances do not have a mesh for a mesh part.

Notes

This function can be accessed by:

mdb.models[name].Part
PartFromMesh(name: str, copySets: BooleanType = False)[source]

This method creates a Part object containing the mesh found in the part and places the new Part object in the parts repository.

Parameters:
name

A String specifying the repository key.

copySets

A Boolean specifying whether to copy sets, surfaces, and attributes to the new part. The default is False.

Returns:
part: Part

A Part object - If the part does not contain a mesh:

The current part does not contain a mesh for a mesh part.

Notes

This function can be accessed by:

mdb.models[name].Part
PartFromMeshMirror(name: str, part: PartBase, point1: tuple, point2: tuple)[source]

This method creates a Part object by mirroring an existing orphan mesh Part object about a specified plane and places it in the parts repository. The result is a union of the original and the mirrored copy. Contrast the PartFromMeshMirror method with the mirrorPlane argument of the Part copy constructor. The mirrorPlane argument creates only the second half of the part but does not unite the two halves.

Parameters:
name

A String specifying the repository key.

part

A Part object specifying an existing orphan mesh part.

point1

A sequence of three Floats specifying a point on the mirror plane. This point is the local origin in the local system of the plane.

point2

A sequence of three Floats specifying a point in the direction of the normal to the mirror plane. This point must not be coincident with point1.

Returns:
part: Part

A Part object - If the specified part is not an orphan mesh part:

Cannot mirror a geometric part.

  • If the specified part is a rigid body: Cannot mirror a rigid body.

  • If point1 and point2 are coincident: Mirror plane director has zero length.

  • If the specified part is two-dimensional and the plane is not parallel to the

Z-axis:

Mirror plane must be parallel to Z axis for 2D parts

Notes

This function can be accessed by:

mdb.models[name].Part
PartFromNodesAndElements(name: str, dimensionality: SymbolicConstantType, type: SymbolicConstantType, nodes: tuple, elements: tuple, twist: BooleanType = 0)[source]

This method creates a Part object from nodes and elements and places it in the parts repository.

Parameters:
name

A String specifying the repository key.

dimensionality

A SymbolicConstant specifying the dimensionality of the part. Possible values are THREE_D, TWO_D_PLANAR, and AXISYMMETRIC.

type

A SymbolicConstant specifying the type of the part. Possible values are DEFORMABLE_BODY, EULERIAN, DISCRETE_RIGID_SURFACE, and ANALYTIC_RIGID_SURFACE.

nodes

A sequence of (nodeLabels, nodeCoords) specifying the nodes of the mesh. nodeLabels is a sequence of Ints specifying the node labels, and nodeCoords is a sequence of sequences of three Floats specifying the nodal coordinates.

elements

A sequence of sequences of(meshType, elementLabels, elementConns) specifying the elements of the mesh. meshType is a String specifying the element type. elementlabels is a sequence of Ints specifying the element labels. elementConns is a sequence of sequences of node labels specifying the element connectivity.

twist

A boolean specifying whether the part is defined with twist. This option has meaning only when *dimensionality*=AXISYMMETRIC. Possible values are ON and OFF. The default value is OFF.

Returns:
part: Part

A Part object

Notes

This function can be accessed by:

mdb.models[name].Part
PartFromOdb(name: str, odb: str, fileName: str = '', instance: str = '', elementSet: str = '', shape: SymbolicConstantType = 'UNDEFORMED', step: int | None = None, frame: int | None = None, twist: BooleanType = 0)[source]

This method creates an orphan mesh Part object by reading an output database. The new part is placed in the parts repository.

Parameters:
name

A String specifying the repository key.

odb

An output database object.

fileName

A String specifying the name of the output database file from which to create the part. The default value is an empty string.

instance

A String specifying the part instance in the output database from which to create the part. If no instance name is specified, Abaqus creates an orphan mesh part from the first part instance in the output database.

elementSet

A String specifying an element set defined on the output database. Only elements from this set will be imported. The default is to import all element sets.

shape

A SymbolicConstant specifying the configuration state. Possible values are UNDEFORMED and DEFORMED. The default value is UNDEFORMED.

step

An Int specifying the step number for reading deformed coordinates. 0≤step≤N−10≤step≤N-1 where NN is the number of available steps. The default value is the last available step. You should specify the step argument only when *shape*=DEFORMED.

frame

An Int specifying the frame number for reading deformed coordinates. 0≤frame≤N−10≤frame≤N-1 where NN is the number of available frames. The default value is the last available frame. You should specify the frame argument only when *shape*=DEFORMED.

twist

A Boolean specifying whether to include a twist DEGREE OF FREEDOM in the part (only available when *dimensionality*=AXISYMMETRIC and *type*=DEFORMABLE_BODY). The default value is OFF.

Returns:
part: Part

A Part object - If the output database contains elements of more than one dimensionality or type:

File contains both axisymmetric and nonaxisymmetric elements.File contains both 2D and

3D elements.File contains both rigid and deformable elements. - If more than one part is found on the output database:

PartError: importing of more than one part is not currently supported

  • If the output database does not contain any valid results for the specified step: Error. File does not contain any valid frames.

  • If the specified step and frame do not contain any displacements: Error. Specified frame does not contain nodal displacements.

  • If the specified element set is not found on the output database: Error. Specified element set is not defined in the ODB.

  • If the step number is invalid: OdiError: Invalid step index: i. Available step indices: 0 - j.

  • If the frame number is invalid: OdiError: Invalid frame index: i. Available frame indices: 0 - j.

Notes

This function can be accessed by:

mdb.models[name].Part
PartFromSection3DMeshByPlane(name: str, part: PartBase, point1: float, point2: float, point3: tuple)[source]

This method creates a Part object by cutting an existing three-dimensional orphan mesh Part object by a plane and places it in the parts repository. This method is valid only for orphan mesh parts composed of 8-node brick elements.

Parameters:
name

A String specifying the repository key.

part

A Part object specifying an existing three-dimensional orphan mesh part.

point1

A Sequence of three Floats specifying a point on the cutting plane. This point is the local origin in the local system of the plane.

point2

A Sequence of three Floats specifying a point in the direction of the normal to the cutting plane. This point must not be coincident with point1.

point3

A sequence of three Floats specifying the direction of the local 1-axis in the local system of the plane. This point must not project onto point1.

Returns:
part: Part

A Part object - If the specified part is not an orphan mesh part:

Cannot reduce dimension of a geometric part.

  • If the specified part is not three-dimensional: Cannot reduce dimension of a 2D part.

  • If the specified part is a rigid body: Cannot change dimension of a rigid body.

  • If point1 and point2 are coincident: Cutting plane director has zero length.

  • If point3 projects onto point1: Local axis point projects to origin.

  • If no elements are cut by the specified plane: Cannot reduce part dimension.

Notes

This function can be accessed by:

mdb.models[name].Part
PartFromSubstructure(name: str, substructureFile: str, odbFile: str)[source]

This method creates a substructure Part object by reading a substructure sim file and places it in the parts repository.

Parameters:
name

A String specifying the repository key.

substructureFile

A substructure sim file.

odbFile

The output database file corresponding to the substructure sim file.

Returns:
part: Part

A Part object - If the specified part is not a substructure:

File specified does not contain a substructure.

  • If the specified part already exists: A part with the same name already exists.

  • If the substructure cannot be imported: The output database is missing nodes and elements.Nested substructures are not

supported.The substructure sim file was generated using a version that is different from the current version.

Notes

This function can be accessed by:

mdb.models[name].Part
PartFromSubstructure(name: str, substructureFile: str, odbFile: str)[source]

This method creates a substructure Part object by reading a substructure sim file and places it in the parts repository.

Parameters:
name

A String specifying the repository key.

substructureFile

A substructure sim file.

odbFile

The output database file corresponding to the substructure sim file.

Returns:
part: Part

A Part object - If the specified part is not a substructure:

File specified does not contain a substructure.

  • If the specified part already exists: A part with the same name already exists.

  • If the substructure cannot be imported: The output database is missing nodes and elements.Nested substructures are not

supported.The substructure sim file was generated using a version that is different from the current version.

Notes

This function can be accessed by:

mdb.models[name].Part