Support Forum

Plancode generieren


Hallo,

gibt es eine Lösung in Allplan, solch einen Plancode mit Planattributen zu generieren?

Mit besten Grüßen!
Jürgen

Allplan Ingenieurbau V10 bis V2025

Anhänge (1)

Typ: image/png
229-mal heruntergeladen
Größe: 20,19 KiB

Hilfreichste Antwort anzeigen Hilfreichste Antwort verbergen

In der Datei STD\Scripts\functions.py folgendes hinzufügen:

def part(txt,sep,idx):
    i = int(idx)
    parts = txt.split(sep)
    txt = ""
    if i < len(parts):
        txt= parts[i]
    return txt

Aufgerufen wird es in der Formel als:

p:part(@445@;"_";0)

wobei "_" das Separator-Zeichen ist, und 0 der nullbasierte Index des Teilstrings.
Bei 9 Teilen braucht man also 9 Beschriftungsbilder mit diesen Formeln:

p:part(@445@;"_";0)
p:part(@445@;"_";1)
p:part(@445@;"_";2)
p:part(@445@;"_";3)
p:part(@445@;"_";4)
p:part(@445@;"_";5)
p:part(@445@;"_";6)
p:part(@445@;"_";7)
p:part(@445@;"_";8)

Ergebis könnte so aussehen (s.plancode_beschr.png)

Folgende Probleme können auftreten:
1. Script in der functions.py enthält Syntaxfehler.
Meist sind die Einrückungen (Leerzeichen am Zeilenbeginn) nicht konsistent!
2. Python-Script wird in der Formel nicht mit Präfix "p:" aufgerufen.
3. Die Parameter in der Klammer sind mit "," statt mit ";" getrennt.
@Allplan ";" ist ein Relikt aus Excel, und hat eigentlich in eienm Python-Script nichts verloren.
Möglicherweise könnte man beides "," und ";" unterstützen.

Anhänge (1)

Typ: image/png
56-mal heruntergeladen
Größe: 132,04 KiB

Guten Morgen Jürgen

Ich bin mir nicht ganz sicher, aber ich denke du wirst da nicht alle gewünschten Attribute im Plan zur Verfügung haben und auf die "Plan Benutzerattribute" zurückgreifen müssen. Für die Formel kannst du mal folgendes probieren:

""+@Attribut@+"_"+@Attribut@+"_"+@Attribut@+"

Achte dabei dass du bei Format das Text Format wählst....also A100 oder so je nachdem wieviele Zeichen du abbilden willst

Eventuell gibt es noch intelligentere Lösungen....das mal ein Ansatz dazu

Gruss

Urs Leufen
CDS Bausoftware AG

Mit der Alltool Planverwaltung ist das kein Problem. Dort gibt es extra genügend "Schlüsselattribute".
Der Planschlüssel ist jedoch nur die "halbe Miete".
Aus diesen Schlüsselattributen mus man noch den Dokumentennamen (Dokumentenschlüssel) generieren.

Das ist das, was mich so irritiert. Warum ist die Dokumenten ID noch mal etwas anderes wie die Plan ID?
Eigentlich braucht es doch nur ein Datum vor der Plan ID?
Da das ja irgendwie standardisiert in Deutschland sein soll, wo gibt es dazu eine gute Doku?

Mit besten Grüßen!
Jürgen

Allplan Ingenieurbau V10 bis V2025

Dafür wäre es doch eine bessere Lösung wenn du dafür nicht alles aus den Plan-Attributen holen würdest.

Z.B.: die vierstellige Projektnummer könntest du auch aus MID(@Projektname@, 1,4) bzw. besser:
4x mit dem Referenzpunkt in der Mitte das Attribut mit der Forbmel "MID(@Projektname@, 1,1)", "MID(@Projektname@, 2,1)" ... absetzen.

Damit ist der Plancode auch immer gleich breit, da zum Beispiel ein "W" und ein "I" gleich viel Platz beanspruchen.

Der komplette Schlüssel kann über vorhandene Attribute im Plankopf als Beschriftungsbild erstellt werden.

Könnte auch sein, dass ich die Frage komplett falsch verstanden habe. Aber falls ich recht habe, gäbe es auch dazu von mir ein Video:
https://www.youtube.com/watch?v=U0BCbHi2Sqo&t=11s

Ich entwickle herstellerübergreifende Einbauteil-Generatoren
Zu den Einbauteilen: https://www.suppgra.de/downloads/
E-Mail: peter.poeppl (please no spam) @ (please no spam) SUPPGRA.DE
Mobil: 0152 54 988 998
Telefon: +49 (0) 8464/2469946
Homepage: http://www.SUPPGRA.DE (für Faule), oder http://www.SUPPGRADE.DE
LinkedIN: https://www.linkedin.com/in/peter-poeppl/
Webinar: https://20502.webinaris.co/12088/supparts_2024.html?mode=L&v=4

Hallo,

ich stehe von ähnlichen Problem.

Plancode wird bei mir aus Planname entnommen. Weil im Plankopf die Planname in verschiedenen "Kästchen" abgelegt werden muss, verwende ich die "MID" Funktion. Bei aktuellem Projekt habe ich das Problem, dass ein Teil des Codes nicht immer die gleiche Characterzahl hat (z.B. beim Bauteil kann "A" sein, aber auch "AB"). Dadurch kann ich die "MID" Funktion nicht verwenden.

Hat jemand einen Rat wie man sowas in Griff bekommt?

Jurij

Stecke im Allplan seit 1995
Hotline für Kunden in Slowenien seit 1997

Anhänge (2)

Typ: image/png
28-mal heruntergeladen
Größe: 34,65 KiB
Typ: image/png
20-mal heruntergeladen
Größe: 26,92 KiB

In der Datei STD\Scripts\functions.py folgendes hinzufügen:

def part(txt,sep,idx):
    i = int(idx)
    parts = txt.split(sep)
    txt = ""
    if i < len(parts):
        txt= parts[i]
    return txt

Aufgerufen wird es in der Formel als:

p:part(@445@;"_";0)

wobei "_" das Separator-Zeichen ist, und 0 der nullbasierte Index des Teilstrings.
Bei 9 Teilen braucht man also 9 Beschriftungsbilder mit diesen Formeln:

p:part(@445@;"_";0)
p:part(@445@;"_";1)
p:part(@445@;"_";2)
p:part(@445@;"_";3)
p:part(@445@;"_";4)
p:part(@445@;"_";5)
p:part(@445@;"_";6)
p:part(@445@;"_";7)
p:part(@445@;"_";8)

Ergebis könnte so aussehen (s.plancode_beschr.png)

Folgende Probleme können auftreten:
1. Script in der functions.py enthält Syntaxfehler.
Meist sind die Einrückungen (Leerzeichen am Zeilenbeginn) nicht konsistent!
2. Python-Script wird in der Formel nicht mit Präfix "p:" aufgerufen.
3. Die Parameter in der Klammer sind mit "," statt mit ";" getrennt.
@Allplan ";" ist ein Relikt aus Excel, und hat eigentlich in eienm Python-Script nichts verloren.
Möglicherweise könnte man beides "," und ";" unterstützen.

Anhänge (1)

Typ: image/png
56-mal heruntergeladen
Größe: 132,04 KiB

Hallo Jörg,

wenn Allplan nicht ganz "user friendly" ist, gibt DEN User, der wirklich friendly ist.

Ich bedanke mich für die Lösung, die ich sofort implementiert habe.

Jurij

Stecke im Allplan seit 1995
Hotline für Kunden in Slowenien seit 1997