MDL definitions

MDL models can be constructed using the following definitions and sub-definitions.

The numbers and partcodes in a definition must be in the correct positions, but the order of sub-definitions within a definition is flexible, as they are identified by their respective keywords.

In each definition description, the definitions are presented using either example values or descriptive strings as arguments, with the understanding that the numbers and codes shown will be replaced by other values. Notably, some definitions require integer (whole) numbers, while others may use decimal fractions. When the argument for a definition is another definition (which, in turn, has its own arguments), only the definition name is shown to simplify the presentation and make the definitions easier to read.

ABRV ADT AIRD AL AMA AMI
AS AT ATTR AU AV BRANCH
C_ACCEPT_BY C_ACCEPT_TI C_OLD_ROUTE C_ROUTE_STA C_ROUTED_BY C_ROUTED_TI
CABLE CBLLEN CBLSTAT CBTP CNPART CNPFLAGS
CNPTYPE CONTCAT CSLEN CT CTPF CTPT
CUT1 D DEVC ELEN EPDL EPENLEN
FL GDL GROUP GRT H H2
HULLNORFH HVAC HVDI HVDT HVMC HVSP
HVST ISN MIG MT NATTR NAT
NAV NHOLEDIMS NI NO NP NS
P PC PIPE PR R RORG
SD SN SPACE ST STDC STEL
STRC SYSCOL SYSID SYSTEM TAGS W
W2          

ABRV(mdlobjs,g27)

Defines an abbreviation for a name: the name in the second argument can be used as an abbreviation for the name in the first argument.

Abbreviations can be used to assign short temporary names to groups (GROUP) and attributes (ATTR). As a result, group membership declarations and attribute value assignments require less space, and name look-ups are faster.

ADT(1)

Defines the type of an air duct component.

  • 0 – Straight duct.
  • 1 – Curve.
  • 2 – Transition piece.
  • 3 – Half-curve.

AIRD(plate, ADT(), D(), ST(), MT(), H(), W(), RD(), W2(), H2(), NO(), MIG(), AV(), AS())

This definition is obsolete—it was used in older software versions to define an air duct part. HVAC is now used instead.

AL(8)

Defines the maximum length for the values of a string-type attribute.

AMA(999.0)

Defines the maximum value for a numeric attribute. Decimal fractions are allowed.

AMI(0.0)

Defines the minimum value for a numeric attribute. Decimal fractions are allowed.

AS(id_of_other_object, order, type, value)

Defines an association between the owner of a definition and another object.

  • id_of_other_object – Identifies the other object that is associated with the owner.

  • order – Set to 1 if the owner of AS is the first object in the associated object pair.

  • type – Specifies the type of the association.

  • value – Specifies the value of the association.

AT(2)

Defines the type of values assigned to an attribute.

  • 0 – Flag.
  • 1 – Number.
  • 2 – String.

name = ATTR(ab, ST(), MT(), AT(), AU(), AL(), AMA(), AMI())

Defines an attribute into the computer model. The attribute definition must precede any attribute value assignments involving this attribute.

  • name – Defines the attribute name.

  • ab – Defines an abbreviation for the name of the attribute.

  • ST – Specifies the object status.

  • MT – Specifies the modification time.

  • AT – Specifies the type of values assigned to the attribute.

  • AU – Specifies whether the values of the attribute must be unique.

  • AL (optional, depends on AT) – Specifies the maximum length for the values of a string-type attribute.

  • AMI, AMA (optional, depends on AT) – These arguments specify the minimum and maximum values of a numeric attribute.

AU(0)

Defines whether an attribute value must be unique.

  • 0 – Values do not need to be unique.
  • 1 – Values must be unique.

AV(abb)

AV(abb,123.456)

AV(abb,SOMETHING)

Defines the value to assign to an attribute.

  • abb – Defines the abbreviation of the attribute.

  • The second argument defines the value of a numeric or string-type attribute. Omitted for flag-type attributes.

BRANCH(objid, x,y,z, connection_sub_type)

Definition that the UndoManager uses in its MDL files to create branch anchors to pipes and HVAC parts.

  • objid – Defines the object ID as a hex number without 0x.

  • x,y,z – Defines the coordinates of the point where the branch anchor should be located.

  • connection_sub_type (optional) – Defines the connection subtype for the connection point.

