Raum-Seitenflächen beschriften


Raum-Seitenflächen mit Bedingungen sind absolut genial. Mit einem "Ausbau-Set" für die Seitenflächen
lassen sich so automatisch in Abhängigkeit vom Untergrund die richtigen Schichten auftragen.
Leider sieht man das Ergebnis nur im Report! Für die Baustelle wäre es aber enorm wichtig zu wissen,
was an welcher Wand passieren soll. Deshalb muss man die Seitenfläche beschriften können!

Soviel ich weiss, kann man eine Seitenfläche, die im Raumausbau definiert ist (ggf. mit Bedingung) nicht beschriften!
Bei einer "freien Seitenfläche" geht das schon, allerdings wird auch dort nicht
die an dieser Wandfläche real aufgetragene Seitenfläche beschriftet, wenn diese an Bedingungen verknüpft sind!

Ich weiss, daß man das über farbige Musterlinien mit der Flächenvisualisieren lösen kann(s. seitenflaeche_visu.png)

Trotzdem der Wunsch:
Ein Beschriftungspunkt (analog Höhenkote), der die an der Stelle des Punktes vorhandene Seitenfläche(n) ermittelt.
Mit einem Beschriftungsbild könnte man diesen Punkt dann beschriften (analog Höhenkote), und so auch ggf.
die Teilfläche mit beschriften!

Přílohy (2)

Type: image/png
Staženo 251
Size: 100,84 KiB
Type: image/png
Staženo 157
Size: 18,79 KiB
1 - 10 (11)

Ich habe eine Lösung für das Problem gefunden:
Es besteht in einem Makro "Wandmarker", welches an den Raumverkettet ist, und ein Beschriftungsbild mit folgender
Formel trägt:

getFinish(MT_Wand(@209@);MT_Raum(MT_Seite(@180@;0;1;2;3;4;5;6;7;8;9));MT_Raum(MT_Seite(@508@;0;1;2;3;4;5;6;7;8;9));"W:")

Die Hauptarbeit übernimmt eine Funktion in der function.vbs, die aus den Bedingungsstring und den Materialien der Seitenflächen
das passende Material für das Gewerk der Wand raussucht:

Function getFinish(trade,conditions,materials,prefix)
	Dim numTrade,arrCond,strCond,strTrade,arrMat,strFinMat,strMat
	numTrade = ""
	If trade = "Mauerarbeiten" Then numTrade = "12"
	If trade = "Betonarbeiten" Then numTrade = "13"
	If trade = "Trockenbauarbeiten" Then numTrade = "39"
	arrCond=Split(conditions,"/")
	strTrade=""
	iCond=-1
	i = 0
	For Each strCond In arrCond
		If (Len(strCond) >= 2) Then
			strTrade=Right(strCond, 2)
		End If
		If numTrade = strTrade Then
			iCond=i
		End If
		i = i + 1
	Next
	arrMat = Split(materials,"/")
	j = 0
	strFinMat=""
	For Each strMat In arrMat
		If j = iCond Then
			strFinMat=strMat
		End If
		j = j + 1
	Next
	getFinish = strFinMat & "                 "
	
End Function

Beschriftungsbild und Makro zusammen in der Bibliothek mit Snoop-Funktion gespeichert, und fertig ist ein leicht
zu platzierender "Wandmarker", der die an dieser Stelle vorhandene Seitenfläche beschriftet.

Beschriftungsbild und vbs-Funktion lassen sich natürlich erweitern, so daß weitere Gewerke erkannt werden,
oder die Bedingung ein anderes Attribut enthält.
Die Funktionsweise ist dabei gleichermassen simple wie genial:
Das Makro fungiert als "Messpunkt", und kann durch seine Lage sowohl Attribute des Raumes lesen (MT_Raum(...))
als auch Attribute der Wand (MT_Wand(...)). Das Beschriftungsbild übergibt die Werte

  • Gewerk der Wand
  • Bedingungsstrings der Seitenflächen
  • Materialien der Seitenflächen

der vbs-Funktion getFinish, welche aus diesen Werten das passende Material raussucht.

Viel Spass damit!

Přílohy (3)

Type: image/png
Staženo 246
Size: 131,25 KiB
Type: application/octet-stream
Staženo 858
Size: 32,14 KiB
Type: application/octet-stream
Staženo 897
Size: 1,19 MiB

Hi Nemo,

