Textbreite auslesen um eigenen Textrahmen in Revit zu erstellen

Anonymous

Textbreite auslesen um eigenen Textrahmen in Revit zu erstellen

Anonymous
Nicht anwendbar

Hallo geschätztes Forum

 

Wir haben Beschriftungen erstellt, welche den Text in einem abgerundeten Rahmen darstellen, innerhalb dessen Hintergrund vollständig abdeckt wird (der Texthinterrahmen von Revit kann das ja leider nicht).

Beschriftung_Rundrahmen.JPG

Aber wie kann ich die Breite meines Rahmens so einstellen, dass sich diese automatisch an die Breite des Textes anpasst - so dynamisch wie das der Revit-Textrahmen macht?

 

Und wieso lässt sich die Breite des Rahmens nicht mit einem Exemplarparameter steuern?

Nur wenn ich die Rahmenbreite als Typenparameter definiere lässt diese sich anpassen. Als Exemplarparameter taucht diese nicht im Eigenschaftenfenster auf.
Und ich möchte ja, dass die Breite des Rahmens zum jeweiligen Text passt und nicht für jedes Beschriftete Objekt einen neuen Typ erstellen müssen.

Gruss

Darius

 

 

@Anonymous Der Beitragstitel wurde bearbeitet von @michele.mk zur besseren Auffindbarkeit und um das Produkt hervorzuheben so wie in der Forumhilfe vorgesehen. Originaltitel: Textbreite auslesen um eigenen Textrahmen zu erstellen

Antworten
Akzeptierte Lösungen (1)
1.977Aufrufe
15Antworten
Antworten (15)

Zsolt.Varga
Autodesk Support
Autodesk Support

Hallo @Anonymous ,

 

Kannst Du bitte die Familie anhängen?- ich schaue mir das gerne an!

 

MfG



Zsolt Varga
Technical Support Specialist
Autodesk, Inc.

Revit Ideas | Screencast | Revit Help | AKN

0 „Gefällt mir“-Angaben

Anonymous
Nicht anwendbar

PM mit Link ist unterwegs...

0 „Gefällt mir“-Angaben

Zsolt.Varga
Autodesk Support
Autodesk Support
Akzeptierte Lösung

Hallo @Anonymous ,

 

Danke für die Datei. 

Ich sehe jetzt besser was Du meinst - Du hast Recht. Es ist in dem Moment tatsächlich eine Limitation in Revit:  Exemplarparameter für Beschriftungsfamilien sind nicht erreichbar.

Das beste was wir in dem Moment machen können, für den entsprechende Produktverbesserungswunsch eine Stimme abzugeben, andere Anwender hier im Forum auch dazu zu ermuntern und auf eine entsprechende Produktverbesserung warten. 

 

Tag Family Instance Parameters

 

Um andere Anwender auch auf dieses Link hinzuweisen, werde ich jetzt diese Post als Lösung markieren - ich verstehe aber, dass es hierfür Potential für Produktverbesserung besteht.

 

MfG

 

 



Zsolt Varga
Technical Support Specialist
Autodesk, Inc.

Revit Ideas | Screencast | Revit Help | AKN

0 „Gefällt mir“-Angaben

Anonymous
Nicht anwendbar

Die Breite als Exemplarparameter wäre aber nur die halbe Miete.

Wenn der Anwender die Breite jeder Beschriftung manuell an den Text anpassen muss, ist es den Aufwand nicht wert.

 

Wichiger wäre, die Breite des Textes zu erkennen damit diese die Rahmenbreite automatisch richtig einstellt.

Also eine Art Systemparameter "Textbreite" welcher die effektive Breite des Textes anzeigt.

 

Dieser Systemparameter existiert bereits, sonst könnte sich der normale Texthintergrund und Textrahmen schliesslich auch nicht automatisch anpassen. Nur wird dieser Wert dem Anwender offenbar vorenthalten.

 

 

0 „Gefällt mir“-Angaben

cSol
Advocate
Advocate

