Computer Software for Steel Professionals

Structural Material Manager External Data Interface ASCII-Delimited Field Layout

Introduction. The optional External Data Interface allows material lists stored in other software systems to be imported into Structural Material Manager via ASCII text files. It also allows Structural Material Manager to export its bills of material to spreadsheet, database and other types of programs that have the capability to import ASCII text files. This eliminates the need for retyping the items and makes this module a great time-saver.

For those unfamiliar with the term ASCII, note that ASCII stands for the American Standard Code for Information Interchange, and it is pronounced "ask-ee." The ASCII standard defines the numeric representation for each alphanumeric character. For instance, 65 is the corresponding code for capital "A", and 96 is the code for lower-case "a". These codes are unimportant to you as the user; all that matters is that you know that terms "text file" and "ASCII file" mean roughly the same thing (at least in the PC world).

There are two main types of ASCII text files: delimited and fixed-field-width. Structural Material Manager’s External Data Interface originally worked only with fixed-field-width files and still supports them, but it has evolved in such way delimited files are now preferred.

One purpose of this Web page is to guide computer programmers, I.T. consultants, etc. in properly formatting delimited files so that Structural Material Manager can import them. This somewhat technical resource can probably serve as a standalone reference for such professionals. If you are an end-user, this Web page might provide useful information for you, too, but it should be used in conjunction with - not instead of - Chapter 18 of the User’s Guide. The User’s Guide is available in the program’s Help menu, and it can also be accessed online by following this link.

In addition to helping technical personnel format data files for importing into Structural Material Manager, this document is also useful for those who wish to export Structural Material Manager data to other applications. Since the exact same ASCII-delimited format can be used for both importing and exporting Structural Material Manager data, this one document serves both purposes.

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

Overview of ASCII-Delimited Files. By their very definition, ASCII-delimited files contain 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

In this example, an application reading the delimited data would know that a new field is about to begin each time a comma is encountered.

Comma is not the only delimiter that is used. The tab character, while not actually visible except for the spacing effect it causes, is a very popular delimiter. Another common choice is the tilde ("~"). Semicolon - while not often encountered as a delimiter in North America - is often used in Europe and other parts of the world.

You may have heard the term "CSV file." CSV stands for "Comma Separated Values" which simply means that it is a delimited text file with comma as the delimiter. That particular type of file is often named with a file extension of .Csv such as in the filename Beams.Csv, but it is also common for a CSV file to have the more general .Txt extension such as in the filename Beams.Txt.

Astute readers will notice that a problem will occur in delimited files if a data field happens to actually contain the delimiter character. The character - such as a comma - that was meant to be part of the data would fool the importing application into thinking that a new field had begun. Two solutions exist. The first is to simply choose a delimiter such as the tab character which will never occur in the data or one such as tilde ("~") which will probably never occur in English-language data. The other solution is to encapsulate text fields within quote characters so that "Doe, John" would then properly function as a comma-delimited field without the comma after Doe accidentally triggering the start of a new field. The quote character is called a "text qualifier" in the context of this second possible solution.

To further complicate matters when using the quote as a text qualifier, most programs expect a pair of consecutive quotes to indicate the special case of a quote that happens to occur in the actual data field. That pair of quotes serves as a indication that the first of the two consecutive quotes is not a text qualifier. For example, the famous Italian-American boxer’s name Ray "Boom Boom" Mancini would appear as "Ray ""Boom Boom"" Mancini" such that the first and last quotes are text qualifiers that encapsulate the entire field, and quotes within the field - those encapsulating the Boom Boom nickname - are doubled.

