Computer Software for Steel Professionals

Structural Material Manager External Data Interface Fixed-Field-Width Format

 

FIXED-FIELD-WIDTH VERSUS ASCII-DELIMITED FILE STRUCTURE. There are two broad categories of ASCII text files with which Structural Material Manager operates: delimited and fixed-field-width. Structural Material Manager imports bills of material either in an ASCII-delimited format (such as can be exported from Excel) or in E.J.E. Industries' published fixed-field-width format (the one that is supported by numerous CAD systems).

The term "ASCII-delimited file" simply means that the ASCII text file contains multiple fields with each being separated from the next by a character called a delimiter. For instance, the comma might be the delimiter, and it could separate fields such as Piece Mark, Quantity, Material Type, Description, Length, etc. from one another as shown in these two example lines:
1B1,2,W,10 x 54,20'-3 1/4
p1,4,PL,1/2 x 36,4'-2 9/16

The other major category of text file is the fixed-field-width file. Fixed-field-width files simply have certain data fields at certain column positions, and no delimiters or text qualifiers are necessary. For instance, the Piece Mark field might occupy the first so many columns of a fixed-field-width file, and the Quantity field might occupy the next so many columns.

The purpose of this particular Web page is to explain Structural Material Manager's fixed-field-width format. If it is the ASCII-delimited format in which you are actually interested, please click here for the proper information.

Whereas the rest of this Web page goes into detail concerning Structural Material Manager's fixed-field-width file format, those seeking more general External Data Interface information may be more interested in these pages:

 

OVERVIEW OF FIXED-FIELD-WIDTH FILE STRUCTURE. The External Data Interface is expecting all data for a particular Job File to be contained in one ASCII text file. There is no need to create a separate data file for each material type, such as storing all of the Angles in one file and all of the Plates in another.

Each material item occupies one line of the text file. Within each line, many fixed-length fields exist to describe the Quantity, Length, etc. The combined widths of these fields yields a total line length of 106 characters.

Any blank lines found in the data file will simply be ignored.

 

TYPES OF DATA.Data exists in the text file in three distinct formats: alpha-numeric, whole-numeric and decimal-numeric.

Alpha-numeric data is commonly referred to as a "string." It may contain characters and or numbers, such as "A12." Such a value is typically used for Piece Marks, Remarks, etc. The size of the field is usually the only factor that will be checked for errors.

Whole-numeric data simply represents any whole number, which includes 0 and all positive integers. It can be thought of as simply any number without a decimal point. Some examples are "0", "12" and "968." The Quantity field is one application for this type of data.

Fields such as the Material Price require the decimal-numeric data type, which includes real numbers greater than or equal to 0.0. For purposes of the External Data Interface, you can think of the decimal-numeric type as representing a number that may, but is not required to, contain a decimal point. Up to two decimal places can usually be specified with these values. Examples are "0.5", "1.42" and "99.87."

 

CODING OF DIMENSIONS IN SIXTEENTHS. With the exception of Beam and Channel descriptions, all dimensions such as widths, lengths, etc. imported by the External Data Interface are coded in sixteenths of an inch. This is done because the Structural Material Manager internally stores all dimensions in sixteenths.

As an example of this coding, consider the length 12'-8 7/8. This is equivalent to 2446 sixteenths, which is calculated as (feet x 192) + (inches x 16) + sixteenths.

Rebar sizes are doubled to obtain their corresponding sixteenths value, so #3 rebar is coded as 6 sixteenths. The exception is 1/4" plain round rebar, which is of course coded as 4 sixteenths.

 

CODING OF GAUGE THICKNESSES. When a gauge thickness needs to be coded, simply add the gauge number to a base value of 209. This is necessary due to the internal method the Structural Material Manager uses to store gauge thicknesses.

Under the system described above, 0 gauge is coded as 209, 12 gauge as 221, etc.

 

MATERIAL TYPE CODES. Each material type is identified with a one- or two-character alpha-numeric code. The following lists the code for each type:

W Shapes = W
S Shapes = S
M Shapes = M
HP Shape = HP
WT Shapes = WT
ST Shapes = ST
MT Shapes = MT
C Shapes = C
MC Shapes = MC
Plates = PL
Checkered Plates = CP
Bars = B
Angles = L
Square/Rectangular Tubes = TS
Square/Rectangular HSS = H1
Round HSS = H2
Rods = R
Rebar = RB
Pipe = P
Bolts = SB
Miscellaneous Items= MI
Main Members = MM

It is not important whether the material type code is in upper or lower case, as the External Data Interface will interpret either case properly.

 

DESCRIPTION FIELDS. Each material type can have between one and three description fields. This section lists each type and its corresponding fields.

 

Beams and channels (material type codes W, S, M, HP, ST, MT, C and MC):

Description Field #1 = Depth, decimal-numeric.

Description Field #2 = Weight Per Foot, decimal-numeric.

 

Plates and Checkered Plates (material type codes PL and CP):

Description Field #1 = Thickness (gauge + 209 or 16ths), whole-numeric.

Description Field #2 = Width in 16ths, whole-numeric.

 

Bars (material type code B):

Description Field #1 = Width in 16ths, whole-numeric.

Description Field #2 = Thickness (gauge + 209 or 16ths), whole-numeric.

 

Angles (material type code L):

Description Field #1 = Leg #1 in 16ths, whole-numeric.

Description Field #2 = Leg #2 in 16ths, whole-numeric.

Description Field #3 = Thickness in 16ths, whole-numeric.

 

Square/Rectangular Tubes (material type code TS):

Description Field #1 = Face A in 16ths, whole-numeric.

Description Field #2 = Face B in 16ths, whole-numeric.

Description Field #3 = Thickness (gauge + 209 or 16ths), whoe-numeric.

 

Square/Rectangular HSS (material type code H1):

Description Field #1 = Face A in 16ths, whole-numeric.

Description Field #2 = Face B in 16ths, whole-numeric.

Description Field #3 = Wall Thickness in 16th, whole-numeric.

 

Round HSS (material type code H2):

Description Field #1 = Diameter in 16ths, whole-numeric.

Description Field #2 = Wall Thickness in 16ths, whole-numeric.

 

Rods (material type code R) and Rebar (material type code RB):

Description Field #1 = Diameter in 16ths, whole-numeric.

 

Pipes (material type code P):

Description Field #1 = Diameter in 16ths, whole-numeric.

Description Field #2 = Strength, as follows:

Standard = 1

Extra Heavy = 2

Double Extra Heavy = 3

Other strengths = Pipe schedule, whole-numeric.

 

Bolts (material type code SB):

Description Field #1 = Diameter in 16ths, whole-numeric.

 

Miscellaneous Items (material type code MI):

Description Field #1 = 24 character description, alpha-numeric.

 

Main Members (material type code MM):

Description Field #1 = 30 character description, alpha-numeric.

 

NON-DESCRIPTION FIELDS. While the last section focused on the description fields, this one presents information concerning all other item fields.

Piece Mark: 9 characters, alpha-numeric. This field is optional for all types except Main Members, in which case it must exist and contain at least one capital letter and no lower case letters.

Quantity: Minimum value of 1, maximum value of 9999, whole-numeric. This field is required for all items.

Length: Expressed in 16ths, maximum value of 28991, whole-numeric. This field is optional for Miscellaneous Items, does apply to Main Members and is required for all other material types.

Grade Prefix: One alpha-numeric character, such as the "A" in the grade "A36." This field does not apply to Main Members.

Grade: Maximum value 9999, whole-numeric. Note that Main Members do not contain a Grade field.