C_ACCEPT_BY

Specifies the ID of the user who accepted the cable.

C_ACCEPT_TI

Specifies the time when the cable was accepted.

C_OLD_ROUTE

Specifies the old route of the cable as a list of node locations.

C_ROUTE_STA

Specifies the routing status of the cable.

  • 0 – OK.

  • 1 – Changed.

  • 2 – Not routed.

  • 3 – Broken.

  • 4 – Directly routed, OK.

  • 5 – Directly routed, length changed.

  • 6 – Rerouted.

  • 255 – Not defined.

C_ROUTED_BY

Specifies the ID of the user who routed the cable.

C_ROUTED_TI

Specifies the time when the cable was routed.

CABLE(partid, route_signature, ST(), CBLLEN(), CBLSTAT(), P(), ELEN(), EPENLEN(), P(), ELEN(), EPENLEN())

Defines a cable into the computer model.

  • partid – Specifies the part ID of the cable material.

  • route_signature – Specifies an integer value that defines the route signature calculated from the cable router points. Set to 0 if the cable does not have a route defined.

  • CBLLEN – Specifies the cable length.

  • CBLSTAT – Specifies the cable status.

  • P – These definitions specify the cable's head location and tail location, respectively.

  • ELEN – These definitions specify the cable's head length and tail length, respectively.

  • EPENLEN – These definitions specify the cable's length from head equipment to penetration object and from tail equipment to penetration object, respectively.

CBLLEN

Specifies the total length of a cable in millimeters. The value is given as a floating-point number.

CBLSTAT

Specifies the cable status. The value is given as an integer.

  • Bit 1 – Cable status as 'Not approved' (bit is not set) or 'Approved' (bit is set).
  • Bits [2,4] – Unused, must be set to 0.
  • Bits [5,9] – Interference class of the cable.
  • Bit 10 – Set if the cable head is associated with equipment.
  • Bit 11 – Set if the cable tail is associated with equipment.

CBTP(partid, SD(), ST(), CTPT(), CTPF(), RORG(), CUT1(), MT(), D(), D(), NO(), MIG(), AV(), AS())

Defines a cable tray part into the computer model.

  • partid – Specifies the part ID in the corporate catalog.

  • SD – Specifies the specification number and short code.

  • ST – Specifies the object status.

  • CTPT – Specifies the type of the cable tray part.

  • CTPF – Specifies flags.

  • RORG – Specifies the reference point for routing.

  • CUT1 (optional) – Specifies how much was cut from the first end of the full-length cable tray part.

  • MT – Specifies the modification time.

  • D – These unit vector definitions specify the directions of the local x-axis and y-axis to define the orientation of the part in the global coordinate system.

  • NO – Specifies the origin point for the instantiated model, located at the connection point NO(1,…).

  • MIG – Assigns the object to a group.

  • AV – Assigns attributes to the object.

  • AS – Defines an association between the owner of the definition and another object.

CNPART

Defines that an object is of type 'Cable Network Part'.

CNPFLAGS

Specifies flags for cable network parts that are part of the cable routing network. The value is given as an integer.

Flags for a node-type (5) cable network part:

  • Bits [1,4] – Node type as a value:
    • 1 – End of cable way run.

    • 2 – Branch point of a branch part.

    • 3 – Change of direction.

    • 4 – Branch point that the program adds as a branch "anchor" node to a straight cable tray part. May also be a user-defined branch point node.

    • 5 – Penetration component.

    • 6 – User-defined node.

    • 7 – Split point that program adds when segment is too long. The node ID is always generated.

    • 8 – Combined node; indicates that there are at least two nodes in the same location.

  • Bit 5 – Set if node is a user-defined node.
  • Bit 6 – Set if node is disabled from cable routing.
  • Bit 7 – Set if node ID is defined manually.

Flags for a segment-type (6) cable network part:

  • Bits [1,4] Segment type as a value:

    • 1 – Segment along cable tray.
    • 2 – Segment is air jump.
    • 3 – Segment is branch jump.
    • 4 – Segment is user-defined.
    • 5 – Segment along penetration.
    • 6 – Unused.
    • 7 – Segment along cable conduit.
  • Bit 5 Set if segment is a user-defined segment.

  • Bit 6 Set if segment is disabled from cable routing.

  • Bit 7 Set if segment is blocked.