Supported Delimiter and Text Qualifier Combinations. As discussed in the previous section, ASCII-delimited files make use of delimiters and optional text qualifiers. Rather than supporting every conceivable combination of delimiter and text qualifier characters, Structural Material Manager limits your choices to just those that you are actually likely to encounter:

  1. Tab delimiter, no text qualifier.
  2. Tilde ("~") delimiter, no text qualifier.
  3. CSV, comma delimiter, quote text qualifier. Commas in job data are left intact; quotes in job data get doubled.
  4. CSV, comma delimiter, quote text qualifier. Commas and quotes in job data are left intact without doubling quotes.
  5. CSV, comma delimiter, quote text qualifier. Commas and quotes in job data are converted to spaces.
  6. CSV, comma delimiter, no text qualifier. Commas in job data are converted to spaces.
  7. Semicolon delimiter, no text qualifier. Semicolons in job data are converted to spaces.

You should always try to work with options #1, #2 or #3 listed above. Any of those first few options - in no certain order of preference - is likely to work well with modern software applications such as Excel. Options #4..#7 are provided only for special purposes such as interfacing with older software applications that were written before present-day defacto standards emerged.

Sample.Txt is a file that E.J.E. Industries bundles with every Structural Material Manager system. This file can be found in the application’s \EJE folder. Sample.Txt is worth reviewing as an example of an actual ASCII-delimited file that uses a comma delimiter in conjunction with a quote text qualifier.

When importing data, users never need to tell Structural Material Manager which delimiter and optional text qualifier is being used. That is not necessary since the system performs a behind-the-scenes preview of the file structure and automatically determines delimiter and text qualifier information.

Filename Conventions. Although Structural Material Manager can work with ASCII-delimited files with any filename extension, it is best to choose an extension that clearly identifies the file type. This will be either .Csv or .Txt. Use either .Csv or .Txt for files in which the comma is the delimiter, and use only .Txt for other delimited files.

Sticking with .Csv and .Txt as filename extensions allows outside programs to make some intelligent decisions about the data file. For instance, when Excel sees the .Csv or .Txt extensions, many of its import options will automatically be set to default values that are correct for the task at hand, thus simplifying your work.

Field Layout. Each material item exported from or imported into Structural Material Manager is comprised of numerous item fields. Item fields appear in the following predefined order within the ASCII-delimited files:

  1. Piece mark
  2. Quantity
  3. Material Type
  4. Description
  5. Length
  6. Mill Mark
  7. Grade
  8. Camber
  9. Remarks
  10. Material Price
  11. Price Unit
  12. Shop Hours
  13. Field Hours
  14. Sequence
  15. Price of One Item
  16. Line Price
  17. Weight of One Item
  18. Line Weight

Item fields can be one of a few different data types: text, whole-numeric or decimal-numeric. Full discussions of these data types appear in further sections of this document.

Other sections of this document elaborate on the contents of the various fields aside from their basic data types. An entire section is devoted strictly to the Description field, and another sections summarizes the other, non-Description fields.

Text Fields: Text data is sometimes referred to as a "string." It is alpha-numeric in nature which means that it can contain any type of characters whether they are letters of the alphabet, digits, punctuation marks or other symbols. Examples are the Piece Mark "1B1-R", the Length "14'-5 1/4", the material Grade "A992", and the Remarks "No Paint".

It might seem at first that certain text fields should actually be numeric. Consider, for example, the Length which intuitively seems like a number rather than text. However, an English / Imperial Length field can contain an apostrophe, a dash and a fraction such as in the string "19'-5 1/4". Metric Length fields such as "794 mm" also must be treated as text since they might contain an abbreviation for millimeters. So, don’t be surprised that some seemingly-numeric fields are actually textual. In fact, all Description fields - regardless of the material type to which they apply - are considered to be text.

Some text fields require almost no validity-checking by Structural Material Manager. An imported Remarks field, for instance, is erroneous only if it exceeds the maximum allowable number of characters for that field; its contents cannot trigger any other import errors.

Certain text fields need to be "parsed" by Structural Material Manager. Parsing simply means that the imported field gets picked apart internally so that it can be interpreted as a meaningful value. Invalid values are flagged if errors are detected during parsing. For example, when a Length field of "14'-15 3/16" is parsed, it will be rejected when the system detects that the inches portion (15 in this example) exceeds the maximum value of 11 that is allowed in a feet, inches and fraction format.

