Save 15% On All Single Licences! Loading... GET OFFER

How to Create a Custom Standard Part in BricsCAD Mechanical

Quick answer: -BMHARDWARE creates custom standard parts across several categories (Pipe, Cross, Tee, and more), confirming the standard parts concept covered on this hub’s bottom-up and top-down assembly design page. Its Custom option lets you select one or more TXT files, each containing mandatory creation parameters, optional creation parameters, and a configuration table.

General File Structure and Rules

Lines starting with a semicolon (;) are ignored as comments. Every creation parameter line follows this format:

PARAMETER_NAME: "parameter_value"

Mandatory Creation Parameters

Without these, the part simply won’t create:

Optional Creation Parameters

The Configuration Table

Mandatory: geometrical parameters (varying by category, detailed below), a key parameter (uniquely identifying each configuration), and a unit parameter (IN for inches, MM for millimeters). Any number of additional parameters can follow.

String parameters go inside quotation marks; if a quotation mark is part of the value itself, escape it with a backslash, for example "1/2\" X 1/2\" SCH 5" is recognized as 1/2" X 1/2" SCH 5.

Building and Using the File

  1. Build a table from the relevant standard’s values, including key values and geometrical parameters, plus a units column and any custom parameter columns you need.
  2. Convert the table to text format (CSV, for example), using a space as the separator and double quotation marks around text values.
  3. Copy that content into a TXT file, or simply rename the CSV file’s extension to .txt.
  4. Add every mandatory (and any needed optional) creation parameter to the beginning of the file.
  5. The file is ready to use.

To create the part from your finished TXT file:

  1. In any drawing, run -BMHARDWARE and choose the create Custom option.
  2. In the Select configuration table file dialog, choose your TXT file (or files).
  3. BricsCAD creates the new standard part: opening a new drawing with the correct units, creating components with properties matching the TXT file, saving the part to the right location, and generating thumbnails for the library.

Worked Example: A Sample Elbow

; Mandatory creation parameters

NAME: "Sample elbow"
CATEGORY: "Elbow"
PATH: "Piping;Elbows"
STANDARD: "Sample standard"
DESCRIPTION: "Sample description"

; Optional creation parameters

EXPOSED_PARAMETERS: "PartNumber" "Size" "OuterDiameter" "Thickness" "Schedule"
INITIAL_VALUE: "1/2\" X 0.065\" (SCH 5S)"
LENGTH_MEASUREMENT_TYPE_PARAMETERS: "OuterDiameter" "Thickness"
MATERIAL: "Steel"

; other possible optional parameters
; CUSTOM_PARAMETERS:
; KEY_PARAMETER:
; UNKNOWN_MEASUREMENT_TYPE_PARAMETERS:
; AREA_MEASUREMENT_TYPE_PARAMETERS:
; VOLUME_MEASUREMENT_TYPE_PARAMETERS:

; table

"PartNumber"                   "Size"      "UNIT"     "OuterDiameter"     "Thickness"     "Schedule"     "B"      "DEG"
"1/2\" X 0.065\" (SCH 5)"      "1/2\""     "IN"       0.84                0.065           "SCH 5"        0.62     45.0
"1/2\" X 0.065\" (SCH 5S)"     "1/2\""     "IN"       0.84                0.065           "SCH 5S"       0.62     45.0
"1/2\" X 0.083\" (SCH 10)"     "1/2\""     "IN"       0.84                0.083           "SCH 10"       0.62     45.0

Transferring Models with Custom Standard Parts

Custom standard part data stores separately from the drawing it’s inserted into. Anyone else working with that model needs the original TXT file too, and needs to run through the same creation steps themselves.

Parts Categories and Geometrical Parameters

Pipe (CATEGORY: "Pipe"), all parameters mandatory: OuterDiameter, Thickness, VAR_LG (initial length).

Cross and Tee (CATEGORY: "Cross" or "Tee"), all parameters mandatory: OuterDiameter (run outer diameter), OuterDiameter_2 (outlet outer diameter), C (run center-to-end distance), M (outlet center-to-end distance), Thickness (run thickness), Thickness_2 (outlet thickness).

Reducer and Eccentric reducer (CATEGORY: "Reducer" or "Eccentric reducer"):

Elbow (CATEGORY: "Elbow"), all parameters mandatory: OuterDiameter, Thickness, B (center-to-end distance), DEG (angle in degrees).

Flange (CATEGORY: "Flange"):

Mandatory parameters: OD (outer diameter); ID (bore diameter, omit or set to 0 for BLIND type); FLANGE_THK (thickness, excluding face height); BoltCircleDiameter; BoltsNumber; HOLE_D; BoltDiameter; OuterDiameter (pipe); GasketThickness (omit if face type is ASME_RING_JOINT); DistanceBetweenFlanges (omit unless face type is ASME_RING_JOINT).

FLANGE_TYPE (must be the same value across every row):