CNPTYPE

Specifies the type of a cable network part (node 0, segment 1).

CONNECT(obj_node, connect_to_oid, connect_to_node)

Defines a connection from one object node to another.

  • obj_node – Specifies a positive number that identifies the connecting node in the object definition.
  • connect_to_oid – Specifies a quoted string that identifies the object ID of the target object.
  • connect_to_node – Specifies a positive number that identifies the target node in the target object.

CONTCAT

Defines an object content category.

CSLEN

Defines the length of a 3D space that models a Cable Way Space. The value is given as a floating-point number.

CT(301)

Defines the face type of a connection point as primary type * 100 + subtype. In other words, the primary type is expressed as one digit ('3' in the example), followed by the subtype expressed as two digits ('01' in the example). Values greater than 9 are coded as A – 10; B – 11; etc.

CTPF

Specifies flags for cable tray parts that are part of the cable routing network. The value is given as an integer.

Flags for a node-type (5) cable tray part:

  • Bits [1,4] – Unused and should be set to 0.
  • Bit 5 – Set if user-defined node.
  • Bit 6 – Set if node is disabled from cable routing.
  • Bit 7 – Set if node ID is defined manually.

Flags for a segment-type (6) cable tray part:

  • Bits [1,4] – Segment type as a value:

    • 1 – Segment along cable tray.
    • 2 – Segment is air jump.
    • 3 – Segment is branch jump.
    • 4 – Segment is user-defined.
    • 5 – Segment along penetration.
    • 6 – Unused.
    • 7 – Segment along cable conduit.
  • Bit 5 – Set if user-defined segment.

  • Bit 6 – Set if segment is disabled from cable routing.

CTPT

Specifies the type of a cable tray part. The value is given as an integer.

  • 0 – Used as manufactured.
  • 1 – Straight, may have end cuts.
  • 2 – Bent in plane, may have end cuts.
  • 3 – Bent up, may have end cuts.
  • 4 – Bent down, may have end cuts.
  • 5 – Models a node in the network that the cable router builds.
  • 6 – Models a segment between two nodes.

CUT1

Defines how much of the original straight cable tray part was cut at the first end. The location at node 1 is offset by this amount from the actual local origin of the component model that models the full-length straight cable tray. The value is given as a floating-point number.

D(1.0, 0.0, 0.0)

Defines the Cartesian components of a unit vector. If the MDL file is read in as a module, the components of the vector are transformed according to the module transformation matrix.

name = DEVC(model / GDL(), P(), D(), D(), ST(), MT(), NO()…, MIG()…, AV()…, AS()…)

Defines a piece of equipment into the computer model.

  • name (optional) – Defines the object name; if given, used as the position ID.

  • model / GDL – This argument specifies how to build the component model.

    • Using the name of the component model. In MDL created with Plant/Outfitting version 4.x, this name is the SDE-name by which the component was known back then, and Plant Modeller will search the COS databases for an object with this name. In MDL created with Plant/Outfitting version 5.x or later, this name is the OID string of the corresponding COS object.

    • Using an embedded GDL definition. If present, the component model is built from the text contained in it.

    • Using a GDL name beginning with the # character. If present, a so-called reference GDL is used. Plant Modeller will look for the GDL in the file site/pm/refgdl and makes the object use the embedded GDL obtained from the referenced GDL file. After the MDL is loaded, these reference GDL files are removed. This method is used when 3D Dump files are imported.

  • P – Specifies the local origin of the component model within the global coordinate system.

  • D – These unit vector definitions specify the directions of the local x-axis and y-axis of the component model in the global coordinate system.

  • ST – Specifies the object status.

  • MT – Specifies the modification time.

  • NO – Node definitions specify the status of connection points when the MDL file was generated. When the MDL file is read in, these are used only to check if any changes have taken place with respect to the connection points defined in the component model. Connection point data from the component model is used when the object is entered into the computer model. Differences between old and new connection points are reported when the MDL file is read in.

  • MIG – Assigns the object to a group.
  • AV – Assigns attributes to the object.

  • AS – Defines an association between the owner of the definition and another object.

ELEN

Defines the cable's head length (1st instance) or tail length (2nd instance). The value is given as a floating-point number.

EPDL("OidA"), EPDL("OidB")