Whole-Numeric Fields: As its name implies, whole-numeric data simply represents any whole number. That includes 0 and all positive integers.

A whole-numeric value can be thought of as simply a number without a decimal point. In fact, in Excel and some other applications, this is specified as the generalized "number" type with the decimal places for that type set to 0.

Some examples of the whole-numeric data type are "0", "12" and "968". The Quantity field is one application for this type of data, as of course it is nonsensical to specify 2.5 W Shapes or 3.7 Plates.

When Structural Material Manager is expecting a whole-numeric value, it will actually permit a decimal point as long as the decimal portion of the number is 0. For instance, the values 2, 2.0, 2.00, etc. can all be specified to mean 2, but a value such as 2.1 would of course be rejected. This flexibility of allowing 0 in the decimal portion of what technically should be a whole-numeric value is important, as some programs exporting data to Structural Material Manager might express whole numbers with a decimal point followed by one or more zeros. Rather than rejecting such data, Structural Material Manager elegantly accommodates it.

Decimal-Numeric Data: Item fields representing material prices, labor hours and item weights use the decimal-numeric data type. You can think of the decimal-numeric type as representing a number that may, but is not required to, contain a decimal point. Examples are "0.5", "1.42" and "99.87".

Since the decimal part of a decimal-numeric value is optional, Structural Material Manager can accept a whole-numeric value (covered in the previous section) any time it is expecting a decimal-numeric value. Both "5" and "5.0" are thus acceptable as equivalent decimal-numeric values.

Up to two decimal places can usually be specified with decimal-numeric values. For instance, the various fields representing hours, prices and weights can contain values such as 1.25, but 1.253 is invalid. This restriction applies to most - but not all - decimal-numeric fields. When formatting data cells in Excel and other applications, this is often specified as the generalized "number" type with the decimal places for that type set to 2.

The Length field is an exception to the 2-decimal-place rule for decimal-numeric fields. The only other exception is the Width portion of the Description field for Plates, Checkered Plates, Bar Grating and Bars. Lengths and Widths can optionally be specified in a decimal format, and they can contain many decimal places such as a Length of 21.78642 or a Width of 23.4454. In Excel and some other applications, this is specified as the generalized "number" type with the decimal places for that type set to 3, 4, 5 or even more decimal places. Despite the fact that so many decimal places can be specified, the portion of the number actually retained is based on rounding as discussed in Section 5-16: Decimal Lengths and Widths of the Structural Material Manager User's Guide.

Currency Data: Some outside programs have Currency or Accounting data types in which all such values are prefaced by dollar signs. Structural Material Manager does not use these data types and relies instead on the decimal-numeric type for its price fields.

No leading dollar signs are included with price fields that Structural Material Manager exports. Dollar signs are optional on price fields it imports.

All Structural Material Manager price fields are limited to (2) decimal places.

Material Type Codes. Material types in ASCII-delimited files are identified by the following predefined codes:

W Shapes: W or WF

S Shapes: S

M Shapes: M

HP Shapes: HP

WT Shapes: WT

ST Shapes: S

MT Shapes: MT

C Shapes: C

MC Shapes: MC

Plates: PL

Checkered Plates: CP or CHK PL (note the space between CHK and PL in "CHK PL")


Bars: B, BAR, FL or FB (note that FL means "Flat", and FB means "Flat Bar")

Angles: L

Square / Rectangular Tubes: TS

Square / Rectangular HSS: HSS

Round Tubes: TR

Round HSS: HSS

Pipes: P or PIPE

Rods: R or ROD

Rebar: RB or REBAR

Bolts: SB, BOLT or BOLTS

Miscellaneous Items: MI, MISC, or MISC.

Main Members: MM or MAIN

Where a material type can be recognized by multiple identifiers, it makes no difference which you choose. For instance, specifying a Checkered Plate with the CP code has the exact same effect as using the CHK PL code. Structural Material Manager supports such synonymous codes in order to provide flexibility in communicating with a wide array of external applications.

