You can make use of the pgfplotstable package (which loads pgfplots and tikz in the background) and read in a CSV file which you can then process and use to place \pics or whatever you want to do. I'd probably add a column for the rotation, so you can place the \pic at other places as well.
For the following MWE, I also included parts of my answer to your other question:
\documentclass{article}
\usepackage[a4paper, margin=10mm]{geometry}
\usepackage{pgfplotstable}
\pgfplotsset{compat=newest}
\begin{filecontents}{data.csv}
id, name, x-coord, y-coord, rotation
A1F5F, PowerSupply1, 3590, 2000, 270
7ZF3I, PowerSupply2, 3590, 2500, 270
O7PYQ, PowerSupply3, 4250, 6070, 180
\end{filecontents}
\pgfplotstableread[col sep=comma]{data.csv}{\csvdata}
\pgfplotstablegetrowsof{\csvdata}
\pgfmathtruncatemacro\CSVDataRows{\pgfplotsretval-1}
\tikzset{
PowerSupply/.pic={
\node[anchor=north, inner sep=0pt]
{\includegraphics[scale=0.09]{powerSupply}};
},
}
\begin{document}
\pagenumbering{gobble}
\section{Electrical Installation Plan}
\subsection{Component List}
\begin{center}
\pgfplotstabletypeset[
col sep=comma,
columns={id, name, x-coord, y-coord},
columns/id/.style={
column name=ID,
string type
},
columns/name/.style={
column name=Description,
string type
},
columns/x-coord/.style={
column name=X-Pos
},
columns/y-coord/.style={
column name=Y-Pos,
column type/.add={}{|}
},
column type/.add={|}{},
after row={\hline},
every head row/.style={before row=\hline},
]{data.csv}
\end{center}
\begin{figure}[h!]
\centering
\begin{tikzpicture}[x=0.01mm, y=-0.01mm]
\node[inner sep=0pt] (ground_floor)
{\includegraphics[width=99.0mm, height=107.4mm]{groundFloor}};
\begin{scope}[shift=(ground_floor.north west)]
\draw[blue, ->, line width=1pt] (0,0) -- (10000,0);
\draw[blue, ->, line width=1pt] (0,0) -- (0,11000);
\foreach \x in {0,1000,...,9000} {
\draw[blue, line width=1pt] (\x,-100) --
node[black, above=1mm] {\tiny\x mm} (\x,100);
}
\foreach \y in {0,1000,...,10000} {
\draw[blue, line width=1pt] (-100,\y) --
node[black, left=1mm]{\tiny\y mm} (100,\y);
}
\foreach \row in {0,...,\CSVDataRows} {
\pgfplotstablegetelem{\row}{x-coord}\of{\csvdata}
\pgfmathsetmacro{\x}{\pgfplotsretval}
\pgfplotstablegetelem{\row}{y-coord}\of{\csvdata}
\pgfmathsetmacro{\y}{\pgfplotsretval}
\pgfplotstablegetelem{\row}{rotation}\of{\csvdata}
\pgfmathsetmacro{\r}{\pgfplotsretval}
\pic[rotate=\r, transform shape] at (\x,\y) {PowerSupply};
}
\end{scope}
\end{tikzpicture}
\caption{Ground Floor}
\end{figure}
\vfill
\clearpage
\end{document}