Defines a COS Object ID string that defines a COS object of type "Externally Provided P&I Data" or "External Data Management" or both (if present).

EPENLEN

Defines the length from the cable's head (1st instance) or tail (2nd instance) equipment to the associated penetration object. The value is given as a floating-point number.

FL(1)

Defines the direction of flow in a connection point.

  • 0 – Don't care.
  • 1 – In.
  • 2 – Out.

GDL("text for the GDL from which component model is built")

Defines an embedded GDL for a DEVC, STDC, STRC, or SPACE definition.

name = GROUP(ST(), MT(), GRT(), MIG()…, AV()…, TAGS(), CONTCAT())

Defines a group into the component model. The group definition must precede any membership (MIG) declarations directed to this group.

  • name – Defines the group name; must be given.

  • ST – Specifies the object status.

  • MT – Specifies the modification time.

  • GRT – Specifies the group type.

  • MIG – Assigns the group to a higher-level group.

  • AV – Assigns attributes to the group.

  • TAGS – Assigns attributes to the line definition that the group represents. This definition is only used if the MDL is of type "FMT" and the group represents a line definition.

  • CONTCAT (optional) – Content category.

GRT(5)

Defines the group type of a group. The value must match a group type number in one of the group type entries loaded from the group type definition file.

H(250.0)

Defines the height of an air duct component or the height in an air duct type connection face. Decimal fractions are allowed.

H2(330.0)

Defines the second height of a transition type air duct component. Decimal fractions are allowed.

HULLNORFH

A hull construction part that has this set to 1 does not allow hole requests.

HVAC(partid, ST(), HVMC(), RORG(), HVDT(), W(), H(), SD(), HVDI(), HVSP(), HVST(), NO(), AV(), MIG(), AS())

Defines an HVAC part into the computer model.

  • partid – Specifies the part ID of the plate from which the component will be manufactured.

  • ST – Specifies the object status.

  • MT – Specifies the modification time.

  • HVMC – Specifies the modeling category.

  • RORG – Specifies the reference point for routing.

  • HVDT – Specifies the cross-section type.

  • W – Defines the width of the part.

  • H – Defines the height of the part.

  • SD – Specifies the specification number and short code.

  • HVDI (optional) – Specifies the type of dimensioning used for width and height.

  • HVSP (optional) – Specifies parameters for a part modeled using an internal shape.

  • HVST (optional) – Specifies the internal shape type for a part modeled using shapes.

  • NO – Node definitions define the location of endpoints and the directions of end normals.

  • MIG – Assigns the object to a group.
  • AV – Assigns attributes to the object.

  • AS – Defines an association between the owner of the definition and another object.

HVDI

Specifies the type of dimensioning used for the width and height of a duct part. Only used for duct parts where the modeling category HVMC is set to either 'straight duct' or 'shape'. The value is given as an integer.

  • 0 – Inner dimensioning; plate thickness is not included in width/height.

  • 1 – Outer dimensioning; plate thickness is included in width/height.

HVDT

Specifies the cross-section type for a straight HVAC part. The value is given as an integer.

  • Rectangular
  • Round
  • Oval

HVMC

Specifies the modeling category for an HVAC part. The value is given as an integer.

  • Bit 1 specifies if straight duct is to be modeled as hollow.

  • Bits 2–3 specify the type of the HVAC part:

    • Straight duct: model stores end points and end normals.
    • Shape: model stores parameters and transformation.
    • Component: model is instantiated from a catalog size object.

HVSP

Specifies the parameters for an HVAC part that is modeled using an internal shape. The value is given as a string.

The available parameters for each shape are described in Duct part design rules for shapes. For example, for a T-piece this value is ".mr=250 .ms=200 .nB=300 .nC=300 .nD=50 .nE=50 dw2=400 .nA=300". The meaning of the tags can be found in the script header file include/pm_core_tags.h.

HVST

Specifies the internal shape type for an HVAC part modeled using shapes. The value is given as an integer.

  • 1 – Rectangular bend.
  • 2 – Rectangular asymmetric curve.
  • 3 – Rectangular transition.
  • 4 – Rectangular branch.
  • 5 – Rectangular to round transition.
  • 6 – Lateral radius Y.
  • 8 – Unequal circular radius lateral Y.
  • 9 – Rectangular end cap.
  • 10 – Rectangular rounded boot.