You'll notice that both Square / Rectangular HSS and Round HSS use the exact same material type code of HSS. That is not a mistake. Structural Material Manager automatically determines based on the Description field contents whether the HSS line to be imported represents Square / Rectangular HSS or Round HSS.

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

Description Field. When taken in conjunction with the Material Type field, it is the Description field that identifies an item’s size. For instance, consider (3) TS 2 1/2" x 2 1/2" x 1/4", 10'-0 long, grade A500. In that example item, the 2 1/2" x 2 1/2" x 1/4" part is the Description field that identifies that particular square tube size.

The purpose of this section is to discuss the Description field and to present all of its possible component parts. In cases in which a particular part of the Description requires some elaboration (such as the Bar Grating Mesh Type or the Pipe Strength), you are referred to a separate section of this document. All non-description fields such as the Quantity, Material Type, Grade, etc. are also covered in a separate section of this document.

The Description field is to be a single, unified field even if the material item contains a multi-part description. For instance, a W Shape has two description parts: Depth and Weight per Foot. Structural Material Manager treats "10 x 54" as a single Description field in the example of a W 10 x 54. It is neither necessary nor correct to put "10" in one field and "54" in another field.

Note in the "10 x 54" example above that "10" and "54" are separated by a space, an "x" and another space. That trio of characters is used to separate the disparate parts of a Description field in many - but not all - cases. Other times, such as in a Pipe description of "2 1/2 Std.", "2 1/2" and "Std." are separated only by a space. Structural Material Manager’s use of separators within the Description field is quite natural since it is simply based on industry-standard conventions.

The leading space, "x" and trailing space trio of characters that forms the " x " separator string mentioned above can optionally be shortened to just a single "x" character. Although the industry-standard convention of adding spaces before and after "x" improves readability of the data file when viewed in a text editor (such as NotePad that ships with every copy of Windows), just "x" will suffice. Structural Material Manager always exports the data using the extra spaces, but it will properly import the data either way.

As mentioned in the Text Fields section, all Description fields are considered as text. For certain material types, it might seem that the whole-numeric or decimal-numeric types might apply to the Description, but rest assured that the Description is always treated as a text field.

The remainder of this section presents the Description field format that applies to each possible material type. The format includes the component fields that together make up the unified description field as well as any required separators between those parts. One or more examples appear for each material type.

Beams and channels: (W, S, M, HP, WT, ST, MT, C and MC Shapes)

Description Field #1: Depth

      Separator: single "x" character or space, "x" and space to form " x " trio

Description Field #2: Weight Per Foot

      W Shape Example: 12 x 58

      ST Shape Example: 10 x 47.5

Plates and Checkered Plates:

Description Field #1: Thickness (gauge thicknesses permitted)

      Separator: single "x" character or space, "x" and space to form " x " trio

Description Field #2: Width

      Example: 1/2 x 36

      Example: 10 Ga. x 12

Bar Grating:

Description Field #1: Bearing Bar Depth / Height

      Separator: single "x" character or space, "x" and space to form " x " trio

Description Field #2: Bearing Bar Width / Thickness

      Separator: single "x" character or space, "x" and space to form " x " trio

Description Field #3: Grating Width

      Separator: space

Description Field #4: See the Bar Grating Mesh Types section of this document for details. Example: 1 1/4 x 1/8 x 24 19W4


Description Field #1: Width

      Separator: single "x" character or space, "x" and space to form " x " trio

Description Field #2: Thickness (gauge thicknesses permitted)

      Example: 6 x 1/4

      Example: 4 x 12 Ga.


Description Field #1: Leg 1

      Separator: single "x" character or space, "x" and space to form " x " trio

Description Field #2: Leg 2

      Separator: single "x" character or space, "x" and space to form " x " trio

      Description Field #3: Thickness

      Example: 3 x 3 x 1/4

Square / Rectangular Tubes:

Description Field #1: Face A

      Separator: single "x" character or space, "x" and space to form " x " trio