Type Description Extra mandatory parameters
BLIND No bore, no raised hub part, no pipe connection
PLATE No raised hub part, pipe inserted into the bore
CYL_RAISE_HUB_PIPE_INS_INTO_BORE Cylindrical raised hub, pipe inserted into the bore HUB_OD, HUB_L
CYL_RAISE_HUB_PIPE_CONN_TO_HUB Cylindrical raised hub, pipe connected to the hub HUB_OD, HUB_L
CYL_RAISE_HUB_WITH_SOCKET Cylindrical raised hub with a socket, pipe inserted into the socket HUB_OD, HUB_L, SOCKET_OD, SOCKET_DEPTH
CON_RAISE_HUB_PIPE_INS_INTO_BORE Conical raised hub, pipe inserted into the bore HUB_RAISE_BOTTOM_OD, HUB_RAISE_TOP_OD, HUB_L
CON_RAISE_HUB_PIPE_CONN_TO_HUB Conical raised hub, pipe connected to the hub HUB_RAISE_BOTTOM_OD, HUB_RAISE_TOP_OD, HUB_L
CON_CYL_RAISE_HUB_PIPE_CONN_TO_HUB Conical part at the bottom, cylindrical part at the top, pipe connected to the hub HUB_OD, HUB_L, HUB_CYL_PART_OD, HUB_CYL_PART_L

FACE_TYPE (must be the same value across every row; the reference face for measuring GasketThickness or DistanceBetweenFlanges along the Z-axis varies by type):

Type Extra mandatory parameters
FLAT none
RAISED RAISE_OD, RAISE_H
TONGUE TONGUE_ID, TONGUE_OD, TONGUE_H, FF_DEPTH
FEMALE TONGUE_ID, TONGUE_OD, TONGUE_H, FF_DEPTH
FLAT_WITH_GROOVE GROOVE_ID, GROOVE_OD, GROOVE_DEPTH
GROOVE RAISE_OD, RAISE_H, GROOVE_ID, GROOVE_OD
ASME_RING_JOINT RAISE_OD, RAISE_H, GROOVE_CENTER_D, GROOVE_TOP_WIDTH
DIN_O-RING_GROOVE RAISE_OD, RAISE_H, GROOVE_OD, GROOVE_DEPTH, GROOVE_SLOPE_ANGLE

Optional flange parameters: Thickness (pipe thickness); Gap (Z-axis distance from the bore’s highest point, or the socket’s bottom, to the pipe connection point, defaults to 0, omit for other connection types); IS_CUSTOM_PIPE_THK_ALLOWED (nonzero enables custom Thickness values, currently only functional for CON_RAISE_HUB_PIPE_CONN_TO_HUB when HUB_RAISE_TOP_OD equals OuterDiameter, defaults to 0).

Gasket (CATEGORY: "Gasket"):

Type Standard Parameters
MULTIRING One or more rectangular-profile rings; ring thickness H(i), bounding diameters D(i-1)/D(i); GasketThickness serves as a fallback for any ring without its own H set (H can’t exceed GasketThickness)
FLATFACE GasketID, GasketOD, GasketThickness
OVAL GasketDiameter (pitch diameter), GasketWidth, GasketThickness (Width can be greater than, less than, or equal to Thickness, as in ASME B16.20 Jacketed/Oval or AS 2129 O-Ring)
OCTAGONAL_R ASME B16.20 Type R WIDTH_A, HEIGHT_H, EDGE_C, PITCH_DIAMETER_P, ANGLE_R1
OCTAGONAL_RX ASME B16.20 Type RX WIDTH_A, EDGE_C, OUT_BEVEL_D, HEIGHT_H, OUT_DIAMETER_OD, ANGLE_R1
OCTAGONAL_BX ASME B16.20 Type BX WIDTH_A, EDGE_C, HEIGHT_H, OUT_DIAMETER_OD, OUT_FLAT_DIAMETER_ODT, ANGLE_R1
JACKET_A DIN EN 1514-3 Type A GasketID, JacketOD, GasketOD, JacketThickness, GasketThickness (whole gasket: core plus both jacket layers), JacketTail, Angle
JACKET_C DIN EN 1514-3 Type C GasketID, JacketOD, GasketOD, JacketThickness, GasketThickness

To add bolt holes to a gasket (an ASME B16.21 FullFace gasket, for example): N_HOLES, HOLE_D, HOLES_CRCL_D.

Frequently Asked Questions

What happens to another user’s model if I share it with them and it contains custom standard parts? They also need the original TXT file the parts were created from, and need to run through the same creation steps themselves, since the data stores separately from the drawing.

Can I set a custom initial pipe thickness on a flange? Only for the CON_RAISE_HUB_PIPE_CONN_TO_HUB flange type, and only when HUB_RAISE_TOP_OD equals OuterDiameter, set IS_CUSTOM_PIPE_THK_ALLOWED to a nonzero value to enable it.

How do I escape a literal quotation mark inside a string parameter value? Place a backslash before it, "1/2\" X 1/2\" SCH 5" is recognized as 1/2" X 1/2" SCH 5.

Which parameters are required for every gasket type, regardless of shape? None universally, each gasket type (MULTIRING, FLATFACE, OVAL, and so on) has its own distinct set of required parameters.

Powered by Full Pelt Ltd