ISN(1,isc)

Defines the specification number and short code for the insulation of an air duct (HVAC), piping part (PPART), or standard component (STDC).

  • The first argument specifies the specification number from 1 to 3.

  • The second argument specifies the short code of the insulation.

MIG(g27)

Defines a membership declaration in a group.

  • The value is given as a string that specifies the abbreviation of the target group.

MT(612573047)

Defines the last modification time of an object.

  • The value is given as an integer that represents seconds since January 1, 1970. If the MDL file is read in as a module, the value is set to the current time.

name = NATTR("tag",NAT())

Defines an attribute for a connection node.

  • name – Defines the name of attribute.

  • tag – Defines the tag of the attribute.

  • NAT – Specifies the type of the attribute.

NAT(type)

Defines the type of a node attribute.

  • 0 – Integer.

  • 1 – Number.

  • 3 – String.

  • 4 – Time.

  • 5 – Coded integer.

  • 6 – Enumerated string.

NAV(abb, 123)

NAV(abb, 123.456)

NAV(abb,"a string")

Defines the value of the node attribute identified by the abbreviation 'abb'.

NHOLEDIMS(dim0, dim1, …, dimN)

Defines the dimensions of a node that represents a hole.

NI(125)

Defines the node ID number of a connection point in the range 1–255.

NO(NI(), P(), D(), CT(), D(), W(), H(), NAV(), FL)

NO(NI(), P(), D(), CT(), D(), NS(), NP(), NAV(), FL)

NO(NI(), P(), D(), CT(), D(), NHOLEDIMS(), NAV(), FL)

Defines a connection point. All arguments are sub-definitions; the first four arguments are mandatory to all, the rest are optional and/or depend on the face type.

  • NI – Defines the node ID number.

  • P – Defines the location of the connection point.

  • D – Specifies the direction normal to the face.

  • CT – Specifies the face type at the connection point.

  • D (optional) – A second unit vector definition is given if the face type requires an additional direction. For example, for air duct faces, this defines the width direction.

  • One of (mutually exclusive):

    • W, H – Width, Height

    • NS, NP – Nominal size, Nominal pressure

    • NHOLEDIMS – Dimensions of a node that represents a hole.

  • NAV (optional)– Assigns an attribute to the node.

  • FL (optional) – Specifies the flow direction. If omitted, set to 'don't care'.

Node definitions present in object definitions can use a CONNECT sub-definition to specify how a node in the object connects to another object/node.

NP(300.0)

Defines the nominal pressure for a connection point. Decimal fractions are allowed.

NS(87.5)

Defines the nominal size for a connection point. Decimal fractions are allowed.

P(100.0, 200.0, 300.0)

Defines the Cartesian (x, y, z) coordinates for a point. If the MDL file is read in as a module, the coordinates of the point are transformed according to the module transformation matrix.

PC(partid, 3, BND, SD(), SN(), PR(), P(), AV()…, AS()…)

Defines the next inline component in a pipe.

  • partid – Specifies the part ID in the corporate catalog.

  • The second argument specifies the geometry point (1–5) located at the endpoint of the part.

  • BND (optional) – Specifies that the component is a bent pipe.

  • SD (optional) – Defines the specification and short code from which the part was input. If omitted, part is considered to be an "out-of-spec part".

  • SN (optional) – Defines the insulation specification.

  • PR (optional) – Defines the rotation around the centerline. If omitted, rotation is set to 0.

  • P (optional) – Defines the endpoint, which is the location to which this component advances the pipe.

  • AV (optional) – Assigns attributes to the pipe part.

  • AS (optional) – Associates the pipe part with other objects or pipe parts.

PIPE(ST(), MT(), NO(), NO()…, PC()…, MIG()…, AV()…, AS()…)

Defines a pipe into the computer model.

  • ST – Specifies the object status.
  • MT – Specifies the modification time.

  • NO – There must be at least two node definitions that define the endpoints of the pipe. Additional nodes define the points where outlets, stub-ins, or supports are connected to the pipe.

  • PC – There must be at least one pipe component definition. Pipe components are assembled in the order in which they are encountered. It is assumed that the end point of the last component is at the same location as its second node.

  • MIG (optional) – Assigns the object to a group.
  • AV (optional) – Assigns attributes to the object.

  • AS (optional) – Defines an association between the owner of the definition and another object.

