I have a survey provided by a client in the form of a series of contour lines displayed as blocks, about 10500 of them i.e each block is a part of a contour. The blocks themselves have no elevations or z values and if i explode them they become polylines again with no elevations of course. They do however have an attribute for each block called an 'autocad_elevation' which has a value, possibly created by the client using some other form of software. My main question is, is there a way to transfer the values of this attribute to the z values of the block? I could than either add the blocks to the surface using the add drawing objects or just explode them and add the polylines as breaklines.
I have already tried the 'moveblockstoattribelev' command but it seems i can only do one at a time. Like i said there is about 10500 of them all named different blocks. I have seen some other posts on here looks like people have had similar problems and have ended up using lisp routines and such but havent yet gotten any to work on mine. I am currently using Civil3D 2013. The file is quite large but would be able to upload a sample if required. We have already requested an alternate form of survey but wouldnt mind knowing if this could be done anyway.
Solved! Go to Solution.
Most likely the attribute is not being displayed in the drawing (i.e. it's invisible). If that's the case, set ATTDISP to ON. Next, use the command, "MOVEBLOCKSTOATTRIBELEV". It can be found on the Surface contextual ribbon tab.
Once completed, set ATTDISP back to Normal if you changed it earlier.
Explode and create your surface!
I am pretty sure the attribute is already visible, like i said in the post i already tried the 'move blocks to attributee elevation' command. My problem with that command is that i can only do one at a time! i.e i am prompted to then select a block reference name or pick a block from the dwg. I have 10500 SEPARATE blocks as contour lines in the dwg, so im not going to do them one at a time. Unless there is a way that command can be applied to multiple blocks i dont think it can help me. I will upload a sample with a few of the blocks.
Here is a simple, but usable, lisp that will explode the blocks, set the resulting polyline(s) to the elevation of the attribute, and finally delete the original blocks. It does no error checking so be sure to select just the blocks you want to use.
Just save the lisp, load it using APPLOAD, and run using the command "multi_blks_to_attribute_elevation"
Log into access your profile, ask and answer questions, share ideas and more. Haven't signed up yet? Register
Start with some of our most frequented solutions to get help installing your software.