Before moving on to a description of the Mill Mark field, a word is in order concerning blank Grade Prefixes and blank numeric Grades. If both the Grade Prefix and Grade fields are left blank, a default Grade Prefix and numeric Grade for that material type will automatically be applied. Thus, the Grade Prefix and Grade fields can be thought of as optional fields if Structural Material Manager's default grades suffice for your purposes. If you do choose to specify a Grade Prefix, you must also specify a numeric Grade field; an error is generated otherwise. If you specify just the numeric Grade field without a Grade Prefix, the Grade Prefix will be assumed to be a blank (it will not take on a default value such as "A").

Mill Mark: 6 characters, alpha-numeric. The optional Mill Mark field exists for all types except Main Members.

Remarks: 30 characters, alpha-numeric. Please note that the Remarks field does not apply to Miscellaneous Items and Main Members; items of these types do not have Remarks fields.

Camber: expressed in 16ths, 159 maximum, whole-numeric. Camber applies only to Beams and Channels.

Material Price: 9999.99 maximum, decimal-numeric, optional.

Shop Hours: 99.99 maximum, decimal-numeric, optional. Main Members do not contain a Shop Hours field.

Field Hours: 99.99 maximum, decimal-numeric, optional. This field does not exist for Main Members.

Price Unit: 1 character, alpha-numeric, optional. This field applies only to Miscellaneous Items and Main Members and is coded as follows:
Per Each = E
Per 100 = H
Per Lb. = L
Per CWT = C
Per Foot = F

Sequence: 4 characters, alpha-numeric. The optional Sequence field exists for all material types.

Weight: 9999.99 maximum, decimal-numeric. This field applies only to Miscellaneous Items.

 

HANDLING UNUSED FIELDS. If a field is undefined for a certain material type, such as Description Field #3 for Beams and Channels, or Camber for Plates, you may either leave the field blank or initialize it to 0.

Assuming a numeric field exists for a material type but is to contain a 0, leaving it blank or actually writing a 0 will have the exact same effect.

If an alpha-numeric field such as the Remarks field is defined for a certain type but is to be blank, it should be written to the file as a series of blanks.

In cases where some fields at the end of a line are not required, it is not critical that each line be 102 characters long. There is thus no need to pad the end of a line with extra blanks. The External Data Interface will simply read as much of the line as it can and assume that all fields to the right of the end of the line are blank. In many cases, the Length field will be the last field to appear on a line.

 

FIELD LAYOUTS. In the following field layouts, note that it does not matter whether data is left or right justified within a field, as long as it is contained within the field boundaries. Data will be interpreted correctly with either alignment choice.

Columns 1-9: Piece mark.

Columns 10-14: Quantity.

Columns 15-16: One- or two-character material type designation.

Column 17: Unused.

Columns 18-23: Description Field #1.

Columns 24-29: Description Field #2.

Columns 30-35: Description Field #3.

Columns 36-40: Length.

Important: Note that columns 18-35 are not used for Miscellaneous items, and columns 18-40 are not used for Main Members. These columns should be left blank for these types.

Column 41: Grade Prefix.

Columns 42-45: Grade.

Note that columns 46-76 are handled in three possible manners, depending on the material type involved.

 

Miscellaneous items:

Columns 46-69: Description.

Columns 70-76: Weight.

 

Main Members:

Columns 46-75: Description.

Column 76: Unused. Any character in this column will be ignored.

 

All other types:

Columns 46-75: Remarks.

Column 76: Unused. Any character in this column will be ignored.

Columns 77-82: Mill Mark.

Just as columns 46-76 are handled differently for different material types, columns 83-85 are also treated in three distinct manners.

 

Beams and Channels:

Columns 83-85: Camber.

 

Miscellaneous Items and Main Members:

Column 83: Price unit code.

Columns 84-85: Unused. Any characters in these columns will be ignored.

 

All other types:

Columns 83-85: Unused. Any characters in these columns will be ignored.

Columns 86-92: Material price.

Columns 93-97: Shop hours.

Columns 98-102: Field hours.

Columns: 103-106: Sequence.

Columns 107 and beyond: Unused. These columns will be ignored by the External Data Interface and may be used for your own purposes.