Das war in AutoCAD schon so eine Sache. Wir benutzen in AutoCAD noch heute eine LISP-Anwendung welche automatisch solche Textrahmen mit einem Schatten erzeugen ...

 

Daher meine Gedanke zu dieser Sache: Gibt es hier bei Revit nicht eine Möglichkeit mit Dynamo etwas zu bewerkstelligen?

 

Wie Dudektiv hier ja schon erwähnt hat: der Wert ist irgendwo hinterlegt, da die Revit-eigene Fumktion für den Textrahmen ja existiert.

Anonymous
Nicht anwendbar

Die Lösungen mit Lisp in AutoCAD und Dynamo in Revit haben den Nachteil, dass sie erst vom Anwender ausgeführt werden müssen. Es wär also nur "halbautomatisch".

 

Mit Lisp gab es noch die Möglichkeit, einen Reaktor in das Skript einzubauen welcher auf so eine Textanpassung reagiert. Ob das mit Dynamo auch möglich ist, weiss ich noch nicht.

Leider machen solche Reaktoren das Programm träger weshalb sie nicht ständig mitlaufen sollten.

 

 

 

 

0 „Gefällt mir“-Angaben

Zsolt.Varga
Autodesk Support
Autodesk Support

@cSol , @Anonymous ,

 

Danke für Eure Ideen - gute Punkte. 

 

Anbei meine Gedanken dazu:

Dynamo greift auch nur auf die Revit API zu - somit wird eine (teil)Automatisierung wahrscheinlich erst dann möglich, nachdem die Limitation bezüglich Exemplarparemeter für Beschriftungsfamilien behoben wurde.

 

Evtl. könnte man die Frage noch im Open Source Dynamo Forum stellen - vielleicht hat jemand sich hierfür eine Lösung oder zumindest einen Workaround erarbeitet.

Workaround-mäßig bietet sich hierfür natürlich noch die Möglichkeit an: die Revit-eigenen Textwerkzeuge zu benutzen - ich verstehe aber, dass man sich hierfür mehr Anpassungsmöglichkeiten wünscht. 

 

Nochmals: Ihr bringt beide guten Argumente - Ich würde Euch ermuntern einen entsprechenden Wunsch auf der Revit Ideas Seite zu loggen. Das Revit Entwicklungsteam verfolgt die Diskussionen im Revit Ideas Forum sehr aktiv - diese triggern sehr weitere Ideen, interne Diskussionen und Produktentwicklungen. 

 

MfG



Zsolt Varga
Technical Support Specialist
Autodesk, Inc.

Revit Ideas | Screencast | Revit Help | AKN

0 „Gefällt mir“-Angaben

MichaelWolff
Advisor
Advisor

Vielleicht ein wenig zu viel des Guten,

aber ich könnte mir vorstellen, die betroffene Beschriftung einfach in der Familie zu verdoppeln. Die beiden werden deckungsgleich übereinander gelegt. Die untere wird in der Schriftart durch eine TrueType-Schrift ersetzt, die genauso breit läuft wie die eigentliche Beschriftung - nur, dass alle Zeichen durch Füllflächen ersetzt sind. Dann könnte man der Schrift in einigen nicht benutzten Zeichen noch Rundungen, Ecken und sonstige grafische Elemente verpassen und diese als Prefix und Suffix an die Beschriftung hängen. Am Ende macht man die Schrift weiß und hat eine exakte Füllfläche mit Abrundungen unter seinem Text. Probiere ich gleich mal mit FontForge aus.

0 „Gefällt mir“-Angaben

Anonymous
Nicht anwendbar

@MichaelWolff 

Ich versteh zwar nicht die Hälfte von dem was Du meinst, aber hast Du es mit FontForge so hinbekommen, wie Du es Dir gedacht hast?

Wenn ja, wäre ich an einer genaueren Erklärung interessiert.

0 „Gefällt mir“-Angaben

MichaelWolff
Advisor
Advisor