PPART

The object definition of a piping part depends on the type of the part.

straight | flexible curve | machine bend | free-radius bend | fixed component

PPART(partid, PPARTMC(1), PPARTSL(axis-length), D(axis-dir), ST(), MT(), [SD()(),] [ISN(),] [PPARTPREF(),] NO()…, MIG()…, AV()…, AS()…)

Defines a straight pipe piece.

PPART(partid, PPARTMC(2), PPARTFLXA(curve-angle), D(x-dir),D(y-dir), ST(), MT(), [SD()(),] [ISN(),] NO()…, MIG()…, AV()…, AS()…)

Defines a flexible curve.

PPART(partid,PPARTMC(3),PPARTBNDA(bend-angle), PPARTBNDM(oid_bending_machine), D(x-dir),D(y-dir), ST(), MT(), [SD()(),] [ISN(),] [PPARTPREF(),]NO()…, MIG()…, AV()…, AS()…)

Defines a machine bend.

PPART(partid,PPARTMC(4),PPARTBNDA(bend-angle), PPARTBNDR(bend-radius),D(x-dir),D(y-dir),ST(),MT(),[SD()(),][ISN(),] [PPARTPREF(),]NO()…, MIG()…, AV()…, AS()…)

Defines a free-radius bend.

PPART(partid, PPARTMC(5), D(x-dir),D(y-dir), ST(), MT(), [SD()(),] [ISN(),] NO()…, MIG()…, AV()…, AS()…)

Defines a fixed-type component.

PPARTMC

Specifies the modeling category for a piping part. The value is given as an integer.

  • 1 – Straight pipe.
  • 2 – Flexible elbow.
  • 3 – Machine bend.
  • 4 – Free bend.
  • 5 – Fixed-type component such as flange, reducer etc.

PPARTSL

Defines the length of a straight pipe part measured along its centerline. The value is given as a floating-point number.

The second node of the part is the end point. The directions at the nodes give the end cut directions. If this sub-definition is present, then it is expected that one direction sub-definition specifies the direction of the centerline from node 1 to node 2. When the part is created, the second node will be placed at this distance from the first node, along the centerline direction.

PPARTFLXA

Defines the curve angle for a flexible elbow in degrees. The value is given as a floating-point number.

The angle is measured from the local x-axis towards the local y-axis. Two directions are expected where the first one is the local x-axis of the curve and the second direction defines the plane in which the elbow is located. When the part is created, the nodes are instantiated based on this angle and directions. The location of the first node is taken as the local origin.

PPARTBNDA

Defines the bending angle for a bend in degrees. The value is given as a floating-point number.

The angle is measured from the local x-axis towards the local y-axis. Two directions are expected where the first one is the local x-axis of the curve and the second direction defines the plane in which the elbow is located. When the part is created, the nodes will be instantiated based on this angle and directions. The location of the first node is taken as the local origin.

PPARTBNDM

Defines the object ID of the bending machine object that includes the bending parameters such as the bending radius. The value is given as a quoted string.

PPARTBNDR

Defines the radius for free-radius bends. The value is given as a floating-point number.

PPARTBPREF

Specifies flag bits for prefabricated pipe information. The value is given as an integer.

  • Flag bits for straight pipes:

    0x1 No prefabricated pipe boundary at start of straight pipe piece even though there is another straight connected
    0x2 No prefabricated pipe boundary at end of straight pipe piece even though there is another straight connected
  • Flag bits for bent pipe parts:

    0x1 Prefabricated pipe boundary at start of bend
    0x2 Prefabricated pipe boundary at end of bend
    0x4 Show seam in bend at start even though connected part belongs to same prefabricated pipe
    0x8 Show seam in bend at end even though connected part belongs to same prefabricated pipe
  • Flag bits for flanges:

    0x1 Flange welded before bending

PR(45)

Defines the rotation angle for certain pipe components from their default angular orientation. The value is given as an integer from 0 to 360, representing the rotation angle in degrees.

This value is used only with components that are not rotationally symmetric but have all the points in the centerline of the pipe, such as outlets or saddles.

R(150.0)

