Directory[]

d=Import["Eiffel.dxf"];

d

Export["Eiffel.png",d]

pts=Import["Eiffel.dxf","VertexData"];

Dimensions[pts]

pts[[1]]

pplt=Graphics3D[Map[Point[#]&,pts],Boxed->False]

Export["EiffelPoints.png",pplt]

lines=Import["Eiffel.dxf","LineData"];

Dimensions[lines]

lines[[1]]

Dimensions[pts]

lplt=Graphics3D[ Map[ Line[ {pts[[#[[1]]]],pts[[#[[2]]]]}  ]&,lines]]

poly=Import["Eiffel.dxf","PolygonData"];

Dimensions[poly]

poly[[1]]

npoly=Length[poly]

plines=Table[Line[Map[pts[[#]]&,poly[[k]]]] ,{k,1,npoly}];

plines[[1]]

polyply=Graphics3D[plines,Boxed->False]

Export["EiffelLines.223ptpng",polyply]

pts[[1]]

plines[[1]]

poly[[1]]

npoly

Export["EiffelPoints.mat",pts]

Max[Map[Length[#]&,poly]]

f[l_]:=Module[{lc,nlc,t},
lc=l;
lc = AppendTo[lc,l[[1]]];
nlc=Length[lc]-1;
t=Table[{lc[[k]],lc[[k+1]]},{k,1,nlc}];
Return[t]
]

f[poly[[4]]]

polylines = Map[f[#]&,poly];

Length[polylines]

polylines[[1]]

lineseg=Flatten[polylines,1];

Length[lineseg]

Graphics3D[Map[Line[{pts[[#[[1]]]],pts[[#[[2]]]]}]&,lineseg[[1;;4000]]]]

Export["EiffelLines.mat",lineseg]

nodes=Flatten[poly];

Length[nodes]

dnodes=DeleteDuplicates[nodes];
Length[dnodes]