Hi, ich habe mir die Arial-Schrift genommen, die mit Windows geliefert wird und habe einige Zeichen durch Füllflächen ersetzt. Die Sonderzeichen §$%& habe ich durch Abrundungen ersetzt und musste beim Abspeichern feststellen, dass man den TrueType-Schriftnamen nicht verändern kann. Deshalb lässt sich die Schrift noch nicht installieren. Da knappse ich noch dran.

Um aber nachvollziehen zu können, wie ich es meinte, habe ich hier mal ein Beispiel angehängt. Darin ist eine Wand und eine Wandbeschriftung enthalten. Die Beschriftung ist in ihrer Familie gedoppelt: Einmal wie gewohnt in Schwarz und einmal mit Prefixen in einem gerade noch erkennbaren Farbton. Beide haben den Schrifthintergrund auf 'Undurchsichtig' gestellt bekommen. Möchte man aber scharfe gerundete Konturen bei der 'Deckfläche' aus Beschriftung, muss diese auf 'Transparent' gestellt werden.

Habe ich im Dateinamen vergessen: Das Beispiel wurde mit Revit 2018.3 erzeugt.

0 „Gefällt mir“-Angaben

MichaelWolff
Advisor
Advisor

Hi, hat mich dann doch nicht losgelassen. Die angehängte Schrift funktioniert. Leider habe ich keine Zeit, mit eine Schrift zurecht zu machen, die neben Rundungen vielleicht noch Ovale, Fasen oder Ecken enthält. Ich habe das eben nur für diese Demo zurecht gemacht.

In den Anhängen also das Ergebnis mit Revit 2018.3. Ich habe nicht überprüft, ob Revit vielleicht den sehr hellen Grauton des Hintergrunds als "Schwarz" übersetzt. Vielleicht mag sich ja ein Autodesk-MA zu den hinterlegten Schwellenwerten äußern.

0 „Gefällt mir“-Angaben

Anonymous
Nicht anwendbar

Hallo und danke für Deine Erläuterung.

 

Das ist so-was-von-um-das-Problem-gebastelt dass es schon fast wieder elegant ist. Smiley (zwinkernd)

Ein sehr kreativer Ansatz. Das mag ich .

 

Wie soll das aber mit drei verschieden langen Zeilen funktionieren?

Die Breite des Rahmens sollte sich schließlich am der breitesten Zeile orientieren.

 

Außerdem fehlen mir da noch die zwei horizontalen Linien zwischen den Zeilen, welche ebenfalls ihre Länge irgendwie anpassen müssen.

 

0 „Gefällt mir“-Angaben

MichaelWolff
Advisor
Advisor
Hallo,
Ich hatte darauf spekuliert, dass ein (deutschsprachiger) Programmierer, der zufällig unser deutsches Forum verfolgt, erkennt, in welch absurde Situationen wir geraten und sich der Sache annimmt.
Die Mehrzeiligkeit bekommt man so leider nicht in den Griff. Vielleicht werden ja im nächsten Punktirgendwas-Update die Strings um einige Formeln bereichert, so dass man mit Length(StringName) vorgehen könnte. Dann haben wir nur noch das Problem, dass die Parameter innerhalb der Beschriftungen leider nicht identisch sind mit den Parametern der Objekte, die sie beschriften.
Vermutlich muss man sich einstweilen mit einer 3-Zeilen-Beschriftung begnügen, die in schmal, mittel und breit daher kommt, die man beim Redigieren der Papierpläne glatt zieht, falls Text aus dem Rahmen fällt.
0 „Gefällt mir“-Angaben

Anonymous
Nicht anwendbar

Och. Jetzt sehe ich gerade, dass die Abdeckungen in der Schrift leider nicht ganz aneinander angrenzen. Smiley (traurig)

ArialBloecke.JPG

 

Mit einer farbigen Solid darunter wären die Abstände noch besser sichtbar.

 

0 „Gefällt mir“-Angaben

MichaelWolff
Advisor
Advisor
Sieht man das mit den Abgrenzungen im Ausdruck tatsächlich noch? Mein Screenshot war ein auf 1:10 hochgeblasener 1:50-Plan. Sorry for the inconvenience.
0 „Gefällt mir“-Angaben