Hello, do you know about Dynamo equivalent for TXTEXP command or any other workaround how to create 3D solid from text? Do you know any information how to solve this in Python? I found only this article https://www.keanw.com/2014/01/exploding-autocad-text-and-manipulating-the-results-using-net.html My goal is to have 3d solids from text with information of station along alignment in profile elevation every 100m.
What is the need for 3D text driven by? I am not a C3D user so the frequency of this request is somewhat odd to me…
Do you care about the font used?
This is for BIM road project, where the model has to be exported to IFC. Numbers as 3D solids here have the same purpose as alignment station labels in Civil 3D. Unfortunately I can not see another way how to have text in IFC. Font is Arial. I can see only one solution at the moment: Prepare blocks with 3D solids for digits and place them along alignment to profile elevation using Dynamo.
So to visually navigate the model? This seems like a failure of the viewer (or perhaps the format), but that’s like a separate conversation for a different forum…
There are a few options here, and I’m not sure how either will perform, either in C3D or in the end viewable IFC.
-
Use the DynamoText package to build individual lines, which can be converted into solids after some group work.
-
Use the FormIt integration of Dynamo, and a data.remember node to build 3D text in formit (I believe there is a node for that in the latest FormIt), and pull that into a Remember node. THen open the graph in d4c3d and bake the text to the file.
-
Build a dictionary of each letter as a 3D shape, use Dynamo to find the location of each character in 3D space (Taking into account the size and location of each initial point, and the size of each letter in the string). This will let you more manually shape the letters (you requested arial, which may or may not be easily doable via the above methods)
-
Build a library of shapes for each letter as a block, and then use Dynamo to create an instance of each letter. This is may be faster in C3D/IFC as it’d be instances of each geometry rather than individual data recorded for each label (which will be big - see below), and place them as per above (perhaps blocking them again as a combined string for easier management).
My concern in the end with all of these is file performance and size. There is an ungodly number of lines in most characters of fonts when broken into a 3D shape - these get complex quickly and based on the context it could get bad fast. Limiting to something like numbers only and the block method is likely easiest in terms of file size and performance, doubly so if you can use Roman numerals as the shapes are a bit simpler. Try out Dynamo text, you’ll need a group by curves function which can be found in archilab package, which may or may not load out of the box in C3D. This will be the easiest for you to implement, but may require more rework in the long term. The FormIt option is likely next easiest to work out, with option 3 and 4 as ‘late solutions’ as they involve a bit more up front effort (you’re basically building your own font library).
Thank you for your answer. I was succesful with placing block references along alignment. I have only one question how translate block placement back or forward in alignment direction. I used this (see picture), but it did not work when the station start was at 0 and I wanted the placement of the block reference in back direction than the alignment station increment.
@Drbohlav so you are trying to place an object at a station/offset that is before the beginning of the alignment? This might be better in a different thread.
Ok, it will be better.