Defines the radius of a curved air duct component measured from the center of curvature to the center of the cross-section. Decimal fractions are allowed.

RORG

Defines the routing reference point for cable way and air duct parts when viewed toward the routing direction. The value is given as an integer.

1 2 3
4 5 6
7 8 9

SD(1,f)

Defines the specification number and short code for an air duct (HVAC), cable tray (CBTP), piping part (PPART), piping component (PC), or standard component (STDC).

  • The first argument specifies the specification number from 1 to 5.

  • The second argument specifies the short code.

SN

Defines the insulation specification number from 1 to 3.

SPACE(type_of_3Dspace, model / GDL(), P(), CSLEN(), D(), D(), ST(), MT(), MIG()…, AV()…, AS()…)

Defines a 3D Space object into the computer model.

  • type_of_3Dspace – Specifies an integer value that identifies the type of the 3D space. 3D spaces are categorized based on their type as follows:

    • 3D Space objects for which containment evaluation is always via spatial location. Model objects that model these 3D spaces do not participate in normal collision control.

      Type of 3D Space Description
      1 Compartment
      2 Fire Zone
      3 Flooded Volume
    • 3D Space objects that model space that is in use. These never participate in containment hierarchies. Model objects that model these 3D spaces participate in normal collision control and generate soft collisions.

      Type of 3D Space Description
      10 Passage
      11 Insulation (can be used to model insulation for bulkheads, decks etc.)
      12 Service Space
      13 Cable Space associated with a Cable Way
    • 3D Space objects that are used to build a logistical hierarchy tree of model objects. Model objects that model these 3D spaces do not participate in collision control. There is a separate configuration object (Containment Setup) that specifies what kind of hierarchy these 3D spaces are expected to build.

      Type of 3D Space Description
      20 Outfit Area
      21 Super Block
      22 Block
      23 Sub-block
  • model / GDL – If a GDL definition ("embedded GDL") is present, the component model for the 3D space is built from the text contained in it. Otherwise, the second argument defines a reference to a GDL object in COS. The notation is $< COS Object ID>. The component model geometry is instantiated from those primitives of the GDL which are marked as 'service space'.

  • P – Specifies the local origin of the component model within the global coordinate system.

  • D – These unit vector definitions specify the directions of the local x-axis and y-axis of the component model in the global coordinate system.

  • ST – Specifies the object status.

  • MT – Specifies the modification time.

  • MIG (optional) – Assigns the object to a group.
  • AV (optional) – Assigns attributes to the object.

  • AS (optional) – Defines an association between the owner of the definition and another object.

    Service Spaces have a dependency association to the host object to which they are linked.

    3D spaces that form a hierarchy in the logistics containment have a containment association that binds the 3D space to its parent 3D space in the hierarchy.

An example where the type is Service Space and the component model is built with a reference to a GDL in COS:

SPACE(12,$+U9V45hLaJv2YdqPR1b5kzW,ST(1,3c,2586,0,0,"aJ3Yz5EAJUwODma2aRSIL0"),MT(1538735715),P(78775.52,-5955.81,57353),D(1,0,0),D(0,1,0))

ST(owner, objectID, systemID, modAcc, visLev, oid, flags, coordSys)

Defines the object status.

  • owner – Specifies the ID of the Plant Modeller area that is to own the object. If the MDL file is read in as module, this value is set according to the current owner.

  • objectID – This should be set to zero for now. If the MDL file is read in as module, this value is reset. The last digit in this number must be the same as the object type number. See the description of the object data tag "obt".

  • systemID – Specifies the ID of the system to which the object belongs. The number must match one of the entries in the system table.

  • modAcc – Specifies the modeling accuracy. This is reserved for future use.

  • visLev (optional) – Specifies the visualization level for the object. This is reserved for future use.

  • oid (optional) – Specifies the COS Object ID string of the object or group.

  • flags (optional) – This is a combination of various flags, and it should be set to zero for now.

  • coordSys (optional) – Specifies the COS Object ID string of the object's coordinate system.

    • In MDL import, if the argument is missing or has an empty value, the object is assigned to the active coordinate system.

    • In MDL export, if an object does not have a coordinate system reference, the Project coordinate system is added to the export data.

STDC(partid, GDL(), P(), D(), D(), ISN(), ST(), MT(), SD()(), NO()…, MIG()…, AV()…, AS()…)

