am 2024-01-30 06:17 PM
Hallo zusammen,
kann man ausgefüllte Projektinfo exportieren? Wenn ich es mache, kommt eine xml Datei, und wenn ich in Excel importiere, sind gar keine Info dabei.
Vielen Dank im Voraus 😊
Jaki
AC25 in Mac Ventura 13.6
am 2024-01-30 11:26 PM
Das ist wohl nur dazu gedacht, dass man die Info von einem Projekt in ein anderes überträgt, in dem noch nichts eingetragen wurde.
Excel kann damit nicht viel anfangen, und wirft einfach alles in ein oder zwei Zeilen...
am 2024-01-31 09:55 AM
Wofür brauchst du sie in einer Excel-Datei?
A) Eine Lösung wäre ein VBA-Skript für den Import (Excel).
B) Ungeprüft: Über die Listenauswertung. Wenn es sein muss über ein berechnetes Attribut, das die Projektinfos in irgendein dann auflistbares Attribut eines Dummy- Elementes bereit stellt. (AC, IA)
C) GDL-Dummy-Objekt, das die Werte ausliest und in eine CSV schreibt (AC, GDL)
Zurück geht es aber definitiv nur durch eine (selbst erstellte) Schnittstelle, die eine XML erzeugt, wenn das der Plan ist.
Ich würde A) nehmen.
2024-01-31 10:32 AM - bearbeitet 2024-01-31 11:42 AM
Hi,
wenn ich die Projektinfos exportiere und in Excel 2016 wie folgt öffne, landen alle Infos in der ersten Zeile.
Vorgehensweise:
=WENN(REST(ZEILE()-2;3)=1;INDIREKT("$A"&ZEILE());"")
=WENN(REST(ZEILE()-2;3)=1;INDIREKT("$A"&ZEILE()+1);"")
=WENN(REST(ZEILE()-2;3)=1;INDIREKT("$A"&ZEILE()+2);"")
Damit solltest du dann eine etwas vernünftiger lesbare Excel aus der Projektinfo-xml aus ArchiCAD erzeugt haben.
Edit: Formeln korrigiert, hatte aus Versehen die alte Version hier reinkopiert, statt der neuen... Sorry 🙈
am 2024-01-31 11:33 AM
Hallo Frank, ich möchte die Info als Datenbank verwenden. Wenn ich etwas in Projektinfo ändere, kann ich exportieren und es wird in meiner Excel-Datei Vorlage aktualisiert.
AC25-27, Excel 365 Version 16.81
am 2024-01-31 12:29 PM
@Xandros schrieb:
RESPEKT!
@ jakelinerosa: ist das aus deiner sicht sinnvoll, die Projektdaten im ArchiCAD zu verwalten, und v.a. laufend aktuell zu halten?
am 2024-01-31 01:31 PM
Ich habe deine Frage nicht verstanden. Sorry.
am 2024-01-31 02:13 PM
Hallo Xandros,
herzlichen Dank für die detaillierte Erklärung. Es klappt wunderbar, die XML-Datei in Excel zu öffnen und zu transponieren. Tolle Sache!
Wie gehst du jedoch vor, um diese Informationen als Datenbank zu nutzen?
Ich verfüge über Excel-Vorlagendateien und möchte die Informationen projektbezogen anpassen. Meine Idee ist, die Projektinformationen zu exportieren und sie mit meiner Excel-Datei zu verknüpfen. Ich gehe zum Datenabruf, wähle die entsprechende Datei aus, (bearbeite sie bei Bedarf in Power Query und) verknüpfe sie dann erneut nach Projekt.
Meinst du, deine Idee würde dafür funktionieren?
am 2024-01-31 02:59 PM
Excel kann sich prinzipiell auch mit XML-Daten verbinden. Wohl auch bidirektional. Dafür brauchst du aber in jedem Fall eine Zuordnung der XML-Struktur zur Tabelle. Da wäre eine Beschreibung der XML-Struktur hilfreich. Eine XSD-Datei (kann GS vielleicht sowas bereitstellen?). Diese kannst du über das Menü "Entwicklertools" in Excel dann verknüpfen. Da hört bei mir aber das vertiefte Wissen auf. V.a. wie man die Daten auch wieder sauber zurück bekommt. Ich habe mal auf die Schnelle eine erstellt, aber die XML aus Archicad hat so ein paar Eigenarten, die ich aus der Hüfte nicht lösen kann.
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="ProjectInfo">
<xsd:complexType>
<xsd:sequence>
<xsd:element minOccurs="0" maxOccurs="1" name="version" />
<xsd:element name="FixKeys">
<xsd:complexType>
<xsd:sequence>
<xsd:element minOccurs="0" maxOccurs="unbounded" name="Fix1">
<xsd:complexType>
<xsd:sequence>
<xsd:element minOccurs="0" maxOccurs="1" name="UIKey" />
<xsd:element minOccurs="0" maxOccurs="1" name="DBKey" />
<xsd:element minOccurs="0" maxOccurs="1" name="value" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="CustomKeys">
<xsd:complexType>
<xsd:sequence>
<xsd:element minOccurs="0" maxOccurs="unbounded" name="Custom1">
<xsd:complexType>
<xsd:sequence>
<xsd:element minOccurs="0" maxOccurs="1" name="UIKey" />
<xsd:element minOccurs="0" maxOccurs="1" name="DBKey" />
<xsd:element minOccurs="0" maxOccurs="1" name="value" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
Deswegen habe ich es, wie gesagt, bisher immer über VBA-Makros (mit UI, die aber die XML als Textdatei interpretieren und die Werte dann übertragen) gemacht, weil dann Im- und Export auf Knopfdruck funktionieren und mein bei Datenänderung nicht immer von vorne anfängt alles umzuformatieren.
am 2024-02-01 05:11 PM
Hi,
ich persönlich hänge mich da an Lösung A aus Frank Beister's erstem Beitrag: ein VBA-Skript in Excel.
Das liegt nicht zwangsläufig daran, dass ich damit die beste Methode gefunden haben könnte, sondern eine, mit der ich mich in einem Raum bewege, mit dem ich klar komme.
Mit VBA würde ich die Schritte, die ich oben beschrieben habe, automatisieren.
Das heißt zunächst die bisherige Datenbank, die auf einem eigenen Tabellenblatt innerhalb oder außerhalb deiner Exceldatei liegt, entfernen.
Dann mit Knopfdruck die neu exportierte xml so verarbeiten, dass sie an die gleiche Stelle tritt, wie deine alte Datenbank.
Und weil sich die Position der verschiedenen Felder evtl verändern könnte, würde ich in den Excelnformeln nicht mit fixen Zellwerten arbeiten, sondern bspw. mit SVERWEIS / XVERWEIS (in neueren Excelversionen) arbeiten.
Ich habe ähnliches bereits in Tür-, Wand- und Planlisten programmiert. Und ja, war funktionstüchtig 😉