MDL model structure
An MDL model consists of a comma-separated list of definitions. Each definition is constructed in one of the following ways:
-
name = deftype(arguments)
-
deftype(arguments)
-
name
where
-
name can consist of numbers, upper- or lower-case letters, periods ("."), hyphens ("-") , underscores ("_"), and spaces (" ").
-
deftype is one of the definitions described in MDL definitions.
-
arguments can be a list of numbers, names, or other definitions (and the definitions may contain other definitions).
The MDL format is stored in a text file that is encoded as 7-bit ASCII and directly supports the characters on Windows code page 20127. Any character that is not encoded with Unicode on that code page should be escaped in the MDL file. For example, the German Umlaut "ü" can be escaped by typing it as "\u00fc".
Also, if importing third-party MDL and using a separate CSV file, the CSV file can be encoded using either Multibyte Character Set (MBCS) or UTF-8. In UTF-8 encoded files, the BOM mark can be in the file or it can be left out—the import supports both ways. When importing a CSV file, the user can select which encoding the program should use for reading the file. See Third party MDL.
Example
Here are some example 3D objects and their MDL data in format version 3.0:
@(#)MDL3
ver 191;cre Plant Modeller 23.3.4;org ExampleProject.pms;lib ExampleProject.lib;
owi 1;tim 1709880155;unm Test User;typ set of objects;
hno 6JOW18AnJ8A6PQJQgyg3T0;;
"Fnd.0001" = GROUP(GRT(52),ST(1,0,32,0,0,"e8SmExIGG76wtnH7pjmmDm",0,"6JOW18AnJ8A6PQJQgyg3T0"),MT(1702475038)),
ABRV("Fnd.0001",g455,e8SmExIGG76wtnH7pjmmDm),
ABRV("",g501,_7Qw8AXaGQU9QNRhcyB0XG),
STRC(+i1Ywk3C8JwM78AngfP306W,ST(1,0,20,0,0,"xkNxPbIPICMU5bnqw1hxOm",0,"6JOW18AnJ8A6PQJQgyg3T0"),MT(1702475038),
P(-7400,-5000,1010),D(1,0,0),D(0,1,0),
MIG(g501)),
ABRV("",g499,VscZ_vArIp24mDmOcTMh9W),
STRC(GDL("/*@ObjClass=Plate*/
_UseDegrees = 1;
pid = ATTRIBUTE(\"+1paFH7lIILIWrMqXFlEb7G-5\");
_Area_Mass = 0.000008;
_PA = ATTRIBUTE(1440000);
_PB = ATTRIBUTE(4800);
_PW = ATTRIBUTE(1200);
_PH = ATTRIBUTE(1200);
CGX = ATTRIBUTE(0);
CGY = ATTRIBUTE(0);
CGZ = ATTRIBUTE(5);
PntjIGzH = POINT(0,0,0);
DirjIGzH = DIRECTION(0,0,1);
DirjIGzG = DIRECTION(1,0,0);
dw = 1200 / 2;
dh = 1200 / 2;
rect = CURVE(-dw,-dh,dw,-dh,dw,dh,-dw,dh);
SecjIGza = SECTION(rect);
PltjIGza = PLATE(PntjIGzH,DirjIGzH,DirjIGzG,SecjIGza,10);
MAS = ATTRIBUTE(11.232);
")
,ST(1,0,32,0,0,"x_n4CfXLJ7QKHCo3hJp8QG",0,"6JOW18AnJ8A6PQJQgyg3T0"),MT(1702475038),
P(-3870,-2275,1010.049987792969),D(1,0,0),D(0,1,0),
MIG(g499),MIG(g455)),
STEL(+Hct6lV_nJNM10jlSbh051G-3,ST(1,0,32,0,0,"OYBxQ9gFIPsNA_T1SeFf2m",0,"6JOW18AnJ8A6PQJQgyg3T0"),MT(1702475038),
P(-4326.10009765625,-2622.39990234375,1299.800048828125),P(-4326.10009765625,-2622.39990234375,1020),
D(1,0,0),D(0,0,1),D(0,0,-1),
MIG(g499),MIG(g455)),
STRC(GDL("/*@ObjClass=Plate*/
_UseDegrees = 1;
pid = ATTRIBUTE(\"+1paFH7lIILIWrMqXFlEb7G-5\");
_Area_Mass = 0.000008;
_PA = ATTRIBUTE(1440000);
_PB = ATTRIBUTE(4800);
_PW = ATTRIBUTE(1200);
_PH = ATTRIBUTE(1200);
CGX = ATTRIBUTE(0);
CGY = ATTRIBUTE(0);
CGZ = ATTRIBUTE(5);
PntjIGzH = POINT(0,0,0);
DirjIGzH = DIRECTION(0,0,1);
DirjIGzG = DIRECTION(1,0,0);
dw = 1200 / 2;
dh = 1200 / 2;
rect = CURVE(-dw,-dh,dw,-dh,dw,dh,-dw,dh);
SecjIGza = SECTION(rect);
PltjIGza = PLATE(PntjIGzH,DirjIGzH,DirjIGzG,SecjIGza,10);
MAS = ATTRIBUTE(11.232);
")
,ST(1,0,32,0,0,"f1N.k2HUHdc74hEZVMLr1m",0,"6JOW18AnJ8A6PQJQgyg3T0"),MT(1702475038),
P(-3870,-2275,1299.849975585938),D(1,0,0),D(0,1,0),
MIG(g499),MIG(g455)),
STEL(+Hct6lV_nJNM10jlSbh051G-3,ST(1,0,32,0,0,"WrbR4.GoIbkPQYZk5Uol_m",0,"6JOW18AnJ8A6PQJQgyg3T0"),MT(1702475038),
P(-3426.10009765625,-2622.39990234375,1299.800048828125),P(-3426.10009765625,-2622.39990234375,1020),
D(1,0,0),D(0,0,1),D(0,0,-1),
MIG(g499),MIG(g455)),
STEL(+Hct6lV_nJNM10jlSbh051G-3,ST(1,0,32,0,0,"qcqkxrGqHYojYmUfmB5JnG",0,"6JOW18AnJ8A6PQJQgyg3T0"),MT(1702475038),
P(-4326.10009765625,-1922.5,1020),P(-4326.10009765625,-1922.5,1299.800048828125),
D(1,0,0),D(0,0,-1),D(0,0,1),
MIG(g499),MIG(g455)),
STEL(+Hct6lV_nJNM10jlSbh051G-3,ST(1,0,32,0,0,"MRp_GvDaJyUmWSbIb76YLm",0,"6JOW18AnJ8A6PQJQgyg3T0"),MT(1702475038),
P(-3426.10009765625,-1922.5,1020),P(-3426.10009765625,-1922.5,1299.800048828125),
D(1,0,0),D(0,0,-1),D(0,0,1),
MIG(g499),MIG(g455)),
STEL(+Hct6lV_nJNM10jlSbh051G-3,ST(1,0,32,0,0,"aP15xItIGTA3N6eGim7mxG",0,"6JOW18AnJ8A6PQJQgyg3T0"),MT(1702475038),
P(-3876.10009765625,-2622.39990234375,1299.800048828125),P(-3876.10009765625,-2622.39990234375,1020),
D(1,0,0),D(0,0,1),D(0,0,-1),
MIG(g499),MIG(g455)),
STEL(+Hct6lV_nJNM10jlSbh051G-3,ST(1,0,32,0,0,"w2i_9mvbGWglKn55uYICPm",0,"6JOW18AnJ8A6PQJQgyg3T0"),MT(1702475038),
P(-3876.10009765625,-1922.5,1020),P(-3876.10009765625,-1922.5,1299.800048828125),
D(1,0,0),D(0,0,-1),D(0,0,1),
MIG(g499),MIG(g455)),
ABRV("Equipment Position Id",a63,.n5),
DEVC(+HL_lHKp9IqUbLrbbk5nocW,ST(1,0,40,0,0,"HaAFWP.TJUM3fC8oMZ_2tG",0,"6JOW18AnJ8A6PQJQgyg3T0"),MT(1702475038),
P(-3470,-2650,1309.849975585938),D(-1,0,0),D(0,-1,0),
NO(NI(2),P(-3294.5,-2650.0498046875,1512.994995117188),D(1,0,0),D(0,-1,0),CT(2003),NS(100),NP(0),FL(1)),CONNECT(2,"TUNO01X7HTA1k.sfpfzZi0",2),
NO(NI(3),P(-3470,-2650,1309.849975585938),D(-1,0,0),D(0,-1,0),CT(0)),
NO(NI(4),P(-3470,-2650,1749.869995117188),D(0,0,1),D(0,-1,0),CT(2003),NS(80),NP(0),FL(2)),CONNECT(4,"0z8qThwzG0Ugq.EHUzvGSm",2),
NO(NI(5),P(-3470,-2650.0498046875,1512.994995117188),D(0,-1,0),D(1,0,0),CT(0)),
AV(a63,"P001"),
MIG(g499),
AS("I2BXkdYSJQwfHU3E73Lvq0",0,6,8195),AS("GxXWST5dG0AMMeDPGmNbG0",0,6,8195)),
ABRV("",g395,.RMVQP8VJGE1fehmBVJKkG),
ABRV("Water-02",g212,AsXrO17pHUQ9XY7KQ1BWMG),
PPART(PPARTMC(1),+64VU9Ty4I7EN20lQ_cz8vW-471,PPARTSL(664.13),D(0,0,1),SD(1,p),ST(1,0,11,0,0,"fnAs.iuPJ36ymmbyQLxfzW",0,"6JOW18AnJ8A6PQJQgyg3T0"),MT(1702475038),NO(NI(1),P(-3470,-2650,1885.869995117188),D(-0,-0,-1),D(0,1,-0),CT(1500),NS(125),NP(0),FL(1)),CONNECT(1,"OGwnePQKJ8YJpHoKHqVDt0",1),
NO(NI(2),P(-3470,-2650,2550),D(0,0,1),D(0,-1,0),CT(1500),NS(125),NP(0),FL(2)),CONNECT(2,"1Qg9Jv_HGnEOipqMJ2dBgW",1),
MIG(g395),MIG(g212)),
PPART(PPARTMC(5),+X1o8IHBWJZ_b1q6FW92knG-8,SD(1,f),ST(1,0,11,0,0,"0z8qThwzG0Ugq.EHUzvGSm",0,"6JOW18AnJ8A6PQJQgyg3T0"),MT(1702475038),D(0,0,-1),D(0,1,0),
NO(NI(1),P(-3470,-2650,1758.869995117188),D(0,0,1),D(0,-1,0),CT(200),NS(80),NP(0),FL(2)),CONNECT(1,"OGwnePQKJ8YJpHoKHqVDt0",2),
NO(NI(2),P(-3470,-2650,1751.869995117188),D(0,0,-1),D(0,1,0),CT(2003),NS(80),NP(0),FL(1)),CONNECT(2,"HaAFWP.TJUM3fC8oMZ_2tG",4),
MIG(g395),MIG(g212)),
PPART(PPARTMC(5),+ZsrjNtBiHHkQJ9PxndBjlG-28,SD(1,rc),ST(1,0,11,0,0,"OGwnePQKJ8YJpHoKHqVDt0",0,"6JOW18AnJ8A6PQJQgyg3T0"),MT(1702475038),D(0,0,-1),D(0,1,0),
NO(NI(1),P(-3470,-2650,1885.869995117188),D(0,0,1),D(0,1,0),CT(401),NS(125),NP(0),FL(2)),CONNECT(1,"fnAs.iuPJ36ymmbyQLxfzW",1),
NO(NI(2),P(-3470,-2650,1758.869995117188),D(0,0,-1),D(0,1,0),CT(401),NS(80),NP(0),FL(1)),CONNECT(2,"0z8qThwzG0Ugq.EHUzvGSm",1),
MIG(g395),MIG(g212)),
PPART(PPARTMC(2),+TmXgA5S6H.sGYlF7jTFWBW-9,PPARTFLXA(90),SD(1,e),ST(1,0,11,0,0,"1Qg9Jv_HGnEOipqMJ2dBgW",0,"6JOW18AnJ8A6PQJQgyg3T0"),MT(1702475038),D(0,0,1),D(1,0,0),
NO(NI(1),P(-3470,-2650,2550),D(0,0,-1),D(-1,0,0),CT(401),NS(125),NP(0),FL(1)),CONNECT(1,"fnAs.iuPJ36ymmbyQLxfzW",2),
NO(NI(2),P(-3470,-2650,2740),D(0,0,1),D(1,0,0),CT(0)),
NO(NI(3),P(-3280,-2650,2740),D(1,0,0),D(0,0,-1),CT(401),NS(125),NP(0),FL(2)),CONNECT(3,"4gHJd5uJIrUlExJT1vVklm",1),
MIG(g395),MIG(g212)),
PPART(PPARTMC(1),+64VU9Ty4I7EN20lQ_cz8vW-471,PPARTSL(1113),D(1,0,0),SD(1,p),ST(1,0,11,0,0,"4gHJd5uJIrUlExJT1vVklm",0,"6JOW18AnJ8A6PQJQgyg3T0"),MT(1702475038),NO(NI(1),P(-3280,-2650,2740),D(-1,-0,-0),D(0,-1,0),CT(1500),NS(125),NP(0),FL(1)),CONNECT(1,"1Qg9Jv_HGnEOipqMJ2dBgW",3),
NO(NI(2),P(-2167,-2650,2740),D(1,0,0),D(-0,1,0),CT(1500),NS(125),NP(0),FL(2)),CONNECT(2,"LhQhe582Iis0FRTo7oISS0",1),
MIG(g395),MIG(g212)),
PPART(PPARTMC(5),+X1o8IHBWJZ_b1q6FW92knG-10,SD(1,f),ST(1,0,11,0,0,"LhQhe582Iis0FRTo7oISS0",0,"6JOW18AnJ8A6PQJQgyg3T0"),MT(1702475038),D(1,0,0),D(0,1,0),
NO(NI(1),P(-2167,-2650,2740),D(-1,0,0),D(0,-1,0),CT(200),NS(125),NP(0),FL(1)),CONNECT(1,"4gHJd5uJIrUlExJT1vVklm",2),
NO(NI(2),P(-2160,-2650,2740),D(1,0,0),D(0,1,0),CT(2003),NS(125),NP(0),FL(2)),CONNECT(2,"n0SVRcoCG562Y1u2W.Nvxm",2),
MIG(g395),MIG(g212)),
ABRV("Operation Temperature",a153,opT),
ABRV("Valve Position Id",a62,vpo),
STDC(+rB4_MsE5JdwNmK_lMP3_im-3,SD(1,VMwBF),ST(1,0,11,0,0,"n0SVRcoCG562Y1u2W.Nvxm",0,"6JOW18AnJ8A6PQJQgyg3T0"),MT(1702475038),D(-1,0,0),D(0,-1,0),
NO(NI(1),P(-2102,-2650,2740),D(1,0,0),D(0,0,1),CT(301),NS(125),NP(0)),CONNECT(1,"ybN3YZj8GkkbcXcDx1ed50",2),
NO(NI(2),P(-2158,-2650,2740),D(-1,0,0),D(0,0,1),CT(301),NS(125),NP(0)),CONNECT(2,"LhQhe582Iis0FRTo7oISS0",2),
NO(NI(3),P(-2130,-2650,2966),D(-1,0,0),D(0,-1,0),CT(0)),
AV(a153,"1"),AV(a62,"V012"),
MIG(g395),MIG(g212),
AS("nYjGlMd3GMkimVEuwvvZ.W",0,9,0)),
SPACE(12,$gWME2pLeJ4M.amCT0.8Ltm-3,ST(1,0,11,0,0,"nYjGlMd3GMkimVEuwvvZ.W",0,"6JOW18AnJ8A6PQJQgyg3T0"),MT(1702475038),
P(-2102,-2650,2740),D(-1,0,0),D(0,-1,0)),
ABRV("c::CCT-01",g240,jx0Ka_AFJHUIqA4OavMWgG),
CBTP(+cNRfn.9TImsXC2HlS6QGy0-1,SD(1,ct_stra),ST(1,0,71,0,0,"r7DltBENJKMkArS_etT0Ym",0,"6JOW18AnJ8A6PQJQgyg3T0"),CTPT(1),CTPF(0),RORG(0),CUT1(0),MT(1702475038),D(0,1,0),D(-1,0,0),
NO(NI(1),P(-1660,-3750,3150),D(0,-1,0),D(1,0,0),CT(1800),W(200),H(60)),
NO(NI(2),P(-1660,4250,3150),D(0,1,0),D(-1,0,0),CT(1800),W(200),H(60)),
MIG(g240),
AS("d.cC8m_GIKMom.J3Gg7hMm",0,6,3),AS("FGno3ox8GmcWe7MXdBK3MW",0,6,5),AS("QP2MPPVWHsUvrXDXa6gC6W",0,6,15500)),
ABRV("h::AC_Inlet_00",g241,gep1B54ZIAIDkTqW6wQEVW),
HVAC(+hOqyg_YDGaU_uduTe3_L_m-1,ST(1,0,88,0,0,"kSSmj_ijGF_pBPZqdejnEG",0,"6JOW18AnJ8A6PQJQgyg3T0"),MT(1702475038),HVMC(3),RORG(0),HVDT(1),W(600),H(600),SD(1,[_dplt),
NO(NI(1),P(-2101,-1999,3702),D(-0,0.707106769085,-0.707106769085),D(-1,-0,-0),CT(800),W(600),H(600),FL(1)),CONNECT(1,"aCLPdGcSIDoyi5q2uY8ZYW",2),
NO(NI(2),P(-2101,-1999,4450),D(0,0,1),D(1,0,0),CT(800),W(600),H(600),FL(2)),
MIG(g241)),
HVAC(+hOqyg_YDGaU_uduTe3_L_m-1,ST(1,0,88,0,0,"aCLPdGcSIDoyi5q2uY8ZYW",0,"6JOW18AnJ8A6PQJQgyg3T0"),MT(1702475038),HVMC(3),RORG(0),HVDT(1),W(600),H(600),SD(1,[_dplt),
NO(NI(1),P(-2101,-400,3702),D(0,1,0),D(-1,-0,-0),CT(800),W(600),H(600),FL(1)),CONNECT(1,"xeP6tjnqGSYxUCvEkCqlc0",3),
NO(NI(2),P(-2101,-1999,3702),D(0,-0.707106769085,0.707106769085),D(1,0,0),CT(800),W(600),H(600),FL(2)),CONNECT(2,"kSSmj_ijGF_pBPZqdejnEG",1),
NO(NI(3),P(-2101,-1200.441040039062,3702),D(-0,-1,-0),D(1,-0,0),CT(600),NS(600),NP(600)),CONNECT(3,"fXv_vbsBIBkbOtPVw1x7QW",4),
MIG(g241))