Defines a standard component into the computer model.

  • partid – Specifies the part ID of the component in the corporate catalog.

  • GDL (optional) – If a GDL definition ("embedded GDL") is present, the component model is built from the text contained in it.

  • P – Specifies the local origin of the component model within the global coordinate system.

  • D – These unit vector definitions specify the directions of the local x-axis and y-axis of the component model in the global coordinate system.

  • ISN (optional) – Specifies the insulation specification and short code.

  • ST – Specifies the object status.

  • MT – Specifies the modification time.

  • SD (optional) – Specifies that the component is considered to be part of a piping system.

  • NO (optional) – Node definitions specify the status of connection points when the MDL file was generated. When the MDL file is read in, these are used only to check if any changes have taken place in respect to the connection points defined in the component model. Connection point data from the component model is used when the object is entered into the computer model. Differences between the new connection points and the old ones are reported when the MDL file is read in.

  • MIG (optional) – Assigns the object to a group.
  • AV (optional) – Assigns attributes to the object.

  • AS (optional) – Defines an association between the owner of the definition and another object.

STEL(partid, P(), P(), D(), D(), D(), ST(), MT(), MIG()…, AV()…, AS()…)

Defines a beam part into the computer model.

  • partid – Specifies the part ID of the beam profile in the corporate catalog.

  • P – These point definitions define the locations of endpoints. The origin point of the profile cross-section will be located in these points.

  • ST – Specifies the object status.

  • MT – Specifies the modification time.

  • D – The first unit vector specifies the direction of the local u-axis of the beam's cross-section in the global coordinate system.

    The second and third unit vectors specify the directions of the end normals of end planes.

  • MIG (optional) – Assigns the object to a group.
  • AV (optional) – Assigns attributes to the object.

  • AS (optional) – Defines an association between the owner of the definition and another object.

name = STRC(model / GDL(), P(), D(), D(), ST(), MT(), MIG()…, AV()…, AS()…)

Defines a structural component into the computer model.

  • name (optional) – Defines the object name; if given, used as the position ID.

  • model / GDL – This argument specifies how to build the component model.

    • Using the name of the component model. In MDL created with Plant/Outfitting version 4.x, this name is the SDE-name by which the component was known back then, and Plant Modeller will search the COS databases for an object with this name. In MDL created with Plant/Outfitting version 5.x or later, this name is the OID string of the corresponding COS object.

    • Using an embedded GDL definition. If present, the component model is built from the text contained in it.

    • Using a GDL name beginning with the # character. If present, a so-called reference GDL is used. Plant Modeller will look for the GDL in the file site/pm/refgdl and makes the object use the embedded GDL obtained from the referenced GDL file. After the MDL is loaded, these reference GDL files are removed. This method is used when 3D Dump files are imported.

  • P – Defines the local origin of the component model within the global coordinate system.

  • D – These unit vector definitions specify the directions of the local x-axis and y-axis of the component model in the global coordinate system.

  • ST – Specifies the object status.

  • MT – Specifies the modification time.

  • MIG (optional) – Assigns the object to a group.

  • AV (optional) – Assigns attributes to the object.

  • AS (optional) – Defines an association between the owner of the definition and another object.

SYSCOL(6)

Defines the color of a system as the index number of the color in the used color palette.

SYSID(2)

Defines the ID number of a system.

name = SYSTEM(SYSID(), SYSCOL(), TAGS())

Defines a system if MDL type is "FMT"; is ignored for other MDL types.

System definitions are used to assign model objects generated from the MDL file to systems in the target environment: a model object that in the MDL file is a member of the XYZ system will also be a member of that system in the target environment, if a system named XYZ exists in the target environment.

The system definition must precede any model object (DEVC, HVAC, PPART, STEL, STRC, STDC, SPACE) definitions.

  • SYSID – Specifies the ID of the system. Model object definitions in the MDL are linked to a system definition using the system ID.

  • SYSCOL – Specifies the color index of the system.

  • TAGS (optional) – Assigns attributes to the system.

TAGS("tag record string")

Defines a data record in string format.

W(450.0)

Defines the width of an air duct component or the width in an air duct type connection face. Decimal fractions are allowed.

W2(200.0)

Defines the second width of a transition-type air duct component. Decimal fractions are allowed.