In Civil 3D kun je in de Label Style de opmaak regelen van de tekst. Zo kun je delen van de tekst vetgedrukt of cursief maken, of een andere kleur geven. Deze Style geldt dan voor alle Labels, en niet per stuk. Het kan voorkomen dat je bepaalde labels afwijkend wilt maken. Daarmee voorkom je dat je verschillende Styles hoeft te maken en onderscheid zou moeten maken in de objecten die gelabeld worden. Vooral tijdens een automatisch proces is het lastig om allerlei randvoorwaarden in te bouwen. Met behulp van Dynamo is het mogelijk om eenvoudig Labels aan te passen, zonder de Label Style of objecteigenschappen te veranderen.

MText

Een Label is in feite een MText object. En MText objecten kun je stijlen, in tegenstelling tot gewone teksten. Op de achtergrond wordt een MText opgebouwd uit codes. De volgende MText:

is opgebouwd uit de code:

Normaal, 
{\fNLCS-ISO|b1|i0|c0|p34;vet},
{\fNLCS-ISO|b0|i1|c0|p34;cursief},
{\Londerstreept},
{\C3;kleur}

Door hier een tijdje naar te kijken, zie je hoe de structuur is opgebouwd.

  • Elk afwijkend deel is ingesloten in accolades
  • Tekstuele stijl wordt voorafgegaan met ‘\f’ en afgesloten met puntkomma
  • Vette tekst binnen een tekstuele stijl wordt geregeld met ‘b1’ (‘b0’ is niet-vet)
  • Cursieve tekst binnen een tekstuele stijl wordt geregeld met ‘i1’ (‘i0’ is niet-cursief)
  • Onderstreepte tekst wordt voorafgegaan met ‘\L’
  • Gekleurde tekst wordt voorafgegaan met ‘\C’, voorzien van ACI kleur en afgesloten met puntkomma
  • Combinaties zijn mogelijk, bijvoorbeeld ‘\L\C3;’ voor zowel onderstreept als gekleurd

De contents van een MText en ook een Label zijn met Dynamo op te vragen en te overrulen. Je kunt namelijk Labels per stuk aanpassen in Civil 3D, wil je dit in Dynamo doen dan heb je de Camber package nodig.

Labels selecteren en wijzigen met Dynamo

Stel dat je sommige Labels van Structures wilt wijzigen. Alle putten die lager liggen dan een bepaalde hoogte, of alle DWA putten afwijkend ten opzichte van HWA (als je maar één Structure stijl gebruikt natuurlijk), of putten die bij een bepaalde Alignment horen, met Dynamo kun je dit allemaal filteren.

De Structure Label Style in dit voorbeeld bevatten 3 componenten, één voor de naam en twee voor de BOB’s.

De inhoud van het component is dus ‘<[Name(CU)]>’ wat weer een Civil 3D code is om de naam met hoofdletters (Case Up) te schrijven. Van de Labels die je wilt wijzigen, kun je het component overrulen met nieuwe inhoud. Als je deze vetgedrukt wilt in de kleur rood, dan zou je de volgende inhoud moeten plaatsen in de component override:

{\fNLCS-ISO|b1|i0|c0|p34;\C1;<[Name(CU)]>}

Dit houdt in dat het font voorzien wordt van de code ‘b1’ en de kleur ACI 1 (is rood) wordt toegepast op de code die Civil 3D begrijpt voor het plaatsen van de naam van het object. Dit is nu dus een combinatie van MText codering en Civil 3D Label codering. Nu wordt het tijd om de juiste componenten eruit te filteren. De Label bevat namelijk meerdere componenten en die wil je niet allemaal voorzien van de nieuwe codering. Je kunt in Dynamo de inhoud opvragen van de componenten met de nodes uit de Camber Package:

Of op naam van het component:

Je kunt er nu zelf voor kiezen of je op naam of op inhoud een Filter By Bool Mask uitvoert om zo alleen de componenten te selecteren die je wilt aanpassen.

Met de node Label.SetTextComponentOverride kun je een nieuwe inhoud plaatsen in het component van die specifieke Label. Omdat er wat stuur-karakters worden toegepast zoals de slash en puntkomma, kun je het beste een String node toepassen en geen Code Block.

De bewerkte Labels in Civil 3D tonen hun inhoud nu als volgt:

Omdat het een Label Override is, zie je een kleine, gele waarschuwing bij de Label. De Labels zijn uiteraard weer eenvoudig te herstellen, zowel met Dynamo als binnen Civil 3D.