Het opmaken van getallen is best wel een dingetje in Dynamo, en Autodesk heeft zelf ook nog geen uniforme functie hiervoor beschikbaar gesteld. Overigens komt het zelden voor dat je als gebruiker een opgemaakte tekst wilt zien maar soms is het wel handig. Als je bijvoorbeeld een hoogte of afstand als tekst in de tekening wilt plaatsen bijvoorbeeld.

Er is een String from Object node die nummers omzet naar tekst. Vreemd genoeg wordt het aantal decimalen afgekapt op 6 en waar nodig, aangevuld met nullen. Zowel in de node die de daadwerkelijke getallen laat zien als de node die teksten laat zien, wordt geen rekening gehouden met de ingestelde waarde voor decimalen in de instellingen. Daar heb ik aangegeven dat ik 3 decimalen wil zien maar ik heb nog nergens in Dynamo ontdekt waar deze wordt toegepast.
Er zijn ook trucjes om getallen te converteren naar tekst, door de Code Block functie String.FromObject() te gebruiken. Deze voegt geen nullen toe maar rondt de getallen ook niet af. Er is ook een specifieke node beschikbaar met de naam StringifyDecimal. Ook die is niet perfect, en ziet er uit als ontworpen voor programmeurs.
Dat laatste is wel een beetje gemeengoed in Dynamo, er is volgens mij nooit iemand betrokken die niet kan programmeren maar wel User Interfaces of User Experience snapt. Alleen maar programmeurs die nodes maken voor andere programmeurs. Waarom zou je anders nodes maken die een ‘block’ als input verwachten, zonder enige verdere uitleg, alsof iedereen snapt dat ModelSpace een block is?
Anyway, er is ook een node beschikbaar met de naam Formatted String from Object. Deze lijkt op de String from Object maar heeft een extra invoerveld. Gelukkig is deze optioneel, dus zonder extra instellingen worden je getallen tenminste nog steeds geconverteerd naar tekst, zij het dan zonder de extra nullen.

Maar met de formatSpecifier kun je nu wel hele leuke dingen doen! Ook al is het een beetje nerdy, want je moet weten hoe je programmeertechnisch een getal kunt converteren. Maar in de Documentation Browser wordt bij deze node in ieder geval een link gegeven naar meer informatie over opmaakcodes.
Zo kun je “N2” als formatSpecifier opgeven om nummers met 2 decimalen te krijgen. Of “N3” voor 3 decimalen.

Helaas voegt deze wel weer de duizendtal-scheiding in. Dan is een betere keuze “F2” of “F3” (of net zoveel decimalen als je wilt).

Er zijn nog meer formatSpecifiers die leuk zijn of handig in heel specifieke gevallen. Denk aan percentages waarbij ook een % teken wordt toegevoegd. Of Hexadecimaal, of Binair. Voor die laatste twee is het wel nodig dat het om hele getallen gaat, anders worden ze niet geconverteerd.

Deze node werkt gelukkig een stuk beter dan zijn voorganger. Maar wil je nog meer grip op de output, kijk dan eens naar de GetDoubleAsString node uit The Civil Nodes package.
Nu nog wachten op een node die tekst naar Morse kan omzetten.
Wil je complexe of repetitieve taken automatiseren in Civil 3D? Dit boek helpt je alles te leren over de design automating tool Dynamo voor Civil 3D. Je wordt een professional in visueel programmeren, en binnenkort zijn al je saaie of complexe taken geautomatiseerd! This book is only available in English.
