P&ID File Format

The .xml file specifies each piece of equipment and pipe or tube system to include in the routing assembly, and must adhere to the SOLIDWORKS P&ID file format.

To view an example of the P&ID file format, double-click the sample P&ID xml file from the following location in C:\ProgramData or C:\Documents and Settings\All Users\Application Data, depending on your operating system:
SOLIDWORKS\SOLIDWORKS version\design library\routing\piping\pnid sample version.xml

P&ID Data

Attribute string values are optional unless otherwise noted. Required values and elements are indicated by *.
Element Attribute Element or Attribute Description
<PnIDData>*   Specifies the container element that starts all P&ID files.
Requires the closing element </PnIDData>.
<version> value Defines a string value for the P&ID file version.
<SystemInfo>*   Specifies a container for elements describing the piping and instrumentation system.
Requires the closing element </SystemInfo>.
<Description>* value* Defines a string value that describes the piping and instrumentation system.
The description appears in the tree view of a P&ID validation report.
<Comment> value Defines a string value for a comment about the P&ID file.
<EquipmentReferenced>*   Specifies the container element for all <Equipment> elements in the piping and instrumentation system.
Requires the closing element </EquipmentReferenced>.
<PipelineInfo>   Specifies a container element for pipe fittings and connections.
Requires the closing element </PipelineInfo>.
You can define multiple elements to model multiple pipelines in the routing assembly, but you cannot assign two pipelines with the same tag in separate routing assemblies.
<TubelineInfo>   Specifies a container element for tube fittings and connections.
Requires the closing element </TubelineInfo>.
You can define multiple elements to model multiple tubelines in the routing assembly, but you cannot assign two tubelines with the same tag in separate routing assemblies.
<Description> value Defines a string value that describes the piping or tubing system.
<Comment> value Defines a string value for a comment about the piping or tubing system.
<Name>* value* Defines a string value for the name of the piping or tubing system.
<Tag>* value* Defines a unique string value for the piping or tubing system tag.
This value appears in the Piping and Instrumentation tab of the Task Pane.
<In-lineFittings>*   Specifies a container element for pipe or tube fittings defined in <Fitting> elements.
Requires the closing element </In-lineFittings>.
<Connections>*   Specifies a container element for pipe or tube connections defined in <PipeSegment> or <TubeSegment> elements.
Requires the closing element </Connections>.

Equipment and Fittings

Attribute string values are optional unless otherwise noted.
Element Attribute Element or Attribute Description
<Equipment> * or <Fitting>*   Specifies the container element for a piece of equipment or fitting in the piping and instrumentation system.
Requires the appropriate closing element.
<ID>* value* Defines a unique string value that identifies the piece of equipment or fitting.
<Tag>* value* Defines a unique string value for the equipment or fitting tag.
This value appears in the Piping and Instrumentation tab of the Task Pane.
<Description> value Defines a string value that describes the piece of equipment or fitting.
<PartNumber> value Defines a string value for a SOLIDWORKS part number for the piece of equipment or fitting.
If you do not assign a part number, you can specify the library search with the <Type>, <SubType>, <Size>, and <Specification> elements.
<Config> value Defines a string value for the SOLIDWORKS part configuration for the piece of equipment or fitting.
<Area> value Defines a string value for the equipment or fitting Area subtag.
<Type> value Defines a string value for the component type, for example, "tee" or "reducer".
If you do not assign a <Type> value, you are prompted to search for the file when the Select Component dialog box appears.
<SubType> value For valve part types, defines a string value for the subtype, for example, "gate" or "globe".
<System> value Defines a string value for the equipment System subtag, which assigns a name to the routing subsystem to which the piece of equipment or fitting belongs.
<Size> value Defines a string value for the equipment or fitting Size subtag, which specifies the nominal size. The size aids the database search when you do not specify the part number and configuration.
<Specification> value Defines a string value for the Specification subtag.
<Custom>  
Specifies the container element for custom attributes and values. Include the <CustomAttribute> element within the <Custom> element.
Custom attribute values provide metadata, but are not referenced when you create the routing assembly from the P&ID file.

For example, to define a custom attribute width with the value 1.345 for a pipe segment, include the following in the <PipeSegment> element: <Custom> <CustomAttribute name="width" value="1.345"/> </Custom>.

<CustomAttribute> name Defines a string for the name of the custom attribute.
value Defines a string value for the custom attribute.

PipeSegment