Description Field #2: Face B

      Separator: single "x" character or space, "x" and space to form " x " trio

Description Field #3: Wall Thickness (gauge thicknesses permitted)

      Example: 4 x 4 x 1/2

      Example: 3 x 3 x 10 Ga.

Square / Rectangular HSS:

Description Field #1: Face A

      Separator: single "x" character or space, "x" and space to form " x " trio

Description Field #2: Face B

      Separator: single "x" character or space, "x" and space to form " x " trio

Description Field #3: Wall Thickness (gauge thicknesses NOT permitted)

      Example: 6 x 4 x 3/16

      Example: 2 x 2 x 1/8

Round Tubes:

      Description Field #1: Diameter

      Separator: single "x" character or space, "x" and space to form " x " trio

      Description Field #2: Wall Thickness (gauge thicknesses permitted)

      Example: 3 x 0.125

      Example: 3 x 10 Ga.

      Example: 4 x 1/2

Round HSS:

      Description Field #1: Diameter

      Separator: single "x" character or space, "x" and space to form " x " trio

      Description Field #2: Wall Thickness (gauge thicknesses NOT permitted)

      Example: 6.000 x 0.250

      Example: 3.500 x 0.125


      Description Field #1: Diameter

      Example: 2


      Description Field #1: See the Rebar Sizes section of this document for details.

      Example: 1/4" Plain

      Example: #7


      Description Field #1: Diameter

      Separator: space

      Description Field #2: see the Pipe Strengths section of this document for details.

      Example: 1/2 Std.

      Example: 1 Sch. 40

      Example: 2 XXS


      Description Field #1: Diameter

      Example: 1/2

Miscellaneous Items:

      Description Field #1: maximum 24-character description

      Example: 1" Threaded Rod

Main Members:

      Description Field #1: maximum 30-character description

      Example: Truss Assembly

Bar Grating Mesh Types. The fourth component of the Description field for Bar Grating is the Mesh Type.

The Bar Grating Mesh Type is always a whole number followed by a letter which is, in turn, followed by another whole number. Examples include 11W2, 15W4, 19W4 and 30W2. Spaces are prohibited in the mesh type. Optional dashes can appear in the mesh type, but they will automatically be stripped so that 19-W-4, for instance, becomes 19W4 upon import.

Rebar Sizes. The Description for Rebar is a text field consisting only of the Rebar size.

Most Rebar sizes begin with the "#" sign immediately followed by a whole number. Possibilities for this type of Rebar description are #3, #4, #5, etc. The "#" sign is actually optional when importing data, as Structural Material Manager will properly recognize the Rebar size even without that symbol. So, "7" and "#7" are equivalent when importing Rebar sizes. The system always includes the "#" sign when exporting such sizes.

One exceptional Rebar size not specified with the usual "#" symbol is 1/4" Plain. Structural Material Manager always exports this size as 1/4" Plain, but it can successfully import it as 1/4" Plain, 1/4" or simply 1/4.

Pipe Strengths: The second part of a Pipe Description (immediately following the Diameter) is the Strength. It is a text field.

The Pipe Strength possibilities include Standard, Extra Strong, Double Extra Strong and a Schedule number. Since there are numerous ways that these values are specified in the metals industry, Structural Material Manager goes to great lengths to accept all commonly-used Pipe Strength terminology. This section summarizes the acceptable values.

Any of the following identifiers will be taken to mean Standard:





Extra Strong - sometimes referred to as Extra Heavy - can be specified in any of these ways:











Use any of the following to mean Double Extra Strong or its equivalent, Double Extra Heavy:

















Schedules such as Sch. 40 and Sch. 80 are also supported. Do not simply specify a number. Instead, use one of the predefined Schedule abbreviations, and follow it with a space and then a whole-numeric value. Any of these abbreviations for Schedule are acceptable:





The Strength identifiers are not case-sensitive, so upper- and lower-case letters can be used interchangeably. Standard is thus the same as STANDARD, Sch. 80 is the same as SCH. 80, etc.