Extension to add a label to the node. Since you want to use a node to include the image, you need to add transform shape to the \pic which, however, would also rotate a label attached to the node. If you want the label not to be rotated, you need to un-rotate it.
I extended the \pic code so that the \pic can now take arguments. These can be used to add a label and position this label to the parent node.
\documentclass{article}
\usepackage[a4paper, margin=10mm]{geometry}
\usepackage{pgfplotstable}
\pgfplotsset{compat=newest}
\begin{filecontents}{data.csv}
id, name, x-coord, y-coord, rotation
A1F5F, PowerSupply1, 3590, 2000, 270
7ZF3I, PowerSupply2, 3590, 2500, 270
O7PYQ, PowerSupply3, 4250, 6070, 180
\end{filecontents}
\pgfplotstableread[col sep=comma]{data.csv}{\csvdata}
\pgfplotstablegetrowsof{\csvdata}
\pgfmathtruncatemacro\CSVDataRows{\pgfplotsretval-1}
\tikzset{
pics/PowerSupply/.style={
code={
\tikzset{PowerSupply/.cd, #1}
\node[anchor=north, inner sep=0pt] (-p)
{\includegraphics[scale=0.09]{powerSupply}};
\node[
inner sep=0pt,
anchor={90+\pgfkeysvalueof{/tikz/PowerSupply/label position}},
rotate={-1*\pgfkeysvalueof{/tikz/PowerSupply/label position}}
] at (-p.south) {\tiny \pgfkeysvalueof{/tikz/PowerSupply/label}};
}
},
PowerSupply/label/.initial={},
PowerSupply/label position/.initial={0}
}
\begin{document}
\pagenumbering{gobble}
\section{Electrical Installation Plan}
\subsection{Component List}
\begin{center}
\pgfplotstabletypeset[
col sep=comma,
columns={id, name, x-coord, y-coord},
columns/id/.style={
column name=ID,
string type
},
columns/name/.style={
column name=Description,
string type
},
columns/x-coord/.style={
column name=X-Pos
},
columns/y-coord/.style={
column name=Y-Pos,
column type/.add={}{|}
},
column type/.add={|}{},
after row={\hline},
every head row/.style={before row=\hline},
]{data.csv}
\end{center}
\begin{figure}[h!]
\centering
\begin{tikzpicture}[x=0.01mm, y=-0.01mm]
\node[inner sep=0pt] (ground_floor)
{\includegraphics[width=99.0mm, height=107.4mm]{groundFloor}};
\begin{scope}[shift=(ground_floor.north west)]
\draw[blue, ->, line width=1pt] (0,0) -- (10000,0);
\draw[blue, ->, line width=1pt] (0,0) -- (0,11000);
\foreach \x in {0,1000,...,9000} {
\draw[blue, line width=1pt] (\x,-100) --
node[black, above=1mm] {\tiny\x mm} (\x,100);
}
\foreach \y in {0,1000,...,10000} {
\draw[blue, line width=1pt] (-100,\y) --
node[black, left=1mm]{\tiny\y mm} (100,\y);
}
\foreach \row in {0,...,\CSVDataRows} {
\pgfplotstablegetelem{\row}{x-coord}\of{\csvdata}
\pgfmathsetmacro{\x}{\pgfplotsretval}
\pgfplotstablegetelem{\row}{y-coord}\of{\csvdata}
\pgfmathsetmacro{\y}{\pgfplotsretval}
\pgfplotstablegetelem{\row}{rotation}\of{\csvdata}
\pgfmathsetmacro{\r}{\pgfplotsretval}
\pgfplotstablegetelem{\row}{id}\of{\csvdata}
\pgfmathsetmacro{\i}{"\pgfplotsretval"}
\pic[rotate=\r, transform shape] at (\x,\y) {
PowerSupply={
label={\i},
label position={\r}
}
};
}
\end{scope}
\end{tikzpicture}
\caption{Ground Floor}
\end{figure}
\vfill
\clearpage
\end{document}

You can also rename the \pic to, say, ElectricComponent and add another column to your list for the type of the component. Then you can use the same \pic to place different pictures:
\documentclass{article}
\usepackage[a4paper, margin=10mm]{geometry}
\usepackage{pgfplotstable}
\pgfplotsset{compat=newest}
\begin{filecontents}{data.csv}
id, name, type, x-coord, y-coord, rotation
A1F5F, PowerSupply1, PowerSupply, 3590, 2000, 270
7ZF3I, PowerSupply2, PowerSupply, 3590, 2500, 270
O7PYQ, PowerSupply3, PowerSupply, 4250, 6070, 180
A7HAZ, Switch1, singleSwitch, 5700, 6070, 180
\end{filecontents}
\pgfplotstableread[col sep=comma]{data.csv}{\csvdata}
\pgfplotstablegetrowsof{\csvdata}
\pgfmathtruncatemacro\CSVDataRows{\pgfplotsretval-1}
\tikzset{
pics/ElectricComponent/.style={
code={
\tikzset{ElectricComponent/.cd, #1}
\node[anchor=north, inner sep=0pt] (-p)
{\includegraphics[scale=0.09]{\pgfkeysvalueof{/tikz/ElectricComponent/type}}};
\node[
inner sep=0pt,
anchor={90+\pgfkeysvalueof{/tikz/ElectricComponent/label position}},
rotate={-1*\pgfkeysvalueof{/tikz/ElectricComponent/label position}}
] at (-p.south) {\tiny \pgfkeysvalueof{/tikz/ElectricComponent/label}};
}
},
ElectricComponent/type/.initial={PowerSupply},
ElectricComponent/label/.initial={},
ElectricComponent/label position/.initial={0}
}
\begin{document}
\pagenumbering{gobble}
\section{Electrical Installation Plan}
\subsection{Component List}
\begin{center}
\pgfplotstabletypeset[
col sep=comma,
columns={id, name, x-coord, y-coord},
columns/id/.style={
column name=ID,
string type
},
columns/name/.style={
column name=Description,
string type
},
columns/x-coord/.style={
column name=X-Pos
},
columns/y-coord/.style={
column name=Y-Pos,
column type/.add={}{|}
},
column type/.add={|}{},
after row={\hline},
every head row/.style={before row=\hline},
]{data.csv}
\end{center}
\begin{figure}[h!]
\centering
\begin{tikzpicture}[x=0.01mm, y=-0.01mm]
\node[inner sep=0pt] (ground_floor)
{\includegraphics[width=99.0mm, height=107.4mm]{groundFloor}};
\begin{scope}[shift=(ground_floor.north west)]
\draw[blue, ->, line width=1pt] (0,0) -- (10000,0);
\draw[blue, ->, line width=1pt] (0,0) -- (0,11000);
\foreach \x in {0,1000,...,9000} {
\draw[blue, line width=1pt] (\x,-100) --
node[black, above=1mm] {\tiny\x mm} (\x,100);
}
\foreach \y in {0,1000,...,10000} {
\draw[blue, line width=1pt] (-100,\y) --
node[black, left=1mm]{\tiny\y mm} (100,\y);
}
\foreach \row in {0,...,\CSVDataRows} {
\pgfplotstablegetelem{\row}{x-coord}\of{\csvdata}
\pgfmathsetmacro{\x}{\pgfplotsretval}
\pgfplotstablegetelem{\row}{y-coord}\of{\csvdata}
\pgfmathsetmacro{\y}{\pgfplotsretval}
\pgfplotstablegetelem{\row}{rotation}\of{\csvdata}
\pgfmathsetmacro{\r}{\pgfplotsretval}
\pgfplotstablegetelem{\row}{type}\of{\csvdata}
\pgfmathsetmacro{\t}{"\pgfplotsretval"}
\pgfplotstablegetelem{\row}{id}\of{\csvdata}
\pgfmathsetmacro{\i}{"\pgfplotsretval"}
\pic[rotate=\r, transform shape] at (\x,\y) {
ElectricComponent={
type={\t},
label={\i},
label position={\r}
}
};
}
\end{scope}
\end{tikzpicture}
\caption{Ground Floor}
\end{figure}
\vfill
\clearpage
\end{document}

Adding the icons to the table can be achieved without any TikZ magic:
\documentclass{article}
\usepackage[a4paper, margin=10mm]{geometry}
\usepackage{pgfplotstable}
\pgfplotsset{compat=newest}
\begin{filecontents}{data.csv}
id, name, type, x-coord, y-coord, rotation
A1F5F, PowerSupply1, powerSupply, 3590, 2000, 270
7ZF3I, PowerSupply2, powerSupply, 3590, 2500, 270
O7PYQ, PowerSupply3, powerSupply, 4250, 6070, 180
A7HAZ, Switch1, singleSwitch, 5700, 6070, 180
\end{filecontents}
\pgfplotstableread[col sep=comma]{data.csv}{\csvdata}
\begin{document}
\pagenumbering{gobble}
\begin{center}
\pgfplotstabletypeset[
col sep=comma,
columns={id, name, type, x-coord, y-coord},
columns/id/.style={
column name=ID,
string type
},
columns/name/.style={
column name=Description,
string type
},
columns/type/.style={
column name=Type,
assign cell content/.code={
\pgfkeyssetvalue{/pgfplots/table/@cell content}{
\includegraphics[scale=0.09]{##1}
}
}
},
columns/x-coord/.style={
column name=X-Pos
},
columns/y-coord/.style={
column name=Y-Pos,
column type/.add={}{|}
},
column type/.add={|}{},
after row={\hline},
every head row/.style={before row=\hline},
]{data.csv}
\end{center}
\end{document}

\begin{filecontents}and\end{filecontents}will create a filedata.csvin the same directory where the .tex file is stored. Once this file exists, your operating system might block overwriting this file. But you can also delete the part between\begin{filecontents}and\end{filecontents}and do changes in the filedata.csvdirectly which should work in any case. – Jasper Habicht Feb 17 '24 at 20:11pgfplotstablepackage at CTAN where you can also find its documentation. The package has a lot of functionality. You may want to style the table differently or format the numbers in another way. – Jasper Habicht Feb 17 '24 at 20:14PowerSupplyis directly part of the TikZ picture environment in\pic[rotate=\r, transform shape] at (\x,\y) {PowerSupply={label={\i},label position={\r}}};and for this example this is absolutely fine. But I would like to use this setup for different floors with different kind of electrical symbols where not everywhere exists every electrical symbol. Is this possible? If this is too much here, I can also create a new question :) – PascalS Feb 18 '24 at 05:20ElectricComponentwith different images? I got the error message, thatPowerSupplyandsingleSwitchcan not be found. So the easiest way would be to inject these graphic links via the css file or? – PascalS Feb 18 '24 at 08:31type. This is essentially just the name of the file. So, if you putsingleSwitchastype, there should be a file namedsingleSwitch.pngorsingleSwitch.jpgin the same directory. – Jasper Habicht Feb 18 '24 at 08:52{\includegraphics[scale=0.09]{../Images/ElectricComponents/\pgfkeysvalueof{/tikz/ElectricComponent/type}}};I didn't recognize that the images are stored in a sub folder. Thank you so much, I really appreciate! – PascalS Feb 18 '24 at 09:04stack shiftoption to the\pic(withElectricComponent/stack shift/.initial={0}) and then addyshift={\pgfkeysvalueof{/tikz/ElectricComponent/stack shift}*-7mm}as option to the node in the pic or so. Then you can saystack shift=1and the symbol would be "on top" (or at the right/left/bottom, depending on the rotation) of the other. Change 5cm to any size that fits. – Jasper Habicht Feb 23 '24 at 06:06shiftLevelColumn I can also setup the stack depth. But depending on therotationparameter the same shift length has different impact. Depending if the text is vertically or horizontally orientated. => Can we set the label orientation always to 90 degrees to the image? – PascalS Feb 23 '24 at 15:13rotate={-1*\pgfkeysvalueof{/tikz/ElectricComponent/label position}. Currently it reverts the rotation of the image. If you delete it, the text will rotate together with the image. – Jasper Habicht Feb 23 '24 at 15:17rotationis 180° it would be more pretty, to set the label rotation to 0°, to have the text always readable. Something like this:\newcommand{\labelRotation}[1] { \ifthenelse{\equal{#1}{180}}{0}{#1} }But this seems not be useable within the tikzElectricComponent={ type={\t},label={\i}, label position={\labelRotation{\r}}– PascalS Feb 23 '24 at 17:30ifthenelse: https://tikz.dev/math-parsing#sec-94.3 – Jasper Habicht Feb 23 '24 at 21:44label rotationvariable did the trick for me!\ifthenelse{\r = 180} {\pgfmathtruncatemacro{\lr}{180}} {\pgfmathtruncatemacro{\lr}{0}} \pic[rotate=\r, transform shape] at (\x,\y) { ElectricComponent={ type={\t}, label={\i}, label position={\lr}, stack shift={\s} }};}Thanks again for your never ending support! – PascalS Feb 24 '24 at 07:46