Element Attribute Element or Attribute Description
<PipeSegment>*   Specifies the container element for a pipe segment in the piping and instrumentation system.
Requires the closing element </PipeSegment>.
<ID>* value* Defines a unique string value that identifies the pipe segment.
<Tag>* v*alue Defines a unique string value for the pipe segment tag.
<Diameter> value Defines a string value for the pipe diameter. This value is interpreted in inches.
<FromEquip>* value* Defines a string that matches the <tag> value of the equipment from where the pipe segment is routed.
You can reference tag values for any <Equipment> element and to any <Fitting> elements specified within the same <PipelineInfo> element.
<FromEquipPort>* value* Defines a string value for an equipment port from which the pipe segment is routed.
<FromEquipSize> value Defines a string value for the size of the equipment from which the pipe segment is routed.
<ToEquip>* value* Defines a string that matches the <tag> value of the equipment to where the pipe segment is routed.
You can reference tag values for any <Equipment> element and to any <Fitting> elements specified within the same <PipelineInfo> element.
<ToEquipPort>* value* Defines a string value for an equipment connection point port ID to which the pipe segment is routed.
<ToEquipSize> * value* Defines a string value for the size of the equipment to which the pipe segment is routed.
<Area> value Defines a string value for the pipe segment Area subtag.
<System> value Defines a string value for the pipe segment System subtag, which assigns a name to the routing subsystem to which the pipe segment belongs.
<Size> value Defines a string value for the pipe segment Size subtag, which specifies the nominal size.
<Fluid> value Defines a string value for the pipe segment Fluid subtag, which specifies the type of fluid transported through the pipe segment, such as oil or water.
<PhaseState> value Defines a string value for the pipe segment Phase State subtag, which specifies the physical phase of the material transported through the pipe segment. Assign one of the following values:

Solid

Liquid

Gas

<Insulation> value Defines a string value for the pipe segment Insulation subtag.
<Identifier> value Defines a string value for the pipe segment Identifier subtag.
Enter a unique value for the Identifier subtag to ensure that each pipe segment tag defined from your tag scheme is unique.
<Custom>  
Specifies the container element for custom attributes and values. Include the <CustomAttribute> element within the <Custom> element.
Custom attribute values provide metadata, but are not referenced when you create the routing assembly from the P&ID file.
<CustomAttribute> name Defines a string for the name of the custom attribute.
value Defines a string value for the custom attribute.

TubeSegment

Element Attribute Element or Attribute Description
<TubeSegment>*   Specifies the container element for a tube segment in the piping and instrumentation system.
Requires the closing element </PipeSegment>.
<ID>* value* Defines a unique string value that identifies the tube segment.
<Tag>* v*alue Defines a unique string value for the tube segment tag.
<Diameter> value Defines a string value for the tube diameter. This value is interpreted in inches.
<FromEquip>* value* Defines a string that matches the <tag> value of the equipment from where the tube segment is routed.
You can reference tag values for any <Equipment> element and to any <Fitting> elements specified within the same <PipelineInfo> element.
<FromEquipPort>* value* Defines a string value for an equipment port from which the tube segment is routed.
<FromEquipSize> value Defines a string value for the size of the equipment from which the tube segment is routed.
<ToEquip>* value* Defines a string that matches the <tag> value of the equipment to where the tube segment is routed.
You can reference tag values for any <Equipment> element and to any <Fitting> elements specified within the same <TubelineInfo> element.
<ToEquipPort>* value* Defines a string value for an equipment connection point port ID to which the tube segment is routed.
<ToEquipSize> * value* Defines a string value for the size of the equipment to which the tube segment is routed.
<Area> value Defines a string value for the tube segment Area subtag.
<System> value Defines a string value for the tube segment System subtag, which assigns a name to the routing subsystem to which the pipe segment belongs.
<Size> value Defines a string value for the tube segment Size subtag, which specifies the nominal size.
<Fluid> value Defines a string value for the tube segment Fluid subtag, which specifies the type of fluid transported through the tube segment, such as oil or water.
<PhaseState> value Defines a string value for the tube segment Phase State subtag, which specifies the physical phase of the material transported through the tube segment. Assign one of the following values:

Solid

Liquid

Gas

<Insulation> value Defines a string value for the tube segment Insulation subtag.
<Identifier> value Defines a string value for the tube segment Identifier subtag.
Enter a unique value for the Identifier subtag to ensure that each tube segment tag defined from your tag scheme is unique.
<Custom>  
Specifies the container element for custom attributes and values. Include the <CustomAttribute> element within the <Custom> element.
Custom attribute values provide metadata, but are not referenced when you create the routing assembly from the P&ID file.
<CustomAttribute> name Defines a string for the name of the custom attribute.
value Defines a string value for the custom attribute.