Gauge Thicknesses: The thickness part of the Description field for Plates, Checkered Plates, Bars and Tubes can be optionally expressed as a gauge. Since G, GA and GA. all can be used to denote a gauge, 10 G, 10 GA and 10 GA. are equivalent in indicating 10 Gauge. Also, it does not matter whether upper- or lower-case letters are used.

Optional Diameter Indicator: If a space followed by "Dia." is found in the description of a Rod, Round Tube, Rebar, Pipe or Bolt diameter, the extra " Dia." text is simply ignored when Structural Material Manager imports data. The whole-numeric portion of the diameter will still import properly.

Although a string of " Dia." is simply ignored when present in Rod, Round Tube, Rebar, Pipe and Bolt diameters, it will deliberately be retained in the descriptions of other types. That allows the " Dia." string to be successfully used in Miscellaneous Item descriptions, for instance.

Optional Inches Indicator: A quote mark indicating inches is not required in data to be imported into Structural Material Manager. However, the system knows how to elegantly ignore the quote mark if it does exist in certain Description fields. For instance, a Pipe diameter specified as 6" or a Bolt diameter of 1" will be imported as simply 6 and 1, respectively.

The use of an optional " mark to indicate inches should not be confused with use of that symbol as a text qualifier. These are, of course, entirely different purposes for the quote character.

Optional Combining of Material Type and Description Fields. Structural Material Manager always exports the Material Type and Description fields separately. According to the field order presented earlier in this document, Material Type is the third field, and Description follows it as the fourth field. However, some other programs and certain Excel spreadsheets are designed such that the Material Type and Description are together in one field. So, instead of a "W" in one field and "10 x 54" in the next, they combine the fields into one as "W 10 x 54" or perhaps compact them further into "W10x54" without so much as a space between adjacent characters. Rest assured that Structural Material Manager can elegantly import such data. Whereas it always exports the Material Type and Description fields separately, it is very flexible when importing and can accept the data either way. You do not even need to inform the system as to whether it should expect separate or combined Material Type and Description fields; each data line is analyzed as it is imported, and the system adjusts accordingly.

Non-Description Fields. While an earlier section of this document focused on the Description field and all of its possible component parts, this section concerns all of the non-Description item fields. Piece Mark, Quantity and Grade are some examples of non-description fields. Each non-description is presented along with its data type (text, whole-numeric or decimal-numeric) and any necessary information concerning the field.

There are two non-description fields that require some elaboration in order to be fully explained. They are the Material Grade and Price Unit. Those two fields are covered in separate sections of this document.

Piece Mark: Text field, 19 characters maximum. This field is optional for all types except Main Members. For Main Members, the Piece Mark not only must exist, but it also must represent a major mark rather than a detail mark (see the Production-Control chapter of the Structural Material Manager User’s Guide for more details).

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

Length: Text field. This field is optional for Miscellaneous Items, does not apply to Main Members and is required for all other material types. The expected format depends on the dimension system of the particular Structural Material Manager job from which data is being exported or into which data is being imported. The most common format is feet, inches and fractions, but inches and fractions (no feet) as well as millimeters are two other possibilities. Example Length fields in each of these three systems are 9'-10 1/2, 118 1/2" and 3009.9 mm which all happen to represent the exact same length.

Mill Mark: Text field, 6 characters maximum. The optional Mill Mark field exists for all types except Main Members.

Grade: See the Material Grades section of this document for details.

Camber: Text field. Camber applies only to Beams and Channels and is ignored for all other material types. It is expressed in an inches-and-fraction format such as 1 1/2" or 3/4".

Remarks: Text field, 30 characters maximum. Please note that the Remarks field does not apply to Miscellaneous Items and Main Members; items of these types do not have Remarks fields. If a data file contains Remarks fields for Miscellaneous Items and Main Members, Structural Material Manager will simply ignore those Remarks.