vielen Dank für Deinen Post! Der hat mir bisher schon weitergeholfen.
Was ich nicht hinbekomme: Wie/Wo speicherst du das Makro und Beschriftungsbild und wie setzt man es anschließend ab? Ich bekomme es nicht hin, dass die Beschriftung am Makro richtig funktioniert.
Was ich bereits versucht habe:
- Makro und Beschriftungsbild als Makro speichern, Makro aus Katalog absetzen: Beschriftung wird als "DefinierteFormel" angezeigt
- Makro und Beschriftungsbild einzeln speichern und dann zusammen als Makro speichern, Makro aus Katalog absetzen: Beschriftung wird als "DefinierteFormel" angezeigt
- Makro speichern und dann zusammen mit der Beschriftung als Beschriftungsbild speichern, Raum Beschriften: Ist ohne Snoop und er liefert nur den Beschriftungsteil des Raumes, nicht den der Wand.

Wäre schön, wenn du mir weiterhelfen könntest! Vielen Dank!
Gruß Marcello

Hi Nemo,

das ist ja mal genau das, was jeder Planer braucht. Super!

Ich würde gerne die Formel auf unsere Ausbaubedingungen anpassen wollen. Kannst Du mir erklären, wie die Attributeintäge der Bauteile an die Formel übergeben? Werden die Teilergebnisse der Formeln des Beschriftungsbilds übergeben?
Woher weiß man, wie die Variablen im VBS Script benannt werden müssen (trade, conditions, prefix, etc.); gibt es eine Dokumentation von Allplan dazu? Oder sind das die Attributbezeichnungen aus der "englischen" Attribut-XML?
Und: Wozu braucht's das "W:" am Ende der Formel des Beschriftungsbilds?

Was mir aufgefallen ist: Wenn auf der anderen Seite der Wand ein Raum mit anderen Bedingungen eingegeben ist, funktioniert die Ausgabe nicht zuverlässig. Erst nach "3D aktualisieren" wird die Ausgabe richtig angezeigt: Wenn nach Anpassung des Material im Raum auf einer Seite der Wand nur "Beschriftung aktualisieren" gewählt wird, zeigt das Beschriftungsbild das Material von der gegenüberliegenden Seite an...sehr seltsam.

Vielen Dank für Deine Hilfe.

Gruß
Sebastian

Hallo Sebastian,

ja leider funktioniert das ganze nicht so zuverlässig, wie gedacht. Da geht Allplan-intern irgendwas komisches vor sich :-)
Demzufolge würd ich es jetzt nicht exessiv benutzen...

Demnächst wird es ein Plugin geben, womit man dieses Problem zuverlässig lösen kann.

Grüße Jörg

@Marcello:
Das Makro besteht aus einem Einzelpunkt und einer Hilfslinie für die Snoopfunktion.
Die beiden Elemente mit Verkettung an Raum und Snoopfunktion als Makro definieren (Absetzpunkt des Makros auf dem Absetzpunkt des Einzelpunkts legen, Abstand beim Definieren der Snoopfunktion = 0) und in der Bibliothek speichern.
Dann das Beschriftungsbild mit der Formel von Nemo definieren und im Katalog abspeichern.
Das Makro jetzt mit dem definierten Beschriftungsbild aus dem Katalog beschriften, dann sollten Makro und Beschriftungsbild miteinander verkettet sein. Jetzt noch das Makro in der Bibliothek mit dem verketteten Makro ersetzen oder unter separaten Namen in der Bibliothek als Element einfügen. Fertig.

Gruß
Sebastian

Hallo Sebastian,

danke für deine Antwort.

Jetzt noch das Makro in der Bibliothek mit dem verketteten Makro ersetzen...

Also bei mir geht das so nicht. Ich kann keinen Makro als Makro speichern "Makroverlegungen können nicht als Makro definiert werden" (Ich arbeite noch mit Allplan 2013. geht das hier gar nicht?).

Gruß
Marcello

Hallo Marcello,

habs kurz gegoogelt:
https://help.allplan.com/Allplan/2013-1/1031/Allplan/7487.htm

ab 2014 funktioniert es so:
https://help.allplan.com/Allplan/2014-1/1031/Allplan/7487.htm

müsste also mit 2013 auch funktionieren...
Viel Erfolg.

Gruß
Sebastian

Hi Sebastian,

vielen Dank! Da stand ich etwas auf dem Schlauch. Ich hatte versucht das Makro nochmals als Makro im "Makrokatalog" zu speichern, anstatt es im Symbolkatalog zu speichern.

Gruß Marcello

Hallo Nemo,

könnte das Skript auch so eingerichtet werden, dass die Seitenschichten teilbildübergreifend abgefragt werden? Also Wand und Seitenflächen bzw. Raum auf separaten Teilbildern.

Viele Grüße
Christoph

1 - 10 (11)

https://campus.allplan.com/ používá cookies  -  Více informací

Souhlasím