We value your input!
Please participate in Archicad 28 Home Screen and Tooltips/Quick Tutorials survey

Collaboration with other software
About model and data exchange with 3rd party solutions: Revit, Solibri, dRofus, Bluebeam, structural analysis solutions, and IFC, BCF and DXF/DWG-based exchange, etc.

Making mesh from map and text values (imported from dwg)

Anonymous
Not applicable
Hi.

I've been using archicad since the beginning of my studies,
so It's 4 years by now. I'm using ver. 15.

Actually I'm working on terrain model for my graduation project.

Long story's short:
I got map imported from DWG. I already organized layers and isolated points heigth (there are actually text with heigth value only - no geometric points)
(also map doesn't contain height lines).
As for now, I can create a mesh, then draw some lines, after that select each one separately and manually enter desired Z-level for every point.
Problem is, the number of points is 1860 and nobody sane would undertake this.

Question:
Is there a way to automatically add points to mesh from location of the text fields? Furthermore, is there a way to generate point Z-level from the value of number, and make whole geometry from text itself?

I don't have any experience with Surveyors design plugin. Maybe there's a way.

Practically:
It would greatly speed workaday modeling basis.

Looking forward to any experience and ideas,
they would be very appreciated.

Thanks.

Update:

I'm doing some reserches:

I found some script for Rhino. You just load 2D mapped DWG text to Rhino, then use the script which read the text value, then adds a point to each text box, and then sets the point in z-value written in text. Great thing, but I got some problems atm, with the script doesn't want to elevate points.

Is there possibility to write script like that for Archicad? Personally I'm no script writter, but I think many people would be very greatful for the time and work it would save them.

The other think is to generate the mesh from those points in space, but this should be less of a problem.
36 REPLIES 36
sinceV6
Advocate
Hello.

Parameter type is correct.

Error might be file related, or function related: in your screenshot, I see different separation between data. What are you using as delimiter? Space? TAB?

For this to work, the data in the file must be correctly structured: using one and the same delimiter and only one between each data field. Use the attached file as a base. It is using a space as a separator. If you are using or want to use TAB, you need to change the "SEPARATOR=' ' part to "SEPARATOR='\t' in the script.

I made a couple of changes to the script. Please replace it in your object. I thought it would be easier for you to just select the file in a dialog; but it might be easier this way if you need to check data integrity. You will now need to have the file loaded in the library, and put the name of the file in the parameter you previously made (fileName). This way you can just change the name and use both the attached file and yours to see if it is working.

If you need more help, feel free to ask.

Best regards.
Anonymous
Not applicable
Zip File
sinceV6
Advocate
Great!

Works as expected. Do as I said in my previous post, because you are using TAB as a delimiter. The error that appeared is because the script is using the data to move the coordinate system, so it needs a numeric value. When the data fails to load due to the inconsistency between the selected field delimiter, the script never gets that numeric value.

If you want, I can make some changes so you can select the delimiter type from a parameter; but you'll need to add a second parameter to the object.

Best regards.
Anonymous
Not applicable
I revised the third line in the object script to read:

ch1 = OPEN ("TEXT", fileName, "SEPARATOR='\t' ', MODE=RO, DIALOG")



The second remarck line already seemed to reference the TAB as separator.
sinceV6
Advocate
Jay wrote:
I revised the third line in the object script to read:

ch1 = OPEN ("TEXT", fileName, "SEPARATOR='\t' ', MODE=RO, DIALOG")



The second remarck line already seemed to reference the TAB as separator.
So... did it work for you?
Anonymous
Not applicable
I gave the object a try.
It must me assuming Metric measurements.

How do I get the object to reference a new txt file?
sinceV6
Advocate
Jay wrote:
I gave the object a try.
It must me assuming Metric measurements.
It is. The script could be extended to check current working units, or you could make the conversion directly in the script or make the conversion prior to the txt feeding.
Jay wrote:
How do I get the object to reference a new txt file?
Just put the txt file name in the parameter you created; provided you first load it in libraries and you updated the script as per my last edit.

Best regards.
Anonymous
Not applicable
I got this message on the report

Bad type of 'STRADDTEXTCONTENT3D' parameter value calling a library part
at line 66 in the Master script of file Object placer.gsm.
Library part was not converted properly (FU - 004)

what am i doing wrong?
Anonymous
Not applicable
I found my mistake, the last column must be text not only numbers. It makes though a single object it doesn't keep the original objects, so I had to convert to morfh to take the individual object but they lose original info . Cannot schedule.
sinceV6
Advocate
Hello.

I should have stated that the script is nothing more than a proof of concept. It reads a TXT file with x,y,z,ID information and uses that to place another object. It would need to me modified for more specific needs, or take into account the information given to it.

The error you get is because the value that is passed to the CALL (ID, 4th column, in this case) must work out as a string (you could have numbers, but you would need to convert it to a string prior to the call).

Best regards.