Price of One Item: Decimal-numeric field with or without an optional dollar sign. Since the Price of One Item field is the price to apply per the Price Unit, please be sure to see the Price Units section of this document for a full understanding of the Price of One Item field.

Price Unit: See the Price Units section of this document for details.

Shop Hours: Decimal-numeric field. Main Members do not contain a Shop Hours field.

Field Hours: Decimal-numeric field. This field does not exist for Main Members.

Sequence: Text, 4 characters maximum.

Line Price: Decimal-numeric field. This field equals the Quantity field multiplied by the Price of One Item field. Of course, it will be exactly the same as the Price of One Item field whenever the Quantity happens to be (1). This field is always exported by Structural Material Manager so that outside applications have access to this figure, but Structural Material Manager itself ignores the Line Price when importing data (relying instead on its own internal calculations).

Weight of One Item: Decimal-numeric. Structural Material Manager exports this field for items of all material types. However, it imports it only for Miscellaneous Items since item weights are able to be calculated internally for all other material types. If a Weight of One Item figure is supplied for items of any type other than Miscellaneous Items, Structural Material Manager will simply ignore the value.

Line Weight: Decimal-numeric. As is the case with the Line Price, the Line Weight is a value that Structural Material Manager always exports for use in other applications, but it completely ignores the value during import. The exported Line Weight figure is simply the Quantity field multiplied by the Weight of One Item field.

Material Grades. Grade is a text field. It combines an optional prefix character with a mandatory whole-numeric part. Examples are A36, A572, S304, 6061 and 6063.

The optional prefix can be a single letter, and the required whole-numeric portion must not exceed 9999.

Note that Main Members do not possess a Grade field, and Structural Material Manager will simply ignore a Main Member grade that is found while importing data.

Price Units: The Price Unit works hand-in-hand with the Price of One Item field. It makes the Price of One Item field meaningful for these types by indicating whether the price is to be applied per each, 100 items, pound, CWT, foot or square foot.

Here are the valid Price Unit field identifiers that Structural Material Manager recognizes for each of the possible units:

Each: E or EACH

Per 100 Items: H or 100

Per Pound: L, LB or LB.

Per CWT: C or CWT

Per Foot: F, FT, FT. or FOOT

      Per Square Foot: SQ FT (note the space between "SQ" and "FT")

The Price Unit field is not case-sensitive. "CWT" and "cwt", for instance, have the exact same effect of indicating what is commonly referred to as "hundred weight".

Although Structural Material Manager exports a Price Unit field for every material item, it only imports that field for Miscellaneous Items and Main Members. The Price Unit field is indeed part of the ASCII-delimited field structure for both import and export, but keep in mind that for all types except Miscellaneous Items and Main Members, the Price Unit field is completely ignored during import. The concept of a Price Unit is still relevant for all of the other material types such as Beams, Plates, Angles, etc., but those types have their Price Units defined on a per-type basis within Structural Material Manager itself. The setup of those units is described in the Structural Material Manager User’s Guide (see the Estimating chapter).

A word of explanation is in order concerning the fact that Miscellaneous Items and Main Members are the only types for which the Price Unit field gets imported. Like the other types, Miscellaneous Items and Main Members have default price units set up within Structural Material Manager, but there is a key difference: the default unit can be overridden for any Miscellaneous Item or Main Member. This variable price unit that applies to these two types is useful because there is no way to determine in advance what types of material might be entered as Miscellaneous Items or Main Members. Some items may be best priced per pound, while perhaps others should be priced per foot, per 100 units, etc.

As mentioned above, Main Members employ a variable price unit that can be changed with each entry. This price unit applies only to the detail items attached to the major piece, as Main Members themselves never actually receive a price entry. The details of this are described later in the Unit Pricing section of Structural Material Manager’s User’s Guide.

