02.05.2016, 20:35
Hallo Andre,
ich habe unten den zuletzt einwandfrei funktionierenden Code für 6 Elemente (ohne IFCPROPERTYSINGLEVALUE) eingefügt. Bitte versuche selbst die zum Auslesen von den Werten in Klammer von IFCPROPERTYSINGLEVALUE benötigten Code zu ergänzen. Wichtig wäre, dass in erster Linie immer der Wert "Kategorie" und der Wert in Klammer (wenn die Werte in eigenen Zellen gefügt sind) ebenfalls in dieselbe Zeile von IFCSPACE geschrieben werden, wie die anderen Werte (das hat bis jetzt mit den Ergänzungen leider nicht funktioniert).
Nochmals der Auszug aus dem IFC Code: #939= IFCPROPERTYSINGLEVALUE('Kategorie',$,IFCLABEL('Lagerung'),$);
ich habe unten den zuletzt einwandfrei funktionierenden Code für 6 Elemente (ohne IFCPROPERTYSINGLEVALUE) eingefügt. Bitte versuche selbst die zum Auslesen von den Werten in Klammer von IFCPROPERTYSINGLEVALUE benötigten Code zu ergänzen. Wichtig wäre, dass in erster Linie immer der Wert "Kategorie" und der Wert in Klammer (wenn die Werte in eigenen Zellen gefügt sind) ebenfalls in dieselbe Zeile von IFCSPACE geschrieben werden, wie die anderen Werte (das hat bis jetzt mit den Ergänzungen leider nicht funktioniert).
Nochmals der Auszug aus dem IFC Code: #939= IFCPROPERTYSINGLEVALUE('Kategorie',$,IFCLABEL('Lagerung'),$);
Code:
Sub IFC()
Dim strLine$, strCutter$
Dim strSearch1$, strSearch2$, strSearch3$, strSearch4$, strSearch5$, strSearch6$
Dim arrText(3), arrTemp
Dim lStart&
lStart = 1
strSearch1 = "IFCBUILDINGSTOREY"
strSearch2 = "IFCLOCALPLACEMENT"
strSearch3 = "IFCRECTANGLEPROFILEDEF"
strSearch4 = "IFCEXTRUDEDAREASOLID"
strSearch5 = "IFCSPACE"
strSearch6 = "IFCQUANTITYAREA"
Open Datei_Dialog For Input As #1
Do While Not EOF(1)
Line Input #1, strLine
If InStr(strLine, strSearch1) > 0 Or _
InStr(strLine, strSearch2) > 0 Or _
InStr(strLine, strSearch3) > 0 Or _
InStr(strLine, strSearch4) > 0 Or _
InStr(strLine, strSearch5) > 0 Or _
InStr(strLine, strSearch6) > 0 Then
strLine = Left(strLine, Len(strLine) - 2)
strReplace strLine
strCutter = "="
arrTemp = Split(strLine, strCutter)
arrText(0) = arrTemp(0)
strCutter = "("
arrTemp = Split(arrTemp(1), strCutter)
arrText(1) = Trim(arrTemp(0))
arrText(2) = arrTemp(1)
strCutter = ","
Select Case arrText(1)
Case strSearch1
Cells(lStart, 1) = arrText(1)
Cells(lStart, 2) = Split(arrText(2), strCutter)(2)
Cells(lStart, 3) = Split(arrText(2), strCutter)(5)
Cells(lStart, 4) = Split(arrText(2), strCutter)(9)
lStart = lStart + 1
Case strSearch2
Cells(lStart, 2) = Split(arrText(2), strCutter)(0)
Case strSearch3
Cells(lStart, 7) = Split(arrText(2), strCutter)(3)
Cells(lStart, 8) = Split(arrText(2), strCutter)(4)
Case strSearch4
Cells(lStart, 6) = Split(arrText(2), strCutter)(3)
Case strSearch5
Cells(lStart, 1) = Split(arrText(2), strCutter)(0)
Cells(lStart, 3) = Split(arrText(2), strCutter)(2)
Cells(lStart, 4) = Split(arrText(2), strCutter)(7)
Case strSearch6
Cells(lStart, 5) = Split(arrText(2), strCutter)(3)
lStart = lStart + 1
End Select
Range(Cells(lStart, 1), Cells(lStart, 9)).Replace What:=".", Replacement:="."
End If
Loop
Close #1
End Sub