One particular price unit, Per Square Foot (represented as "SQ FT" in data files), deserves special mention. Structural Material Manager exports "SQ FT" if that price unit happens to be in effect for Bars, Plates, Checkered Plates or Bar Grating. Those are the only types that contain a Width as part of their Description field, so of course they are the only ones for which a "Length x Width" multiplication can be carried out in applying the Per Square Foot unit. Although Structural Material Manager might export "SQ FT", it is will never import that unit. Remember: the Price Unit field only gets imported for Miscellaneous Items and Main Members, and the Per Square Foot unit cannot be applied to Miscellaneous Items or Main Members since the system has no way to determine which part of the free-style description might represent a Width field.

Mandatory Versus Optional Fields: Structural Material Manager always exports all 18 fields listed in the Field Layout section of this document. That very same delimited field layout can also be used for a file that you want Structural Material Manager to import, as the system can import any delimited file that it previously exported. That compatibility between the export and import formats does not mean, however, that all 18 fields necessarily must be present in files that the system imports. When an external application outputs a file that is later to be imported into Structural Material Manager, many item fields in which you have no interest can simply be skipped.

Fields only up to and including the Length (the 5th of 18 fields) are mandatory during import. Any fields beyond the Length will simply be skipped if they are absent from the field layout, and default values will be applied to those missing fields.

Here is what happens to each of the optional fields when they are omitted from a file that Structural Material Manager imports:

Mill Mark: A blank string is assigned.

Grade: Defaults within Structural Material Manager are applied based on material type.

Camber: A default of 0 is applied to Beams and Channels only; other types have no Camber.

Remarks: A blank string is assigned.

Material Price: 0.00 is assigned.

Price Unit: Defaults within Structural Material Manager are applied based on material type.

Shop Hours: 0.00 is assigned.

Field Hours: 0.00 is assigned.

Sequence: The default Sequence set up within Structural Material Manager is applied.

Price of One Item: 0.00 is assigned.

Line Price: This is a calculated value that is never imported anyway.

Weight of One Item: 0.00 is assigned for Misc. Items; value is calculated for other types.

      Line Weight: This is a calculated value that is never imported anyway.

So, as the numerous defaults described above imply, there is no need to "pad" a file with unnecessary fields beyond the last field in which you are interested. If the Length is the last field for which you have a use, then you can simply let the data line end there. Likewise, you might also decide to terminate the line after the Grade field. In neither example would there be any need to add empty fields beyond that point just for the sake of occupying all 18 fields.

"Dummy" fields will indeed be needed to "pad" a data file’s layout if there are fields you don’t actually need, and they come before the last field in which you are interested in importing. For example, suppose you never have a use for the 8th field which is Camber, but you do want to import Remarks which is the 9th field in the layout. In that case, a dummy field would be needed as a placeholder for Camber so that Remarks will still be the 9th field. Such a dummy placeholder field can be completely empty - it needs no value at all - but a delimiter must be present in that position in order to keep the field count correct (maintaining Remarks as the 9th field in this example).

Here is an actual tilde-delimited data line showing one blank field issued for the Mill Mark (the 6th field), another blank field for Camber (the 8th field), and "No Paint" as the Remarks field:

      1C1~6~W~12 x 58~19'-11 3/4~~A992~~No Paint

Note that the data line above contains only the first (9) fields as defined in the full 18-field layout. Upon import, default values are automatically applied to the missing item fields (the 6th, 8th and 10th..18th fields in this example).

Two fields are never imported. They are Line Price (the 16th field) and Line Weight (the 18th field). These fields are published as part of the import field layout only so that the import layout will exactly match the export layout. These two fields can have any contents you desire, or they can be completely blank; they are simply skipped over during import.

Since the 17th field - Weight of One Item - is only imported for Miscellaneous Items, then import lines can be safely terminated at or before the 15th field for all types except Miscellaneous Items. For Miscellaneous Items, you’ll of course need to issue a placeholder for the 16th field - Line Price - so that Weight of One Item will maintain its field position of 17.

The 18th and final field - Line Weight - is always safe to omit from import files. Structural Material Manager does not import that field anyway, and no fields follow it. There is no harm in including it in the import layout, but the field’s contents will always be ignored rather than actually imported.